PHP 開発ノート シリーズ (7) - 圧縮と解凍
?
??? 圧縮と解凍は一般的な Web アプリケーションではあまり使用されませんが、データベース バックアップ ファイルの圧縮や複数のファイルの変換など、以下の一部のアプリケーション シナリオではより一般的に使用されます。ダウンロードのために、顧客がパッケージ化してアップロードしたファイルは圧縮されてから解釈されますが、圧縮と解凍のための一般的な関数とクラスに精通している必要があります。
??? この記事「PHP 開発ノート シリーズ (7) - 圧縮と解凍」は、「PHP 開発ノート シリーズ (XAMPP+PhpEclipse+XDebug)」の第 7 回目となる記事で、Pear の使用方法を説明します。プラグイン Archive Tar は、通常のファイル圧縮および解凍操作を実行します。
??? 1. ファイル圧縮に Archive_Tar クラスを使用します
Archive_Tar クラスは、Pear フォルダーの Archive/Tar.php ファイルにあります。このクラスをファイル圧縮に使用する場合、必要なコードはほとんどありません。手順は次のとおりです: 1) このクラスをインスタンス化します。最初の構築パラメータは圧縮されたターゲット ファイル名です (gz: gzip 圧縮を使用し、bz2 は bzip2 圧縮を使用します)。圧縮せずにパッケージ化することのみを意味します。 2) Archive_Tar オブジェクトを作成した後、ファイル名データをオブジェクトの create メソッドに渡します。コードは次のとおりです:
???
file:tar.php url:http://localhost:88/archive/tar.php <?php require_once 'Archive/Tar.php'; $tarFile = 'xdebug.tar.gz'; $tar = new Archive_Tar($tarFile, 'gz'); $files = array('xdebug.ini', 'file.html'); $tar->create($files); echo 'xdebug.tar.gz exist:'.file_exists($tarFile).'<br/>'; echo 'xdebug.tar.gz mtime:'.date('Y-m-d h-i:s', filemtime($tarFile)).'<br/>'; echo 'xdebug.tar.gz :atime:'.date('Y-m-d h-i:s', fileatime($tarFile)).'<br/>'; echo 'xdebug.tar.gz size:'.filesize($tarFile).'<br/>'; ?>
?
??? 2. Archi ve_Tar クラスをファイル圧縮に使用します
? 解凍プロセスは圧縮プロセスと同様です: 1) Archive_Tar オブジェクトをインスタンス化し、ソース圧縮ファイル名を渡します。メソッド抽出 圧縮パッケージ内のファイルがリリースされるターゲット フォルダー名。コードは次のとおりです:
?
file:extract.php url:http://localhost:88/archive/extract.php <?php require_once 'Archive/Tar.php'; $targetDir = 'xdebug'; $tarFile = 'xdebug.tar.gz'; $tar = new Archive_Tar($tarFile); $tar->extract($targetDir); $dp = opendir($targetDir); while ($entry = readdir($dp)){ if(is_dir($entry)) { echo '[DIR] '.$entry. '<br/>'; }elseif (is_file($entry)) { echo '[FILE] '.$entry. '<br/>'; } } closedir($dp); ?>
?
?
??
??? 記事アドレス: http://ryan-d.iteye.com/blog/1543417