我正在尝试从给定的字符串中获取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);