ZipArchive::addFromString

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

ZipArchive::addFromStringДобавляет файл в ZIP-архив, используя его содержимое

Описание

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

Добавяет файл в ZIP-архив, используя его содержимое.

Список параметров

localname

Локальное имя файла для создания.

contents

Содержимое для создания файла. Используется в двоичном безопасном режиме.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавить запись в новый архив

<?php
$zip 
= new ZipArchive;
$res $zip->open('test.zip'ZipArchive::CREATE);
if (
$res === TRUE) {
    
$zip->addFromString('test.txt''здесь следует содержимое файла');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'failed';
}
?>

Пример #2 Добавить файл в директорию внутри архива

<?php
$zip 
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
    
$zip->addFromString('dir/test.txt''здесь следует содержимое файла');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'failed';
}
?>

Коментарии

Автор:
Note that this function overwrites existing files of the same name.
2007-01-30 23:10:08
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html
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.
2008-11-16 12:01:43
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html
Автор:
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
2010-05-19 15:54:32
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html
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.
2013-02-20 14:57:46
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html
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.
2014-11-28 03:18:42
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html
in case your string contain Arabic char, ZipArchive::addFromString will show it in wrong format char.
in this case you have to change your string coding from Unicode to Windows-1256 code

$filetxt        = iconv('utf-8','CP1256',$filetxt);
$zip            = new ZipArchive;
$zipFName    = "Tmp.zip";
if ($zip->open($zipFName, ZipArchive::CREATE) === TRUE)
{
    $zip->addFromString($fileName . '.csv',  $filetxt);
    $zip->close();
}
2020-07-01 09:32:27
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html
ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, and ZipArchive::FL_ENC_CP437 affect the $name parameter, not $content
2022-04-29 18:44:43
http://php5.kiev.ua/manual/ru/ziparchive.addfromstring.html

    Поддержать сайт на родительском проекте КГБ