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