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);
    }
}
?>
4

2 回答 2

5

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

foreach($html->find('a') as $e) {
    $link= $e->href;
    if (preg_match('/\.pdf$/i', $link)) {
       $links[] = $link;
    }
}
$links = array_unique( $links );
于 2012-07-17T01:21:29.737 回答
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()函数。
于 2012-07-17T01:30:51.640 回答