PHP でのマルチバイト文字列の切り詰め
PHP でのマルチバイト文字列の切り詰めは、複雑な作業になる場合があります。この記事では、マルチバイト文字エンコーディングと単語境界の両方を考慮して、このような文字列を指定された文字数に切り詰めるという課題に取り組みます。
これを実現するには、1 つのアプローチとして、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 中国語 Web サイトの他の関連記事を参照してください。