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 中国語 Web サイトの他の関連記事を参照してください。