截斷包含UTF-8 字元的字串
問題:
將多位元組字串截斷到指定的字元限制在PHP 中,保留單字邊界可能是一個挑戰。此問題涉及使用名為 truncate() 的自訂方法來實作此功能,該方法應與多位元組字元保持一致。
解決步驟:
使用mb_strimwidth()的解:
PHP提供了mb_strimwidth(mb_strimwidth() ,可以處理多字節字串截斷。然而,該函數不遵守字邊界。以下程式碼片段示範了其用法:
public function truncate($string, $chars = 50, $terminator = ' …') { $maxChars = $chars - strlen($terminator); if (mb_strlen($string) <= $maxChars) { return $string; } $lastWhitespace = mb_strrpos(mb_substr($string, 0, $maxChars), ' '); if ($lastWhitespace !== false) { return mb_substr($string, 0, $lastWhitespace) . $terminator; } else { return mb_substr($string, 0, $maxChars) . $terminator; } }
以上是如何在 PHP 中安全截斷 UTF-8 字串,同時保留字邊界?的詳細內容。更多資訊請關注PHP中文網其他相關文章!