php字符串查找函数strpos(),strrchr(),strstr()之间区别和性能介绍
strpos()
定义:查找字符串在另一字符串中第一次出现的位置。
返回值:返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE(字符串位置从0开始,不是从1开始,可能返回0)。
语法:strpos(string,find,start)
string(必):规定要搜索的字符串。
find(必):规定要查找的字符串。
start(选):规定在何处开始搜索。
示例1:echo strpos("You love php, I love php too!","php"); // 9
注释:该函数是二进制安全的,strpos() 函数对大小写敏感。不能判断是否有特殊字符(包括中文字符) 。
相关:
stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
mb_strpos() - 中文
strrchr()
定义:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
返回值:返回从某个字符串在另一个字符串中最后一次出现的位置到主字符串结尾的所有字符,如果未找到此字符,则返回 FALSE。
语法:strrchr(string,char)
string(必):规定要搜索的字符串。
char(必):规定要查找的字符。如果该参数是数字,则搜索匹配此数字的 ASCII 值的字符。
示例1:echo strrchr("I love Shanghai!","Shanghai"); //Shanghai!
示例2:echo strrchr("Hello world! What a beautiful day!",What); //What a beautiful day!
strstr()
定义:搜索字符串在另一字符串中的第一次出现开始到字符串结尾的字符串。
返回值:返回字符串的剩余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。
语法:strstr(string,search,before_search)。
string(必):规定被搜索的字符串。
search(必):规定所搜索的字符串,如果此参数是数字,则搜索匹配此数字对应的 ASCII 值的字符。
before_search(选):默认值为 "false" 的布尔值,如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分。
示例1:echo strstr("I love Shanghai!","Shanghai");//Shanghai!
示例2:echo strstr("Hello world!",111); //o world!
示例3:echo strstr("Hello world!","world",true);//Hello
注释:该函数是二进制安全的,该函数对大小写敏感。stristr() 函数不区分大小写。
相关:mb_strstr()中文。
性能从高到低:
strpos()、strrchr()、strstr()