繁体   English   中英

PHP:使用“ ..”正确截断字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM