<?php $str1 = "今天不是下雨天,感觉不错哟,没下雨,,,啊"; $res1 = strrchr($str1,"下雨"); echo "$res1 <br />"; //正常输出了 //下雨,,,啊 $str2 = "我爱你中国啊中国啊五十几个族啊"; $res2 = strrchr($str2,"中"); echo "$res2 <br />"; var_dump($res2); //为什么会输出这个??
//好郁闷啊 //个族啊 //string '个族啊' (length=9)
其他的输出都正常。。这是什么鬼。。
php的这个函数strrchr 参数如果是中文的话,会先用 urlencode() 函数 进行编码。
编码之后是这样:
php 认为这是三个字符
而strrchr 函数如果参数 有多个字符的,则只使用第一个字符,
结果:
相等喽。
谢谢,中秋快乐。。。str,还有个问题,strcmp()如果比较英文和中文的,按照字典排序是按照 Unicode排序的吗,