Regular_expression($_GET[fileName]) && $SC->Regular_expression($_GET[fileType]) ){ if( file_exists('DL/'.addslashes($_GET[fileName]).'.'.addslashes($_GET[fileType]) ) ){ // class counter_Class{ public function ctr($_SERVER){ $ctr_file = "DL/ctr.dat"; //データファイル名 $lock_file = 'DL/lock.txt'; //ロックファイル名 $digit[ctr_total] = 5; //アクセス合計の桁数 $digit[ctr_day] = 3; //今日のアクセス数の桁数 $digit[ctr_yesterday] = 3; //昨日のアクセス数の桁数 $adjustment = true; //桁数を0で調整する? はい ニア true : いいえ ニア false $reload = true; //リロード禁止する? はい ニア true : いいえ ニア false //ファイルロック $loclf = @fopen($lock_file,"r+"); @flock($loclf,LOCK_EX); //データファイル読込、展開 $fp = @fopen($ctr_file,"r+"); $ctr_data = @fgets($fp); $ctr=array(); list($ctr[total],$ctr[day],$ctr[yesterday],$last_access_day,$last_access_ip) = explode(",",$ctr_data); //日付取得 $now = date(Ymd); //IP取得 $ip = $_SERVER['REMOTE_ADDR']; //IPが重複していない、またはリロードを禁止しない場合はカウント処理実行 if( $ip != $last_access_ip || (! $reload) ){ //アクセス合計 +1 $ctr[total]++; //IP記録 $last_access_ip = $ip; //このアクセスは今日初めて? if($now > $last_access_day ){ $last_access_day = $now; $ctr[yesterday] = $ctr[day]; $ctr[day]=1; }else{ $ctr[day]++; } //開けたら閉じる @fclose($fp); //上書きモードで開き、書込実行 $fp = @fopen($ctr_file,"w+"); @fwrite($fp,$ctr[total].",".$ctr[day].",".$ctr[yesterday].",".$last_access_day.",".$ip); } @fclose($fp); //ファイルロック解除 @flock($loclf,LOCK_UN); @fclose($loclf); if($adjustment){ $ctr[total] = sprintf("%0{$digit[ctr_total]}"."d",$ctr[total]); $ctr[day] = sprintf("%0{$digit[ctr_day]}"."d",$ctr[day]); $ctr[yesterday] = sprintf("%0{$digit[ctr_yesterday]}"."d",$ctr[yesterday]); } return $ctr; } } $access_counter = new counter_Class(); $i = $access_counter->ctr($_SERVER); // // 直接zipファイルをDLさせるためにヘッダーを書き出す header( "Content-Type: application/octet-stream" ); header( "Content-disposition: attachment; filename={$_GET[fileName]}.zip" ); // require_once('sub/zip.lib.php'); // 圧縮するファイル $filename1 = 'DL/'.addslashes($_GET[fileName]).'.'.addslashes($_GET[fileType]); //$filename2 = 're1.html'; // クラス作成 $zipfile = new zipfile(); // ファイルをバイナリで読んで、変数にセット $handle = fopen($filename1, "rb"); $contents = fread($handle, filesize($filename1)); fclose($handle); // 追加 $zipfile -> addFile( $contents, $filename1 ); /* // ファイルをバイナリで読んで、変数にセット $handle = fopen($filename2, "rb"); $contents = fread($handle, filesize($filename2)); fclose($handle); // 追加 $zipfile -> addFile( $contents, $filename2 ); */ // zip をバイナリで変数にセット $zip_buffer = $zipfile->file(); /*/ ファイルに変数から書き込む $handle = fopen("test.zip", "wb"); fwrite($handle, $zip_buffer ); fclose($handle); */ // 処理終了 print $zip_buffer; }else{echo 'File is Nothing';} }else{echo '404';} ?>