oo_setcompression.phpt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. --TEST--
  2. setCompressionName and setCompressionIndex methods
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded('zip')) die('skip');
  6. ?>
  7. --FILE--
  8. <?php
  9. $tmpfile = dirname(__FILE__) . '/__tmp_oo_set_compression.zip';
  10. if (file_exists($tmpfile)) {
  11. unlink($tmpfile);
  12. }
  13. // generate the ZIP file
  14. $zip = new ZipArchive;
  15. if ($zip->open($tmpfile, ZipArchive::CREATE) !== TRUE) {
  16. exit('failed');
  17. }
  18. $txt = file_get_contents(__FILE__);
  19. $zip->addFromString('entry1.txt', $txt);
  20. $zip->addFromString('entry2.txt', $txt);
  21. $zip->addFromString('dir/entry3.txt', $txt);
  22. $zip->addFromString('entry4.txt', $txt);
  23. $zip->addFromString('entry5.txt', $txt);
  24. $zip->addFromString('entry6.txt', $txt);
  25. $zip->addFromString('entry7.txt', $txt);
  26. var_dump($zip->setCompressionName('entry2.txt', ZipArchive::CM_DEFAULT));
  27. var_dump($zip->setCompressionName('dir/entry3.txt', ZipArchive::CM_STORE));
  28. var_dump($zip->setCompressionName('entry4.txt', ZipArchive::CM_DEFLATE));
  29. var_dump($zip->setCompressionIndex(4, ZipArchive::CM_STORE));
  30. var_dump($zip->setCompressionIndex(5, ZipArchive::CM_DEFLATE));
  31. var_dump($zip->setCompressionIndex(6, ZipArchive::CM_DEFAULT));
  32. if (!$zip->close()) {
  33. exit('failed');
  34. }
  35. // check the ZIP file
  36. $zip = zip_open($tmpfile);
  37. if (!is_resource($zip)) {
  38. exit('failed');
  39. }
  40. while ($e = zip_read($zip)) {
  41. echo zip_entry_name($e) . ': ' . zip_entry_compressionmethod($e) . "\n";
  42. }
  43. zip_close($zip);
  44. ?>
  45. --CLEAN--
  46. <?php
  47. $tmpfile = dirname(__FILE__) . '/__tmp_oo_set_compression.zip';
  48. unlink($tmpfile);
  49. ?>
  50. --EXPECT--
  51. bool(true)
  52. bool(true)
  53. bool(true)
  54. bool(true)
  55. bool(true)
  56. bool(true)
  57. entry1.txt: deflated
  58. entry2.txt: deflated
  59. dir/entry3.txt: stored
  60. entry4.txt: deflated
  61. entry5.txt: stored
  62. entry6.txt: deflated
  63. entry7.txt: deflated