截断包含 UTF-8 字符的字符串
问题:
将多字节字符串截断到指定的字符限制在 PHP 中,保留单词边界可能是一个挑战。此问题涉及使用名为 truncate() 的自定义方法来实现此功能,该方法应与多字节字符保持一致。
解决步骤:
使用mb_strimwidth()的解决方案:
PHP提供了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中文网其他相关文章!