Codeigniter: zip alleen de bestemmingsmap

Codeigniter ritst het volledige bronpad af.

Hoe alleen de bestemmingsmap te zippen?

0
Geef hiervan bijvoorbeeld
toegevoegd de auteur Jones, de bron
voor bijvoorbeeld. als ik probeer te zip/public/products/images, dan zou het alleen de map images moeten rippen, niet het volledige pad, momenteel ritst het het volledige pad af dat wil zeggen van/public/products/images
toegevoegd de auteur CBM, de bron

2 antwoord

In the $this->zip->read_dir() pass FALSE in the second parameter.

$this->zip->read_dir($path, FALSE);

2
toegevoegd

Heb deze mogelijkheid

$folder_in_zip = "/"; //root directory of the new zip file

$path = 'games/SDK/com/';
$this->zip->get_files_from_folder($path, $folder_in_zip);

$path = 'games/wheel/';
$this->zip->get_files_from_folder($path, $folder_in_zip);

$this->zip->download('my_backup.zip');

Zonder recursie

<?php if (!defined('BASEPATH')) exit('No direct script access allowed.');

class MY_Zip extends CI_Zip 
{   
    /**
     * Read a directory and add it to the zip using the new filepath set.
     *
     * This function recursively reads a folder and everything it contains (including
     * sub-folders) and creates a zip based on it.  You must specify the new directory structure.
     * The original structure is thrown out.
     *
     * @access  public
     * @param   string  path to source
     * @param   string  new directory structure
     */
    function get_files_from_folder($directory, $put_into, $recursion = false) 
    {
        if ($handle = opendir($directory)) 
        {
            while (false !== ($file = readdir($handle))) 
            {
                if (is_file($directory.$file)) 
                {
                    $fileContents = file_get_contents($directory.$file);

                    $this->add_data($put_into.$file, $fileContents);

                } 

                elseif ($recursion and $file != '.' and $file != '..' and is_dir($directory.$file)) {

                    $this->add_dir($put_into.$file.'/');

                    $this->get_files_from_folder($directory.$file.'/', $put_into.$file.'/', $recursion);
                }

            }//end while

        }//end if

        closedir($handle);
    }
}

Dit uittreksel van deze vraag

1
toegevoegd