我一直在寻找一个小时的解决方案,使用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.
Run Code Online (Sandbox Code Playgroud)
您需要多行模式(/m),否则您的正则表达式将无法捕获多行.此外,你应该使用转义你的正则表达式参数preg_quote(),否则你可能会得到不希望的结果(例如$end,当你希望它匹配一个句点时,它有一个点,这是一个正则表符元字符.)
$regex = "/^" . preg_quote( $start, '/') .".*?". preg_quote( $end, '/') . "/sm";
preg_replace ( $regex, $replace, $fdata);
Run Code Online (Sandbox Code Playgroud)