0

ホームページに記事の簡単な説明を表示したい。説明はタイ語と英語を組み合わせたものです。

この関数をstrlenに使用しています

mb_strlen($str, 'UTF-8');

しかし、これは正確ではありません。一部の説明は1行で終わり、一部は3行になり、2行の説明を表示したいと思います。

strlenが155より大きい場合は、

$descr = mb_strlen($descr, 'UTF-8') > 155 ? substr($descr, 0, 152) . '...' : $descr;

ありがとうございました。

4

3 に答える 3

5

文字のグラフィック表現であるグリフは、フォントによって幅が異なります。と比較するだけmですi

うーんうううううううううううううううううう
うう

両方の文字が 10 回繰り返されます。しかし、 のグリフは のmグリフよりもはるかに広いですi

そのため、文字数からグラフィック表現の幅を判断することはできません (等幅フォントを除く)。

于 2010-02-25T16:00:24.977 に答える
2

substrutf-8 データで使用するのは安全ではありません。使用するmb_substr

于 2010-02-25T16:06:52.613 に答える
0

3行以上のエントリを防ぎたい場合は、最初に文字列を分割し'\n'てからトリミングしますmb_substr

于 2010-02-25T16:08:25.387 に答える