我有许多带有以下类的HTML:
<img class="lorem ipsum red" />
<img class="red" />
<img class="lorem red ipsum dolor" />
<img class="red ipsum" />
我正在使用preg_match_all
查找所有图像
preg_match_all( '/<img [^>]+>/', $html, $matches )
是否可以匹配所有具有类名img
的{{1}}标签?
我尝试了red
,但没有用
答案 0 :(得分:1)
使用正则表达式查找HTML元素(具有这种复杂性):不好的主意。使用 HTML解析器和XPath!即使在JavaScript中,您也可以利用DOM。
?php
$doc =<<<DEMO
<img class="lorem ipsum red" />
<img class="red" />
<img class="lorem red ipsum dolor" />
<img class="red ipsum" />
DEMO;
$xml = new DOMDocument();
//Or you could use for locally saved files
//@$xml->loadHTMLFile('savedfile.html');
@$xml->loadHTML($doc);
foreach($xml->getElementsByTagName('img') as $image) {
if(strstr($image->getAttribute('class'),'red')==true){
$images[] = $image->getAttribute('src');
}
}
print_r($images);
?>
这里是ref。
答案 1 :(得分:0)