Home  >  Article  >  Backend Development  >  Detailed introduction to PHP search and interception string functions (with examples)

Detailed introduction to PHP search and interception string functions (with examples)

不言
不言forward
2019-01-10 11:37:285765browse

This article brings you a detailed introduction to PHP's search and interception string functions (with examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

It is often necessary to search and intercept strings, and strstr, strrchr, strpos, ## will be used. #strrpos, substr and other functions are organized and recorded here.

strstr

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
Returns the haystack string starting from the first occurrence of needle to haystack The ending string.
strstr will find the position where the character first appears and return a part of it. If it is not found, it will return false. Example

<?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)
This function returns a part of the haystack string, which starts from the last occurrence of needle until end of haystack.
strrchr will find the last occurrence of the character and return to the end, if not found it returns false. Example

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

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
Returns the numeric position where needle first appears in haystack.
strpos will find the position where the character first appears and return the number at that position. If it is not found, it returns false. Example

<?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 ] )
Returns the numeric position of the last occurrence of needle in string haystack.
strrpos will find the position where the character last appeared and return the number at that position. If it is not found, it will return false. Example

<?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 ] )
Returns the string string substring specified by the start and length parameters.
substr Returns the intercepted string according to the positional parameters, and returns false on failure. Example

<?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位
Examples and comments

Examples

The above are simple examples of functions. Reasonable use in work will help us get twice the result with half the effort. The following is an example of obtaining an email username or email domain name

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

    ##stristr, stripos, and strripos are case-insensitive versions of strstr, strpos, and strrpos respectively
  • strpos, version 7.1.0 starts to support negative offset
  • substr, length is a negative number, then the length characters at the end of the string will are omitted
  • strpos, strrpos, use "===" to determine the return value, because it is possible to return a non-boolean value equivalent to false
  • strpos, strrpos, the second parameter must be a string type. If you are not sure, it is best to convert it
  • You can also use regular functions to search and intercept strings, but the same In the case of effective effects, the regularization efficiency will be slower
  • If you just want to confirm whether the character exists in the string, strpos is more efficient than strstr
  • mbstring can better handle multi-byte encoded strings

The above is the detailed content of Detailed introduction to PHP search and interception string functions (with examples). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete