PHP preg_match_all什么都不返回

时间:2010-02-28 20:05:55

标签: php regex preg-match

我正在尝试从HTML字符串中提取所有 img 标记。见代码

$d1     = file_get_contents("http://itcapsule.blogspot.com/feeds/posts/default?alt=rss");
preg_match_all('/<img[^>]+>/i',$d1,$result);
print_r($result);

结果是

Array ( [0] => Array ( ) )

但同样的正则表达式在在线正则表达式测试工具http://regex.larsolavtorvik.com/中给出了正确的结果。

可能是什么问题?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您正在解析的内容使用html实体进行编码 - 基本上<将替换为&lt;。首先使用html_entity_decode将数据转换为普通的html。

PS:使用HTML解析器而不是正则表达式。

答案 2 :(得分:0)

使用SimplePie XML Parser

解决了这个问题
include_once 'simplepie.inc';

$feed   = "feedurl";

$data       =   new SimplePie($feed);
$data->init();
$data->handle_content_type();

foreach ($data->get_items() as $item)
{
    $desc=$item->get_description();
    preg_match_all('/<img[^>]+>/i',$desc,$result);
    print_r($result);
}

这就是我在寻找的东西:)谢谢你们!