0

我正在使用简单的 HTML DOM 来获取这样的某个元素:

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

这将回显所有图像。假设我只需要索引(相对于所有图像)编号为 3、7、14 和 > 15 的图像。有没有办法做这么复杂的事情?

4

3 回答 3

1

可能最简单的方法是将所有img标签添加到一个数组中,然后您可以从那里根据索引号提取它们。

于 2013-07-28T09:30:03.710 回答
1

find返回一个数组,所以只需使用索引

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

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

for($i=15;$i<count($imgs);$i++){
  $imgs[$i];
}
于 2013-07-28T09:31:42.137 回答
1

您可以使用$count变量和来完成此操作in_array()。在循环之前声明 count 变量,并声明所需 ID 的数组。并且在循环中,你可以使用 if 语句来检查图像 ID 是否在数组中大于 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++;    

}

希望这可以帮助!

于 2013-07-28T09:31:50.013 回答