首頁 > 後端開發 > php教程 > 如何將 PHP 字串截斷到最接近的單字而不進行單字中間剪切?

如何將 PHP 字串截斷到最接近的單字而不進行單字中間剪切?

DDD
發布: 2024-12-10 16:54:16
原創
728 人瀏覽過

How Can I Truncate PHP Strings to the Nearest Word Without Mid-Word Cuts?

將PHP 字串截斷為最接近的單字

將字串截斷為特定字元限制可能會導致難看的單字中間被截斷。為了滿足這一需求,我們探索了一個 PHP 程式碼片段,可以準確地截斷最接近單字末尾的文字。

解決方案 1:使用 Wordwrap

wordwrap 函數可以根據指定的最大寬度將文字分割成行,在字邊界處斷開。為了實現所需的截斷,我們可以簡單地利用分割文本中的第一行:

$truncated = substr($string, 0, strpos(wordwrap($string, $limit), "\n"));
登入後複製

解決方案2:基於令牌的截斷

但是,解決方案1有一個限制:如果換行符號出現在截止點之前,它會過早剪切文字。為了緩解這個問題,我們可以實現基於標記的截斷:

function tokenTruncate($string, $limit) {
  $tokens = preg_split('/([\s\n\r]+)/u', $string, null, PREG_SPLIT_DELIM_CAPTURE);

  $length = 0;
  $lastToken = 0;
  while ($length <= $limit && $lastToken < count($tokens)) {
    $length += strlen($tokens[$lastToken]);
    $lastToken++;
  }

  return implode(array_slice($tokens, 0, $lastToken));
}
登入後複製

結論

透過實現這些解決方案,您可以有效地在最接近的單字處截斷PHP 字串,確保顯示乾淨且有意義。

以上是如何將 PHP 字串截斷到最接近的單字而不進行單字中間剪切?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板