ホームページ >バックエンド開発 >PHPチュートリアル >サブストリングに関する質問

サブストリングに関する質問

WBOY
WBOYオリジナル
2016-06-13 13:32:391012ブラウズ

substr の問題
記事タイトルを出力する際、フレーム幅の制限により、中国語タイトルは 10 文字までしか表示できません
10 を超える場合は、漢字 9 文字 + ..で表現されます。 、「一、二、三、四、五、六、七、八、九...」など
私の関数本体は非常に単純です、

function doTitleLen($title, $len){
if(strlen($title) > $ len){
$title = substr($title, 0, $len-2).'..';

}
return $title;
}

len が 10 であるとします
すると、送信される記事のタイトルは
「One Two Three Four Five Six Seven Eight Nine Ten One」
になりますsubstr に -2 があるため、最後の単語が文字化けします。これは、漢字 1 文字の長さに応じて減算されます
このバグの解決方法がわかりません
strlen はバイト数を取得します。単語数を計算するには?
単語数を取得した後、文字数に応じて文字数を計算できる関数はありますか?

------解決策------------------- -
mb_strlen() を使用して文字長を計算します。
mb_substr() を使用してインターセプトします。

指定されたエンコーディングに注意してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。