pathinfo_basic.phpt 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. --TEST--
  2. Test pathinfo() function: basic functionality
  3. --FILE--
  4. <?php
  5. echo "*** Testing basic functions of pathinfo() ***\n";
  6. $file_path = __DIR__;
  7. $paths = array (
  8. /* Testing basic file notation */
  9. "$file_path/foo/symlink.link",
  10. "www.example.co.in",
  11. "/var/www/html/example.html",
  12. "/dir/test.tar.gz",
  13. /* Testing a file with trailing slash */
  14. "$file_path/foo/symlink.link/",
  15. /* Testing file with double slashes */
  16. "$file_path/foo//symlink.link",
  17. "$file_path/foo//symlink.link",
  18. "$file_path/foo//symlink.link//",
  19. /* Testing file with trailing double slashes */
  20. "$file_path/foo/symlink.link//",
  21. /* Testing Binary safe files */
  22. "$file_path/foo".chr(47)."symlink.link",
  23. "$file_path".chr(47)."foo/symlink.link",
  24. "$file_path".chr(47)."foo".chr(47)."symlink.link",
  25. "$file_path/foo/symlink.link",
  26. /* Testing directories */
  27. ".", // current directory
  28. "$file_path/foo/",
  29. "$file_path/foo//",
  30. "$file_path/../foo/",
  31. "../foo/bar",
  32. "./foo/bar",
  33. "//foo//bar//",
  34. /* Testing with homedir notation */
  35. "~/PHP/php5.2.0/",
  36. /* Testing normal directory notation */
  37. "/home/example/test/",
  38. "http://httpd.apache.org/core.html#acceptpathinfo"
  39. );
  40. $counter = 1;
  41. /* loop through $paths to test each $path in the above array */
  42. foreach($paths as $path) {
  43. echo "-- Iteration $counter --\n";
  44. var_dump( pathinfo($path, PATHINFO_DIRNAME) );
  45. var_dump( pathinfo($path, PATHINFO_BASENAME) );
  46. var_dump( pathinfo($path, PATHINFO_EXTENSION) );
  47. var_dump( pathinfo($path, PATHINFO_FILENAME) );
  48. var_dump( pathinfo($path) );
  49. $counter++;
  50. }
  51. echo "Done\n";
  52. ?>
  53. --EXPECTF--
  54. *** Testing basic functions of pathinfo() ***
  55. -- Iteration 1 --
  56. string(%d) "%s/foo"
  57. string(12) "symlink.link"
  58. string(4) "link"
  59. string(7) "symlink"
  60. array(4) {
  61. ["dirname"]=>
  62. string(%d) "%s/foo"
  63. ["basename"]=>
  64. string(12) "symlink.link"
  65. ["extension"]=>
  66. string(4) "link"
  67. ["filename"]=>
  68. string(7) "symlink"
  69. }
  70. -- Iteration 2 --
  71. string(1) "."
  72. string(17) "www.example.co.in"
  73. string(2) "in"
  74. string(14) "www.example.co"
  75. array(4) {
  76. ["dirname"]=>
  77. string(1) "."
  78. ["basename"]=>
  79. string(17) "www.example.co.in"
  80. ["extension"]=>
  81. string(2) "in"
  82. ["filename"]=>
  83. string(14) "www.example.co"
  84. }
  85. -- Iteration 3 --
  86. string(13) "/var/www/html"
  87. string(12) "example.html"
  88. string(4) "html"
  89. string(7) "example"
  90. array(4) {
  91. ["dirname"]=>
  92. string(13) "/var/www/html"
  93. ["basename"]=>
  94. string(12) "example.html"
  95. ["extension"]=>
  96. string(4) "html"
  97. ["filename"]=>
  98. string(7) "example"
  99. }
  100. -- Iteration 4 --
  101. string(4) "/dir"
  102. string(11) "test.tar.gz"
  103. string(2) "gz"
  104. string(8) "test.tar"
  105. array(4) {
  106. ["dirname"]=>
  107. string(4) "/dir"
  108. ["basename"]=>
  109. string(11) "test.tar.gz"
  110. ["extension"]=>
  111. string(2) "gz"
  112. ["filename"]=>
  113. string(8) "test.tar"
  114. }
  115. -- Iteration 5 --
  116. string(%d) "%s/foo"
  117. string(12) "symlink.link"
  118. string(4) "link"
  119. string(7) "symlink"
  120. array(4) {
  121. ["dirname"]=>
  122. string(%d) "%s/foo"
  123. ["basename"]=>
  124. string(12) "symlink.link"
  125. ["extension"]=>
  126. string(4) "link"
  127. ["filename"]=>
  128. string(7) "symlink"
  129. }
  130. -- Iteration 6 --
  131. string(%d) "%s/foo"
  132. string(12) "symlink.link"
  133. string(4) "link"
  134. string(7) "symlink"
  135. array(4) {
  136. ["dirname"]=>
  137. string(%d) "%s/foo"
  138. ["basename"]=>
  139. string(12) "symlink.link"
  140. ["extension"]=>
  141. string(4) "link"
  142. ["filename"]=>
  143. string(7) "symlink"
  144. }
  145. -- Iteration 7 --
  146. string(%d) "%s/foo"
  147. string(12) "symlink.link"
  148. string(4) "link"
  149. string(7) "symlink"
  150. array(4) {
  151. ["dirname"]=>
  152. string(%d) "%s/foo"
  153. ["basename"]=>
  154. string(12) "symlink.link"
  155. ["extension"]=>
  156. string(4) "link"
  157. ["filename"]=>
  158. string(7) "symlink"
  159. }
  160. -- Iteration 8 --
  161. string(%d) "%s/foo"
  162. string(12) "symlink.link"
  163. string(4) "link"
  164. string(7) "symlink"
  165. array(4) {
  166. ["dirname"]=>
  167. string(%d) "%s/foo"
  168. ["basename"]=>
  169. string(12) "symlink.link"
  170. ["extension"]=>
  171. string(4) "link"
  172. ["filename"]=>
  173. string(7) "symlink"
  174. }
  175. -- Iteration 9 --
  176. string(%d) "%s/foo"
  177. string(12) "symlink.link"
  178. string(4) "link"
  179. string(7) "symlink"
  180. array(4) {
  181. ["dirname"]=>
  182. string(%d) "%s/foo"
  183. ["basename"]=>
  184. string(12) "symlink.link"
  185. ["extension"]=>
  186. string(4) "link"
  187. ["filename"]=>
  188. string(7) "symlink"
  189. }
  190. -- Iteration 10 --
  191. string(%d) "%s/foo"
  192. string(12) "symlink.link"
  193. string(4) "link"
  194. string(7) "symlink"
  195. array(4) {
  196. ["dirname"]=>
  197. string(%d) "%s/foo"
  198. ["basename"]=>
  199. string(12) "symlink.link"
  200. ["extension"]=>
  201. string(4) "link"
  202. ["filename"]=>
  203. string(7) "symlink"
  204. }
  205. -- Iteration 11 --
  206. string(%d) "%s/foo"
  207. string(12) "symlink.link"
  208. string(4) "link"
  209. string(7) "symlink"
  210. array(4) {
  211. ["dirname"]=>
  212. string(%d) "%s/foo"
  213. ["basename"]=>
  214. string(12) "symlink.link"
  215. ["extension"]=>
  216. string(4) "link"
  217. ["filename"]=>
  218. string(7) "symlink"
  219. }
  220. -- Iteration 12 --
  221. string(%d) "%s/foo"
  222. string(12) "symlink.link"
  223. string(4) "link"
  224. string(7) "symlink"
  225. array(4) {
  226. ["dirname"]=>
  227. string(%d) "%s/foo"
  228. ["basename"]=>
  229. string(12) "symlink.link"
  230. ["extension"]=>
  231. string(4) "link"
  232. ["filename"]=>
  233. string(7) "symlink"
  234. }
  235. -- Iteration 13 --
  236. string(%d) "%s/foo"
  237. string(12) "symlink.link"
  238. string(4) "link"
  239. string(7) "symlink"
  240. array(4) {
  241. ["dirname"]=>
  242. string(%d) "%s/foo"
  243. ["basename"]=>
  244. string(12) "symlink.link"
  245. ["extension"]=>
  246. string(4) "link"
  247. ["filename"]=>
  248. string(7) "symlink"
  249. }
  250. -- Iteration 14 --
  251. string(1) "."
  252. string(1) "."
  253. string(0) ""
  254. string(0) ""
  255. array(4) {
  256. ["dirname"]=>
  257. string(1) "."
  258. ["basename"]=>
  259. string(1) "."
  260. ["extension"]=>
  261. string(0) ""
  262. ["filename"]=>
  263. string(0) ""
  264. }
  265. -- Iteration 15 --
  266. string(%d) "%s"
  267. string(3) "foo"
  268. string(0) ""
  269. string(3) "foo"
  270. array(3) {
  271. ["dirname"]=>
  272. string(%d) "%s"
  273. ["basename"]=>
  274. string(3) "foo"
  275. ["filename"]=>
  276. string(3) "foo"
  277. }
  278. -- Iteration 16 --
  279. string(%d) "%s"
  280. string(3) "foo"
  281. string(0) ""
  282. string(3) "foo"
  283. array(3) {
  284. ["dirname"]=>
  285. string(%d) "%s"
  286. ["basename"]=>
  287. string(3) "foo"
  288. ["filename"]=>
  289. string(3) "foo"
  290. }
  291. -- Iteration 17 --
  292. string(%d) "%s/.."
  293. string(3) "foo"
  294. string(0) ""
  295. string(3) "foo"
  296. array(3) {
  297. ["dirname"]=>
  298. string(%d) "%s/.."
  299. ["basename"]=>
  300. string(3) "foo"
  301. ["filename"]=>
  302. string(3) "foo"
  303. }
  304. -- Iteration 18 --
  305. string(6) "../foo"
  306. string(3) "bar"
  307. string(0) ""
  308. string(3) "bar"
  309. array(3) {
  310. ["dirname"]=>
  311. string(6) "../foo"
  312. ["basename"]=>
  313. string(3) "bar"
  314. ["filename"]=>
  315. string(3) "bar"
  316. }
  317. -- Iteration 19 --
  318. string(5) "./foo"
  319. string(3) "bar"
  320. string(0) ""
  321. string(3) "bar"
  322. array(3) {
  323. ["dirname"]=>
  324. string(5) "./foo"
  325. ["basename"]=>
  326. string(3) "bar"
  327. ["filename"]=>
  328. string(3) "bar"
  329. }
  330. -- Iteration 20 --
  331. string(5) "//foo"
  332. string(3) "bar"
  333. string(0) ""
  334. string(3) "bar"
  335. array(3) {
  336. ["dirname"]=>
  337. string(5) "//foo"
  338. ["basename"]=>
  339. string(3) "bar"
  340. ["filename"]=>
  341. string(3) "bar"
  342. }
  343. -- Iteration 21 --
  344. string(5) "~/PHP"
  345. string(8) "php5.2.0"
  346. string(1) "0"
  347. string(6) "php5.2"
  348. array(4) {
  349. ["dirname"]=>
  350. string(5) "~/PHP"
  351. ["basename"]=>
  352. string(8) "php5.2.0"
  353. ["extension"]=>
  354. string(1) "0"
  355. ["filename"]=>
  356. string(6) "php5.2"
  357. }
  358. -- Iteration 22 --
  359. string(13) "/home/example"
  360. string(4) "test"
  361. string(0) ""
  362. string(4) "test"
  363. array(3) {
  364. ["dirname"]=>
  365. string(13) "/home/example"
  366. ["basename"]=>
  367. string(4) "test"
  368. ["filename"]=>
  369. string(4) "test"
  370. }
  371. -- Iteration 23 --
  372. string(23) "http://httpd.apache.org"
  373. string(24) "core.html#acceptpathinfo"
  374. string(19) "html#acceptpathinfo"
  375. string(4) "core"
  376. array(4) {
  377. ["dirname"]=>
  378. string(23) "http://httpd.apache.org"
  379. ["basename"]=>
  380. string(24) "core.html#acceptpathinfo"
  381. ["extension"]=>
  382. string(19) "html#acceptpathinfo"
  383. ["filename"]=>
  384. string(4) "core"
  385. }
  386. Done