将字符串截断为字符串的前 n 个字符,如果删除了任何字符,则添加三个点

2024-01-07

PHP 中如何获取字符串的前 n 个字符?将字符串修剪为特定数量的字符并在需要时附加“...”的最快方法是什么?


//The simple version for 10 Characters from the beginning of the string
$string = substr($string,0,10).'...';

Update:

基于检查长度的建议(并确保修剪和未修剪的字符串具有相似的长度):

$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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将字符串截断为字符串的前 n 个字符,如果删除了任何字符,则添加三个点 的相关文章

随机推荐