从PHP中的字符串获取html图像标记
我正在尝试从给定字符串获取HTML图像标记url。我使用的是PHP方法从PHP中的字符串获取html图像标记,php,regex,preg-match,Php,Regex,Preg Match,我正在尝试从给定字符串获取HTML图像标记url。我使用的是PHP方法preg\u match(“/src=\”([^\s\“]+)/”,$body,$matches)这在大多数情况下都很好,但是我在从以下链接获取url时遇到了问题 src=http://4.bp.blogspot.com/-LqmY1y4DCO0/T39EoCmzfoI/AAAAAAAACp0/TRKmdPmhJ90/s640/how+to+make+cheesecake+carrots,+orange+cheesecake+
preg\u 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');
}
用这个正则表达式试试:)
这真的是一个Java问题吗?preg_match()
不是一个符合默认Java命名标准(即pregMatch()的方法);
会更正确。很抱歉意外添加了Java。感谢您的更正。用正则表达式解析HTML或HTML属性是个坏主意。您确定不能用DOM方法完成此操作吗?(在PHP中)我发现另一篇文章也提到了同样的问题,但我得到了一个错误。我不懂PHP,所以非常感谢你的帮助。很抱歉,我是一个初学者。你知道如何在Drupal的一个模块中集成它吗?很抱歉,我放了img标签,但你没有使用任何特定的标签,请参阅下一个答案。非常感谢。尽管它仍然没有拉imag我在blogger平台上尝试了两个博客。一个有效,一个无效。我想知道是不是他们的博客设置不允许提取图像?啊啊,我想是因为一些标签介于引号之间。答案是95%可以,根据我的说法,只有在名称之间有空格的图像名称没有完全显示出来。
preg_match_all("/src=([^\\s]+)/", $body, $m);
print_r($a);