【发布时间】:2011-04-07 12:26:23
【问题描述】:
我想要一个 php 脚本来获取 HTML 代码中的所有图像并将其列出。 任何人都可以帮我这样做,或者我应该如何进行一些想法? 我是新来的,所以任何帮助将不胜感激。
【问题讨论】:
-
考虑到答案,甚至有人给了 3 票,最好接受您最喜欢的答案,以便人们得到适当的认可。
标签: php
我想要一个 php 脚本来获取 HTML 代码中的所有图像并将其列出。 任何人都可以帮我这样做,或者我应该如何进行一些想法? 我是新来的,所以任何帮助将不胜感激。
【问题讨论】:
标签: php
您可以使用DOMDocument 或simplehtmldom。这是一个 DOMDocument 示例:
$dom = new DOMDocument();
$dom->loadHtml($yourHtmlAsAString);
foreach ($dom->getElementsByTagName('img') as $img) {
echo $img->getAttribute('src').'<br>'; // or whatever you need
}
【讨论】:
通过many HTML parser libraries 之一运行HTML 代码,然后查询所有img 元素的src 属性值。
【讨论】:
尝试在 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";
}
应该为您提供所需的基础知识。
*免责声明,示例是根据我从中抽出的评论略微修改的,但这是非常直接的内容。
【讨论】:
如果你想从一个实际的 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;
【讨论】:
我建议查看DOM。它应该提供您正在寻找的功能。
【讨论】:
我认为最简单的方法之一是通过正则表达式。如前所述,通过 DOMDocument 对象加载 HTML,但创建一个表达式 - 显然 PHP 有 3 种不同的方法来执行此操作。我还写了一个关于正则表达式的short post,它可以帮助你在这个主题上站稳脚跟。它们在这种情况下非常有用。
【讨论】: