如何从HTML文档中获取IMG标记代码?

use*_*854 0 php html-parsing

我如何img从文本中获取代码?现在,我得到的代码和URL如果标签的样子:text text <img src = "image.gif" />,但如果代码<img src = "image.gif" target = _blank />,然后我得到的网址:"image.gif" target = _blank.

那么,如何正确找到img完整的代码和URL?

谢谢

preg_match_all('/\<img src = (.*?)\/>/', $input, $all_img);
Run Code Online (Sandbox Code Playgroud)

Gum*_*mbo 5

不要尝试使用正则表达式解析HTML; 使用HTML解析器,如PHP的DOM库或PHP Simple HTML DOM Parser(请参阅Gordon的评论以获取更多替代方案).

这是PHP Simple HTML DOM Parser的一个例子:

$html = str_get_html('…');
foreach ($html->find('img[src]') as $img) {
    echo $img->getAttribute('src');
}
Run Code Online (Sandbox Code Playgroud)

  • 建议实际使用[DOM](http://php.net/manual/en/book.dom.php)而不是String Parsing的[SimpleHtmlDom](http://simplehtmldom.sourceforge.net/)的第三方替代方案: [phpQuery](http://code.google.com/p/phpquery/),[Zend_Dom](http://framework.zend.com/manual/en/zend.dom.html),[QueryPath](http ://querypath.org/)和[FluentDom](http://www.fluentdom.org). (2认同)