2012-04-09 19 views
0

Ich habe ein Skript, das Bilder von einer Website (4chan) scraping ist. Sie müssen es tun, indem Sie die URL von den Anchor-Tags abrufen, nicht das Bild, sonst werden nur die Miniaturen angezeigt. Das Problem besteht darin, dass die URL für das Bild in zwei Anker-Tags angezeigt wird. Jedes Bild wird daher zweimal angezeigt.Entfernen Sie doppelte Werte aus Array - array_unique() funktioniert nicht

Ich habe versucht, sie in ein Array zu setzen und dann array_unique() anzuwenden, aber es funktioniert nicht.

Hier ist mein Code:

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; 
     } 
    } 
} 

Vielen Dank für jede Hilfe im Voraus!

Antwort

1

Sie fügen kein Array hinzu, Sie definieren $arr bei jeder Iteration neu. Versuchen Sie folgendes:

$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; 
} 
+0

gibt viele Fehler, scheinen alle aus zu ergeben: Undefined variable: arr – AviateX14

+0

-Code aktualisiert, '$ arr' ist nun an der Spitze initialisiert. – bfavaretto

+0

Dies erhöht die Anzahl der Duplikate – AviateX14

Verwandte Themen