ホームページ > バックエンド開発 > PHPチュートリアル > PHP で 2 つの文字列間のコンテンツを効率的に抽出するにはどうすればよいですか?

PHP で 2 つの文字列間のコンテンツを効率的に抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-07 05:02:11
オリジナル
594 人が閲覧しました

How to Efficiently Extract Content Between Two Strings in PHP?

PHP で 2 つの文字列間のコンテンツを取得する

PHP で 2 つの文字列間のコンテンツを抽出する最適な方法は、特定の要件によって異なります。一般的なアプローチは次の 2 つです。

1.出力バッファリング

出力バッファリングは、スクリプトの出力をバッファーに保存し、文字列としてアクセスできるようにします。この方法は、別のスクリプトの出力を操作する場合、または外部ファイルを含める場合に便利です。

例:

ob_start();
include('externalfile.html');
$out = ob_get_contents();
ob_end_clean();

preg_match('/{FINDME}(.|\n*)+{\/FINDME}/',$out,$matches);
$match = $matches[0];

echo $match;
ログイン後にコピー

2.文字列操作

このアプローチでは、strpos や substr などの組み込み文字列関数を使用して、目的のコンテンツの開始位置と終了位置を検索します。

例:

$startsAt = strpos($out, "{FINDME}");
$endsAt = strpos($out, "{/FINDME}", $startsAt);
$result = substr($out, $startsAt + strlen("{FINDME}"), $endsAt - $startsAt - strlen("{/FINDME}"));
ログイン後にコピー

どのアプローチですか使用しますか?

  • 出力バッファリング: 他のスクリプトの出力を操作する必要がある場合、または外部ファイルを含める必要がある場合に適しています。
  • 文字列操作: より効率的かつ柔軟ですが、開始位置と終了位置を手動で見つける必要があります。 content.

追加の注意事項:

  • どちらのアプローチでも、開始文字列または終了文字列が見つからないという特殊なケースを処理する必要があります。
  • 正規表現で .|n* を使用すると、任意の文字または新しい文字に一致するため、正しいです。 line.
  • file_get_contents を使用して外部ファイルの内容を取得できますが、スクリプトの出力を操作するための出力バッファリングと同じ柔軟性はありません。

以上がPHP で 2 つの文字列間のコンテンツを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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