preg_match div带有不需要的换行符

时间:2011-03-24 07:52:32

标签: wordpress preg-match

当谈到正则表达式时,我是一个菜鸟,而且对PHP也不是很好。

我使用此代码从其他网址复制内容:

<?php

$conts = file_get_contents('http://www.curtisjohnsonrealtyaz.com');

$pattern = '~<div.*id="home-right".*>(.*?)</div>~iUs';
preg_match($pattern, $conts, $matches);
array_shift($matches);

echo $matches[0];

?>

除了额外的换行符之外它工作得很好,并且还将锚定的图像链接替换为当前的URL。

我真的很感激一些帮助。

由于

2 个答案:

答案 0 :(得分:0)

尝试在模式中添加“m”标志,这样可以使其跨越换行符(多线模式)。

答案 1 :(得分:0)

您应该使用dom解析器来解析html,PHP Simple HTML DOM Parser是一个不错的选择。

代码:

include("simple_html_dom.php");
$html = file_get_html('http://www.curtisjohnsonrealtyaz.com');
$div = $html->getElementById("home-right")->innertext;
echo $div;

PHP简单的HTML DOM解析器意味着更少的代码和一致的结果:)