目前,我用来截断字符串的方法是:echo substr($message, 0, 30)."..";
如何仅在字符串被截断的情况下显示点?
答案 0 :(得分:17)
只需检查长度是否超过30个字符:
if (strlen($message) > 30)
{
echo substr($message, 0, 30)."..";
}
else
{
echo $message;
}
我的印刷挑剔要添加:要使用的正确字符是包含此字符…
,三个点...
或其HTML实体的省略号…
。
答案 1 :(得分:5)
只需检查原始字符串的长度即可查看是否需要截断。如果长度超过30,则截断字符串并在末尾添加点:
if (strlen($message) > 30) {
echo substr($message, 0, 30)."..";
} else {
echo $message;
}
答案 2 :(得分:5)
if (strlen($message) > 30) {
echo substr($message, 0, 30) . "..";
} else {
echo $message;
}
答案 3 :(得分:4)
应该注意,strlen()函数不计算字符数,它计算字节数。如果您使用的是UTF-8编码,最终可能会有1个字符,最多可计为4个字节。正确的方法是:
echo mb_strlen($message) > 30 ? mb_substr($message, 0, 30) . "..." : $message;
答案 4 :(得分:1)
你可以这样做:
echo strlen($message) > 30 ? substr($message, 0, 30) . '..' : $mssage;
基本上,它就像(但更短):
if (strlen($message) > 30) {
echo substr($message, 0, 30) . "..";
} else {
echo $message;
}
答案 5 :(得分:0)
添加strlen()
条件?