【发布时间】:2011-03-31 12:47:02
【问题描述】:
与 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?
【问题讨论】:
-
您是否曾尝试处理诸如“АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ”之类的文本?如果您使用
strpos()从数据库 (UTF8) 中获得类似的信息,将无法解决获取特定字符位置的问题。如果您尝试获取非 ANSI 字符串中的位置,请不要使用 strpos()。