ホームページ >バックエンド開発 >PHPチュートリアル >phpのZipArchiveクラスの使用例、phpziparchiveexamples_PHPチュートリアル

phpのZipArchiveクラスの使用例、phpziparchiveexamples_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:16:371321ブラウズ

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 プログラミング設計に役立つことを願っています。

php ZipArchive は指定されたディレクトリに圧縮パッケージを生成できますか?

もちろんできます


次のコードは、/tmp ディレクトリに aaaa.zip ファイルを生成するものです
$zip = new ZipArchive(); $zip->open('/tmp/aaaa.zip', ZipArchive::CREATE ); $zip->addEmptyDir('dir1'); $zip->close();

PHPのzipArchive()の場合

PHP の使用可能なメモリの制限が原因である可能性があります。php.ini の
memory_limit
オプションをより大きな値に設定して試してください。

例:

ini_set('memory_limit', '32M');

追加:
32M が足りない場合は、さらに追加します。
php.iniファイルで設定してみてください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/897011.html技術記事 php の ZipArchive クラスの使用例、phpziparchive の例 この記事では、php の ZipArchive クラスの使用例を説明し、参考として共有します。詳細は以下の通りです: 大体、php5.2のサポートが始まります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。