I wanted a php script to fetch all the images in HTML code and list it. Can anyone help me do this, or some Idea as to how I should proceed ? I am new to this, so any help would be appreciated.
Asked
Active
Viewed 2,747 times
5 Answers
8
you can use DOMDocument, or simplehtmldom. here is a DOMDocument example:
$dom = new DOMDocument();
$dom->loadHtml($yourHtmlAsAString);
foreach ($dom->getElementsByTagName('img') as $img) {
echo $img->getAttribute('src').'<br>'; // or whatever you need
}

Sergey Eremin
- 10,994
- 2
- 38
- 44
4
Run the HTML code through one of the many HTML parser libraries and then query for the src attribute value on all the img elements.
3
Tried looking at DOMDocument in PHP? http://php.net/manual/en/domdocument.getelementsbytagname.php
Good example from that page:
$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";
}
Should give you the basics you need.
*Disclaimer, example is slightly modified from the comment I yanked it from but this is pretty straight forward stuff.

CogitoErgoSum
- 2,879
- 5
- 32
- 45
2
If you want to load it from an actual php/html file...
$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;

Gary Green
- 22,045
- 6
- 49
- 75
-
Thanks a lot eveyone for the code, it works just fine. Nw I knw DomDocument can do magic :) – Aditya Sep 02 '10 at 19:52