在PHP中使用regex查找图像src

时间:2015-08-15 06:36:17

标签: php regex

如何从仅包含image src标记的文本中提取img? 顺便提一下,src有时会引用双引号,有时单引号。

2 个答案:

答案 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] ) ;