对于需要检查字符串是否超过给定长度的情况 如果它然后截断并添加省略号我通常使用如下函数 但是想知道是否一个人不能在一行中这样做,preg_replace也许?
function truncate($str, $length){
if (strLen($str) > $length) {
$str = substr($str, 0, $length) . ' ...';
}
return $str;
}
答案 0 :(得分:5)
使用内联if:
return strLen($str) > $length ? substr($str, 0, $length) . ' ...' : $str;
答案 1 :(得分:3)
如果您正在寻找正则表达式解决方案:
function truncate($str, $length) {
return preg_replace('/(.{'.(int)$length.'}).+/s', '$1 ...', $str);
}