2012-04-09 145 views
0

我有一个脚本,它是从网站(4chan)刮取图像。它必须通过获取来自锚标签而不是图像的url来完成,否则它只会得到缩略图。问题是图像的URL出现在两个锚标签中,因此每个图像都会出现两次。删除array-array_unique()中的重复值不起作用

我试过把它们放入一个数组,然后应用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; 
     } 
    } 
} 

感谢您的帮助提前!

回答

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

给出了很多的错误,似乎都从词干:未定义的变量:ARR – AviateX14 2012-04-09 14:41:13

+0

代码更新,'$ arr'现在初始化在顶部。 – bfavaretto 2012-04-09 14:42:41

+0

这增加了重复的数量 – AviateX14 2012-04-09 14:45:27