$str="宁夏银川市西夏区丽子园北街欣地苑";
$find="宁夏";
$flag=strrpos($str,$find);
echo "<BR>flag:".$flag;//flag:13
if($flag>-1){//find:有
echo "<BR>find:有";
}else{
echo "<BR>find:没有";
}
运行显示结果
flag:13
find:有请教:
flag的值应为0,为何成为13了呢?服务器环境:
PHP Version 4.3.8
Windows NT SERVER 5.2 build 3790
mysql
Client API version 3.23.49
find:有我这里显示正常啊... 你是不是搞错了什么或是看错了? 我的php5.2.3 可能是版本问题,你的版本比较老了.
如果成功,则返回位置,否则返回 false。
楼主应该是gbk编码下:$flag=strrpos($str,$find); 所以找到的位置是13,要查找第一个词,应该用strpos(),这个函数才是查找第一次出现的位置。
你的"宁夏"只取第一个字符是 0xc4,
而夏的第二个字符也是0xc4所以....
strpos — 查找并返回首个匹配项的位置
提醒下strrpos()函数中第二个参数只能是单个字符,如果你输入的是一个字符串 系统也会默认字符串中的第一个字符进行查找,其他字符无效。
正解,已改成strpos查询了,谢谢各位!