1

PHPスクリプトを使用してファイル内のテキストブロックを削除するソリューションを何時間も探してきました。

テキストの行を削除するためのオプションはいくつかあるようですが、テキストのブロックは削除できません。以下で使用しようとしpreg_replace ("/^$start.*?$end/s", $replace, $fdata)ましたが、機能する解決策が見つかりませんでした。

誰かがすでにこれを行っていると確信しているので、どんな助けでも大歓迎です。

$start = "# Copyright 2000-";
$end = "Agreement.";

# This software product may only be used strictly in accordance
# with the applicable written License Agreement.
4

1 に答える 1

5

複数行モード( )が必要です/m。そうしないと、正規表現が複数行にわたってキャプチャされません。また、正規表現パラメータをでエスケープする必要がありますpreg_quote()。そうしないと、望ましくない結果が生じる可能性があります(たとえば、で$end、単一のピリオドと一致させたい場合は、正規表現のメタ文字であるドットがあります)。

$regex = "/^" . preg_quote( $start, '/') .".*?". preg_quote( $end, '/') . "/sm";
preg_replace ( $regex, $replace, $fdata);
于 2012-08-06T15:44:44.423 に答える