我不建议使用正则表达式来解析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;
}
Run Code Online (Sandbox Code Playgroud)
根据您的php版本,您可能还想使用:
$dom->loadHTML($a, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
Run Code Online (Sandbox Code Playgroud)