Content · Programming · PHP

PHP ZipArchive::addFromString() Method: Usage and Examples

Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file.

1 views Published Oct 17, 2026 Updated Oct 17, 2026 Know-Stuff

In PHP, ZipArchive::addFromString() helps with ZIP archives. Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file.

What Is ZipArchive::addFromString() in PHP?


The function or method has a specific purpose: Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file. The following examples show the main call, one additional situation, and an application-style use.

Syntax:

<?php
ZipArchive::addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool

Parameters and Return Value


  • $name — stored ZIP entry name.
  • $content — uncompressed bytes to add.
  • $flags — flags controlling name encoding or lookup.

Example 1: Basic Usage


Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file.

<?php
$archivePath = sys_get_temp_dir() . "/example-guide.zip";
$archive = new ZipArchive();
if ($archive->open($archivePath, ZipArchive::CREATE) !== true) { throw new RuntimeException("Cannot open ZIP"); }
$result = $archive->addFromString("notes/readme.txt", "Created in PHP");
var_dump($result);
$archive->close();

This example demonstrates the central operation. The final output depends on the supplied input and, where relevant, the runtime or connected service.

Example 2: Handling a Different Case


<?php
$archivePath = sys_get_temp_dir() . "/second-guide.zip";
$archive = new ZipArchive();
if ($archive->open($archivePath, ZipArchive::CREATE) !== true) { throw new RuntimeException("Cannot open ZIP"); }
$result = $archive->addFromString("notes/readme.txt", "Created in PHP");
var_dump($result);
$archive->close();

The second example focuses on a different input or failure condition, so the behavior can be distinguished from the basic case.

Practical Example


<?php
$archivePath = sys_get_temp_dir() . "/practical-guide.zip";
$archive = new ZipArchive();
if ($archive->open($archivePath, ZipArchive::CREATE) !== true) { throw new RuntimeException("Cannot open ZIP"); }
$result = $archive->addFromString("notes/readme.txt", "Created in PHP");
var_dump($result);
$archive->close();

The practical example demonstrates how the same subject fits into a larger application. Use your own file paths, endpoints and validated inputs rather than copying sample settings directly.

Important Behavior and Edge Cases


  • Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file.
  • Check the return value and exceptions for failure before using the result. If an extension or external system is required, the example only works when that dependency is available. ZIP entries and uploaded files must never be treated as trusted merely because their extension looks correct.
  • Close the ZIP archive to finalize changes; extraction requires checks against path traversal and oversized expanded content.

Comparison With Related Functions


ApproachDifference
ZipArchive::addFromStringCreates or replaces an archive entry using bytes held in a PHP string rather than a disk file.
ZipArchive::addFileAdds bytes from a filesystem path instead of a string.

Common Beginner Mistakes


MistakeCorrect Approach
Forgetting to close an archiveCall close() and check its result so changes are committed.
Assuming archive entry names are safe to extractCheck extracted paths, entry counts and expanded file sizes.
Treating a ZIP password as automatic encryptionChoose entry encryption explicitly when writing encrypted archives.

Key Takeaways


  • Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file.
  • Check the return value and exceptions for failure before using the result. If an extension or external system is required, the example only works when that dependency is available. ZIP entries and uploaded files must never be treated as trusted merely because their extension looks correct.
  • Close the ZIP archive to finalize changes; extraction requires checks against path traversal and oversized expanded content.

Creates or replaces an archive entry using bytes held in a PHP string rather than a disk file. Use this approach when its capabilities and constraints match the application. Handle invalid data, failure conditions and resource cleanup explicitly.

Share this resourceSend this page to someone who may find it useful.