ホームページ >バックエンド開発 >PHPチュートリアル >PHP で文字列を指定した長さに効率的にトリミングし、単語の途中での区切りを回避するにはどうすればよいですか?

PHP で文字列を指定した長さに効率的にトリミングし、単語の途中での区切りを回避するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-23 22:30:15181ブラウズ

How Can I Efficiently Trim Strings to a Specified Length in PHP and Avoid Mid-Word Breaks?

PHP でのドットによる文字列のトリミング: 総合ガイド

PHP コードで文字列を圧縮する必要がありますか?ここでは、文字列を指定した文字数に切り詰め、文字が削除された場合に省略記号 (...) を追加する方法を示します。

迅速な解決策:

$string = substr($string, 0, 10) . '...';

この単純なメソッドは、文字列の最初の 10 文字を取得し、その後に省略記号が続きます。

最適化されたアプローチ:

$string = (strlen($string) > 13) ? substr($string, 0, 10) . '...' : $string;

この更新バージョンには、結果の文字列が目的の長さであることを確認するチェックが含まれています。元の文字列が 13 文字を超える場合は、10 文字に切り詰められ、その後に省略記号が続きます。それ以外の場合、元の文字列はトリミングされないままになります。

関数の抽象化:

function truncate($string, $length, $dots = "...") {
    return (strlen($string) > $length) ? substr($string, 0, $length - strlen($dots)) . $dots : $string;
}

この関数はトリミング ロジックをカプセル化し、別のパラメーターで再利用できるようにします。トリミングする文字列、必要な長さ、オプションの省略記号文字列の 3 つの引数を取ります。

単語の途中での改行を避ける:

function truncate($string, $length = 100, $append = "…") {
  $string = trim($string);

  if (strlen($string) > $length) {
    $string = wordwrap($string, $length);
    $string = explode("\n", $string, 2);
    $string = $string[0] . $append;
  }

  return $string;
}

これは強化されましたこの関数はワードラップを利用して、単語の途中で文字列が壊れるのを防ぎます。文字列が指定された長さより長い場合は、ワードラップされ、最も近い空白で切り捨てられます。

以上がPHP で文字列を指定した長さに効率的にトリミングし、単語の途中での区切りを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。