網頁

2013年3月4日

[php] 英文自動換行

常常遇到有連續的英文會將表格撐開,索性就自已寫了一個可以依字數自動換行的函數,這個函數是使用utf-8編碼,若要使用其它編碼請再自行修改。
function AutoCut($string, $width = 80)
{
    $len = mb_strlen($string, 'UTF-8');
    for ($i = 0; $i < $len; $i++) {
        $parts[] = mb_substr($string, 0, 1, 'UTF-8');
        $string = mb_substr($string, 1, $len, 'UTF-8');
    }
    $Tmp = array();
    $len = 0;
    $row = 0;
    foreach ($parts as $word){
        if (mb_strlen($word, "utf-8") == strlen($word)){
            $len ++;
        }else{
            $len += 2;
        }
        if ($width >= $len){
            $Tmp[$row] .= $word;
        }else{
            $Tmp[++$row] .= $word;
            $len = 0;
        }
    }
    return $Tmp;
}