PHP chunk_split()问题

时间:2011-01-13 21:29:18

标签: php mysql

当我使用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 Ññ

2 个答案:

答案 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)

尝试转换之前和之后的字符集,如下所示:

http://us3.php.net/manual/en/function.chunk-split.php#99316