Youss
Youss

Reputation: 4232

Element length and index with simple html dom

I'm using Simple HTML DOM to get a certain element like this:

foreach($html->find('img') as $d) { 
 echo $d->outertext;
}

This will echo all the images. Let's say for example I only need image with index (meaning relative to all images) number 3,7,14 and > 15. Is there a way to do something this complicated?

Upvotes: 0

Views: 2483

Answers (3)

Amal
Amal

Reputation: 76646

You can accomplish this with a $count variable and in_array(). Declare the count variable before the loop, and declare the array of the required IDs. And in the loop, you can use an if statement to check if the image ID is in the array or greater than 15.

$count = 1;
$ids = array(3, 7, 14);

foreach($html->find('img') as $d) { 
if(in_array($count, $ids) || $count > 15){

 echo $d->outertext;
 $count++;    

}

Hope this helps!

Upvotes: 1

Patrick Evans
Patrick Evans

Reputation: 42746

find returns an array so just use the index

$imgs =$html->find('img');

$imgs[3];
$imgs[7];
$imgs[14];

for($i=15;$i<count($imgs);$i++){
  $imgs[$i];
}

Upvotes: 1

ygesher
ygesher

Reputation: 1161

Probably the simplest way is to add all the img tags to an array, and from there you can extract them according to index number.

Upvotes: 1

Related Questions