이 글은 PHP의 검색 및 가로채기 문자열 기능에 대한 자세한 소개를 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
여기에 기록된 strstr, strrchr, strpos, strrpos, substr 및 기타 기능을 사용하여 문자열을 검색하고 가로채야 하는 경우가 많습니다.
string strstr ( string $haystack , Mixed $needle [, bool $before_needle = false ] )
needle 이 처음 나타나는 위치부터 시작하여 haystack 끝까지 haystack 문자열을 반환합니다.
strstr은 문자가 처음 나타나는 위치를 찾아 그 일부를 반환합니다. 찾을 수 없으면 false를 반환합니다. 예
<?php $str = 'abcdefabcdef'; echo strstr($str, 'c') . PHP_EOL;// cdefabcdef,返回第一次出现位置后面的字符串,包括c echo strstr($str, 'c', true);// ab,返回第一次出现位置后面的字符串,不包括c
string strrchr ( string $haystack , Mixed $needle )
이 함수는 haystack 문자열의 일부를 반환하며, needle이 마지막으로 나타나는 부분부터 시작하여 haystack의 끝 부분까지 끝납니다.
strrchr은 마지막으로 나타나는 문자를 찾아서 끝으로 돌아가며, 찾지 못하면 false를 반환합니다. 예
<php $str = 'abcdefabcdef'; echo strrchr($str, 'c');// cdef,返回最后一次出现位置后面的字符串,包括c
mixed strpos ( string $haystack , Mixed $needle [, int $offset = 0 ] )
haystack에서 바늘이 처음 나타나는 숫자 위치를 반환합니다.
strpos는 문자가 처음 나타나는 위치를 찾아 해당 위치의 숫자를 반환합니다. 찾을 수 없으면 false를 반환합니다. 예
<?php $str = 'abcdefabcdef'; echo strpos($str, 'e') . PHP_EOL;// 4,字符串位置是从0开始 echo strpos($str, 'e',3) . PHP_EOL;// 4,从第3位开始查找 echo strpos($str, 'e',11);// false,从第11位开始查找
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
string haystack에서 바늘이 마지막으로 나타나는 숫자 위치를 반환합니다.
strrpos는 캐릭터가 마지막으로 나타난 위치를 찾아 해당 위치의 숫자를 반환합니다. 찾을 수 없으면 false를 반환합니다. 예
<?php $str = 'abcdefabcdef'; echo strrpos($str, 'e') . PHP_EOL;// 10,字符串位置是从0开始 echo strrpos($str, 'e', 4) . PHP_EOL;// 10,从第4位开始查找 echo strrpos($str, 'e', 11) . PHP_EOL;// false,从第11位开始查找 echo strrpos($str, 'e',-5);// 4,从尾部第5位开始查找
string substr ( string $string , int $start [, int $length ] )
start 및 length 매개변수로 지정된 문자열 하위 문자열을 반환합니다.
substr은 위치 매개변수에 따라 가로채는 문자열을 반환하고, 실패하면 false를 반환합니다. 예
<?php $str = 'abcdefabcdef'; echo substr($str, 0, 5) . PHP_EOL;// abcde,从首部开始截取5位 echo substr($str, 0, -3) . PHP_EOL;// abcdefabc,从首部开始截取-3位 echo substr($str, -2) . PHP_EOL;// ef,从尾部开始截取2位 echo substr($str, -5, 3) . PHP_EOL;// bcd,从尾部第5位开始截取3位 echo substr($str, -5, -1) . PHP_EOL;// bcde,从尾部第5位开始截取-1位
위는 함수의 간단한 예입니다. 업무에 올바르게 사용하면 절반의 노력으로 두 배의 결과를 얻을 수 있습니다. 다음은 이메일 사용자 이름 또는 이메일 도메인 이름을 얻는 예입니다
<?php $email = '123456@example.com'; // 获取用户名 echo strstr($email, '@', true) . PHP_EOL; echo substr($email, 0, strpos($email, '@')) . PHP_EOL; echo substr($email, 0, strrpos($email, '@')) . PHP_EOL;// 邮箱中只有一个@,所有 strpos 和 strrpos 相同 // 获取邮箱域名 echo substr(strstr($email, '@'), 1) . PHP_EOL; echo substr(strrchr($email, '@'), 1) . PHP_EOL; echo substr($email, strpos($email, '@') + 1) . PHP_EOL; echo substr($email, strrpos($email, '@') + 1);// 同上
stristr, Stripos, strripos는 각각 strstr, strpos, strrpos의 대소문자를 구분하지 않는 버전입니다
strpos, 음수는 지원됩니다. 버전 7.1.0부터 offset
substr과 length가 음수이면 문자열 끝의 길이 문자는 생략됩니다
strpos, strrpos를 사용하여 반환 여부를 판단하세요. value, false가 아닌 부울 값과 동일하게 반환할 수 있기 때문에
strpos, strrpos, 두 번째 매개 변수는 문자열 유형이어야 하며 확실하지 않은 경우 변환하는 것이 가장 좋습니다
일반 함수 사용 문자열을 검색하고 가로챌 수도 있지만 동일한 효과가 있습니다. 이 경우 일반 효율성은 느려집니다. 문자열에 문자가 있는지 확인하려는 경우 strpos가 멀티바이트를 더 잘 처리할 수 있는 것보다 효율적입니다.
인코딩된 문자열.위 내용은 PHP 검색 및 차단 문자열 기능에 대한 자세한 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!