019c.phpt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. else
  38. {
  39. var_dump(file_get_contents($phar . $entry));
  40. }
  41. }
  42. }
  43. dump('phar://hio', '/');
  44. ?>
  45. --CLEAN--
  46. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  47. --EXPECT--
  48. string(11) "phar://hio/"
  49. string(2) "/a"
  50. bool(false)
  51. string(1) "a"
  52. string(2) "/b"
  53. bool(true)
  54. string(12) "phar://hio/b"
  55. string(4) "/b/a"
  56. bool(false)
  57. string(1) "b"
  58. string(4) "/b/c"
  59. bool(true)
  60. string(14) "phar://hio/b/c"
  61. string(6) "/b/c/d"
  62. bool(false)
  63. string(1) "c"
  64. string(4) "/bad"
  65. bool(true)
  66. string(14) "phar://hio/bad"
  67. string(6) "/bad/c"
  68. bool(false)
  69. string(1) "d"