将字符串截断为字符串的前 n 个字符,如果删除了任何字符,则添加三个点
2022-08-30 06:00:05
如何在PHP中获取字符串的前n个字符?将字符串修剪为特定字符数并附加“...”的最快方法是什么?如果需要?
如何在PHP中获取字符串的前n个字符?将字符串修剪为特定字符数并附加“...”的最快方法是什么?如果需要?
//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;
}
此功能自 4.0.6 版起已内置于 PHP 中。请参阅文档。
echo mb_strimwidth('Hello World', 0, 10, '...');
// outputs Hello W...
请注意,(上面的省略号)包含在截断的长度中。trimmarker