How to create a zip file using PHP

前端 未结 6 1552
难免孤独
难免孤独 2020-11-29 02:40

I am trying to save files from one folder to another. zip folder placed in different directory. And I have written the fol

6条回答
  •  甜味超标
    2020-11-29 03:03

    Create a new zip file

    $zip = new ZipArchive;
    if ($zip->open('test_new.zip', ZipArchive::CREATE) === TRUE)
    {
        // Add files to the zip file
        $zip->addFile('test.txt');
        $zip->addFile('test.pdf');
     
        // Add random.txt file to zip and rename it to newfile.txt
        $zip->addFile('random.txt', 'newfile.txt');
     
        // Add a file new.txt file to zip using the text specified
        $zip->addFromString('new.txt', 'text to be added to the new.txt file');
     
        // All files are added, so close the zip file.
        $zip->close();
    }
    

    Overwrite an existing zip file

    $zip = new ZipArchive;
    if ($zip->open('test_overwrite.zip', ZipArchive::OVERWRITE) === TRUE)
    {
        // Add file to the zip file
        $zip->addFile('test.txt');
        $zip->addFile('test.pdf');
     
        // All files are added, so close the zip file.
        $zip->close();
    }
    

    Create a new zip file and add files to be inside a folder

    $zip = new ZipArchive;
    if ($zip->open('test_folder.zip', ZipArchive::CREATE) === TRUE)
    {
        // Add files to the zip file inside demo_folder
        $zip->addFile('text.txt', 'demo_folder/test.txt');
        $zip->addFile('test.pdf', 'demo_folder/test.pdf');
     
        // Add random.txt file to zip and rename it to newfile.txt and store in demo_folder
        $zip->addFile('random.txt', 'demo_folder/newfile.txt');
     
        // Add a file demo_folder/new.txt file to zip using the text specified
        $zip->addFromString('demo_folder/new.txt', 'text to be added to the new.txt file');
     
        // All files are added, so close the zip file.
        $zip->close();
    }
    

    Create a new zip file and move the files to be in different folders

    $zip = new ZipArchive;
    if ($zip->open('test_folder_change.zip', ZipArchive::CREATE) === TRUE)
    {
        // Add files to the zip file
        $zip->addFile('text.txt', 'demo_folder/test.txt');
        $zip->addFile('test.pdf', 'demo_folder1/test.pdf');
     
        // All files are added, so close the zip file.
        $zip->close();
    }
    

    Create a zip file with all files from a directory

    $zip = new ZipArchive;
    if ($zip->open('test_dir.zip', ZipArchive::OVERWRITE) === TRUE)
    {
        if ($handle = opendir('demo_folder'))
        {
            // Add all files inside the directory
            while (false !== ($entry = readdir($handle)))
            {
                if ($entry != "." && $entry != ".." && !is_dir('demo_folder/' . $entry))
                {
                    $zip->addFile('demo_folder/' . $entry);
                }
            }
            closedir($handle);
        }
     
        $zip->close();
    }
    

    Add multiple files and directories to a zip file

    $zip = new ZipArchive;
    if ($zip->open('test_files_dirs.zip', ZipArchive::OVERWRITE) === TRUE)
    {
        // Add directory1
        if ($handle = opendir('demo_folder/directory1/'))
        {
            while (false !== ($entry = readdir($handle)))
            {
                if ($entry != "." && $entry != "..")
                {
                    $zip->addFile('demo_folder/directory1/' . $entry);
                }
            }
            closedir($handle);
        }
     
        // Add directory2
        if ($handle = opendir('demo_folder/directory2/'))
        {
            while (false !== ($entry = readdir($handle)))
            {
                if ($entry != "." && $entry != "..")
                {
                    $zip->addFile('demo_folder/directory2/' . $entry);
                }
            }
            closedir($handle);
        }
     
        // Add directory3
        if ($handle = opendir('demo_folder/directory3/'))
        {
            while (false !== ($entry = readdir($handle)))
            {
                if ($entry != "." && $entry != "..")
                {
                    $zip->addFile('demo_folder/directory3/' . $entry);
                }
            }
            closedir($handle);
        }
     
        // Add more files
        $zip->addFile('demo_folder/index.txt');
     
        $zip->close();
    }
    

    Source: https://www.virendrachandak.com/techtalk/how-to-create-a-zip-file-using-php/

提交回复
热议问题