旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

怎样运用PHP建立zip压缩文件【php教程】

作者:搜搜PHP网发布时间:2019-11-26分类:PHP教程浏览:78


导读:运用压缩文件能够节约磁盘空间;且压缩文件更小,便于收集传输,效率高。本篇文章给人人引见运用PHP建立zip压缩文件的要领,愿望对人人有所协助。在PHP中有一个ZipAr...
运用压缩文件能够节约磁盘空间;且压缩文件更小,便于收集传输,效率高。本篇文章给人人引见运用PHP建立zip压缩文件的要领,愿望对人人有所协助。

在PHP中有一个ZipArchive类,能够很容易地用来建立zip文件。下面经由过程示例来引见如安在PHP中建立zip文件。【视频教程引荐:PHP教程】

建立一个新的zip文件

以下代码将建立一个新的zip文件(test_new.zip)并向个中增加一些文件。

<?php
$zip = new ZipArchive;
if ($zip->open('test_new.zip', ZipArchive::CREATE) === TRUE)
{
    // 将文件增加到zip文件
    $zip->addFile('test.txt');
    $zip->addFile('test.pdf');
 
    // 将random.txt文件增加到zip并将其重命名为newfile.txt
    $zip->addFile('random.txt', 'newfile.txt');
 
    // 将有指定文本的new.txt文件增加到zip文件中
    $zip->addFromString('new.txt', '要增加到new.txt文件中的文本');
 
    // 封闭zip文件
    $zip->close();
}
?>

代码申明:

第2行:建立ZipArchive类的对象

第3行:用于建立并翻开一个名为test_new.zip的文件,以便我们能够向个中增加文件。标志ZipArchive::CREATE指定我们要建立一个新的zip文件

第6行和第7行:用于将文件增加到zip文件中。

第10行:用于将名为random.txt的文件增加到zip文件中,并在zip文件中将其重命名为newfile.txt。

第13行:用于增加新文件new.txt,文件内容为“要增加到new.txt文件的文本”。

第16行:封闭并保留对zip文件的变动。

注重:偶然在运用文件的相对途径时可能会出现问题。假如运用途径有任何问题,那末我们也能够运用文件的绝对途径

掩盖现有的zip文件

假如要掩盖现有的zip文件,我们能够运用类似于以下的代码。该标志ZipArchive::OVERWRITE指定掩盖现有的zip文件。

<?php
$zip = new ZipArchive;
if ($zip->open('test_overwrite.zip', ZipArchive::OVERWRITE) === TRUE)
{
    // 将文件增加到zip文件
    $zip->addFile('test.txt');
    $zip->addFile('test.pdf');
 
    // 封闭zip文件
    $zip->close();
}
?>

代码申明

此代码将建立一个文件test_overwrite.zip,假如该文件已存在,文件将被此新文件掩盖。

建立一个新的zip文件并在指定文件夹中增加文件

<?php
$zip = new ZipArchive;
if ($zip->open('test_folder.zip', ZipArchive::CREATE) === TRUE)
{
    // 将文件增加到zip文件中的demo_folder文件夹内
    $zip->addFile('text.txt', 'demo_folder/test.txt');
    $zip->addFile('test.pdf', 'demo_folder/test.pdf');
 
    // 将random.txt文件增加到zip文件中的demo_folder文件夹内,并重命名为newfile.txt
    $zip->addFile('random.txt', 'demo_folder/newfile.txt');
 
    //  将有指定内容的new.txt增加到zip文件中的demo_folder文件夹
    $zip->addFromString('demo_folder/new.txt', '要增加到new.txt文件中的文本');
 
    // 封闭zip文件
    $zip->close();
}
?>

代码申明

上面的代码会将zip文件中的差别文件增加到demo_folder文件夹中

addfile函数的第二个参数可用于将文件存储在新文件夹中

addFromString函数中的第一个参数可用于将文件存储在新文件夹中

建立一个新的zip文件并将文件增加到差别的文件夹中

<?php
$zip = new ZipArchive;
if ($zip->open('test_folder_change.zip', ZipArchive::CREATE) === TRUE)
{
    // 将文件增加到zip文件
    $zip->addFile('text.txt', 'demo_folder/test.txt');
    $zip->addFile('test.pdf', 'demo_folder1/test.pdf');
 
    // 封闭zip文件
    $zip->close();
}
?>

代码申明

我们将zip文件中的test.txt文件存储到demo_folder文件夹中,将test.pdf文件存储到demo_folder1文件夹中

建立一个zip文件,个中包括一个目次中的一切文件

<?php
$zip = new ZipArchive;
if ($zip->open('test_dir.zip', ZipArchive::OVERWRITE) === TRUE)
{
    if ($handle = opendir('demo_folder'))
    {
        // 增加目次中的一切文件
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != ".." && !is_dir('demo_folder/' . $entry))
            {
                $zip->addFile('demo_folder/' . $entry);
            }
        }
        closedir($handle);
    }
 
    $zip->close();
}
?>

代码申明

第5-16行:翻开一个目次,并建立一个包括该目次中一切文件的zip文件

第5行:翻开目次

第8行:猎取目次中每一个文件的称号

第10行:跳过“.”和“..”以及任何其他目次

第12行:将文件增加到zip文件中

第15行:封闭目次

第18行:封闭zip文件

建立一个zip文件,个中包括多个目次的一切文件

以下代码将这些目次中的差别文件夹和文件增加到zip文件中

<?php
$zip = new ZipArchive;
if ($zip->open('test_files_dirs.zip', ZipArchive::OVERWRITE) === TRUE)
{
    // 增加 directory1
    if ($handle = opendir('demo_folder/directory1/'))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile('demo_folder/directory1/' . $entry);
            }
        }
        closedir($handle);
    }
 
    // 增加 directory2
    if ($handle = opendir('demo_folder/directory2/'))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile('demo_folder/directory2/' . $entry);
            }
        }
        closedir($handle);
    }
 
    // 增加 directory3
    if ($handle = opendir('demo_folder/directory3/'))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile('demo_folder/directory3/' . $entry);
            }
        }
        closedir($handle);
    }
    $zip->close();
}
?>

代码申明

第6-42行:将目次directory1,directory2和directory3中的一切文件增加到zip文件中的响应目次中。

以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!

以上就是怎样运用PHP建立zip压缩文件的细致内容,更多请关注ki4网别的相干文章!

标签:PHPzip压缩文件