标签: php strlen
我想在主页上显示文章的简短描述。描述是泰语和英语的混合。
我正在使用此功能用于strlen
mb_strlen($str, 'UTF-8');
但是这不是准确的,因为有些描述最终只有一行而有些最多有3行,我想要显示两行的描述。
如果strlen大于155,我会
$descr = mb_strlen($descr, 'UTF-8') > 155 ? substr($descr, 0, 152) . '...' : $descr;
谢谢。
答案 0 :(得分:5)
Glyphs,字符的图形表示,在不同的字体中具有不同的宽度。只需将m与i进行比较:
m
i
mmmmmmmmmm IIIIIIIIII
两个字符重复十次。但是m的字形比i的字形宽得多。
所以你不能从字符数中总结出它的图形表示的宽度(等宽字体除外)。
答案 1 :(得分:2)
substr对utf-8数据使用不安全。使用mb_substr
substr
mb_substr
答案 2 :(得分:0)
如果你想要防止3行以上的行首先按'\n'分割字符串,然后用mb_substr
'\n'