ZipArchive::addFromString

(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)

ZipArchive::addFromStringAñadir un fichero al archivo ZIP usando su contenido

Descripción

bool ZipArchive::addFromString ( string $localname , string $contents )

Añade un fichero al archivo ZIP usando su contenido.

Parámetros

localname

Nombre de la entrada a crear.

contents

El contenido a usar para crear la entrada. Es usado en modo binary safe.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

Ejemplo #1 Añade una entrada al nuevo fichero

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''el contenido del fichero va aquí');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'failed';
}
?>

Ejemplo #2 Añade un fichero en un directorio dentro de un archivo

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->addFromString('dir/test.txt''el contenido del fichero va aquí');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'falló';
}
?>
add a note add a note

User Contributed Notes 4 notes

up
4
Jacques Chester
7 years ago
Note that this function overwrites existing files of the same name.
up
1
calebcjh
3 years ago
Although this function displaces files of the same name, in actual fact, the original file is blanked and a new entry is added. The numFiles property is incremented.

Example:

File 1: foo
File 2: bar

$zip->addFromString('foo', 'new foo');

File 1:
File 2: bar
File 3: foo
up
0
xslidian at lidian dot info
1 year ago
Although numFiles will change after overwriting a file, it will be back normal when you ZipArchive::close() and open() it again.
NULL indexes don't persist either. Only the new order is kept. So feel free to overwrite.

Here overwriting works the same as deleting and adding. So it's not necessary to ZipArchive::deleteName() first.
up
0
gbti at ukr dot net
5 years ago
if you try:

<?php
$zip
->open("file", ZipArchive::CREATE);
$zip->addFromString("russian_letters/options.xml");
?>

wrong directory will be created.

if you try:

<?php
$zip
->addEmptyDir("russian_letters");
?>

All be fine.
To Top