PHP zip 扩展
-
在 Ubuntu 中安装
ZIP
扩展 -
在 PHP 中使用
ZipArchive()
类创建 Zip 文件 -
在 PHP 中使用
ZipArchive()
类创建Zip
文件 -
如何使用 PHP
Zip
扩展来获取ZIP
的所有成员文件的信息
Zip
扩展是文件处理中最重要的项目之一。如果你想压缩文件或通过一个文件移动多个文件,则需要 ZIP
。
我们需要安装 libzip
来执行涉及其他平台的 ZIP
扩展的操作。
在 Ubuntu 中安装 ZIP
扩展
ZIP
已经包含在 windows PHP 中。我们将尝试为 Ubuntu 安装这个库。
在 Ubuntu
中运行以下命令以安装 libzip
库。
$ sudo apt-get update
$ sudo apt-get install -y
$ sudo apt-get install libzip-dev
输出:
Setting up libzip-dev:amd64 (1.7.3-1+ubuntu20.04.1+deb.sury.org+2) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
下一步是为 ZIP
安装 PHP 扩展。
$ sudo apt install php7.4-zip
成功安装后,你可以在 PHP 中使用它。
在 PHP 中使用 ZipArchive()
类创建 Zip 文件
ZipArchive()
是用于在 PHP 中执行 ZIP 操作的类。使用 ZipArchive()
类,创建一个 Zip
文件。
<?php
$create_zip = new ZipArchive();
$file_name = "./New.zip";
if ($create_zip->open($file_name, ZipArchive::CREATE)!==TRUE) {
exit("cannot open the zip file <$file_name>\n");
}
$current_dir=getcwd();
//Create files to add to the zip
$create_zip->addFromString("file1 ". time().".txt" , "#1 This is This is the test file number one.\n");
$create_zip->addFromString("file2 ". time().".txt", "#2 This is This is the test file number one.\n");
//add files to the zip
$create_zip->addFile($current_dir . "/too.php","/testfromfile.php");
echo "Number of files added: " . $create_zip->numFiles;
echo "<br>";
echo "Failed to add:" . $create_zip->status ;
$create_zip->close();
?>
上面的代码创建了两个包含一些内容的文本文件,并将它们添加到一个 zip 文件中。
输出:
在 PHP 中使用 ZipArchive()
类创建 Zip
文件
让我们使用 PHP 的 ZipArchive()
类提取在第一个代码中创建的 zip 文件。
<?php
$extract_zip = new ZipArchive;
$open_zip = $extract_zip->open('New.zip');
if ($open_zip === TRUE) {
$extract_to = getcwd();
$extract_zip->extractTo($extract_to); //extract to the current working directory.
echo "Number of Files to be Extracted:" . $extract_zip->numFiles . "<br>";
$extract_zip->close();
echo 'Files Successfully Extracted!';
}
else {
echo 'Cannot Extract!';
}
?>
上面的代码将提取在第一个示例中创建的 New.zip
文件。
输出:
如何使用 PHP Zip
扩展来获取 ZIP
的所有成员文件的信息
PHP ZIP
扩展可以获取 ZIP
内所有文件的信息。
<?php
$zip_file = zip_open("New.zip");
if ($zip_file) {
while ($zip_members = zip_read($zip_file)) {
echo "Name of the file: " . zip_entry_name($zip_members) . "<br>";
echo "Original Size of the File: " . zip_entry_filesize($zip_members) . "<br>";
echo "Compressed Size of the File: " . zip_entry_compressedsize($zip_members) . "<br>";
echo "Method of Compression: " . zip_entry_compressionmethod($zip_members) . "<br>";
if (zip_entry_open($zip_file, $zip_members, "r")) {
echo "Content of the file:<br>";
$buf = zip_entry_read($zip_members, zip_entry_filesize($zip_members));
echo "$buf <br>";
zip_entry_close($zip_members);
}
echo "<br>";
}
zip_close($zip_file);
}
?>
上面的代码使用内置的 ZIP
函数来获取 ZIP
内的文件信息。
输出:
Name of the file: file1 1644842283.txt
Original Size of the File: 45
Compressed Size of the File: 39
Method of Compression: deflated
Content of the file:
#1 This is test file number one.
Name of the file: file2 1644842283.txt
Original Size of the File: 45
Compressed Size of the File: 39
Method of Compression: deflated
Content of the file:
#2 This is test file number two.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook