从 PHP 中的字符串中获取 html 图像标记


Get html image tag from string in PHP

我正在尝试从给定的字符串中获取HTML图像标签网址。我正在使用 PHP 方法preg_match("/src='"([^'s'"]+)/",$body,$matches);在大多数情况下都运行良好,但是我无法从以下链接获取 url...

src=http://4.bp.blogspot.com/-LqmY1y4DCO0/T39EoCmzfoI/AAAAAAAACp0/TRKmdPmhJ90/s640/how+to+make+cheesecake+carrots,+orange+cheesecake+recipe,+recipes,+Easter+dessert+.jpg

谁能解释一下这种失败的原因。

您的测试字符串在 src= 之后没有 " 字符,并且您的正则表达式需要它,因此它不匹配。如果你想测试你的正则表达式,我建议你使用程序RegexCoach,它突出显示匹配并允许你逐步完成匹配过程,以便你可以很容易地看到它失败的地方。

用 DOM 加载?

$dom = new DOMDocument();
$dom->loadHTML($var);
$xpath = new DOMXPath($dom);
$img = $xpath->query('//img[@src]');
if(count($img)>0)
{
    foreach($img as $i)
        echo $i->getAttribute('src');
}

试试这个正则表达式:)

preg_match_all("/src=([^''s]+)/", $body, $m);
print_r($a);