1--TEST--
2Test fscanf() function: usage variations - integer formats with resource
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 resource type using different integer format types */
12
13$file_path = dirname(__FILE__);
14
15echo "*** Test fscanf(): different integer format types with resource ***\n";
16
17// create a file
18$filename = "$file_path/fscanf_variation4.tmp";
19$file_handle = fopen($filename, "w");
20if($file_handle == false)
21  exit("Error:failed to open file $filename");
22
23// non-integer type of data
24
25// resource type variable
26$fp = fopen (__FILE__, "r");
27$dfp = opendir ( dirname(__FILE__) );
28
29// array of resource types
30$resource_types = array (
31  $fp,
32  $dfp
33);
34
35$int_formats = array( "%d", "%hd", "%ld", "%Ld", " %d", "%d ", "% d", "\t%d", "\n%d", "%4d", "%30d", "%[0-9]", "%*d");
36
37$counter = 1;
38
39// writing to the file
40foreach($resource_types as $value) {
41  @fprintf($file_handle, $value);
42  @fprintf($file_handle, "\n");
43}
44// closing the file
45fclose($file_handle);
46
47// opening the file for reading
48$file_handle = fopen($filename, "r");
49if($file_handle == false) {
50  exit("Error:failed to open file $filename");
51}
52
53$counter = 1;
54// reading the values from file using different integer formats
55foreach($int_formats as $int_format) {
56  // rewind the file so that for every foreach iteration the file pointer starts from bof
57  rewind($file_handle);
58  echo "\n-- iteration $counter --\n";
59  while( !feof($file_handle) ) {
60    var_dump( fscanf($file_handle,$int_format) );
61  }
62  $counter++;
63}
64
65// closing the resources
66fclose($fp);
67closedir($dfp);
68
69echo "\n*** Done ***";
70?>
71--CLEAN--
72<?php
73$file_path = dirname(__FILE__);
74$filename = "$file_path/fscanf_variation4.tmp";
75unlink($filename);
76?>
77--EXPECTF--
78*** Test fscanf(): different integer format types with resource ***
79
80-- iteration 1 --
81array(1) {
82  [0]=>
83  NULL
84}
85array(1) {
86  [0]=>
87  NULL
88}
89bool(false)
90
91-- iteration 2 --
92array(1) {
93  [0]=>
94  NULL
95}
96array(1) {
97  [0]=>
98  NULL
99}
100bool(false)
101
102-- iteration 3 --
103array(1) {
104  [0]=>
105  NULL
106}
107array(1) {
108  [0]=>
109  NULL
110}
111bool(false)
112
113-- iteration 4 --
114array(1) {
115  [0]=>
116  NULL
117}
118array(1) {
119  [0]=>
120  NULL
121}
122bool(false)
123
124-- iteration 5 --
125array(1) {
126  [0]=>
127  NULL
128}
129array(1) {
130  [0]=>
131  NULL
132}
133bool(false)
134
135-- iteration 6 --
136array(1) {
137  [0]=>
138  NULL
139}
140array(1) {
141  [0]=>
142  NULL
143}
144bool(false)
145
146-- iteration 7 --
147
148Warning: fscanf(): Bad scan conversion character " " in %s on line %d
149NULL
150
151Warning: fscanf(): Bad scan conversion character " " in %s on line %d
152NULL
153bool(false)
154
155-- iteration 8 --
156array(1) {
157  [0]=>
158  NULL
159}
160array(1) {
161  [0]=>
162  NULL
163}
164bool(false)
165
166-- iteration 9 --
167array(1) {
168  [0]=>
169  NULL
170}
171array(1) {
172  [0]=>
173  NULL
174}
175bool(false)
176
177-- iteration 10 --
178array(1) {
179  [0]=>
180  NULL
181}
182array(1) {
183  [0]=>
184  NULL
185}
186bool(false)
187
188-- iteration 11 --
189array(1) {
190  [0]=>
191  NULL
192}
193array(1) {
194  [0]=>
195  NULL
196}
197bool(false)
198
199-- iteration 12 --
200array(1) {
201  [0]=>
202  NULL
203}
204array(1) {
205  [0]=>
206  NULL
207}
208bool(false)
209
210-- iteration 13 --
211array(0) {
212}
213array(0) {
214}
215bool(false)
216
217*** Done ***
218
219