Note that this function overwrites existing files of the same name.
ZipArchive::addFromString
(PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
ZipArchive::addFromString — Ajoute un fichier à une archive ZIP en utilisant son contenu
Description
bool ZipArchive::addFromString
( string
$localname
, string $contents
)Ajoute un fichier à une archive ZIP en utilisant son contenu.
Liste de paramètres
-
localname -
Le nom de l'entrée à créer
-
contents -
Le contenu à utiliser pour créer l'entrée. Ceci est utilisé dans un mode binaire sécurisé.
Valeurs de retour
Cette fonction retourne TRUE en cas de
succès ou FALSE si une erreur survient.
Exemples
Exemple #1 Ajout d'une entrée dans une nouvelle archive
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'contenu du fichier ici');
$zip->close();
echo 'ok';
} else {
echo 'échec';
}
?>
Exemple #2 Ajout d'un fichier dans un dossier d'une archive
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->addFromString('dir/test.txt', 'contenu du fichier ici');
$zip->close();
echo 'ok';
} else {
echo 'échec';
}
?>
xslidian at lidian dot info ¶
3 months 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.
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
gbti at ukr dot net ¶
4 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.
