PHP:Unicode和多字节操作


PHP: unicode and multibyte operations

我有一个韩语 Unicode 字符串 ( ...입니다.<br /><br />소재... ),我想在<br>标签之间拆分。在意识到有mb_*()函数之前,我愚蠢地使用常规字符串运算符,如substr()strpos()。我所拥有的如下。

$str = `...입니다.<br /><br />소재...`; 
$k = mb_strrpos($str, '<br /><br />');  // want the last match
$firstPortion = mb_substr($str, 0, $k);

但是,它似乎仍然不起作用。 $firstPortion最终要么是整个原始字符串,要么是原始字符串的某个随机部分。谁能发现我做错了什么?

这应该有效。好吧,在使用引号而不是shell_exec运算符之后(请注意,您使用了反引号而不是单引号')

无论如何,常规字符串函数也应该工作,只要数据被编码为 Unicode,并且您正在搜索的字符串只是 ASCII,而<br />是 ASCII。 否则,在某些编码中可能会出现边缘情况。