2011-01-13 5 views
2

私はchunk_split()関数を使用すると、アクセントの文字と特殊文字が壊れてしまい、どうすればこの問題を修正できますか?PHPのchunk_split()の問題

ここは私のPHPコードです。

if(count($text) > 0) { 
    $text = implode(' ', $text); 
    echo chunk_split($text, 8, '<br />'); 
} 

台無しにしたアクセント文字。

&a mp;ポスト ER AA AAA AAA AOO OOO OOO OEE EEE ECC III III UUU úûü Ññ

+0

あなたは "廃れた"出力の例を持っていますか? – amosrivera

答えて

5

chunk_splitはマルチバイトの安全ではなく、ネイティブのmb_chunk_splitはありません。ここで

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

PHPのドキュメントでのコメンターからのことを行うための機能である:

<?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; 
} 

?> 
+0

このソリューションに感謝します! – David

関連する問題