ホームページ > バックエンド開発 > PHPチュートリアル > PHP 開発ノート シリーズ (7) - 圧縮と解凍

PHP 開発ノート シリーズ (7) - 圧縮と解凍

WBOY
リリース: 2016-06-13 13:25:39
オリジナル
842 人が閲覧しました

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート