0

Simple 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 に答える