>  기사  >  백엔드 개발  >  PHP 검색 및 차단 문자열 기능에 대한 자세한 소개(예제 포함)

PHP 검색 및 차단 문자열 기능에 대한 자세한 소개(예제 포함)

不言
不言앞으로
2019-01-10 11:37:285765검색

이 글은 PHP의 검색 및 가로채기 문자열 기능에 대한 자세한 소개를 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

여기에 기록된 strstr, strrchr, strpos, strrpos, substr 및 기타 기능을 사용하여 문자열을 검색하고 가로채야 하는 경우가 많습니다.

strstr

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

strrchr

string strrchr ( string $haystack , Mixed $needle )
이 함수는 haystack 문자열의 일부를 반환하며, needle이 마지막으로 나타나는 부분부터 시작하여 haystack의 끝 부분까지 끝납니다.

strrchr은 마지막으로 나타나는 문자를 찾아서 끝으로 돌아가며, 찾지 못하면 false를 반환합니다. 예

<php
$str = 'abcdefabcdef';
echo strrchr($str, 'c');// cdef,返回最后一次出现位置后面的字符串,包括c

strpos

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位开始查找

strrpos

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位开始查找

substr

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);// 同上

Note

  • stristr, Stripos, strripos는 각각 strstr, strpos, strrpos의 대소문자를 구분하지 않는 버전입니다

  • strpos, 음수는 지원됩니다. 버전 7.1.0부터 offset

  • substr과 length가 음수이면 문자열 끝의 길이 문자는 생략됩니다

  • strpos, strrpos를 사용하여 반환 여부를 판단하세요. value, false가 아닌 부울 값과 동일하게 반환할 수 있기 때문에 ​​

  • strpos, strrpos, 두 번째 매개 변수는 문자열 유형이어야 하며 확실하지 않은 경우 변환하는 것이 가장 좋습니다

  • 일반 함수 사용 문자열을 검색하고 가로챌 수도 있지만 동일한 효과가 있습니다. 이 경우 일반 효율성은 느려집니다. 문자열에 문자가 있는지 확인하려는 경우 strpos가 멀티바이트를 더 잘 처리할 수 있는 것보다 효율적입니다.

    인코딩된 문자열.

위 내용은 PHP 검색 및 차단 문자열 기능에 대한 자세한 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제