//The simple version for 10 Characters from the beginning of the string
$string = substr($string,0,10).'...';
更新:
基于检查长度的建议(并且还确保修剪和未修剪字符串上的类似长度):
$string = (strlen($string) > 13) ? substr($string,0,10).'...' : $string;
所以你会得到一个最大13个字符的字符串; 13个(或更少)正常字符或10个字符,后跟’…’
更新2:
或作为功能:
function truncate($string, $length, $dots = "...") {
return (strlen($string) > $length) ? substr($string, 0, $length - strlen($dots)) . $dots : $string;
}
更新3:
这是一段时间,因为我写这个答案,我实际上不再使用这个代码。我更喜欢这个函数,它防止使用wordwrap函数打破字中间的字符串:
function truncate($string,$length=100,$append="…") {
$string = trim($string);
if(strlen($string) > $length) {
$string = wordwrap($string, $length);
$string = explode("\n", $string, 2);
$string = $string[0] . $append;
}
return $string;
}