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