本站资源收集于互联网,不提供软件存储服务,每天免费更新优质的软件以及学习资源!

PHPstrrchr()函数处理中文时_为何会出现意想不到的结果?

网络教程 app 1℃

PHPstrrchr()函数处理中文时_为何会出现意想不到的结果?

php 中 strrchr() 输出的内容解析

strrchr() 函数用于在字符串中找到指定字符最后一次出现的位置。当参数中包含中文时,其输出结果可能令人困惑。

示例 1:

$str1 = "今天不是下雨天,感觉不错哟,没下雨,,,啊";$res1 = strrchr($str1, "下雨");echo "$res1 <br />";

输出:

下雨,,,啊

此输出符合预期,因为函数找到了字符串中 “下雨” 字符串的最后一个出现位置。

示例 2:

$str2 = "我爱你中国啊中国啊五十几个族啊";$res2 = strrchr($str2, "中");echo "$res2 <br />";var_dump($res2);

输出:

个族啊string ‘个族啊’ (length=9)

解释:

令人惊讶的是,输出的内容是 “个族啊”。这是因为 strrchr() 函数在处理包含中文的参数时,先使用 urlencode() 函数对参数进行编码。编码结果如下:

%E6%9C%89%E6%88%91%E7%88%B1%E4%B8%AD%E5%9B%BD%E5%95%8A%E4%B8%AD%E5%9B%BD%E5%95%8A%E4%BA%94%E5%8D%81%E4%BA%94%E5%8D%81%E6%97%8F%E5%95%8A

php 将此编码后的字符串视为三个字符,而 strrchr() 函数在参数有多个字符时只使用第一个字符。因此,它找到了 “中” 字符在 “个族啊” 中的位置。

以上就是PHP strrchr()函数处理中文时,为何会出现意想不到的结果?的详细内容,更多请关注范的资源库其它相关文章!

转载请注明:范的资源库 » PHPstrrchr()函数处理中文时_为何会出现意想不到的结果?

喜欢 (0)