將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中文網其他相關文章!