oo_replacefile.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --TEST--
  2. ziparchive::replaceFile() function
  3. --EXTENSIONS--
  4. zip
  5. --FILE--
  6. <?php
  7. $dirname = __DIR__ . '/';
  8. include $dirname . 'utils.inc';
  9. $file = $dirname . 'oo_replacefile.zip';
  10. copy($dirname . 'test.zip', $file);
  11. $zip = new ZipArchive;
  12. if (!$zip->open($file)) {
  13. exit('open failed');
  14. }
  15. if ($zip->replaceFile($dirname . 'utils.inc', 5)) {
  16. echo "replace 5 succeed\n";
  17. }
  18. if (!$zip->replaceFile($dirname . 'utils.inc', 0)) {
  19. echo "replace 0 failed\n";
  20. }
  21. if (!$zip->replaceFile($dirname . 'utils.inc', 2, 12, 42)) {
  22. echo "replace 2 failed\n";
  23. }
  24. if ($zip->status == ZIPARCHIVE::ER_OK) {
  25. if (!verify_entries($zip, [
  26. "bar",
  27. "foobar/",
  28. "foobar/baz",
  29. "entry1.txt",
  30. ])) {
  31. echo "verify failed\n";
  32. } else {
  33. echo "OK\n";
  34. }
  35. $zip->close();
  36. } else {
  37. echo "failed\n";
  38. }
  39. if (!$zip->open($file)) {
  40. exit('re-open failed');
  41. }
  42. var_dump(strlen($zip->getFromName('bar')) == filesize($dirname . 'utils.inc'));
  43. var_dump(strlen($zip->getFromName('foobar/baz')) == 42);
  44. @unlink($file);
  45. ?>
  46. --EXPECT--
  47. OK
  48. bool(true)
  49. bool(true)