与strpos()相比,iconv_strpos()的返回值是出现在针头之前的字符数,而不是到找到针头的位置的字节偏移量。
(来源:http://www.php.net/manual/en/function.iconv-strpos.php)
下面的代码示例显示iconv_strpos()
和strpos()
返回相同的值。
$string = "dd.MM.yy";
echo "d: ".strpos($string, 'd'); // 0
echo "M: ".strpos($string, 'M'); // 3
echo "y: ".strpos($string, 'y'); // 6
echo "d: ".iconv_strpos($string, 'd'); // 0
echo "M: ".iconv_strpos($string, 'M'); // 3
echo "y: ".iconv_strpos($string, 'y'); // 6
为什么我应该使用iconv_strpos而不是strpos?
最佳答案
通常仅在使用多字节编码(例如UTF-8或UTF-16)时才有意义。
一个字符可能由多个字节组成(UTF-8中的非7位ASCII字符就是这种情况-这些字符的编码长度是可变的。UTF-16具有2个字节的字符)。