删除重复链接

时间:2012-07-17 01:19:45

标签: php web-crawler

我想抓取pdf链接。但是我得到的一些链接是双倍的。如何删除其中一个双链接?谢谢:))

<?php
<include 'simple_html_dom.php';
$url = 'http://scholar.google.com/scholar?hl=en&q=data+mining&btnG=&as_sdt=1%2C5&as_sdtp=';
$html = file_get_html($url) or die ('invalid url');
foreach($html->find('a') as $e) {
    $link= $e->href;
    if (preg_match('/\.pdf$/i', $link)) {
       print_r($link);
    }
}
?>

2 个答案:

答案 0 :(得分:5)

将链接放在数组中,然后使用array_unique()

foreach($html->find('a') as $e) {
    $link= $e->href;
    if (preg_match('/\.pdf$/i', $link)) {
       $links[] = $link;
    }
}
$links = array_unique( $links );

答案 1 :(得分:1)

$url = 'http://scholar.google.com/scholar?hl=en&q=data+mining&btnG=&as_sdt=1%2C5&as_sdtp=';
$html = file_get_html($url) or die ('invalid url');
$arr = array();
foreach($html->find('a') as $e) {
    $link= $e->href;
    if(strtolower(substr($link, strrpos($link, '.'))) === '.pdf')
       $arr[] = $link;
}
array_unique($arr);
print_r($arr);
  1. 我建议使用字符串函数来获取扩展名 - 它更轻。
  2. 您可以将链接存储在数组中,然后使用array_unique()函数。