문자열이 지정된 문자열로 시작되는지 확인하려면 어떻게 해야 합니다.
문자열이 다음 문자로 시작되는지 확인하려고 합니다.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
'itsource' 카테고리의 다른 글
스프링 부트 시 "기본 보안 비밀번호 사용" 삭제 (0) | 2022.09.11 |
---|---|
MariaDB(mysql-config-editor에 상당)의 어디에 패스워드/로그인 패스를 저장합니까? (0) | 2022.09.11 |
vuex 작업에 dayJS를 사용할 수 있지만 Vuex 저장소의 상태를 초기화할 수 없는 이유는 무엇입니까? (0) | 2022.09.11 |
Python에서 예외 값을 가져오는 중 (0) | 2022.09.11 |
JavaScript에서 "0"은 false와 같지만, "if"에 의해 테스트되면 그 자체로 false가 아닌 이유는 무엇입니까? (0) | 2022.09.11 |