当我使用chunk_split()函数时,它会破坏我的口音字符和特殊字符,我想知道如何纠正这个问题?
这是我的PHP代码。
if(count($text) > 0) {
$text = implode(' ', $text);
echo chunk_split($text, 8, '<br />');
}
破坏的重音字符。
&安培;一个 熔点;岗位 呃 AAA AAA AOO OOO OOO OEE EEE ECC III III UUU UUU Ññ
答案 0 :(得分:5)
chunk_split不是多字节安全的,并且没有本机mb_chunk_split。
http://php.net/manual/en/function.chunk-split.php
这是一个从php docs中的评论者那里做到的功能:
<?php
//from Peter from dezzignz.com 05-Apr-2010 11:30 @ php.net
function mbStringToArray ($str) {
if (empty($str)) return false;
$len = mb_strlen($str);
$array = array();
for ($i = 0; $i < $len; $i++) {
$array[] = mb_substr($str, $i, 1);
}
return $array;
}
function mb_chunk_split($str, $len, $glue) {
if (empty($str)) return false;
$array = mbStringToArray ($str);
$n = 0;
$new = '';
foreach ($array as $char) {
if ($n < $len) $new .= $char;
elseif ($n == $len) {
$new .= $glue . $char;
$n = 0;
}
$n++;
}
return $new;
}
?>
答案 1 :(得分:1)
尝试转换之前和之后的字符集,如下所示: