开发者

PHP code to traverse through a HTML file to find all the images in there?

开发者 https://www.devze.com 2023-01-14 11:56 出处:网络
I wanted a php script to fetch all the images in HTML code and list it. Can anyone help me do this, or some I开发者_StackOverflowdea as to how I should proceed ?

I wanted a php script to fetch all the images in HTML code and list it. Can anyone help me do this, or some I开发者_StackOverflowdea as to how I should proceed ? I am new to this, so any help would be appreciated.


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
}


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.


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.


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;


I would suggest looking into the DOM. It should provide the functionality you are looking for.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号