PHP中是否存在此函数?
我发现自己需要这个函数,并想知道它是否已经存在于PHP中PHP中是否存在此函数?,php,string,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_str
/**
* 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;
}
/**
*截断$str,如果$str较长,则返回它,并在末尾加上$ending
*超过$limit个字符
*
*@param string$str
*@param int$length
*@param string$ending
*@返回字符串
*/
函数truncate_字符串($str,$length,$ending=“…”)
{
if(strlen($str)不存在。但是,许多图书馆提供它,因为您不是第一个需要它的人。例如,Smarty它不存在
$suffix = '...';
$maxLength = 40;
if(strlen($str) > $maxLength){
$str = substr_replace($str, $suffix, $maxLength);
}
根据后缀的长度是否应计入字符串的总长度,您的实现可能会略有不同。以下是一行版本,供感兴趣的人参考
<?php
echo (strlen($string) > 40 ? substr($string, 0, 37)."..." : $string);
?>
这也是我的第一个回答。不过,从字符串长度中减去后缀的长度,否则您将有一个43个字符的结果。这是一个很好的工作,但我认为使用易于阅读的代码比使用三元代码要好,除非这是一个极端的速度情况,您将循环一百万次。三元运算符不会给出速度广告相对于if-else块的优势?:的主要优点是,与if-else不同,它是一个表达式,可以在if-else语法无效的地方使用。这不好,因为它将后缀附加到一个小于$maxLength的字符串中。确实,您仍然需要将其包装到自己的函数中,该函数只运行substr_replace()基于这个条件。