Codeigniter Zip Encoding Class
La classe di codifica Zip di CodeIgniter ti consente di creare archivi Zip. Gli archivi possono essere scaricati sul desktop o salvati in una directory.

Zip Encoding Class
La classe di codifica Zip di CodeIgniter consente di creare archivi Zip. Gli archivi possono essere scaricati sul desktop o salvati in una directory.
- Utilizzo della classe di codifica Zip
- Inizializzazione della classeInitializing the Class
- Esempi di utilizzo
- Referenze della classe
Utilizzo della classe di codifica Zip
Inizializza la classe
Come la maggior parte delle altre classi di CodeIgniter, la classe Zip viene inizializzata nel controllore utilizzando la funzione:
$this->load->library('zip');
Una volta caricato, l'oggetto libreria Zip sarà disponibile utilizzando:
$this->zip
Esempi di utilizzo
Questo esempio mostra come comprimere un file, salvarlo in una cartella sul server e scaricarlo sul desktop.
$name = 'mydata1.txt';
$data = 'A Data String!';
$this->zip->add_data($name, $data);
// Scrivete il file zip in una cartella del vostro server.
Name it "my_backup.zip" $this->zip->archive('/path/to/directory/my_backup.zip');
// Scaricate il file sul vostro desktop.
Name it "my_backup.zip" $this->zip->download('my_backup.zip');
Referenze della Classe
- class
CI_Zip
-
$compression_level = 2
-
Il livello di compressione da utilizzare.
Può variare da 0 a 9, con 9 che è il massimo e 0 che disabilita di fatto la compressione:
$this->zip->compression_level = 0;
add_data
($filepath[, $data = NULL])-
Parameters: - $filepath (mixed) – A single file path or an array of file => data pairs
- $data (array) – File contents (ignored if $filepath is an array)
Return type: void
Aggiunge dati all'archivio Zip. Può funzionare sia in modalità singola che multipla.
Quando si aggiunge un singolo file, il primo parametro deve contenere il nome che si desidera assegnare al file e il secondo deve contenere il contenuto del file:
$name = 'mydata1.txt'; $data = 'A Data String!'; $this->zip->add_data($name, $data);
$name = 'mydata2.txt'; $data = 'Another Data String!'; $this->zip->add_data($name, $data);
Quando si aggiungono più file, il primo parametro deve contenere coppie file => contenuto e il secondo parametro viene ignorato:
$data = array( 'mydata1.txt' => 'A Data String!', 'mydata2.txt' => 'Another Data String!' );
$this->zip->add_data($data);
Se si desidera che i dati compressi siano organizzati in sottodirectory, è sufficiente includere il percorso come parte del nome del file:
$name = 'personal/my_bio.txt'; $data = 'I was born in an elevator...';
$this->zip->add_data($name, $data);
L'esempio precedente inserisce my_bio.txt in una cartella chiamata personal.
add_dir
($directory)-
Parameters: - $directory (mixed) – Directory name string or an array of multiple directories
Return type: void
Permette di aggiungere una directory. Di solito questo metodo non è necessario, dal momento che è possibile inserire i dati nelle cartelle quando si usa
$this->zip->add_data()
, ma se si desidera creare una directory vuota, è possibile farlo:$this->zip->add_dir('myfolder'); // Crea una directory denominata "myfolder".
read_file
($path[, $archive_filepath = FALSE])-
Parameters: - $path (string) – Path to file
- $archive_filepath (mixed) – New file name/path (string) or (boolean) whether to maintain the original filepath
Returns: TRUE on success, FALSE on failure
Return type: bool
Permette di comprimere un file che esiste già da qualche parte sul server. Fornite il percorso di un file e la classe zip lo leggerà e lo aggiungerà all'archivio:
$path = '/path/to/photo.jpg'; $this->zip->read_file($path);
// Scaricare il file sul desktop. Nominarlo "my_backup.zip" $this->zip->download('my_backup.zip');
Se si desidera che l'archivio Zip mantenga la struttura di directory dei file in esso contenuti, passare TRUE (booleano) nel secondo parametro. Esempio:
$path = '/path/to/photo.jpg'; $this->zip->read_file($path, TRUE);
// Scaricare il file sul desktop. Nominarlo "my_backup.zip" $this->zip->download('my_backup.zip');
Nell'esempio precedente, foto.jpg verrà inserito nella directory path/to/.
È anche possibile specificare al volo un nuovo nome (percorso incluso) per il file aggiunto:
// Scarica l'archivio ZIP contenente /nuovo/percorso/qualche_foto.jpg $this->zip->download('my_archive.zip');$path = '/path/to/photo.jpg'; $new_path = '/new/path/some_photo.jpg'; $this->zip->read_file($path, $new_path);
read_dir
($path[, $preserve_filepath = TRUE[, $root_path = NULL]])-
Parameters: - $path (string) – Path to directory
- $preserve_filepath (bool) – Whether to maintain the original path
- $root_path (string) – Part of the path to exclude from the archive directory
Returns: TRUE on success, FALSE on failure
Return type: bool
Permette di comprimere una directory (e il suo contenuto) che esiste già da qualche parte sul server. Fornendo un percorso alla directory, la classe zip la leggerà ricorsivamente e la ricreerà come archivio Zip. Tutti i file contenuti nel percorso fornito saranno codificati, così come tutte le sottodirectory contenute. Esempio:
$path = '/path/to/your/directory/'; $this->zip->read_dir($path);
// Scaricare il file sul desktop. Nominarlo "my_backup.zip" $this->zip->download('my_backup.zip');
By default the Zip archive will place all directories listed in the first parameter inside the zip. If you want the tree preceding the target directory to be ignored, you can pass FALSE (boolean) in the second parameter. Example:
$path = '/path/to/your/directory/'; $this->zip->read_dir($path, FALSE);
This will create a ZIP with a directory named “directory” inside, then all sub-directories stored correctly inside that, but will not include the /path/to/your part of the path.
archive
($filepath)-
Parameters: - $filepath (string) – Path to target zip archive
Returns: TRUE on success, FALSE on failure
Return type: bool
Writes the Zip-encoded file to a directory on your server. Submit a valid server path ending in the file name. Make sure the directory is writable (755 is usually OK). Example:
$this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip
download
($filename = 'backup.zip')-
Parameters: - $filename (string) – Archive file name
Return type: void
Causes the Zip file to be downloaded from your server. You must pass the name you would like the zip file called. Example:
$this->zip->download('latest_stuff.zip'); // File will be named "latest_stuff.zip"
Note
Do not display any data in the controller in which you call this method since it sends various server headers that cause the download to happen and the file to be treated as binary.
get_zip
()-
Returns: Zip file content Return type: string Returns the Zip-compressed file data. Generally you will not need this method unless you want to do something unique with the data. Example:
$name = 'my_bio.txt'; $data = 'I was born in an elevator...'; $this->zip->add_data($name, $data); $zip_file = $this->zip->get_zip();
clear_data
()-
Return type: void The Zip class caches your zip data so that it doesn’t need to recompile the Zip archive for each method you use above. If, however, you need to create multiple Zip archives, each with different data, you can clear the cache between calls. Example:
$name = 'my_bio.txt'; $data = 'I was born in an elevator...'; $this->zip->add_data($name, $data); $zip_file = $this->zip->get_zip(); $this->zip->clear_data(); $name = 'photo.jpg'; $this->zip->read_file("/path/to/photo.jpg"); // Read the file's contents $this->zip->download('myphotos.zip');
What's Your Reaction?






