oo_addglob.phpt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. --TEST--
  2. ZipArchive::addGlob() method
  3. --CREDITS--
  4. Sammy Kaye Powers <sammyk@sammykmedia.com>
  5. w/Kenzo over the shoulder
  6. #phptek Chicago 2014
  7. --EXTENSIONS--
  8. zip
  9. --SKIPIF--
  10. <?php
  11. if(!defined("GLOB_BRACE")) die ('skip');
  12. ?>
  13. --FILE--
  14. <?php
  15. include __DIR__ . '/utils.inc';
  16. $dirname = __DIR__ . '/oo_addglob_dir/';
  17. $file = $dirname . 'tmp.zip';
  18. @mkdir($dirname);
  19. copy(__DIR__ . '/test.zip', $file);
  20. touch($dirname . 'foo.txt');
  21. touch($dirname . 'bar.baz');
  22. $zip = new ZipArchive();
  23. if (!$zip->open($file)) {
  24. exit('failed');
  25. }
  26. $options = array('add_path' => 'baz/', 'remove_all_path' => TRUE);
  27. if (!$zip->addGlob($dirname . '*.{txt,baz}', GLOB_BRACE, $options)) {
  28. echo "failed 1\n";
  29. }
  30. if (!$zip->addGlob($dirname . '*.{txt,baz}', GLOB_BRACE, $options)) {
  31. echo "failed 2\n";
  32. }
  33. $options['flags'] = 0; // clean FL_OVERWRITE
  34. if (!$zip->addGlob($dirname . '*.{txt,baz}', GLOB_BRACE, $options)) {
  35. var_dump($zip->getStatusString());
  36. }
  37. $options['flags'] = ZipArchive::FL_OVERWRITE;
  38. if (!$zip->addGlob($dirname . '*.{txt,baz}', GLOB_BRACE, $options)) {
  39. echo "failed 3\n";
  40. }
  41. if ($zip->status == ZIPARCHIVE::ER_OK) {
  42. if (!verify_entries($zip, [
  43. "bar",
  44. "foobar/",
  45. "foobar/baz",
  46. "entry1.txt",
  47. "baz/foo.txt",
  48. "baz/bar.baz"
  49. ])) {
  50. echo "failed\n";
  51. } else {
  52. echo "OK";
  53. }
  54. $zip->close();
  55. } else {
  56. echo "failed 4\n";
  57. }
  58. ?>
  59. --CLEAN--
  60. <?php
  61. $dirname = __DIR__ . '/oo_addglob_dir/';
  62. unlink($dirname . 'tmp.zip');
  63. unlink($dirname . 'foo.txt');
  64. unlink($dirname . 'bar.baz');
  65. rmdir($dirname);
  66. ?>
  67. --EXPECT--
  68. string(19) "File already exists"
  69. OK