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');
Per impostazione predefinita, l'archivio Zip inserisce tutte le directory elencate nel primo parametro all'interno dello zip. Se si desidera che l'albero che precede la directory di destinazione venga ignorato, è possibile passare FALSE (booleano) nel secondo parametro. Esempio:
$path = '/path/to/your/directory/'; $this->zip->read_dir($path, FALSE);
Questo creerà uno ZIP con una directory denominata "directory" e tutte le sottodirectory memorizzate correttamente al suo interno, ma non includerà la parte /path/to/your del percorso.
archive
($filepath)-
Parameters: - $filepath (string) – Path to target zip archive
Returns: TRUE on success, FALSE on failure
Return type: bool
Scrive il file codificato in Zip in una directory del server. Inviare un percorso valido del server che termini con il nome del file. Assicurarsi che la directory sia scrivibile (755 di solito va bene). Esempio:
$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
Fa sì che il file zip venga scaricato dal server. È necessario passare il nome che si desidera dare al file zip. Esempio:
$this->zip->download('latest_stuff.zip'); // File will be named "latest_stuff.zip"
Note
Non visualizzare alcun dato nel controllore in cui si chiama questo metodo, poiché esso invia varie intestazioni del server che causano il download e il trattamento del file come binario.
get_zip
()-
Returns: Zip file content Return type: string Restituisce i dati del file compresso Zip. In genere questo metodo non è necessario, a meno che non si voglia fare qualcosa di unico con i dati. Esempio:
$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 La classe Zip memorizza nella cache i dati zip, in modo da non dover ricompilare l'archivio Zip per ogni metodo utilizzato. Se, tuttavia, è necessario creare più archivi Zip, ciascuno con dati diversi, è possibile cancellare la cache tra una chiamata e l'altra. Esempio:
$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?