(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
ZipArchive::addFromString — Add a file to a ZIP archive using its contents
$name
   , string $contents
   [, int $flags = ZipArchive::FL_OVERWRITE
  ] ) : boolAdd a file to a ZIP archive using its contents.
Note: For maximum portability, it is recommended to always use forward slashes (
/) as directory separator in ZIP filenames.
nameThe name of the entry to create.
contentsThe 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.
      
   Returns TRUE on success or FALSE on failure.
  
| Version | Description | 
|---|---|
| 8.0.0 / 1.18.0 | flagswas added. | 
Example #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';
}
?>
Example #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';
}
?>