PHP Zip简介
PHP Zip是php中默认的方法之一,用于归档或压缩文件,使用的格式如.zip,.tar,.rar等,基于上述格式,数据被压缩在单一格式的文件夹中;这是一个方便的方法,用于一堆数据被连接在一起,用相同的存储区域共享,也取决于操作系统,支持归档文件扩展。相比之下,我们在PHP代码中使用它。
语法。
PHP代码中的每个方法都有不同的用途,其功能也会根据需求而变化。同样,zip是PHP中的一个内置方法;它包含一个或多个要压缩的文件。
<?php
$zip=new ZipArchive;
----some php code logics----
$zip -> close();
?>
上述代码是zip方法使用的基本语法,而ZipArchive是创建zip方法实例的默认类。使用ZipArchive类的方法,将与zip方法进行协调和执行。
Zip方法在PHP中是如何工作的?
- zip是一种压缩文件的存档方法,可以和其他格式的文件放在一起,数据使用提取选项进行加密;我们将提取数据到机器中的相同位置或自定义路径。这是一个方便的方法,可以用来保持一堆文件的连接和一起存储和检索数据。PHP zip文件功能允许脚本与zip文件一起工作;使用这些功能,相应的库将被导入到PHP脚本中。使用PHP zip扩展,支持Pho 5及以上版本。在运行PHP脚本之前,一些默认的PHP dll和ini文件必须在php安装中被启用。
- zip方法来自ziparchive类;这些调用包含了实现压缩和提取zip文件夹的默认方法。 zip_close()用于关闭PHP中的zip文件,zip_entry_close()用于关闭PHP zip文件中的特定条目。zip_entry_compressedsize()用于返回PHP zip条目的大小,其已经压缩的文件夹zip_entry_compressionmethod()将始终返回PHP zip文件的压缩方法。PHP $zip方法有一些额外的子方法,如zip_entry_filesize()将计算压缩文件的大小,并返回在PHP zip文件中已经创建的确切文件大小。同样,zip_entry_name()、open()、read()、zip_entry_open()和zip_entry_read()是一些默认的方法,用于在PHP代码中执行有关压缩概念的操作。它也可以创建一个包含多个文件的压缩文件,并总是将压缩文件发送到浏览器下载或提取文件夹。
- 一旦我们创建了ZipArchive类的实例,我们就可以使用默认的方法open(datatype filename, datatype flag)函数来打开zip文件进行crud操作。ziparchive有一些标志用于覆盖文件中已经存在的zip文件。使用create标志,ziparchive类在不存在方法的情况下创建了zip。一旦压缩文件被打开,我们可以使用addFile(datatype path, datatype filename)方法将额外的文件添加到该压缩文件中。如果zip文件已经存在于文件中,ZipArchive类将识别这些文件并从代码中删除它们。
实例
下面提到不同的例子。
例子 #1
代码
<!DOCTYPE html>
<html>
<body>
<?php
$zi = new ZipArchive();
$zippaths = 'F:\first.zip';
$fg = (file_exists($zippaths))? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE;
if($zi->open($zippaths, $fg) === true){
$zi->addFromString('first.txt', 'wWlcome To My Domain.', 'Have a Nice dayej,SHJKHJDHHBSJXNBCXJjsdkfhjndmhdkjhfdmnkjdndsjkbjdsfnbdndfbHNZBXHjhbjnhsabshjhmbsjnsm');
$zi->addFromString('first.txt', 'wWlcome To My Domain.', 'Have a Nice dayej,SHJKHJDHHBSJXNBCXJHNZBXHjhyteeeuikjwqhkjqmnk12323443bjnhsabshjhmbsjnsm');
$zi->addFromString('first.txt', 'wWlcome To My Domain.', 'Have a Nice dayej,SHJKHJDHHBSJXNBCXJHNZBXHjhbjrrreeewnhsabshjhmbsjnsm');
$zi->addFromString('first.txt', 'wWlcome To My Domain.', 'Have a Nice dayej,SHJKHJDHHBSJXNBCXJHNZBrttyyyyyXHjhbjnh5sabshjhmbsjnsm');
$zi->addFromString('first.txt', 'wWlcome To My Domain.', 'Have a Nice dayej,SHJKHJDHHBSJXNBCXJHNZBXHjhbjnhsabshjhmbsjnsm');
$zi->addFromString('first.txt', 'wWlcome To My Domain.', 'Have a Nice dayej,SHJKHJDHHBSJXNBgfghghyyytyyyyyyyyyyyyyyyyyyyyyyyyyyyuiueuiohjhiouoikjkuikjhiukCXJHN45rty6565656ZBXHjhbjnhsabshjhmbsjnsm');
$zi->addFromString('first.txt', 'wWlcome To My Domain.','Have a Nice dayej,SHJKHJDHHBSJXNBCXJHNZBXHjhbjnhsabshjhmbsjnsm');
$zi->close();
}
else{
echo "Thank you user have a nice day";
}
?>
</body>
</html>
输出
例子 #2
代码
<!DOCTYPE html>
<html>
<body>
<?php
$z1 = new ZipArchive();
$filep = 'F:\second.zip';
$f1 = (file_exists($filep))? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE;
do
{
if($z1->open($filep, $f1) === true){
$z1->addFile('second.txt', '82365o97429032bIf the directory of the zip file is not exist, then it will throw an error. If you will not set the local name, then the default name and directory of the file will be the first parameter. And if the file doesnt exist, nothing will happen and it will return a false value.So you should create first a valid directory before you open or add a zip file.');
$z1->close();
}
else{
echo "Thank you user have a nice day";
}
}
while(!is_null($z1));
?>
</body>
</html>
输出
例子 #3
代码
<!DOCTYPE html>
<html>
<body>
<?php
$zq = zip_open("F:\third.zip");
if ($zq) {
while ($zip_entry = zip_read($zq)) {
echo "<p>";
echo "Welcome To My DOmainNull is a special data type which can have only one value: NULL. A variable of data type NULL is a variable that has no value assigned to it. Tip: If a variable is created without a value, it is automatically assigned a value of NULL " . zip_entry_name($zip_entry) . "<br>";
echo "Have a Nice Day: loop will always execute the block of code once, it will then check the condition, and repeat the loop while the specified condition is true. " .zip_entry_filesize($zip_entry);
echo "</p>";
}
zip_close($zq);
}
?>
</body>
</html>
输出
结论
在php_zip文件中,该方法在服务器端脚本中被完全压缩;如果我们需要解压缩数据,它将被用于从客户端流转数据。带有扩展名的文件数据也可以不受任何干扰地传输数据。因此,它可以避免从客户端到服务器的数据损失,反之亦然。