0

ウェブサイト(4chan)から画像をスクレイピングするスクリプトがあります。画像ではなくアンカータグからURLを取得する必要があります。そうしないと、サムネイルのみが取得されます。問題は、画像のURLが2つのアンカータグに表示されるため、各画像が2回表示されることです。

それらを配列に入れてからarray_unique()を適用しようとしましたが、機能しません。

これが私のコードです:

foreach($html->find('a') as $element) {
    if (strpos($element->href, "/src/")){
    $a = $element->href;    
    $ht = "<img src=\"" . $a. "\" />\n";
    $arr = array($ht);
    $arr = array_unique($arr);
    foreach($arr as &$b) {
            echo $b;
        }
    }
}

事前に助けてくれてありがとう!

4

1 に答える 1

1

配列に追加するのではなく、$arr反復ごとに再定義します。これを試して:

$arr = array();
foreach($html->find('a') as $element) {
    if (strpos($element->href, "/src/")){
        $a = $element->href;    
        $ht = "<img src=\"" . $a. "\" />\n";
        $arr[] = $ht; 
    }
}
$arr = array_unique($arr);
foreach($arr as &$b) {
    echo $b;
}
于 2012-04-09T14:37:39.530 に答える