在PHP 中截斷多位元組字串
在PHP 中,截斷多位元組字串可能是一項複雜的任務。本文解決了將此類字串截斷為指定字元數的挑戰,同時考慮多位元組字元編碼和字邊界。
要實現這一目標,一種方法是使用 PHP 的內建 mb_strimwidth() 函數,該函數允許用於截斷指定寬度的字串。但是,此函數不考慮字邊界。
截斷的自訂實作
可以建立自訂實作來處理多位元組字元編碼和字邊界:
用法示例:
function truncate($string, $chars = 50, $terminator = ' …') { // Calculate truncation length $trunc_len = $chars - strlen($terminator); // Validate string length if (strlen($string) <= $trunc_len) { return $string; } // Find word boundary $space_pos = mb_strrpos($string, ' ', -$trunc_len); // Cut string if ($space_pos !== false) { $truncated_string = mb_substr($string, 0, $space_pos); } else { $truncated_string = mb_strimwidth($string, 0, $trunc_len); } // Append terminator return $truncated_string . $terminator; }
此函數可用於截斷多位元組字串,同時考慮字元編碼和字邊界。它為這個常見的 PHP 任務提供了一個簡單而強大的解決方案。
以上是如何在保留字邊界的同時安全地截斷 PHP 中的多位元組字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!