PHP mb_substr除错误率utf 8
作者:互联网
我试图将一个字符串分成两列,每列有6行.问题是,如果最后一行包含(Ø,Æ,Å),即使第一行中有空格,它也会跳转到下一列.
看起来这是一个编码问题,任何人都知道可能会发生什么?我用来生成列的代码是:
$iter = 6;
$str = $shortd;
$count_line = 0;
$str = $shortd;
for ($x=0; $x<$iter;){
$pos = strpos($str,"<br />");
$text = mb_substr ($str, 0, $pos + 6);
$str = mb_substr ($str, $pos + 6);
echo $text;
$x++;
}
?>
</td>
<td>
<?
for ($x=$iter; $x<$iter + $iter;){
$pos = strpos($str,"<br />");
$text = mb_substr ($str, 0, $pos + 6);
$str = mb_substr ($str, $pos + 6);
echo $text;
$x++;
}
?>
</td>
解决方法:
strpos()功能不支持多字节.你应该使用mb_strpos()代替.否则,在处理位置时,您将混合字节和字符.
标签:php,string,unicode,substring,multibyte 来源: https://codeday.me/bug/20190901/1783583.html