$str1 = "test:http://google.com,http://hbaidu.com";
$str2 = strrchr($str1,"http://");
echo $str2;
输出结果应该是:
http://hbaidu.com
但是为什么输出结果是:
baidu.com
如果把代码中http://hbaidu.com的h去掉
$str1 = "test:http://google.com,http://baidu.com";
$str2 = strrchr($str1,"http://");
echo $str2;
结果输出是:
http://baidu.com
请问各位大神这是为什么?谢谢
建议先看看 strrchr 的文档
http://php.net/manual/zh/function.strrchr.php
也就是说,后面的参数只识别第一个字符, 也就是只识别你的
h
,h
之后的参数全部忽略。如果要使用字符串,需要换用 strpos 等其他支持字符串查询的函数。(注:楼上的说明也是不准确的,这个和 trim 也不一样,strrchr 只识别第一个字符,其他的字符无效,而不是一个个尝试)