1--TEST--
2Test fscanf() function: usage variations - octal formats with arrays
3--FILE--
4<?php
5
6/*
7  Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] );
8  Description: Parses input from a file according to a format
9*/
10
11/* Test fscanf() to scan arrays using different octal format types */
12
13$file_path = dirname(__FILE__);
14
15echo "*** Test fscanf(): different octal format types with arrays ***\n";
16
17// create a file
18$filename = "$file_path/fscanf_variation30.tmp";
19$file_handle = fopen($filename, "w");
20if($file_handle == false)
21  exit("Error:failed to open file $filename");
22
23// array types
24$array_types = array (
25  array(),
26  array(0),
27  array(1),
28  array(NULL),
29  array(null),
30  array("string"),
31  array(true),
32  array(TRUE),
33  array(false),
34  array(FALSE),
35  array(1,2,3,4),
36  array(1 => "One", "two" => 2)
37);
38
39$octal_formats = array ( "%o",
40 		         "%ho", "%lo", "%Lo",
41			 " %o", "%o ", "% o",
42			 "\t%o", "\n%o", "%4o",
43			 "%30o", "%[0-7]", "%*o"
44		 );
45
46$counter = 1;
47
48// writing to the file
49foreach($array_types as $value) {
50  @fprintf($file_handle, $value);
51  @fprintf($file_handle, "\n");
52}
53// closing the file
54fclose($file_handle);
55
56// opening the file for reading
57$file_handle = fopen($filename, "r");
58if($file_handle == false) {
59  exit("Error:failed to open file $filename");
60}
61
62$counter = 1;
63// reading the values from file using different octal formats
64foreach($octal_formats as $octal_format) {
65  // rewind the file so that for every foreach iteration the file pointer starts from bof
66  rewind($file_handle);
67  echo "\n-- iteration $counter --\n";
68  while( !feof($file_handle) ) {
69    var_dump( fscanf($file_handle,$octal_format) );
70  }
71  $counter++;
72}
73
74echo "\n*** Done ***";
75?>
76--CLEAN--
77<?php
78$file_path = dirname(__FILE__);
79$filename = "$file_path/fscanf_variation30.tmp";
80unlink($filename);
81?>
82--EXPECTF--
83*** Test fscanf(): different octal format types with arrays ***
84
85-- iteration 1 --
86array(1) {
87  [0]=>
88  NULL
89}
90array(1) {
91  [0]=>
92  NULL
93}
94array(1) {
95  [0]=>
96  NULL
97}
98array(1) {
99  [0]=>
100  NULL
101}
102array(1) {
103  [0]=>
104  NULL
105}
106array(1) {
107  [0]=>
108  NULL
109}
110array(1) {
111  [0]=>
112  NULL
113}
114array(1) {
115  [0]=>
116  NULL
117}
118array(1) {
119  [0]=>
120  NULL
121}
122array(1) {
123  [0]=>
124  NULL
125}
126array(1) {
127  [0]=>
128  NULL
129}
130array(1) {
131  [0]=>
132  NULL
133}
134bool(false)
135
136-- iteration 2 --
137array(1) {
138  [0]=>
139  NULL
140}
141array(1) {
142  [0]=>
143  NULL
144}
145array(1) {
146  [0]=>
147  NULL
148}
149array(1) {
150  [0]=>
151  NULL
152}
153array(1) {
154  [0]=>
155  NULL
156}
157array(1) {
158  [0]=>
159  NULL
160}
161array(1) {
162  [0]=>
163  NULL
164}
165array(1) {
166  [0]=>
167  NULL
168}
169array(1) {
170  [0]=>
171  NULL
172}
173array(1) {
174  [0]=>
175  NULL
176}
177array(1) {
178  [0]=>
179  NULL
180}
181array(1) {
182  [0]=>
183  NULL
184}
185bool(false)
186
187-- iteration 3 --
188array(1) {
189  [0]=>
190  NULL
191}
192array(1) {
193  [0]=>
194  NULL
195}
196array(1) {
197  [0]=>
198  NULL
199}
200array(1) {
201  [0]=>
202  NULL
203}
204array(1) {
205  [0]=>
206  NULL
207}
208array(1) {
209  [0]=>
210  NULL
211}
212array(1) {
213  [0]=>
214  NULL
215}
216array(1) {
217  [0]=>
218  NULL
219}
220array(1) {
221  [0]=>
222  NULL
223}
224array(1) {
225  [0]=>
226  NULL
227}
228array(1) {
229  [0]=>
230  NULL
231}
232array(1) {
233  [0]=>
234  NULL
235}
236bool(false)
237
238-- iteration 4 --
239array(1) {
240  [0]=>
241  NULL
242}
243array(1) {
244  [0]=>
245  NULL
246}
247array(1) {
248  [0]=>
249  NULL
250}
251array(1) {
252  [0]=>
253  NULL
254}
255array(1) {
256  [0]=>
257  NULL
258}
259array(1) {
260  [0]=>
261  NULL
262}
263array(1) {
264  [0]=>
265  NULL
266}
267array(1) {
268  [0]=>
269  NULL
270}
271array(1) {
272  [0]=>
273  NULL
274}
275array(1) {
276  [0]=>
277  NULL
278}
279array(1) {
280  [0]=>
281  NULL
282}
283array(1) {
284  [0]=>
285  NULL
286}
287bool(false)
288
289-- iteration 5 --
290array(1) {
291  [0]=>
292  NULL
293}
294array(1) {
295  [0]=>
296  NULL
297}
298array(1) {
299  [0]=>
300  NULL
301}
302array(1) {
303  [0]=>
304  NULL
305}
306array(1) {
307  [0]=>
308  NULL
309}
310array(1) {
311  [0]=>
312  NULL
313}
314array(1) {
315  [0]=>
316  NULL
317}
318array(1) {
319  [0]=>
320  NULL
321}
322array(1) {
323  [0]=>
324  NULL
325}
326array(1) {
327  [0]=>
328  NULL
329}
330array(1) {
331  [0]=>
332  NULL
333}
334array(1) {
335  [0]=>
336  NULL
337}
338bool(false)
339
340-- iteration 6 --
341array(1) {
342  [0]=>
343  NULL
344}
345array(1) {
346  [0]=>
347  NULL
348}
349array(1) {
350  [0]=>
351  NULL
352}
353array(1) {
354  [0]=>
355  NULL
356}
357array(1) {
358  [0]=>
359  NULL
360}
361array(1) {
362  [0]=>
363  NULL
364}
365array(1) {
366  [0]=>
367  NULL
368}
369array(1) {
370  [0]=>
371  NULL
372}
373array(1) {
374  [0]=>
375  NULL
376}
377array(1) {
378  [0]=>
379  NULL
380}
381array(1) {
382  [0]=>
383  NULL
384}
385array(1) {
386  [0]=>
387  NULL
388}
389bool(false)
390
391-- iteration 7 --
392
393Warning: fscanf(): Bad scan conversion character " " in %s on line %d
394NULL
395
396Warning: fscanf(): Bad scan conversion character " " in %s on line %d
397NULL
398
399Warning: fscanf(): Bad scan conversion character " " in %s on line %d
400NULL
401
402Warning: fscanf(): Bad scan conversion character " " in %s on line %d
403NULL
404
405Warning: fscanf(): Bad scan conversion character " " in %s on line %d
406NULL
407
408Warning: fscanf(): Bad scan conversion character " " in %s on line %d
409NULL
410
411Warning: fscanf(): Bad scan conversion character " " in %s on line %d
412NULL
413
414Warning: fscanf(): Bad scan conversion character " " in %s on line %d
415NULL
416
417Warning: fscanf(): Bad scan conversion character " " in %s on line %d
418NULL
419
420Warning: fscanf(): Bad scan conversion character " " in %s on line %d
421NULL
422
423Warning: fscanf(): Bad scan conversion character " " in %s on line %d
424NULL
425
426Warning: fscanf(): Bad scan conversion character " " in %s on line %d
427NULL
428bool(false)
429
430-- iteration 8 --
431array(1) {
432  [0]=>
433  NULL
434}
435array(1) {
436  [0]=>
437  NULL
438}
439array(1) {
440  [0]=>
441  NULL
442}
443array(1) {
444  [0]=>
445  NULL
446}
447array(1) {
448  [0]=>
449  NULL
450}
451array(1) {
452  [0]=>
453  NULL
454}
455array(1) {
456  [0]=>
457  NULL
458}
459array(1) {
460  [0]=>
461  NULL
462}
463array(1) {
464  [0]=>
465  NULL
466}
467array(1) {
468  [0]=>
469  NULL
470}
471array(1) {
472  [0]=>
473  NULL
474}
475array(1) {
476  [0]=>
477  NULL
478}
479bool(false)
480
481-- iteration 9 --
482array(1) {
483  [0]=>
484  NULL
485}
486array(1) {
487  [0]=>
488  NULL
489}
490array(1) {
491  [0]=>
492  NULL
493}
494array(1) {
495  [0]=>
496  NULL
497}
498array(1) {
499  [0]=>
500  NULL
501}
502array(1) {
503  [0]=>
504  NULL
505}
506array(1) {
507  [0]=>
508  NULL
509}
510array(1) {
511  [0]=>
512  NULL
513}
514array(1) {
515  [0]=>
516  NULL
517}
518array(1) {
519  [0]=>
520  NULL
521}
522array(1) {
523  [0]=>
524  NULL
525}
526array(1) {
527  [0]=>
528  NULL
529}
530bool(false)
531
532-- iteration 10 --
533array(1) {
534  [0]=>
535  NULL
536}
537array(1) {
538  [0]=>
539  NULL
540}
541array(1) {
542  [0]=>
543  NULL
544}
545array(1) {
546  [0]=>
547  NULL
548}
549array(1) {
550  [0]=>
551  NULL
552}
553array(1) {
554  [0]=>
555  NULL
556}
557array(1) {
558  [0]=>
559  NULL
560}
561array(1) {
562  [0]=>
563  NULL
564}
565array(1) {
566  [0]=>
567  NULL
568}
569array(1) {
570  [0]=>
571  NULL
572}
573array(1) {
574  [0]=>
575  NULL
576}
577array(1) {
578  [0]=>
579  NULL
580}
581bool(false)
582
583-- iteration 11 --
584array(1) {
585  [0]=>
586  NULL
587}
588array(1) {
589  [0]=>
590  NULL
591}
592array(1) {
593  [0]=>
594  NULL
595}
596array(1) {
597  [0]=>
598  NULL
599}
600array(1) {
601  [0]=>
602  NULL
603}
604array(1) {
605  [0]=>
606  NULL
607}
608array(1) {
609  [0]=>
610  NULL
611}
612array(1) {
613  [0]=>
614  NULL
615}
616array(1) {
617  [0]=>
618  NULL
619}
620array(1) {
621  [0]=>
622  NULL
623}
624array(1) {
625  [0]=>
626  NULL
627}
628array(1) {
629  [0]=>
630  NULL
631}
632bool(false)
633
634-- iteration 12 --
635array(1) {
636  [0]=>
637  NULL
638}
639array(1) {
640  [0]=>
641  NULL
642}
643array(1) {
644  [0]=>
645  NULL
646}
647array(1) {
648  [0]=>
649  NULL
650}
651array(1) {
652  [0]=>
653  NULL
654}
655array(1) {
656  [0]=>
657  NULL
658}
659array(1) {
660  [0]=>
661  NULL
662}
663array(1) {
664  [0]=>
665  NULL
666}
667array(1) {
668  [0]=>
669  NULL
670}
671array(1) {
672  [0]=>
673  NULL
674}
675array(1) {
676  [0]=>
677  NULL
678}
679array(1) {
680  [0]=>
681  NULL
682}
683bool(false)
684
685-- iteration 13 --
686array(0) {
687}
688array(0) {
689}
690array(0) {
691}
692array(0) {
693}
694array(0) {
695}
696array(0) {
697}
698array(0) {
699}
700array(0) {
701}
702array(0) {
703}
704array(0) {
705}
706array(0) {
707}
708array(0) {
709}
710bool(false)
711
712*** Done ***
713
714