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