diff options
Diffstat (limited to 'ext/zip/examples/encryption.php')
-rw-r--r-- | ext/zip/examples/encryption.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/ext/zip/examples/encryption.php b/ext/zip/examples/encryption.php new file mode 100644 index 0000000000..69888170a9 --- /dev/null +++ b/ext/zip/examples/encryption.php @@ -0,0 +1,49 @@ +<?php +error_reporting(E_ALL); +if (!extension_loaded('zip')) { + dl('zip.so'); +} + +$name = __DIR__ . '/encrypted.zip'; +$pass = 'secret'; +$file = 'foo.php'; + +echo "== Create with per file password\n"; + +$zip = new ZipArchive; +$zip->open($name, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE); +$zip->addFile(__FILE__, $file); +$zip->setEncryptionName($file, ZipArchive::EM_AES_256, $pass); +$zip->close(); + +echo "== Create with global password\n"; + +$zip = new ZipArchive; +$zip->open($name, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE); +$zip->setPassword($pass); +$zip->addFile(__FILE__, $file); +$zip->setEncryptionName($file, ZipArchive::EM_AES_256); +$zip->close(); + +echo "== Stat\n"; + +$zip->open($name); +print_r($zip->statName($file)); + +echo "== Read\n"; + +$zip->setPassword($pass); +$text = $zip->getFromName($file); +printf("Size = %d\n", strlen($text)); +$zip->close(); + +echo "== Stream with context\n"; + +$ctx = stream_context_create(array( + 'zip' => array( + 'password' => $pass + ) +)); +$text = file_get_contents("zip://$name#$file", false, $ctx); +printf("Size = %d\n", strlen($text)); + |