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