どうやら友達がブログを始めるそうで。 グミ人(グミんちゅ)ブログ コンビニなどで売っているグミのレビューをするそうです。 最近、コラーゲンが手軽に取れるなどの理由でグミブームがきてるとかきてないとか。 長く続いてもらえたらうれしいです。 まだまともな記事が無いのが気がかりですが・・・。
ホーム > お友達
2009年7月2日木曜日
グミ人(グミんちゅ)ブログ
2009年5月29日金曜日
PHP ページ内画像一括zip圧縮DL
お友達の胡瓜メモ帳: phpでURLから画像を一括ダウンロード・改とほぼ同じですが、こちらも授業で作成したのでメモ。 これだけの作業がグッとされると気分が良いですし、まるごとダウンロードって言うのがなかなかおいしい気がします。 まぁ、取るつもりの無かったものまで付加されますが。 作成するにあたっての参考ページは以下です。 PHP で zip 圧縮 ここにあるように、「phpMyAdmin」内のzip圧縮用ライブラリとダウンロードライブラリを使用しています。 こちらが現物です。 IEの場合は自動でテキストボックスまで移動されますが、他のブラウザでは広告が表示されると思います。 そのままどうぞスクロールしてみてください。 画像を一括ダウンロードしたいサイトのアドレスをそのままテキストボックスへ入れて「送信」すると、少しレスポンスは悪いですが「img[年月日_時分秒].zip」がダウンロードできます。 解凍するとサイトにある画像が全部入っているはずです。 以下はソースになりますので、見たい人だけどうぞ。 ▼続きを読む/たたむ今回は3つに分かれています。 「zip/lib.php」は説明対象外として、「view.php」「tozip.php」が本体となります。 view.php<? header( "Content-Type: text/html; Charset=SJIS" ); header( "Expires: Wed, 31 May 2000 14:59:58 GMT" ); ?> <HTML> <HEAD> <META http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <TITLE>ほるめすメモ帳inBlogger - ページ内画像一括zip圧縮PHP</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function init(){ window.scroll(0,150); } //--> </SCRIPT> </HEAD> <BODY onload='init();'> <FORM name="frm" method="GET" action="tozip.php" > <INPUT type="text" name="url" style='width:300px;' ><br> <INPUT type="submit" name="send" value="送信" > </FORM> </BODY> </HTML>tozip.php<? header( "Content-Type: text/html; Charset=SJIS" ); header( "Expires: Wed, 31 May 2000 14:59:58 GMT" ); // ライブラリを参照 require_once('zip.lib.php'); if ( $_GET['send'] != '' ) { // 配列準備 $flist = array(); // zip名作成 $zipname = date("ymd_His"); // クラス作成 $zipfile = new zipfile(); //$data_temp からファイルっぽいものを配列に入れる preg_match_all('/(?:")?(http:\/\/[^\s"]+)/', file_get_contents($_GET['url']), $matches); //重複したものを省き、名前を整える $get_array = array_unique($matches[1]); //処理制限時間を外す set_time_limit( 0 ); // 画像ファイルであるフルパスだけを配列に格納していく foreach ($get_array as $value){ if(preg_match("/(gif|jpg|png|jpeg)$/i",$value)){ array_push( $flist , $value); } } // 全画像フルパスをループ処理する for ( $i = 0; $i < count($flist); $i++){ // 画像データを展開する $handle = file_get_contents($flist[$i]); // ファイル情報として追加 $zipfile -> addFile( $handle, basename($flist[$i]) ); } // 全データを.zipファイルとして変数に代入 $zip_buffer = $zipfile->file(); header( "Content-Type: application/octet-stream" ); header( "Content-disposition: attachment; filename=img".$zipname.".zip" ); header("Content-Length: ".strlen($zip_buffer)); // 表示(実際にはzip生成) print $zip_buffer; } ?>