兩段中文和日本,從肉眼上看是不在同一位置結束的,但是使用mb_strlen函數擷取的長度確是相同的,測試代碼如下:
$str_0 = '[銀光字幕組][哆啦A夢新番Doraemon][006][GB][2005.05.20]秘密間諜大作戰&Hello!宇';$str_1 = 'Hello Kitty no Happy Birthday (ハローキティとミミィのハッピーバースデー) OVA.mp';$str_2 = 'ARR] Hello Kitty no Fushigi no Kuni no Alice (ハローキティの不思議の國の';$str_3 = '2014.myHD.六福喜事.Hello Babies.粵語中字.AC-3.1920x1080-MYfun4U.mkv';return mb_strlen($str_0, 'utf-8').'@'.mb_strlen($str_1, 'utf-8').'@'.mb_strlen($str_2, 'utf-8').'@'.mb_strlen($str_3, 'utf-8');
測試結果長度都是59,但是肉眼很明顯看到長度不統一啦,這樣的話就會造成mb_substr這個函數截取的資料長度不統一,在前端就會換行了。
大家是如何解決這個問題的?
回複內容:
兩段中文和日本,從肉眼上看是不在同一位置結束的,但是使用mb_strlen函數擷取的長度確是相同的,測試代碼如下:
$str_0 = '[銀光字幕組][哆啦A夢新番Doraemon][006][GB][2005.05.20]秘密間諜大作戰&Hello!宇';$str_1 = 'Hello Kitty no Happy Birthday (ハローキティとミミィのハッピーバースデー) OVA.mp';$str_2 = 'ARR] Hello Kitty no Fushigi no Kuni no Alice (ハローキティの不思議の國の';$str_3 = '2014.myHD.六福喜事.Hello Babies.粵語中字.AC-3.1920x1080-MYfun4U.mkv';return mb_strlen($str_0, 'utf-8').'@'.mb_strlen($str_1, 'utf-8').'@'.mb_strlen($str_2, 'utf-8').'@'.mb_strlen($str_3, 'utf-8');
測試結果長度都是59,但是肉眼很明顯看到長度不統一啦,這樣的話就會造成mb_substr這個函數截取的資料長度不統一,在前端就會換行了。
大家是如何解決這個問題的?
...我這裡程式輸出的是59...然後我每個都特地數了兩遍..都是59個字..mb_strlen並沒有問題...