ホームページ >バックエンド開発 >PHPチュートリアル >PHP は Web ページ クラス インスタンスの再帰的クローリングを実装します_PHP チュートリアル
詳細は次のとおりです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
クラスクローラー{ プライベート $_ Depth=5; プライベート $_urls=array(); 関数 extract_links($url) { if(!$this->_started){ $this->_started=1; $curr_ Depth=0; }その他{ $curr_ Depth++; } if($curr_ Depth<$this->_ Depth) { $data=file_get_contents($url); if(preg_match_all('/((?:http|https)://(?:www.)*(?:[a-zA-Z0-9_-]{1,15}.+[a-zA- Z0-9_]{1,}){1,}(?:[a-zA-Z0-9_/.-?&:%,!;]*))/',$data,$urls12)) { foreach($urls12[0] as $k=>$v){ $check=get_headers($v,1); if(strstr($v,$url) && $check[0]=='HTTP/1.1 200 OK' && !array_search($v,$this->_urls) && $curr_ Depth<$this->_ Depth ){ $this->_urls[]=$v; $this->extract_links($v); } } } } $this->_urls を返す; } } ?> |