019b.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. Phar: opendir test, recurse into
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.require_hash=0
  7. --FILE--
  8. <?php
  9. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
  10. $pname = 'phar://' . $fname;
  11. $file = "<?php
  12. Phar::mapPhar('hio');
  13. __HALT_COMPILER(); ?>";
  14. $files = array();
  15. $files['a'] = 'a';
  16. $files['b/a'] = 'b';
  17. $files['b/c/d'] = 'c';
  18. $files['bad/c'] = 'd';
  19. include 'files/phar_test.inc';
  20. include $fname;
  21. function dump($phar, $base)
  22. {
  23. var_dump($phar . $base);
  24. $dir = opendir($phar . $base);
  25. if ($base == '/')
  26. {
  27. $base = '';
  28. }
  29. while (false !== ($entry = readdir($dir))) {
  30. $entry = $base . '/' . $entry;
  31. var_dump($entry);
  32. var_dump(is_dir($phar . $entry));
  33. if (is_dir($phar . $entry))
  34. {
  35. dump($phar, $entry);
  36. }
  37. }
  38. }
  39. dump('phar://hio', '/');
  40. ?>
  41. --CLEAN--
  42. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  43. --EXPECT--
  44. string(11) "phar://hio/"
  45. string(2) "/a"
  46. bool(false)
  47. string(2) "/b"
  48. bool(true)
  49. string(12) "phar://hio/b"
  50. string(4) "/b/a"
  51. bool(false)
  52. string(4) "/b/c"
  53. bool(true)
  54. string(14) "phar://hio/b/c"
  55. string(6) "/b/c/d"
  56. bool(false)
  57. string(4) "/bad"
  58. bool(true)
  59. string(14) "phar://hio/bad"
  60. string(6) "/bad/c"
  61. bool(false)