ホームページ > バックエンド開発 > PHPチュートリアル > mb_substr中文日文长度相同,显示长度不同

mb_substr中文日文长度相同,显示长度不同

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-06 20:41:51
オリジナル
1198 人が閲覧しました

两段中文和日本,从肉眼上看是不在同一位置结束的,但是使用mb_strlen函数获取的长度确是相同的,测试代码如下:

<code>$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');
</code>
ログイン後にコピー
ログイン後にコピー

测试结果长度都是59,但是肉眼很明显看到长度不统一啦,这样的话就会造成mb_substr这个函数截取的数据长度不统一,在前端就会换行了。

大家是如何解决这个问题的?

回复内容:

两段中文和日本,从肉眼上看是不在同一位置结束的,但是使用mb_strlen函数获取的长度确是相同的,测试代码如下:

<code>$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');
</code>
ログイン後にコピー
ログイン後にコピー

测试结果长度都是59,但是肉眼很明显看到长度不统一啦,这样的话就会造成mb_substr这个函数截取的数据长度不统一,在前端就会换行了。

大家是如何解决这个问题的?

...我这里程序输出的是59...然后我每个都特地数了两遍..都是59个字..mb_strlen并没有问题...

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート