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