2012-07-17 73 views
2

我想抓取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); 
    } 
} 
?> 

回答

5

把链接在一个数组,然后使用array_unique()

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

哇!非常感谢你 !我不知道有array_unique函数。太好了! :) – bruine 2012-07-17 01:25:31

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()函数。
+0

哇,谢谢你的建议!我试过了,是的..它给予更快的执行时间:) – bruine 2012-07-17 01:43:45