正则表达式使用两个标记

时间:2013-03-14 17:16:43

标签: php regex html-parsing

如果我使用

将整个网页html加载到php变量
$html = file_get_contents('URL');

并使用以下方法将其内容写入文件:

$myFile = "localdownload.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $html);
fclose($fh);

我总是知道我想要的内容是介于

之间
<div id="listing"> and <div class="cleared"></div>

是否可以编写正则表达式来截断不在这两个标记之间的所有内容? 所以它只会在这些标记之间写入内容。

任何帮助都会如此之大。感谢过去帮助过我的每一个人。

1 个答案:

答案 0 :(得分:0)

您可以使用

$html = preg_replace(
    '/.*?<div id="listing">|<div class="cleared"><\/div>.*$/s', '', $html );

这将替换从字符串的开头到'<div id="listing">'的所有内容,以及从'<div class="cleared"></div>'到字符串末尾的所有内容,并使用空字符串。

使用s修饰符,以便.匹配换行符以及所有其他字符。

以上假设<div id="listing"><div class="cleared"></div>仅在字符串中出现一次。