양식:http://www.uphtm.com/php/253.html
이것은 실제로 우리 개발자들이 흔히 사용하는 것입니다. 다른 웹사이트에서 친숙한 링크를 캡처하는 프로젝트를 할 때 사용했습니다. 오늘 친구가 지정된 URL 페이지의 모든 링크 기능을 가져오기 위해 PHP 함수를 컴파일하는 것을 보았습니다. . 정리했습니다. 일어나서 살펴보세요.
다음 코드는 지정된 URL 페이지의 모든 링크, 즉 모든 태그의 href 속성을 얻을 수 있습니다.
- // 링크의 HTML 코드 가져오기
- $html = file_get_contents('http://www.111cn.net');
- $dom = 새 DOMDocument();
- @$dom->loadHTML($html);
- $xpath = 새 DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i < $hrefs->length; $i++) {
- $href = $hrefs->항목($i);
- $url = $href->getAttribute('href');
- echo $url.'
';
- }
이 코드는 모든 태그의 href 속성을 가져오지만 href 속성 값이 반드시 링크일 필요는 없습니다. 이를 필터링하고 http:
로 시작하는 링크 주소만 유지할 수 있습니다.
- // 링크의 HTML 코드 가져오기
- $html = file_get_contents('http://www.111cn.net');
- $dom = 새 DOMDocument();
- @$dom->loadHTML($html);
- $xpath = 새 DOMXPath($dom);
- $hrefs = $xpath->evaluate('/html/body//a');
- for ($i = 0; $i < $hrefs->length; $i++) {
- $href = $hrefs->항목($i);
- $url = $href->getAttribute('href');
-
- // http로 시작하는 링크 유지
- if(substr($url, 0, 4) == 'http')
- echo $url.'
';
- }
fopen() 함수는 지정된 웹페이지의 모든 링크를 읽고 개수를 계산합니다. 이 코드는 웹페이지의 내용을 수집해야 하는 일부 장소에서 사용하기에 적합합니다. 홈 페이지는 Baidu 홈 페이지의 링크를 찾기 위한 예로 사용됩니다. 모든 링크 주소와 코드는 테스트되었으며 완벽하게 사용할 수 있습니다.
- if(empty($url))$url = "http://www.baidu.com/";//링크를 수집해야 하는 URL 주소
- $site=substr($url,0,strpos($url,"/",8));
- $base=substr($url,0,strrpos($url,"/")+1);//파일이 위치한 디렉토리
- $fp = fopen($url, "r" );//URL 주소 페이지 열기
- while(!feof($fp))$contents.=fread($fp,1024);
- $pattern="|href=['"]?([^ '"]+)['" ]|U";
- preg_match_all($pattern,$contents, $regArr, PREG_SET_ORDER);//정규 표현식을 사용하여 모든 href와 일치=
- for($i=0;$i
- if(!eregi("://",$regArr[$i][1]))//상대 경로인지, 즉 아직 //가 있는지 확인
- if(substr($regArr[$i][1],0,1)=="/")//사이트의 루트 디렉터리인가요
- echo "link".($i+1).":".$site.$regArr[$i][1]."
";//루트 디렉터리
- 그밖에
- echo "link".($i+1).":".$base.$regArr[$i][1]."
";//현재 디렉터리
- 그밖에
- echo "link".($i+1).":".$regArr[$i][1]."
";//상대 경로
- }
- fclose($fp);
- ?>
양식:http://www.uphtm.com/php/253.html
위 내용은 PHP 튜토리얼에 관심이 있는 친구들에게 내용을 포함하여 지정된 URL 페이지의 모든 링크를 가져오는 방법을 소개합니다.