是否有正式的PHP函数来执行此操作?这个动作叫什么?
答案 0 :(得分:3)
不,没有内置功能,但你当然可以建立自己的功能:
function str_truncate($str, $length) {
if(strlen($str) <= $length) return $str;
return substr($str, 0, $length - 3) . '...';
}
答案 1 :(得分:2)
function truncateWords($input, $numwords, $padding="") {
$output = strtok($input, " \n");
while(--$numwords > 0) $output .= " " . strtok(" \n");
if($output != $input) $output .= $padding;
return $output;
}
按字词截断
答案 2 :(得分:1)
不,PHP没有内置“截断”字符串的功能(除非有一些奇怪的扩展名有一个,但是不能保证观众/你会有那种插件 - 我不知道任何一个这样做。
我建议只为它编写一个简单的函数,例如:
<?php
function truncate($str, $len)
{
if(strlen($str) <= $len) return $str;
$str = substr($str, 0, $len) . "...";
return $str;
}
?>
如果您想使用“暂停点”字符(带有三个点的单个字符;它是unicode),请使用HTML实体…
。
答案 3 :(得分:1)
我使用wordwrap,substr和strpos的组合来确保它不会切断单词,或者分隔符前面没有空格。
function truncate($str, $length, $delimiter = '...') {
$ww = wordwrap($str, $length, "\n");
return substr($ww, 0, strpos($ww, "\n")).$delimiter;
}
$str = 'The quick brown fox jumped over the lazy dog.';
echo truncate($str, 25);
// outputs 'The quick brown fox...'
// as opposed to 'The quick brown fox jumpe...' when using substr() only