如何从仅包含image src
标记的文本中提取img
?
顺便提一下,src
有时会引用双引号,有时单引号。
答案 0 :(得分:5)
我不建议使用正则表达式来解析html。相反,你可以使用php的DOMDocument()
类,即使字符串的其余部分不是真正的html,它仍然可以工作:
$html = 'Lorem ipsum<img src="test.png">dolor sit amet&[H*()';
libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($html);
$imgs = $dom->getElementsByTagName('img');
foreach($imgs as $img) {
$src = $img->getAttribute('src');
echo $src;
}
根据您的php版本,您可能还想使用:
$dom->loadHTML($a, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
答案 1 :(得分:1)
尝试
$image = '<img class="foo bar test" title="test image" src=\'http://example.com/img/image.jpg\' alt="test image" width="100" height="100" />';
$array = array();
preg_match( "/src='([^\"]*)'/i", $image, $array ) ;
print_r( $array[1] ) ;