簡単なPHPのzipファイルをダウンロードパッケージのための数行のコード

<?phpの

//ファイルのリストを取得します。

関数LIST_DIR($ DIR){

   $結果=配列();

   {(is_dir($ DIR))の場合

   $ FILE_DIR = SCANDIR($ DIR);

   foreachの($ファイルと$ FILE_DIR){

    {($ファイル== '' || $ファイル== '..')であれば

    持続する;

    }

    ELSEIF(is_dir($ DIR。$ファイル)){

    $結果= array_merge($、list_dir($ DIR $ファイルを結果 '/')。。);

    }

    他の{

    (。$結果、$ DIR $ファイル)array_push。

    }

   }

   }

   $結果を返します。

  }

 

//リストを取得します。

$データリスト= list_dir( '../');

$ファイル名=「./bak.zip」; //最後に生成されたファイル名(パスを含みます) 

もし(!のfile_exists($ファイル名)){ 

//再生成ファイル 

  $ジップ=新しいZIPARCHIVE(); //このクラスを使用し、開いたzlibにLinuxの必要性は、窓がphp_zip.dll前にコメント解除します 

  もし($ zip->オープン($ファイル名、ZIPARCHIVE :: CREATE)!== TRUE){ 

    終了(「開いているファイルにできない、またはファイルの作成に失敗しました」);

  } 

  foreachの($ valのように$データリスト){ 

    もし(file_exists($ valの)){ 

      $ Zip-> ADDFILE($ valを、ベース名($ valの)); // 2番目のパラメータは、ファイルが繰り返されることができるならば、あなたはノートを取る必要があり、圧縮上のパッケージのファイル名です 

    } 

  } 

  $ Zip->近い(); //近いです 

もし(!のfile_exists($ファイル名)){ 

  終了(「ファイルが見つかりませんでした」); //もまだ失敗することがあり作成します。。 

ヘッダ( "のCache-Control:パブリック")。

ヘッダ(「コンテンツ記述:ファイル転送」);

ヘッダ( 'コンテンツ処分:添付ファイル;ファイル名='。ベース名($ファイル名)); //文件名 

ヘッダ( "コンテンツタイプ:アプリケーション/ ZIP"); // ZIP形式 

ヘッダ(「コンテンツ転送エンコード:バイナリ」); //バイナリファイルであるブラウザを、教えて 

ヘッダ( 'のContent-Length:'。ファイルサイズ($ファイル名)); //は、ブラウザに指示、ファイルサイズ 

@readfile($ファイル名);

?>

PHP ZIPARCHIVEを簡単に圧縮と解凍ZIPファイルは、言っているのではないすでに上、ここでは具体的な方法をオンにしているPHP ZIP拡張機能を使用する前に、最初に確認することができ、PHP拡張クラスにバンドルされている、異なるプラットフォームは、オンライン増幅方法のPHPを開きます疑問にシェアを喜ばせるならば、持っています。

ここでZIPARCHIVE PHPきちんと使用することは、圧縮と参照用の圧縮ファイルの解凍の一般的な例であること。

まず、解凍したzip ファイルを

$ジップ=新しいZIPARCHIVE; //新しいオブジェクトを作成しZIPARCHIVE

 もし($ zip->オープン( 'test.zip')=== TRUE){

 $ Zip-> extractTo(「画像」); //現在のフォルダパスに解凍画像に仮定

 $ Zip->近い(); //近いzipファイルの扱い

}

第二に、に圧縮ファイルのzip ファイル

$ジップ=新しいZIPARCHIVE。

もし($ zip->オープン( 'test.zip'、ZIPARCHIVE :: OVERWRITE)=== TRUE){

 $ Zip-> ADDFILE( 'image.txt'); //ファイル名が仮定されて追加image.txt、現在のパス

 $ zip->近いです();

}

第三に、に追加したファイルの追加コンテンツのzip ファイル

$ジップ=新しいZIPARCHIVE。

$ RES = $ zip->( 'test.zip' をZIPARCHIVE :: CREATE)を開きます。

{($ RES === TRUE)の場合

 $ zip-> addFromString( 'test.txtの'、 'ファイルの内容をここに');

 $ zip->近いです();

 エコー「OK」。

}他{

 エコー「失敗しました」;

}

第四に、にパッケージ化フォルダのzip ファイル

関数addFileToZip($パス、$ ZIP){

 $ハンドラ=のopendir($パス); // $パスで指定された現在のフォルダを開きます。

 しばらく(($ファイル名=のreaddir($ハンドラ))!== false)の{

 {//ファイルフォルダは '' という名前と(!= ".."!= "" && $ファイル名$ファイル名)であれば '..' DOはないそれらが動作

  もし(is_dir($パス。 "/"。$ファイル名)){//オブジェクトが読まれる場合は、フォルダを再帰的に

  addFileToZip($パス "/" $ファイル名、$ジップ。。);

  オブジェクトジップ上}エルス{//ファイル

  $ zip-> ADDFILE($パス "/" $ファイル名。。);

  }

 }

 }

 @closedir($パス);

}

$ジップ=新しいZIPARCHIVE();

もし($ zip->オープン( 'images.zip'、ZIPARCHIVE :: OVERWRITE)=== TRUE){

 addFileToZip(「画像/」、$ジッパー); //メソッドを呼び出して、操作のためのルートディレクトリをパッケージ化、および通過のための方法にZIPARCHIVEオブジェクトべき

 $ Zip->近い(); //近いzipファイルの扱い

}

おすすめ

転載: www.cnblogs.com/iwyou/p/12065858.html