$string = "01234567890*****12345678901234567890*";
echo strrpos($string,'*****');
Run Code Online (Sandbox Code Playgroud)
为什么这会返回36而不是15?(点击这里测试)
来自php.net
strrpos - 查找字符串中最后一次出现的子串的位置
我错过了什么?
谢谢!
解决方案: 使用下面的答案,我提供了PHP4替代方案
$haystack = "01234567890*****12345678901234567890*";
$needle = '*****';
$position = strlen($haystack) - strlen($needle) - strpos(strrev($haystack),strrev($needle));
echo $position; // 11
Run Code Online (Sandbox Code Playgroud)
WriteCodeOnline.com使用PHP 4.4.9(测试它phpversion),strrpos5.0之前只接受一个字符而不是字符串:
该针只能在PHP 4的单个字符.
这就是为什么你的代码处理就像strrpos($string,'*').在PHP 5.0及更高版本中,返回值为11.