【问题标题】:Remove the Duplicate Link删除重复链接
【发布时间】:2012-07-17 01:19:45
【问题描述】:

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

【问题讨论】:

    标签: php web-crawler


    【解决方案1】:

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

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

    【讨论】:

    • 哇!非常感谢 !我不知道有 array_unique 函数。伟大的 ! :)
    【解决方案2】:
    $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() 函数。

    【讨论】:

    • 哇,谢谢你的建议!我已经尝试过了,是的.. 它提供了更快的执行时间:)
    猜你喜欢
    • 1970-01-01
    • 2021-06-20
    • 2015-02-26
    • 2015-09-10
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多