1--TEST-- 2Test glob() function: usage variations 3--SKIPIF-- 4<?php 5if (substr(PHP_OS, 0, 3) != 'WIN') { 6 die('skip.. only for Windows'); 7} 8?> 9--FILE-- 10<?php 11/* Prototype: array glob ( string $pattern [, int $flags] ); 12 Description: Find pathnames matching a pattern 13*/ 14 15echo "*** Testing glob() : usage variations ***\n"; 16 17$file_path = dirname(__FILE__); 18 19// temp dir created 20//mkdir("$file_path/glob_variation"); 21mkdir("$file_path/glob_variation私はガラスを食べられます"); 22mkdir("$file_path/glob_variation私はガラスを食べられます/wonder"); 23 24// temp files created 25$fp = fopen("$file_path/glob_variation私はガラスを食べられます/wonder12345", "w"); 26fclose($fp); 27$fp = fopen("$file_path/glob_variation私はガラスを食べられます/wonder;123456", "w"); 28fclose($fp); 29 30$patterns = array ( 31 "$file_path/glob_variation私はガラスを食べられます/*der*", 32 "$file_path/glob_variation私はガラスを食べられます/?onder*", 33 "$file_path/glob_variation私はガラスを食べられます/w*der?*", 34 "$file_path/glob_variation私はガラスを食べられます/*der5", 35 "$file_path/glob_variation私はガラスを食べられます/??onder*", 36 "$file_path/glob_variation私はガラスを食べられます/***der***", 37 "$file_path/glob_variation私はガラスを食べられます/++onder*", 38 "$file_path/glob_variation私はガラスを食べられます/WONDER5\0", 39 '$file_path/glob_variation私はガラスを食べられます/wonder5', 40 "$file_path/glob_variation私はガラスを食べられます/?wonder?", 41 "$file_path/glob_variation私はガラスを食べられます/wonder?", 42 TRUE // boolean true 43); 44$counter = 1; 45/* loop through $patterns to match each $pattern with the files created 46 using glob() */ 47foreach($patterns as $pattern) { 48 echo "\n-- Iteration $counter --\n"; 49 var_dump( glob($pattern) ); // default arguments 50 var_dump( glob($pattern, GLOB_MARK) ); 51 var_dump( glob($pattern, GLOB_NOSORT) ); 52 var_dump( glob($pattern, GLOB_NOCHECK) ); 53 var_dump( glob($pattern, GLOB_NOESCAPE) ); 54 var_dump( glob($pattern, GLOB_ERR) ); 55 $counter++; 56} 57 58echo "\n*** Testing glob() with pattern within braces ***\n"; 59var_dump( glob("$file_path/glob_variation私はガラスを食べられます/*{5}", GLOB_BRACE) ); 60 61// delete temp files and dir 62unlink("$file_path/glob_variation私はガラスを食べられます/wonder12345"); 63unlink("$file_path/glob_variation私はガラスを食べられます/wonder;123456"); 64rmdir("$file_path/glob_variation私はガラスを食べられます/wonder"); 65rmdir("$file_path/glob_variation私はガラスを食べられます"); 66 67echo "\n*** Testing glob() on directories ***\n"; 68// temp dir created to check for pattern matching the sub dir created in it 69mkdir("$file_path/glob_variation私はガラスを食べられます/wonder1/wonder2", 0777, true); 70 71$counter = 1; 72/* loop through $patterns to match each $pattern with the directories created 73 using glob() */ 74foreach($patterns as $pattern) { 75 echo "-- Iteration $counter --\n"; 76 var_dump( glob($pattern, GLOB_ONLYDIR) ); 77 $counter++; 78} 79 80echo "Done\n"; 81?> 82--CLEAN-- 83<?php 84$file_path = dirname(__FILE__); 85rmdir("$file_path/glob_variation私はガラスを食べられます/wonder1/wonder2"); 86rmdir("$file_path/glob_variation私はガラスを食べられます/wonder1/"); 87rmdir("$file_path/glob_variation私はガラスを食べられます/"); 88?> 89--EXPECTF-- 90*** Testing glob() : usage variations *** 91 92-- Iteration 1 -- 93array(3) { 94 [0]=> 95 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 96 [1]=> 97 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 98 [2]=> 99 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 100} 101array(3) { 102 [0]=> 103 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 104 [1]=> 105 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 106 [2]=> 107 string(%d) "%s/glob_variation私はガラスを食べられます/wonder\" 108} 109array(3) { 110 [0]=> 111 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 112 [1]=> 113 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 114 [2]=> 115 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 116} 117array(3) { 118 [0]=> 119 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 120 [1]=> 121 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 122 [2]=> 123 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 124} 125array(3) { 126 [0]=> 127 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 128 [1]=> 129 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 130 [2]=> 131 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 132} 133array(3) { 134 [0]=> 135 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 136 [1]=> 137 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 138 [2]=> 139 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 140} 141 142-- Iteration 2 -- 143array(3) { 144 [0]=> 145 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 146 [1]=> 147 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 148 [2]=> 149 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 150} 151array(3) { 152 [0]=> 153 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 154 [1]=> 155 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 156 [2]=> 157 string(%d) "%s/glob_variation私はガラスを食べられます/wonder\" 158} 159array(3) { 160 [0]=> 161 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 162 [1]=> 163 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 164 [2]=> 165 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 166} 167array(3) { 168 [0]=> 169 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 170 [1]=> 171 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 172 [2]=> 173 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 174} 175array(3) { 176 [0]=> 177 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 178 [1]=> 179 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 180 [2]=> 181 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 182} 183array(3) { 184 [0]=> 185 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 186 [1]=> 187 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 188 [2]=> 189 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 190} 191 192-- Iteration 3 -- 193array(2) { 194 [0]=> 195 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 196 [1]=> 197 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 198} 199array(2) { 200 [0]=> 201 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 202 [1]=> 203 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 204} 205array(2) { 206 [0]=> 207 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 208 [1]=> 209 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 210} 211array(2) { 212 [0]=> 213 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 214 [1]=> 215 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 216} 217array(2) { 218 [0]=> 219 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 220 [1]=> 221 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 222} 223array(2) { 224 [0]=> 225 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 226 [1]=> 227 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 228} 229 230-- Iteration 4 -- 231array(0) { 232} 233array(0) { 234} 235array(0) { 236} 237array(1) { 238 [0]=> 239 string(%d) "%s/glob_variation私はガラスを食べられます/*der5" 240} 241array(0) { 242} 243array(0) { 244} 245 246-- Iteration 5 -- 247array(0) { 248} 249array(0) { 250} 251array(0) { 252} 253array(1) { 254 [0]=> 255 string(%d) "%s/glob_variation私はガラスを食べられます/??onder*" 256} 257array(0) { 258} 259array(0) { 260} 261 262-- Iteration 6 -- 263array(3) { 264 [0]=> 265 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 266 [1]=> 267 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 268 [2]=> 269 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 270} 271array(3) { 272 [0]=> 273 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 274 [1]=> 275 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 276 [2]=> 277 string(%d) "%s/glob_variation私はガラスを食べられます/wonder\" 278} 279array(3) { 280 [0]=> 281 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 282 [1]=> 283 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 284 [2]=> 285 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 286} 287array(3) { 288 [0]=> 289 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 290 [1]=> 291 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 292 [2]=> 293 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 294} 295array(3) { 296 [0]=> 297 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 298 [1]=> 299 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 300 [2]=> 301 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 302} 303array(3) { 304 [0]=> 305 string(%d) "%s/glob_variation私はガラスを食べられます/wonder" 306 [1]=> 307 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 308 [2]=> 309 string(%d) "%s/glob_variation私はガラスを食べられます/wonder;123456" 310} 311 312-- Iteration 7 -- 313array(0) { 314} 315array(0) { 316} 317array(0) { 318} 319array(1) { 320 [0]=> 321 string(%d) "%s/glob_variation私はガラスを食べられます/++onder*" 322} 323array(0) { 324} 325array(0) { 326} 327 328-- Iteration 8 -- 329 330Warning: glob() expects parameter 1 to be a valid path, string given %sglob_variation-win32-mb.php on line %d 331NULL 332 333Warning: glob() expects parameter 1 to be a valid path, string given %sglob_variation-win32-mb.php on line %d 334NULL 335 336Warning: glob() expects parameter 1 to be a valid path, string given %sglob_variation-win32-mb.php on line %d 337NULL 338 339Warning: glob() expects parameter 1 to be a valid path, string given %sglob_variation-win32-mb.php on line %d 340NULL 341 342Warning: glob() expects parameter 1 to be a valid path, string given %sglob_variation-win32-mb.php on line %d 343NULL 344 345Warning: glob() expects parameter 1 to be a valid path, string given %sglob_variation-win32-mb.php on line %d 346NULL 347 348-- Iteration 9 -- 349array(0) { 350} 351array(0) { 352} 353array(0) { 354} 355array(1) { 356 [0]=> 357 string(%d) "$file_path/glob_variation私はガラスを食べられます/wonder5" 358} 359array(0) { 360} 361array(0) { 362} 363 364-- Iteration 10 -- 365array(0) { 366} 367array(0) { 368} 369array(0) { 370} 371array(1) { 372 [0]=> 373 string(%d) "%s/glob_variation私はガラスを食べられます/?wonder?" 374} 375array(0) { 376} 377array(0) { 378} 379 380-- Iteration 11 -- 381array(0) { 382} 383array(0) { 384} 385array(0) { 386} 387array(1) { 388 [0]=> 389 string(%d) "%s/glob_variation私はガラスを食べられます/wonder?" 390} 391array(0) { 392} 393array(0) { 394} 395 396-- Iteration 12 -- 397array(0) { 398} 399array(0) { 400} 401array(0) { 402} 403array(1) { 404 [0]=> 405 string(%d) "1" 406} 407array(0) { 408} 409array(0) { 410} 411 412*** Testing glob() with pattern within braces *** 413array(1) { 414 [0]=> 415 string(%d) "%s/glob_variation私はガラスを食べられます/wonder12345" 416} 417 418*** Testing glob() on directories *** 419-- Iteration 1 -- 420array(1) { 421 [0]=> 422 string(%d) "%s/glob_variation私はガラスを食べられます/wonder1" 423} 424-- Iteration 2 -- 425array(1) { 426 [0]=> 427 string(%d) "%s/glob_variation私はガラスを食べられます/wonder1" 428} 429-- Iteration 3 -- 430array(1) { 431 [0]=> 432 string(%d) "%s/glob_variation私はガラスを食べられます/wonder1" 433} 434-- Iteration 4 -- 435array(0) { 436} 437-- Iteration 5 -- 438array(0) { 439} 440-- Iteration 6 -- 441array(1) { 442 [0]=> 443 string(%d) "%s/glob_variation私はガラスを食べられます/wonder1" 444} 445-- Iteration 7 -- 446array(0) { 447} 448-- Iteration 8 -- 449 450Warning: glob() expects parameter 1 to be a valid path, string given in %sglob_variation-win32-mb.php on line %d 451NULL 452-- Iteration 9 -- 453array(0) { 454} 455-- Iteration 10 -- 456array(0) { 457} 458-- Iteration 11 -- 459array(1) { 460 [0]=> 461 string(%d) "%s/glob_variation私はガラスを食べられます/wonder1" 462} 463-- Iteration 12 -- 464array(0) { 465} 466Done 467