ZipArchive::addFromString

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

ZipArchive::addFromStringAdd a file to a ZIP archive using its contents

Opis

ZipArchive::addFromString ( string $localname , string $contents [, int $flags = ZipArchive::FL_OVERWRITE ] ) : bool

Add a file to a ZIP archive using its contents.

Informacja: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Parametry

localname

The name of the entry to create.

contents

The contents to use to create the entry. It is used in a binary safe mode.

flags

Bitmask consisting of ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. The behaviour of these constants is described on the ZIP constants page.

Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

Rejestr zmian

Wersja Opis
8.0.0 / 1.18.0 flags was added.

Przykłady

Przykład #1 Add an entry to a new archive

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''file content goes here');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'failed';
}
?>

Przykład #2 Add file to a directory inside an archive

<?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 
'failed';
}
?>
add a note add a note

User Contributed Notes 5 notes

up
10
Jacques Chester
13 years ago
Note that this function overwrites existing files of the same name.
up
4
tahazit dot co dot il at gmail dot com
5 years 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
5
calebcjh
10 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
6
gbti at ukr dot net
11 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
3
xslidian at lidian dot info
7 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.
To Top