PHP での文字列を最も近い単語まで切り詰める
指定された文字数より前の最後の単語の末尾で文字列を切り取るには、PHP でいくつかの方法が用意されています。
ワードラップの使用機能:
ワードラップ関数は、テキストを最大幅の複数行に分割し、単語の境界で自動的に分割します。最初の行のみを取得することで、テキストを最も近い単語まで切り詰めることができます:
$truncated_string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n"));
エッジケースの処理:
このメソッドは、それより短いテキストは処理しません。希望の幅よりも。そのためには、次のメソッドを使用します。
if (strlen($string) > $desired_width) { $string = substr($string, 0, strpos(wordwrap($string, $desired_width), "\n")); }
トークンの切り詰め:
テキスト内の改行に関する潜在的な問題を解決するために、このメソッドはテキストをトークン (単語) に分割します。 、空白、改行) とその長さを累積します:
function tokenTruncate($string, $desired_width) { $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE); $length = 0; $last_part = 0; for (; $last_part < count($parts); ++$last_part) { $length += strlen($parts[$last_part]); if ($length > $desired_width) { break; } } return implode(array_slice($parts, 0, $last_part)); }
このメソッドもUTF8 文字を処理します。
単体テスト:
class TokenTruncateTest extends PHPUnit_Framework_TestCase { // ... test cases ... }
追加メモ:
以上がPHP で文字列を最も近い単語に切り詰めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。