[英]PHP: properly truncating strings with “..”
当前,我用于截断字符串的方法是: echo substr($message, 0, 30)."..";
仅在字符串被截断的情况下,如何显示点?
只需检查其长度,看看它是否超过30个字符:
if (strlen($message) > 30)
{
echo substr($message, 0, 30)."..";
}
else
{
echo $message;
}
我中的印刷版nitpick要添加以下内容:正确使用的字符是由以下字符组成的省略号: …
, 三个点...
或其HTML实体…
。
只需检查原始字符串的长度以查看是否需要将其截断即可。 如果长度大于30,则截断字符串并在末尾添加点:
if (strlen($message) > 30) {
echo substr($message, 0, 30)."..";
} else {
echo $message;
}
if (strlen($message) > 30) {
echo substr($message, 0, 30) . "..";
} else {
echo $message;
}
应当注意,strlen()函数不计算字符,而是计算字节。 如果使用的是UTF-8编码,则可能会以1个字符结尾,该字符最多可算作4个字节。 正确的方法是:
echo mb_strlen($message) > 30 ? mb_substr($message, 0, 30) . "..." : $message;
您可以这样做:
echo strlen($message) > 30 ? substr($message, 0, 30) . '..' : $mssage;
基本上,它就像(但更短):
if (strlen($message) > 30) {
echo substr($message, 0, 30) . "..";
} else {
echo $message;
}
添加strlen()
条件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.