ホームページ > バックエンド開発 > PHPチュートリアル > PHP で文字列を最も近い単語に切り詰めるにはどうすればよいですか?

PHP で文字列を最も近い単語に切り詰めるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-23 14:44:13
オリジナル
488 人が閲覧しました

How Can I Truncate Strings in PHP to the Nearest Word?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート