【问题标题】:PHP code to traverse through a HTML file to find all the images in there?PHP 代码遍历 HTML 文件以查找其中的所有图像?
【发布时间】:2011-04-07 12:26:23
【问题描述】:

我想要一个 php 脚本来获取 HTML 代码中的所有图像并将其列出。 任何人都可以帮我这样做,或者我应该如何进行一些想法? 我是新来的,所以任何帮助将不胜感激。

【问题讨论】:

  • 考虑到答案,甚至有人给了 3 票,最好接受您最喜欢的答案,以便人们得到适当的认可。

标签: php


【解决方案1】:

您可以使用DOMDocumentsimplehtmldom。这是一个 DOMDocument 示例:

$dom = new DOMDocument();
$dom->loadHtml($yourHtmlAsAString);
foreach ($dom->getElementsByTagName('img') as $img) {
    echo $img->getAttribute('src').'<br>'; // or whatever you need
}

【讨论】:

    【解决方案2】:

    通过many HTML parser libraries 之一运行HTML 代码,然后查询所有img 元素的src 属性值。

    【讨论】:

      【解决方案3】:

      尝试在 PHP 中查看 DOMDocument? http://php.net/manual/en/domdocument.getelementsbytagname.php

      该页面的好例子:

      $dom = new DomDocument();
      $dom->prevservWhiteSpace = false;
      
      $dom->loadHTML($htmlString);
      
      $imageList = $dom->getElementsByTagName('img');
      $imageCnt  = $imageList->length;
      
      for ($idx = 0; $idx < $imageCnt; $idx++) {
          print $imageList->item($idx)->nodeValue . "\n";
      }
      

      应该为您提供所需的基础知识。

      *免责声明,示例是根据我从中抽出的评论略微修改的,但这是非常直接的内容。

      【讨论】:

        【解决方案4】:

        如果你想从一个实际的 php/html 文件中加载它...

        $dom = new DomDocument();
        
        if (!@$dom->load('img.php')) {
            echo 'url does not exist';
            return;
        }
        
        $imgs = $dom->getElementsByTagName('img');
        
        for ($buffer = ''; $i = 0, $len = $imgs->length; $i < $len; $i++)
        {
          $buffer .= 'image ' . $i . ' is: ' . $imgs->item($i)->getAttribute('src') . '<br/>';
        }
        
        echo $buffer;
        

        【讨论】:

        • 非常感谢大家提供的代码,它工作得很好。 Nw 我知道 DomDocument 可以变魔术 :)
        【解决方案5】:

        我建议查看DOM。它应该提供您正在寻找的功能。

        【讨论】:

          【解决方案6】:

          我认为最简单的方法之一是通过正则表达式。如前所述,通过 DOMDocument 对象加载 HTML,但创建一个表达式 - 显然 PHP 有 3 种不同的方法来执行此操作。我还写了一个关于正则表达式的short post,它可以帮助你在这个主题上站稳脚跟。它们在这种情况下非常有用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-18
            • 2018-03-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-05-28
            • 1970-01-01
            相关资源
            最近更新 更多