strrchr后输出结果不同
程序员文章站
2022-06-01 21:30:16
...
$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
请问各位大神这是为什么?谢谢
回复内容:
$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
string strrchr ( string $haystack , mixed $needle )
该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。
haystack
在该字符串中查找。needle
如果 needle 包含了不止一个字符,那么仅使用第一个字符。该行为不同于 strstr()。
如果 needle 不是一个字符串,那么将被转化为整型并被视为字符顺序值。
也就是说,后面的参数只识别第一个字符, 也就是只识别你的 h
, h
之后的参数全部忽略。如果要使用字符串,需要换用 strpos 等其他支持字符串查询的函数。
(注:楼上的说明也是不准确的,这个和 trim 也不一样,strrchr 只识别第一个字符,其他的字符无效,而不是一个个尝试)
推荐阅读
-
SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑
-
将任意一个十进制数字转换为二进制形式(使用数组存储二进制数,数组长度为100),并输出转换后的结果
-
python jieba分词并统计词频后输出结果到Excel和txt文档方法
-
在文本框中输入两个操作数和选择运算符后,在页面上显示输出结果
-
90后出纳挪用4800万元赃款,一审结果为何游戏、直播同属不同命?
-
php mb_strlen函数指定不同的编码输出结果不同
-
请大神帮我看看这两段代码有什么不同。为什么输出的结果不一样
-
php mb_strlen函数指定不同的编码输出结果不同
-
mysql-新手求教 java中使用MYsql后查询结果怎么输出到别的地方
-
请大神帮我看看这两段代码有什么不同。为什么输出的结果不一样