如何使用file_get_content()
,preg_match
或其他任何内容将所有图像src提取到数组中?
答案 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)
使用phpQuery或SimpleHTMLparser(更详细)更可靠,更简单。但是对于基本的提取目的,只是搜索src =属性,这是过度的,正则表达式 实际上足够:
preg_match_all('/<img[^>]+src\s*=[\'\"\s]?([^<\'\"]+)/ims', file_get_contents($url), $uu);
请注意,它会产生相对路径名,而不是URL。所以需要后处理,而phpQuery IIRC有一个标准化的快捷方式。