1--TEST--
2Test fscanf() function: usage variations - file pointer pointing to EOF
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 read a file when file pointer is pointing to EOF */
12
13$file_path = __DIR__;
14
15echo "*** Test fscanf(): to read a file when file pointer is pointing to EOF ***\n";
16
17// various formats
18$formats = array( "%d", "%f", "%e", "%u", " %s", "%x", "%o");
19
20$counter = 1;
21
22// various read modes
23$modes = array("r", "rb", "rt", "r+", "r+b", "r+t",
24               "w+", "w+b", "w+t",
25               "a+", "a+b", "a+t"
26         );
27
28$counter = 1;
29// reading the values from file using different integer formats
30foreach($modes as $mode) {
31
32  // create an empty file
33  $filename = "$file_path/fscanf_variation53.tmp";
34  $file_handle = fopen($filename, "w");
35  if($file_handle == false)
36    exit("Error:failed to open file $filename");
37
38  //writing data to the file
39  @fwrite($file_handle, "Sample text\n");
40
41  // writing a blank line
42  @fwrite($file_handle, "\n");
43
44  //closing the file
45  fclose($file_handle);
46
47  // opening file in $mode mode
48  $file_handle = fopen($filename, $mode);
49  if($file_handle == false) {
50    exit("Error:failed to open file $filename");
51  }
52  echo "\n-- iteration $counter --\n";
53
54  // current location
55  var_dump( ftell($file_handle) );
56
57  // set the file pointer to eof
58  var_dump( fseek($file_handle, 0, SEEK_END) );
59
60  // current location
61  var_dump( ftell($file_handle) );
62
63  foreach($formats as $format) {
64    var_dump( fscanf($file_handle,$format) );
65  }
66  $counter++;
67  fclose($file_handle);
68  unlink($filename);
69}
70
71echo "\n*** Done ***";
72?>
73--CLEAN--
74<?php
75$file_path = __DIR__;
76$filename = "$file_path/fscanf_variation53.tmp";
77if(file_exists($filename)) {
78  unlink($filename);
79}
80?>
81--EXPECT--
82*** Test fscanf(): to read a file when file pointer is pointing to EOF ***
83
84-- iteration 1 --
85int(0)
86int(0)
87int(13)
88bool(false)
89bool(false)
90bool(false)
91bool(false)
92bool(false)
93bool(false)
94bool(false)
95
96-- iteration 2 --
97int(0)
98int(0)
99int(13)
100bool(false)
101bool(false)
102bool(false)
103bool(false)
104bool(false)
105bool(false)
106bool(false)
107
108-- iteration 3 --
109int(0)
110int(0)
111int(13)
112bool(false)
113bool(false)
114bool(false)
115bool(false)
116bool(false)
117bool(false)
118bool(false)
119
120-- iteration 4 --
121int(0)
122int(0)
123int(13)
124bool(false)
125bool(false)
126bool(false)
127bool(false)
128bool(false)
129bool(false)
130bool(false)
131
132-- iteration 5 --
133int(0)
134int(0)
135int(13)
136bool(false)
137bool(false)
138bool(false)
139bool(false)
140bool(false)
141bool(false)
142bool(false)
143
144-- iteration 6 --
145int(0)
146int(0)
147int(13)
148bool(false)
149bool(false)
150bool(false)
151bool(false)
152bool(false)
153bool(false)
154bool(false)
155
156-- iteration 7 --
157int(0)
158int(0)
159int(0)
160bool(false)
161bool(false)
162bool(false)
163bool(false)
164bool(false)
165bool(false)
166bool(false)
167
168-- iteration 8 --
169int(0)
170int(0)
171int(0)
172bool(false)
173bool(false)
174bool(false)
175bool(false)
176bool(false)
177bool(false)
178bool(false)
179
180-- iteration 9 --
181int(0)
182int(0)
183int(0)
184bool(false)
185bool(false)
186bool(false)
187bool(false)
188bool(false)
189bool(false)
190bool(false)
191
192-- iteration 10 --
193int(0)
194int(0)
195int(13)
196bool(false)
197bool(false)
198bool(false)
199bool(false)
200bool(false)
201bool(false)
202bool(false)
203
204-- iteration 11 --
205int(0)
206int(0)
207int(13)
208bool(false)
209bool(false)
210bool(false)
211bool(false)
212bool(false)
213bool(false)
214bool(false)
215
216-- iteration 12 --
217int(0)
218int(0)
219int(13)
220bool(false)
221bool(false)
222bool(false)
223bool(false)
224bool(false)
225bool(false)
226bool(false)
227
228*** Done ***
229