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 回答