我正在尝试从给定的字符串中获取HTML图像标记url。我使用的是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有人能解释一下失败的原因吗?
发布于 2012-04-07 18:18:42
你的测试字符串在src=后没有“字符,而你的正则表达式需要它,所以它不匹配。如果你想测试你的正则表达式,我建议你使用程序RegexCoach,它会突出显示匹配,并允许你逐步执行匹配过程,这样你就可以很容易地看到它失败的地方。
发布于 2012-04-07 18:31:01
使用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');
}发布于 2012-04-07 22:35:04
使用下面的正则表达式尝试一下:)
preg_match_all("/src=([^\\s]+)/", $body, $m);
print_r($a);https://stackoverflow.com/questions/10052184
复制相似问题