2

PDFリンクをクロールしたいです。しかし、私が得るいくつかのリンクは二重です。ダブルリンクの1つを削除するにはどうすればよいですか?ありがとうございました :)

<?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 に答える