basename_basic.phpt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. --TEST--
  2. Test basename() function : basic functionality
  3. --FILE--
  4. <?php
  5. /* Prototype: string basename ( string $path [, string $suffix] );
  6. Description: Given a string containing a path to a file,
  7. this function will return the base name of the file.
  8. If the filename ends in suffix this will also be cut off.
  9. */
  10. $file_paths = array (
  11. /* simple paths */
  12. array("bar"),
  13. array("/foo/bar"),
  14. array("foo/bar"),
  15. array("/bar"),
  16. /* simple paths with trailing slashes */
  17. array("bar/"),
  18. array("/bar/"),
  19. array("/foo/bar/"),
  20. array("foo/bar/"),
  21. array("/bar/"),
  22. /* paths with suffix removal */
  23. array("bar.gz", ".gz"),
  24. array("bar.gz", "bar.gz"),
  25. array("/foo/bar.gz", ".gz"),
  26. array("foo/bar.gz", ".gz"),
  27. array("/bar.gz", ".gz"),
  28. /* paths with suffix and trailing slashes with suffix removal*/
  29. array("bar.gz/", ".gz"),
  30. array("/bar.gz/", ".gz"),
  31. array("/foo/bar.gz/", ".gz"),
  32. array("foo/bar.gz/", ".gz"),
  33. array("/bar.gz/", ".gz"),
  34. /* paths with basename only suffix, with suffix removal*/
  35. array("/.gz", ".gz"),
  36. array(".gz", ".gz"),
  37. array("/foo/.gz", ".gz"),
  38. /* paths with basename only suffix & trailing slashes, with suffix removal*/
  39. array(".gz/", ".gz"),
  40. array("/foo/.gz/", ".gz"),
  41. array("foo/.gz/", ".gz"),
  42. /* paths with binary value to check if the function is binary safe*/
  43. array("foo".chr(0)."bar"),
  44. array("/foo".chr(0)."bar"),
  45. array("/foo".chr(0)."bar/"),
  46. array("foo".chr(0)."bar/"),
  47. array("foo".chr(0)."bar/test"),
  48. array("/foo".chr(0)."bar/bar.gz", ".gz"),
  49. array("/foo".chr(0)."bar/bar.gz")
  50. );
  51. function check_basename( $path_arrays ) {
  52. $loop_counter = 1;
  53. foreach ($path_arrays as $path) {
  54. echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
  55. if( 1 == count($path) ) { // no suffix provided
  56. var_dump( basename($path[0]) );
  57. } else { // path as well as suffix provided,
  58. var_dump( basename($path[0], $path[1]) );
  59. }
  60. }
  61. }
  62. echo "*** Testing basic operations ***\n";
  63. check_basename( $file_paths );
  64. echo "Done\n";
  65. ?>
  66. --EXPECTF--
  67. *** Testing basic operations ***
  68. --Iteration 1--
  69. string(3) "bar"
  70. --Iteration 2--
  71. string(3) "bar"
  72. --Iteration 3--
  73. string(3) "bar"
  74. --Iteration 4--
  75. string(3) "bar"
  76. --Iteration 5--
  77. string(3) "bar"
  78. --Iteration 6--
  79. string(3) "bar"
  80. --Iteration 7--
  81. string(3) "bar"
  82. --Iteration 8--
  83. string(3) "bar"
  84. --Iteration 9--
  85. string(3) "bar"
  86. --Iteration 10--
  87. string(3) "bar"
  88. --Iteration 11--
  89. string(6) "bar.gz"
  90. --Iteration 12--
  91. string(3) "bar"
  92. --Iteration 13--
  93. string(3) "bar"
  94. --Iteration 14--
  95. string(3) "bar"
  96. --Iteration 15--
  97. string(3) "bar"
  98. --Iteration 16--
  99. string(3) "bar"
  100. --Iteration 17--
  101. string(3) "bar"
  102. --Iteration 18--
  103. string(3) "bar"
  104. --Iteration 19--
  105. string(3) "bar"
  106. --Iteration 20--
  107. string(3) ".gz"
  108. --Iteration 21--
  109. string(3) ".gz"
  110. --Iteration 22--
  111. string(3) ".gz"
  112. --Iteration 23--
  113. string(3) ".gz"
  114. --Iteration 24--
  115. string(3) ".gz"
  116. --Iteration 25--
  117. string(3) ".gz"
  118. --Iteration 26--
  119. string(7) "foo�bar"
  120. --Iteration 27--
  121. string(7) "foo�bar"
  122. --Iteration 28--
  123. string(7) "foo�bar"
  124. --Iteration 29--
  125. string(7) "foo�bar"
  126. --Iteration 30--
  127. string(4) "test"
  128. --Iteration 31--
  129. string(3) "bar"
  130. --Iteration 32--
  131. string(6) "bar.gz"
  132. Done