php[world] 2015 Call for Speakers

ZipArchive::addFromString

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

ZipArchive::addFromStringFügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu

Beschreibung

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

Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu.

Parameter-Liste

localname

Der Name des anzulegenden Eintrags.

contents

Der Inhalt, der zum Erstellen des Eintrags verwendet werden soll. Dieser wird im Binary safe-Modus verwendet.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 Einen Eintrag zu einem neuen Archiv hinzufügen

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''Dateiinhalt kommt hier');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'Fehler';
}
?>

Beispiel #2 Eine Datei zu einem Verzeichnis innerhalb eines Archivs hinzufügen

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->addFromString('dir/test.txt''file content goes here');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'Fehler';
}
?>
add a note add a note

User Contributed Notes 5 notes

up
2
Jacques Chester
8 years ago
Note that this function overwrites existing files of the same name.
up
1
xslidian at lidian dot info
2 years 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
1
gbti at ukr dot net
6 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.
up
0
tahazit dot co dot il at gmail dot com
6 months ago
On PHP >5.4, This function will usually create any subfolders inside the ZIP archive.
For instance:

   $zip->addFromString ( 'path/to/file.txt' , $data );

will create the folders "path/", and "path/to/" in addition to placing the newly created file "file.txt" in "path/to/" folder.
up
0
calebcjh
5 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
To Top