itsource

문자열이 지정된 문자열로 시작되는지 확인하려면 어떻게 해야 합니다.

mycopycode 2022. 9. 11. 17:36
반응형

문자열이 지정된 문자열로 시작되는지 확인하려면 어떻게 해야 합니다.

문자열이 다음 문자로 시작되는지 확인하려고 합니다.http이 체크는 어떻게 해야 하나요?

$string1 = 'google.com';
$string2 = 'http://www.google.com';

PHP 8 이상:

str_syslog_with 함수를 사용합니다.

str_starts_with('http://www.google.com', 'http')

PHP 7 이전 버전:

문자열의 일부를 반환하려면 기판 함수를 사용합니다.

substr( $string_n, 0, 4 ) === "http"

다른 프로토콜이 아닌지 확인하려는 거라면요나는 사용하고 싶다http://대신 https와 http-protocol.com 등의 다른 것도 일치하기 때문입니다.

substr( $string_n, 0, 7 ) === "http://"

그리고 일반적으로:

substr($string, 0, strlen($query)) === $query

사용방법:

if (strpos($string2, 'http') === 0) {
   // It starts with 'http'
}

등호 3개를 기억한다.===2개만 사용하면 정상적으로 동작하지 않습니다.그 이유는strpos()돌아온다false바늘을 건초더미에서 찾을 수 없다면요

이 상황에 최적인 기능 및 기능도 있습니다.

if (strncmp($string_n, "http", 4) === 0)

일반적으로:

if (strncmp($string_n, $prefix, strlen($prefix)) === 0)

보다 뛰어난 장점substr()어프로치strncmp()임시 문자열을 작성하지 않고 필요한 작업을 수행할 뿐입니다.

간단한 regex(사용자 viriathus에서 업데이트된 버전)를 사용할 수 있습니다.eregi권장되지 않습니다.

if (preg_match('#^http#', $url) === 1) {
    // Starts with http (case sensitive).
}

대소문자를 구분하지 않는 검색을 원하는 경우

if (preg_match('#^http#i', $url) === 1) {
    // Starts with http (case insensitive).
}

정규식을 사용하면 보다 복잡한 작업을 수행할 수 있습니다.

if (preg_match('#^https?://#i', $url) === 1) {
    // Starts with http:// or https:// (case insensitive).
}

퍼포먼스 면에서는 새로운 스트링을 작성할 필요가 없습니다(기판과는 달리).또한 스트링 전체를 해석할 필요도 없습니다.regex를 처음 사용할 때는 성능 저하가 발생합니다(생성/컴파일 필요).

이 확장은 컴파일된 정규 표현의 스레드 단위 글로벌캐시를 유지합니다(최대 4096 ) 。http://www.php.net/manual/en/intro.pcre.php

문자열이 http로 시작하는지 https로 시작하는지 확인할 수 있습니다.

function has_prefix($string, $prefix) {
   return substr($string, 0, strlen($prefix)) == $prefix;
}

$url   = 'http://www.google.com';
echo 'the url ' . (has_prefix($url, 'http://')  ? 'does' : 'does not') . ' start with http://';
echo 'the url ' . (has_prefix($url, 'https://') ? 'does' : 'does not') . ' start with https://';

언급URL : https://stackoverflow.com/questions/2790899/how-to-check-if-a-string-starts-with-a-specified-string

반응형