pathinfo_basic.phpt 7.4 KB

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