PHP 프로그래밍에서 우리는 종종 다른 문자열에 서브 스트링이 존재하는지 여부를 결정하는 것과 같은 문자열 검색의 필요성을 종종 만나게됩니다. PHP는이를 위해 여러 내장 기능을 제공하며 가장 일반적으로 사용되는 두 가지는 strpos () 및 strpos () 입니다. 그들의 사용법은 매우 비슷해 보이지만, 그것은 사례에 민감한 지에 대한 주요 차이점으로 행동합니다.
strpos ()는 다른 문자열에서 문자열이 먼저 나타나는 위치를 찾는 데 사용됩니다. 이 기능은 사례에 민감합니다 .
int|false strpos(string $haystack, string $needle, int $offset = 0)
$ haystack 은 검색 할 대상 문자열입니다.
$ 바늘은 찾아야 할 부분 문자열입니다.
$ 오프셋은 선택적 시작 위치입니다.
$pos = strpos("Welcome to m66.net", "M");
if ($pos !== false) {
echo "Found at position $pos";
} else {
echo "Not found";
}
출력은 다음과 같습니다.
Not found
그 이유는 "m" 이 대문자이고 원래 문자열의 "m" 은 소문자이고 strpos ()는 엄격하게 대용어에 민감하므로 거짓을 반환합니다.
strpos () 와 달리 strpos ()는 사례에 민감한 버전입니다. 논리적으로 정확하게 일관되며, 단지 문자의 상류 및 하부 사례를 무시합니다.
int|false stripos(string $haystack, string $needle, int $offset = 0)
$pos = stripos("Welcome to m66.net", "M");
if ($pos !== false) {
echo "Found at position $pos";
} else {
echo "Not found";
}
이 코드는 다음을 출력합니다.
Found at position 0
Stripos ()는 "m" 과 "m"을 동일한 문자로 취급하기 때문입니다.
선택할 기능은 특정 요구에 따라 다릅니다.
변수에 특정 케이스 철자가 포함되어 있는지 확인하는 것과 같은 정확한 일치가 필요한 경우 (예 : 비밀번호 확인과 같은) strpos ()를 사용하는 것이 더 적절합니다.
키워드가 존재하는지 여부를 결정하려면 (검색 함수에서와 같이) 상류 및 소문자에 대해 신경 쓰지 않으려면 Stripos ()가 더 편리합니다.
$comment = "This is a stupid comment.";
$badword = "Stupid";
if (stripos($comment, $badword) !== false) {
echo "Warning: Inappropriate language detected.";
}
이것은 다양한 경우 조합에서 민감한 단어를 효과적으로 감지 할 수 있습니다.
기능 | 사례에 민감합니다 | 반환 값 유형 | 사용 |
---|---|---|---|
strpos () | 예 | int 또는 false | 정확한 검색 |
stripos () | 아니요 | int 또는 false | 사례 검색을 무시하십시오 |
올바른 시나리오에서 그들 사이의 차이를 이해하고 코드를보다 정확하고 효율적으로 만들 수 있습니다. 이 기사 가이 두 기능의 차이점을 더 잘 이해하는 데 도움이되기를 바랍니다.