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

时间:2010-08-17 13:28:28

标签: php

目前,我用来截断字符串的方法是:echo substr($message, 0, 30)."..";

如何仅在字符串被截断的情况下显示点?

6 个答案:

答案 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()条件?