將PHP 中的字串截斷為最接近的單字
要在指定字元數之前的最後一個單字的結尾裁剪字符串,PHP提供了幾種方法。
使用自動換行功能:
自動換行功能將文字分成具有最大寬度的多行,並在單字邊界處自動斷行。透過只取得第一行,您可以將文字截斷為最接近的單字:
$truncated_string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n"));
邊緣情況處理:
此方法不處理較短的文字比所需的寬度。為此,請使用以下內容:
if (strlen($string) > $desired_width) { $string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n")); }
令牌截斷:
為了解決文字中換行符的潛在問題,此方法將文字拆分為令牌(單字、空格和換行符)並累積它們的長度:
function tokenTruncate($string, $desired_width) { $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE); $length = 0; $last_part = 0; for (; $last_part < count($parts); ++$last_part) { $length += strlen($parts[$last_part]); if ($length > $desired_width) { break; } } return implode(array_slice($parts, 0, $last_part)); }
此方法也處理UTF8 字元。
單元測試:
class TokenTruncateTest extends PHPUnit_Framework_TestCase { // ... test cases ... }
附加說明:
以上是如何將 PHP 中的字串截斷為最接近的單字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!