如何使用文件获取内容将所有图像src提取到数组中

时间:2010-08-29 20:48:49

标签: php

如何使用file_get_content()preg_match或其他任何内容将所有图像src提取到数组中?

2 个答案:

答案 0 :(得分:4)

您不应该使用正则表达式来解析HTML。您应该使用DOMDocument之类的类来执行此操作。 DOMDocument具有getElementsByTagName方法,可用于从要解析的文档中检索所有 img 标记。

这是一个将回显文档中图像列表的示例:

<?php
    $document = new DOMDocument();
    $document->loadHTML(file_get_contents('yourfilehere.html'));
    $lst = $document->getElementsByTagName('img');

    for ($i=0; $i<$lst->length; $i++) {
        $image = $lst->item($i);
        echo $image->attributes->getNamedItem('src')->value, '<br />';
    }
?>

答案 1 :(得分:0)

使用phpQuerySimpleHTMLparser(更详细)更可靠,更简单。但是对于基本的提取目的,只是搜索src =属性,这是过度的,正则表达式 实际上足够

preg_match_all('/<img[^>]+src\s*=[\'\"\s]?([^<\'\"]+)/ims', file_get_contents($url), $uu);

请注意,它会产生相对路径名,而不是URL。所以需要后处理,而phpQuery IIRC有一个标准化的快捷方式。