Strlen for non english language

时间:2010-02-25 15:58:46

标签: php strlen

我想在主页上显示文章的简短描述。描述是泰语和英语的混合。

我正在使用此功能用于strlen

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

但是这不是准确的,因为有些描述最终只有一行而有些最多有3行,我想要显示两行的描述。

如果strlen大于155,我会

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

谢谢。

3 个答案:

答案 0 :(得分:5)

Glyphs,字符的图形表示,在不同的字体中具有不同的宽度。只需将mi进行比较:

  

mmmmmmmmmm
  IIIIIIIIII

两个字符重复十次。但是m的字形比i的字形宽得多。

所以你不能从字符数中总结出它的图形表示的宽度(等宽字体除外)。

答案 1 :(得分:2)

substr对utf-8数据使用不安全。使用mb_substr

答案 2 :(得分:0)

如果你想要防止3行以上的行首先按'\n'分割字符串,然后用mb_substr

进行调查