PHP中是否存在此功能?

时间:2009-03-27 15:15:30

标签: php string

我发现自己需要这个功能,并且想知道它是否已经存在于PHP中。

/**
 * Truncates $str and returns it with $ending on the end, if $str is longer
 * than $limit characters
 *
 * @param string $str
 * @param int $length
 * @param string $ending
 * @return string
 */
function truncate_string($str, $length, $ending = "...")
{
    if (strlen($str) <= $length)
    {
        return $str;
    }
    return substr($str, 0, $length - strlen($ending)).$ending;
}

因此,如果限制是40并且字符串是“快速狐狸跳过懒惰的棕色狗”,输出将是“快速狐狸跳过懒惰的眉毛......”。这似乎是PHP中存在的那种东西,所以当我找不到它时我感到很惊讶。

4 个答案:

答案 0 :(得分:5)

$suffix = '...';
$maxLength = 40;

if(strlen($str) > $maxLength){
  $str = substr_replace($str, $suffix, $maxLength);
}

您的实施可能略有不同,具体取决于后缀的长度是否应计入总字符串长度。

答案 1 :(得分:4)

这是感兴趣的人的单行版本

<?php 
    echo (strlen($string) > 40 ? substr($string, 0, 37)."..." : $string);
?>

答案 2 :(得分:2)

不,它不存在。然而,许多图书馆提供它,因为您不是第一个需要它的人。例如Smarty的

答案 3 :(得分:1)

没有。