使用PHP从文件中删除多行

时间:2012-08-06 15:42:55

标签: php

我一直在寻找一段时间来寻找使用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.

1 个答案:

答案 0 :(得分:5)

您需要multi-line mode/m),否则您的正则表达式不会跨多行捕获。此外,您应该使用preg_quote()来转义正则表达式参数,否则您可能会得到不需要的结果(例如,在$end中,它有一个点,这是一个正则表达式字符,当您希望它匹配时单期。)

$regex = "/^" . preg_quote( $start, '/') .".*?". preg_quote( $end, '/') . "/sm";
preg_replace ( $regex, $replace, $fdata);