pathinfo_variaton.phpt 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. --TEST--
  2. Test pathinfo() function: usage variations
  3. --FILE--
  4. <?php
  5. /* Prototype: mixed pathinfo ( string $path [, int $options] );
  6. Description: Returns information about a file path
  7. */
  8. echo "*** Testing pathinfo() with miscelleneous input arguments ***\n";
  9. $fp = fopen(__FILE__, "r");
  10. unset($fp);
  11. class object_temp {
  12. public $url_var = "www.foo.com";
  13. var $html_var = "/var/html/testdir/example.html";
  14. var $dir_var = "/testdir/foo/test/";
  15. public $file_var = "/foo//symlink.link";
  16. var $number = 12345;
  17. }
  18. $obj = new object_temp();
  19. $path_arr = array (
  20. "www.example.com",
  21. "/testdir/foo//test/",
  22. "../foo/test.link",
  23. "./test/work/scratch/mydir/yourdir/ourdir/test1/test2/test3/test4/test5/test6/test.tmp",
  24. 2.345
  25. );
  26. $paths = array (
  27. /* pathname containing numeric string */
  28. 0,
  29. 1234,
  30. -1234,
  31. 2.3456,
  32. /* pathname as boolean */
  33. TRUE,
  34. FALSE,
  35. /* pathname as an array */
  36. "./array(1, 2)",
  37. "array( array(), null)",
  38. /* pathname as object */
  39. $obj,
  40. /* pathname as spaces */
  41. " ",
  42. ' ',
  43. /* empty pathname */
  44. "",
  45. '',
  46. /* pathname as NULL */
  47. NULL,
  48. null,
  49. /* filename as resource */
  50. $fp,
  51. /* pathname as members of object */
  52. $obj->url_var,
  53. $obj->html_var,
  54. $obj->dir_var,
  55. $obj->file_var,
  56. $obj->number,
  57. /* pathname as member of array */
  58. $path_arr[0],
  59. $path_arr[1],
  60. $path_arr[2],
  61. $path_arr[3],
  62. $path_arr[4]
  63. );
  64. $counter = 1;
  65. /* loop through $paths to test each $path in the above array */
  66. foreach($paths as $path) {
  67. echo "-- Iteration $counter --\n";
  68. var_dump( pathinfo($path) );
  69. var_dump( pathinfo($path, PATHINFO_DIRNAME) );
  70. var_dump( pathinfo($path, PATHINFO_BASENAME) );
  71. var_dump( pathinfo($path, PATHINFO_EXTENSION) );
  72. var_dump( pathinfo($path, PATHINFO_FILENAME) );
  73. $counter++;
  74. }
  75. echo "Done\n";
  76. ?>
  77. --EXPECTF--
  78. *** Testing pathinfo() with miscelleneous input arguments ***
  79. Notice: Undefined variable: fp in %s on line %d
  80. -- Iteration 1 --
  81. array(3) {
  82. ["dirname"]=>
  83. string(1) "."
  84. ["basename"]=>
  85. string(1) "0"
  86. ["filename"]=>
  87. string(1) "0"
  88. }
  89. string(1) "."
  90. string(1) "0"
  91. string(0) ""
  92. string(1) "0"
  93. -- Iteration 2 --
  94. array(3) {
  95. ["dirname"]=>
  96. string(1) "."
  97. ["basename"]=>
  98. string(4) "1234"
  99. ["filename"]=>
  100. string(4) "1234"
  101. }
  102. string(1) "."
  103. string(4) "1234"
  104. string(0) ""
  105. string(4) "1234"
  106. -- Iteration 3 --
  107. array(3) {
  108. ["dirname"]=>
  109. string(1) "."
  110. ["basename"]=>
  111. string(5) "-1234"
  112. ["filename"]=>
  113. string(5) "-1234"
  114. }
  115. string(1) "."
  116. string(5) "-1234"
  117. string(0) ""
  118. string(5) "-1234"
  119. -- Iteration 4 --
  120. array(4) {
  121. ["dirname"]=>
  122. string(1) "."
  123. ["basename"]=>
  124. string(6) "2.3456"
  125. ["extension"]=>
  126. string(4) "3456"
  127. ["filename"]=>
  128. string(1) "2"
  129. }
  130. string(1) "."
  131. string(6) "2.3456"
  132. string(4) "3456"
  133. string(1) "2"
  134. -- Iteration 5 --
  135. array(3) {
  136. ["dirname"]=>
  137. string(1) "."
  138. ["basename"]=>
  139. string(1) "1"
  140. ["filename"]=>
  141. string(1) "1"
  142. }
  143. string(1) "."
  144. string(1) "1"
  145. string(0) ""
  146. string(1) "1"
  147. -- Iteration 6 --
  148. array(2) {
  149. ["basename"]=>
  150. string(0) ""
  151. ["filename"]=>
  152. string(0) ""
  153. }
  154. string(0) ""
  155. string(0) ""
  156. string(0) ""
  157. string(0) ""
  158. -- Iteration 7 --
  159. array(3) {
  160. ["dirname"]=>
  161. string(1) "."
  162. ["basename"]=>
  163. string(11) "array(1, 2)"
  164. ["filename"]=>
  165. string(11) "array(1, 2)"
  166. }
  167. string(1) "."
  168. string(11) "array(1, 2)"
  169. string(0) ""
  170. string(11) "array(1, 2)"
  171. -- Iteration 8 --
  172. array(3) {
  173. ["dirname"]=>
  174. string(1) "."
  175. ["basename"]=>
  176. string(21) "array( array(), null)"
  177. ["filename"]=>
  178. string(21) "array( array(), null)"
  179. }
  180. string(1) "."
  181. string(21) "array( array(), null)"
  182. string(0) ""
  183. string(21) "array( array(), null)"
  184. -- Iteration 9 --
  185. Warning: pathinfo() expects parameter 1 to be string, object given in %s on line %d
  186. NULL
  187. Warning: pathinfo() expects parameter 1 to be string, object given in %s on line %d
  188. NULL
  189. Warning: pathinfo() expects parameter 1 to be string, object given in %s on line %d
  190. NULL
  191. Warning: pathinfo() expects parameter 1 to be string, object given in %s on line %d
  192. NULL
  193. Warning: pathinfo() expects parameter 1 to be string, object given in %s on line %d
  194. NULL
  195. -- Iteration 10 --
  196. array(3) {
  197. ["dirname"]=>
  198. string(1) "."
  199. ["basename"]=>
  200. string(1) " "
  201. ["filename"]=>
  202. string(1) " "
  203. }
  204. string(1) "."
  205. string(1) " "
  206. string(0) ""
  207. string(1) " "
  208. -- Iteration 11 --
  209. array(3) {
  210. ["dirname"]=>
  211. string(1) "."
  212. ["basename"]=>
  213. string(1) " "
  214. ["filename"]=>
  215. string(1) " "
  216. }
  217. string(1) "."
  218. string(1) " "
  219. string(0) ""
  220. string(1) " "
  221. -- Iteration 12 --
  222. array(2) {
  223. ["basename"]=>
  224. string(0) ""
  225. ["filename"]=>
  226. string(0) ""
  227. }
  228. string(0) ""
  229. string(0) ""
  230. string(0) ""
  231. string(0) ""
  232. -- Iteration 13 --
  233. array(2) {
  234. ["basename"]=>
  235. string(0) ""
  236. ["filename"]=>
  237. string(0) ""
  238. }
  239. string(0) ""
  240. string(0) ""
  241. string(0) ""
  242. string(0) ""
  243. -- Iteration 14 --
  244. array(2) {
  245. ["basename"]=>
  246. string(0) ""
  247. ["filename"]=>
  248. string(0) ""
  249. }
  250. string(0) ""
  251. string(0) ""
  252. string(0) ""
  253. string(0) ""
  254. -- Iteration 15 --
  255. array(2) {
  256. ["basename"]=>
  257. string(0) ""
  258. ["filename"]=>
  259. string(0) ""
  260. }
  261. string(0) ""
  262. string(0) ""
  263. string(0) ""
  264. string(0) ""
  265. -- Iteration 16 --
  266. array(2) {
  267. ["basename"]=>
  268. string(0) ""
  269. ["filename"]=>
  270. string(0) ""
  271. }
  272. string(0) ""
  273. string(0) ""
  274. string(0) ""
  275. string(0) ""
  276. -- Iteration 17 --
  277. array(4) {
  278. ["dirname"]=>
  279. string(1) "."
  280. ["basename"]=>
  281. string(11) "www.foo.com"
  282. ["extension"]=>
  283. string(3) "com"
  284. ["filename"]=>
  285. string(7) "www.foo"
  286. }
  287. string(1) "."
  288. string(11) "www.foo.com"
  289. string(3) "com"
  290. string(7) "www.foo"
  291. -- Iteration 18 --
  292. array(4) {
  293. ["dirname"]=>
  294. string(17) "/var/html/testdir"
  295. ["basename"]=>
  296. string(12) "example.html"
  297. ["extension"]=>
  298. string(4) "html"
  299. ["filename"]=>
  300. string(7) "example"
  301. }
  302. string(17) "/var/html/testdir"
  303. string(12) "example.html"
  304. string(4) "html"
  305. string(7) "example"
  306. -- Iteration 19 --
  307. array(3) {
  308. ["dirname"]=>
  309. string(12) "/testdir/foo"
  310. ["basename"]=>
  311. string(4) "test"
  312. ["filename"]=>
  313. string(4) "test"
  314. }
  315. string(12) "/testdir/foo"
  316. string(4) "test"
  317. string(0) ""
  318. string(4) "test"
  319. -- Iteration 20 --
  320. array(4) {
  321. ["dirname"]=>
  322. string(4) "/foo"
  323. ["basename"]=>
  324. string(12) "symlink.link"
  325. ["extension"]=>
  326. string(4) "link"
  327. ["filename"]=>
  328. string(7) "symlink"
  329. }
  330. string(4) "/foo"
  331. string(12) "symlink.link"
  332. string(4) "link"
  333. string(7) "symlink"
  334. -- Iteration 21 --
  335. array(3) {
  336. ["dirname"]=>
  337. string(1) "."
  338. ["basename"]=>
  339. string(5) "12345"
  340. ["filename"]=>
  341. string(5) "12345"
  342. }
  343. string(1) "."
  344. string(5) "12345"
  345. string(0) ""
  346. string(5) "12345"
  347. -- Iteration 22 --
  348. array(4) {
  349. ["dirname"]=>
  350. string(1) "."
  351. ["basename"]=>
  352. string(15) "www.example.com"
  353. ["extension"]=>
  354. string(3) "com"
  355. ["filename"]=>
  356. string(11) "www.example"
  357. }
  358. string(1) "."
  359. string(15) "www.example.com"
  360. string(3) "com"
  361. string(11) "www.example"
  362. -- Iteration 23 --
  363. array(3) {
  364. ["dirname"]=>
  365. string(12) "/testdir/foo"
  366. ["basename"]=>
  367. string(4) "test"
  368. ["filename"]=>
  369. string(4) "test"
  370. }
  371. string(12) "/testdir/foo"
  372. string(4) "test"
  373. string(0) ""
  374. string(4) "test"
  375. -- Iteration 24 --
  376. array(4) {
  377. ["dirname"]=>
  378. string(6) "../foo"
  379. ["basename"]=>
  380. string(9) "test.link"
  381. ["extension"]=>
  382. string(4) "link"
  383. ["filename"]=>
  384. string(4) "test"
  385. }
  386. string(6) "../foo"
  387. string(9) "test.link"
  388. string(4) "link"
  389. string(4) "test"
  390. -- Iteration 25 --
  391. array(4) {
  392. ["dirname"]=>
  393. string(76) "./test/work/scratch/mydir/yourdir/ourdir/test1/test2/test3/test4/test5/test6"
  394. ["basename"]=>
  395. string(8) "test.tmp"
  396. ["extension"]=>
  397. string(3) "tmp"
  398. ["filename"]=>
  399. string(4) "test"
  400. }
  401. string(76) "./test/work/scratch/mydir/yourdir/ourdir/test1/test2/test3/test4/test5/test6"
  402. string(8) "test.tmp"
  403. string(3) "tmp"
  404. string(4) "test"
  405. -- Iteration 26 --
  406. array(4) {
  407. ["dirname"]=>
  408. string(1) "."
  409. ["basename"]=>
  410. string(5) "2.345"
  411. ["extension"]=>
  412. string(3) "345"
  413. ["filename"]=>
  414. string(1) "2"
  415. }
  416. string(1) "."
  417. string(5) "2.345"
  418. string(3) "345"
  419. string(1) "2"
  420. Done