【问题标题】:How to exract img src using preg_match如何使用 preg_match 提取 img src
【发布时间】:2012-02-15 06:51:35
【问题描述】:

我有不同格式的 html 数组 [amp;src]=>image, anotherone [posthtml]=>image2, anothertwo [nbsp;image3

如何使用常用的preg_match()提取img和text,通过它我们可以从html中得到完美的图像src和text。如果无法使用 preg_match(),是否有另一种方法来修复它。 有知道的请回复一下。如何修复它。 我需要你的手。

【问题讨论】:

标签: php


【解决方案1】:

推荐的方式是使用DOM

$dom = new DOMDocument;
$dom->loadHTML($HTML);
$images = $dom->getElementsByTagName('img');

foreach($images as $im){
    $attrs = $imgages->attributes();
    $src = $attrs->getNamedItem('src')->nodeValue
}

使用正则表达式:

preg_match_all("/<img .*?(?=src)src=\"([^\"]+)\"/si", $html, $m); 
print_r($m);

【讨论】:

  • 感谢您的回复。但是第一个不起作用。第二个没有价值。
  • @AnkanBhadra 正则表达式已更新。 DOMDocument 现在无法识别 HTML5。
  • 虽然我很乐意支持不应使用正则表达式来解析 HTML 的论点,但我认为这是一个很好的用例,尤其是当您不控制包含目标 HTML 的网站时。网络上有无数页面包含阻止 PHP 的 DOMDocument 工作的错误——这是正确的,因为 XML 解析器在设计上应该会因错误而失败。
  • @MichaelButler 即使有错误,DOMDocument 尝试解析。当它尝试解析大部分内容时。通常它就足够了。
猜你喜欢
  • 2021-04-05
  • 2011-01-11
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多