我发现自己需要这个功能,并且想知道它是否已经存在于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中存在的那种东西,所以当我找不到它时我感到很惊讶。
答案 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)
没有。