Re: [請益] 全形伴我行 半形讓我頭痛到不行

看板PHP作者 (小惡魔)時間16年前 (2009/10/26 21:25), 編輯推噓3(301)
留言4則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《coldollsheep (加油加油^^)》之銘言: : 大大妳們好 : 這是一個粗淺的問題 我也想不到我的人生 在這樣一個地方卡住了 : 事情是這樣的.... : 我從一個資料表讀資料 該欄位中英文龍蛇雜處 : 但中文還是比較多的 : 但是因為顯示的時候要考慮到美觀 : 我抓出來的東西 一率只抓前八碼 : 例如裡面是 : "台中車站" 這樣的前八碼抓起來是OK的 : "檸檬C" 讓我後面的td tag 變成 ?/td> : 因為C才一碼.... : 我只有想到一個辦法 就是要在擷取前八碼前把所有東西都全型化 : 請問這樣解決是OK的嗎? 我總覺得以前這樣的東西是不構成問題的阿 : 因為覺得我想的方法很不入流 : 想知道大家的想法 感恩 function bite_str($string, $start, $len, $byte=3) { $str = ""; $count = 0; $str_len = strlen($string); for ($i=0; $i<$str_len; $i++) { if (($count+1-$start)>$len) { $str .= "..."; break; } elseif ((ord(substr($string,$i,1)) <= 128) && ($count < $start)) { $count++; } elseif ((ord(substr($string,$i,1)) > 128) && ($count < $start)) { $count = $count+2; $i = $i+$byte-1; } elseif ((ord(substr($string,$i,1)) <= 128) && ($count >= $start)) { $str .= substr($string,$i,1); $count++; } elseif ((ord(substr($string,$i,1)) > 128) && ($count >= $start)) { $str .= substr($string,$i,$byte); $count = $count+2; $i = $i+$byte-1; } } return $str; } 官方網站提供的:http://tw.php.net/manual/en/function.substr.php#53199 支援 utf-8:$byte=3 | gb2312:$byte=2 | big5:$byte=2 -- PHP MVC CodeIgniter 繁體中文手冊: http://tinyurl.com/mduyv8 PHP MVC CodeIgniter 繁體中文討論區:http://tinyurl.com/yayzoz8 PHP MVC CodeIgniter 中文官方網站: http://tinyurl.com/yatds8n Appleboy Blog 電腦技術: http://blog.Wu-Boy.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.144.183

10/27 01:49, , 1F
wrong, utf-8 is not always 3 bytes 注音符號的二三四聲
10/27 01:49, 1F

10/27 01:49, , 2F
就是2 bytes
10/27 01:49, 2F

10/27 08:06, , 3F
純推
10/27 08:06, 3F

10/27 18:28, , 4F
而且 底下的comment是路人po的不能算官方訊息吧 僅供參考
10/27 18:28, 4F
文章代碼(AID): #1AvQDZ75 (PHP)
文章代碼(AID): #1AvQDZ75 (PHP)