2012-07-17 5 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

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

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. 나는 확장을 얻기 위해 문자열 기능을 사용하는 것이 좋습니다 것()를 사용하여 다음 array_unique을 배열에 링크를 넣어 당신을 :) 감사 - 그것의 거룻배.
  2. 링크를 배열에 저장 한 다음 array_unique() 기능을 사용할 수 있습니다.
+0

와우, 조언 주셔서 감사합니다! 나는 그것을 시도하고 예 .. 그것은 더 빠른 실행 시간을 준다 :) – bruine