php ZipArchive クラスの使用例、phpziparchive の例
この記事の例は、PHP の ZipArchive クラスの使用法を説明しており、参考のために全員と共有されています。詳細は以下の通りです
一般的に言えば、php5.2からZipArchiveクラスのサポートが始まり、php4ではzip関数のみ使用可能となります。実際、zip クラスが正式に実装される前に、一部の専門家がすでに zip ファイルをパッケージ化および解凍するためのメソッドを提供していました。現在、php には ZipArchive クラスが含まれており、もちろんこれが最初に使用されます。このクラスを使うとzipファイルの作成や解凍ができるほか、zipパッケージの中身を直接読み込むこともできるのでとても便利です。ここでは主に読み込みと解凍の手順をまとめます。
指定されたディレクトリにパッケージを抽出します:
コードをコピーします コードは次のとおりです:
$zip = 新しい ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->extractTo('/my/destination/dir/');
$zip->close();
「ok」をエコーします;
} その他 {
エコー「失敗しました」;
}
?>
パッケージ内のファイルの内容を読み取るだけの場合は、ファイル名またはファイルのインデックス値が必要です。
コードをコピーします コードは次のとおりです:
$zip = 新しい ZipArchive;
if ($zip->open('test.zip') === TRUE) {
echo $zip->getFromName('example.php');
$zip->close();
}
?>
example.php が特定のディレクトリにある場合、コンテンツを取得するときにパスを追加する必要があります。
ファイル名だけがわかっていて、ファイルの特定のパスがわからない場合は、指定したファイル名のインデックスを検索し、そのインデックスを頼りにコンテンツを取得できます。
コードをコピーします コードは次のとおりです:
$zip = 新しい ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$index=$zip->locateName('example.php', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR);
$contents = $zip->getFromIndex($index);
}
?>
上記で取得したインデックスは、locateName メソッドに依存しています。圧縮パッケージ内の複数のパスに同じ名前のファイルがある場合、すべてのファイルのインデックスを取得したい場合は、最初のファイルのインデックスのみを返すことができるようです。同じ名前の場合、愚かな方法を使用してループ内で検索することしかできません。
コードをコピーします コードは次のとおりです:
$zip = 新しい ZipArchive;
if ($zip->open('test.zip') === TRUE) {
for($i = 0; $i <$zip->numFiles; $i++)
{
If(substr_count($zip->getNameIndex($i), 'example.php')>0){
$contents = $zip->getFromIndex($i);
}
}
}
?>
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
もちろんできます
次のコードは、/tmp ディレクトリに aaaa.zip ファイルを生成するものです
$zip = new ZipArchive(); $zip->open('/tmp/aaaa.zip', ZipArchive::CREATE ); $zip->addEmptyDir('dir1'); $zip->close();
PHP の使用可能なメモリの制限が原因である可能性があります。php.ini の
memory_limit
オプションをより大きな値に設定して試してください。
例:
ini_set('memory_limit', '32M');
追加:
32M が足りない場合は、さらに追加します。
php.iniファイルで設定してみてください。
http://www.bkjia.com/PHPjc/897011.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/897011.html技術記事 php の ZipArchive クラスの使用例、phpziparchive の例 この記事では、php の ZipArchive クラスの使用例を説明し、参考として共有します。詳細は以下の通りです: 大体、php5.2のサポートが始まります...