PHP_DOMを使ってページにあるZIPファイルなどをダウンロードする
なにやらPHPでHTMLの要素選択をjQueryのように扱えるライブラリがあったので、遊んでみました。
PHP_DOMを使ってページにあるZIPファイルなどをダウンロードすることができます。
<?php include_once("simple_html_dom.php"); set_time_limit(0); //対象ページ $page = "http://ZIPファイルなどがあるページを指定"; //フォルダ作成用変数 $dir = parse_url( $page ); //ページの取得 $html = file_get_html( $page ); //リファラをセットする $opts = array( 'http' => array( 'method' => "GET", 'header' => "Referer: {$page}\r\n" ) ); $context = stream_context_create($opts); //リンクの探索 foreach( $html->find('a') as $element ){ //リンクの分解 $url = $element->href; $pathinfo = pathinfo( $url ); //ダウンロード対象の選択 if( $pathinfo["extension"] == "avi" || $pathinfo["extension"] == "mp4" || $pathinfo["extension"] == "flv" || $pathinfo["extension"] == "zip" || $pathinfo["extension"] == "lzh" ){ //保存先サイトディレクトを作成する @mkdir( $dir['host'] ); //ファイル名指定 $file_name = "{$dir['host']}/{$pathinfo['basename']}"; if( !file_exists( $fine_name ) ){ //ZIPファイルのみダウンロードする $file = file_get_contents( $url , false , $context ); //ファイルを出力する file_put_contents( $file_name , $file ); } } } ?>