Updates to Tomato RAF including NGINX && PHP
[tomato.git] / release / src / router / php / ext / standard / tests / file / fgetcsv_variation30.phpt
blobe474b2d5462ab7c34aca557ad763107783bc3ca4
1 --TEST--
2 Test fgetcsv() : usage variations - with file handle and length, file pointer pointing at end of file
3 --FILE--
4 <?php
5 /* 
6  Prototype: array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure]]] );
7  Description: Gets line from file pointer and parse for CSV fields
8 */
11    Testing fgetcsv() to read a file whose file pointer is pointing to end of file
12    and fgetcsv() provided with file handle and length arguments
15 echo "*** Testing fgetcsv() : with file handle and length arguments, file pointer pointing at end of file ***\n";
17 /* the array is with two elements in it. Each element should be read as 
18    1st element is delimiter & 2nd element is csv fields 
20 $csv_lists = array (
21   array(',', 'water,fruit'),
22   array(' ', 'water fruit'),
23   array(' ', '"water" "fruit"'),
24   array('\\', 'water\\"fruit"\\"air"'),
25   array('\\', '"water"\\"fruit"\\"""'),
28 $filename = dirname(__FILE__) . '/fgetcsv_variation30.tmp';
29 @unlink($filename);
31 $file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
32                      "a+", "a+b", "a+t",
33                      "w+", "w+b", "w+t",
34                      "x+", "x+b", "x+t"); 
36 $loop_counter = 1;
37 foreach ($csv_lists as $csv_list) {
38   for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
39     // create the file and add the content with has csv fields
40     if ( strstr($file_modes[$mode_counter], "r") ) {
41       $file_handle = fopen($filename, "w");
42     } else {
43       $file_handle = fopen($filename, $file_modes[$mode_counter] );
44     }
45     if ( !$file_handle ) {
46       echo "Error: failed to create file $filename!\n";
47       exit();
48     }
49     $delimiter = $csv_list[0];
50     $csv_field = $csv_list[1];
52     fwrite($file_handle, $csv_field . "\n");
53     // write another line of text and a blank line
54     // this will be used to test, if the fgetcsv() read more than a line and its
55     // working when only a blan line is read
56     fwrite($file_handle, "This is line of text without csv fields\n");
57     fwrite($file_handle, "\n"); // blank line
59     // close the file if the mode to be used is read mode  and re-open using read mode
60     if ( strstr($file_modes[$mode_counter], "r" ) ) {
61       fclose($file_handle);
62       $file_handle = fopen($filename, $file_modes[$mode_counter]);
63     } 
64       
65     echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n"; 
67     // set the file pointer to EOF
68     var_dump( fseek($file_handle, 0, SEEK_END) );
70     // call fgetcsv() to parse csv fields
72     // now file pointer should point to end of the file, try reading again 
73     var_dump( feof($file_handle) );
74     var_dump( fgetcsv($file_handle, 1024) ); 
75     // check the file pointer position and if eof
76     var_dump( ftell($file_handle) );
77     var_dump( feof($file_handle) );
78     // close the file
79     fclose($file_handle);
80     //delete file
81     unlink($filename);
82   } //end of mode loop 
83 } // end of foreach
85 echo "Done\n";
87 --EXPECTF--
88 *** Testing fgetcsv() : with file handle and length arguments, file pointer pointing at end of file ***
90 -- Testing fgetcsv() with file opened using r mode --
91 int(0)
92 bool(false)
93 bool(false)
94 int(53)
95 bool(true)
97 -- Testing fgetcsv() with file opened using rb mode --
98 int(0)
99 bool(false)
100 bool(false)
101 int(53)
102 bool(true)
104 -- Testing fgetcsv() with file opened using rt mode --
105 int(0)
106 bool(false)
107 bool(false)
108 int(%d)
109 bool(true)
111 -- Testing fgetcsv() with file opened using r+ mode --
112 int(0)
113 bool(false)
114 bool(false)
115 int(53)
116 bool(true)
118 -- Testing fgetcsv() with file opened using r+b mode --
119 int(0)
120 bool(false)
121 bool(false)
122 int(53)
123 bool(true)
125 -- Testing fgetcsv() with file opened using r+t mode --
126 int(0)
127 bool(false)
128 bool(false)
129 int(%d)
130 bool(true)
132 -- Testing fgetcsv() with file opened using a+ mode --
133 int(0)
134 bool(false)
135 bool(false)
136 int(53)
137 bool(true)
139 -- Testing fgetcsv() with file opened using a+b mode --
140 int(0)
141 bool(false)
142 bool(false)
143 int(53)
144 bool(true)
146 -- Testing fgetcsv() with file opened using a+t mode --
147 int(0)
148 bool(false)
149 bool(false)
150 int(%d)
151 bool(true)
153 -- Testing fgetcsv() with file opened using w+ mode --
154 int(0)
155 bool(false)
156 bool(false)
157 int(53)
158 bool(true)
160 -- Testing fgetcsv() with file opened using w+b mode --
161 int(0)
162 bool(false)
163 bool(false)
164 int(53)
165 bool(true)
167 -- Testing fgetcsv() with file opened using w+t mode --
168 int(0)
169 bool(false)
170 bool(false)
171 int(%d)
172 bool(true)
174 -- Testing fgetcsv() with file opened using x+ mode --
175 int(0)
176 bool(false)
177 bool(false)
178 int(53)
179 bool(true)
181 -- Testing fgetcsv() with file opened using x+b mode --
182 int(0)
183 bool(false)
184 bool(false)
185 int(53)
186 bool(true)
188 -- Testing fgetcsv() with file opened using x+t mode --
189 int(0)
190 bool(false)
191 bool(false)
192 int(%d)
193 bool(true)
195 -- Testing fgetcsv() with file opened using r mode --
196 int(0)
197 bool(false)
198 bool(false)
199 int(53)
200 bool(true)
202 -- Testing fgetcsv() with file opened using rb mode --
203 int(0)
204 bool(false)
205 bool(false)
206 int(53)
207 bool(true)
209 -- Testing fgetcsv() with file opened using rt mode --
210 int(0)
211 bool(false)
212 bool(false)
213 int(%d)
214 bool(true)
216 -- Testing fgetcsv() with file opened using r+ mode --
217 int(0)
218 bool(false)
219 bool(false)
220 int(53)
221 bool(true)
223 -- Testing fgetcsv() with file opened using r+b mode --
224 int(0)
225 bool(false)
226 bool(false)
227 int(53)
228 bool(true)
230 -- Testing fgetcsv() with file opened using r+t mode --
231 int(0)
232 bool(false)
233 bool(false)
234 int(%d)
235 bool(true)
237 -- Testing fgetcsv() with file opened using a+ mode --
238 int(0)
239 bool(false)
240 bool(false)
241 int(53)
242 bool(true)
244 -- Testing fgetcsv() with file opened using a+b mode --
245 int(0)
246 bool(false)
247 bool(false)
248 int(53)
249 bool(true)
251 -- Testing fgetcsv() with file opened using a+t mode --
252 int(0)
253 bool(false)
254 bool(false)
255 int(%d)
256 bool(true)
258 -- Testing fgetcsv() with file opened using w+ mode --
259 int(0)
260 bool(false)
261 bool(false)
262 int(53)
263 bool(true)
265 -- Testing fgetcsv() with file opened using w+b mode --
266 int(0)
267 bool(false)
268 bool(false)
269 int(53)
270 bool(true)
272 -- Testing fgetcsv() with file opened using w+t mode --
273 int(0)
274 bool(false)
275 bool(false)
276 int(%d)
277 bool(true)
279 -- Testing fgetcsv() with file opened using x+ mode --
280 int(0)
281 bool(false)
282 bool(false)
283 int(53)
284 bool(true)
286 -- Testing fgetcsv() with file opened using x+b mode --
287 int(0)
288 bool(false)
289 bool(false)
290 int(53)
291 bool(true)
293 -- Testing fgetcsv() with file opened using x+t mode --
294 int(0)
295 bool(false)
296 bool(false)
297 int(%d)
298 bool(true)
300 -- Testing fgetcsv() with file opened using r mode --
301 int(0)
302 bool(false)
303 bool(false)
304 int(57)
305 bool(true)
307 -- Testing fgetcsv() with file opened using rb mode --
308 int(0)
309 bool(false)
310 bool(false)
311 int(57)
312 bool(true)
314 -- Testing fgetcsv() with file opened using rt mode --
315 int(0)
316 bool(false)
317 bool(false)
318 int(%d)
319 bool(true)
321 -- Testing fgetcsv() with file opened using r+ mode --
322 int(0)
323 bool(false)
324 bool(false)
325 int(57)
326 bool(true)
328 -- Testing fgetcsv() with file opened using r+b mode --
329 int(0)
330 bool(false)
331 bool(false)
332 int(57)
333 bool(true)
335 -- Testing fgetcsv() with file opened using r+t mode --
336 int(0)
337 bool(false)
338 bool(false)
339 int(%d)
340 bool(true)
342 -- Testing fgetcsv() with file opened using a+ mode --
343 int(0)
344 bool(false)
345 bool(false)
346 int(57)
347 bool(true)
349 -- Testing fgetcsv() with file opened using a+b mode --
350 int(0)
351 bool(false)
352 bool(false)
353 int(57)
354 bool(true)
356 -- Testing fgetcsv() with file opened using a+t mode --
357 int(0)
358 bool(false)
359 bool(false)
360 int(%d)
361 bool(true)
363 -- Testing fgetcsv() with file opened using w+ mode --
364 int(0)
365 bool(false)
366 bool(false)
367 int(57)
368 bool(true)
370 -- Testing fgetcsv() with file opened using w+b mode --
371 int(0)
372 bool(false)
373 bool(false)
374 int(57)
375 bool(true)
377 -- Testing fgetcsv() with file opened using w+t mode --
378 int(0)
379 bool(false)
380 bool(false)
381 int(%d)
382 bool(true)
384 -- Testing fgetcsv() with file opened using x+ mode --
385 int(0)
386 bool(false)
387 bool(false)
388 int(57)
389 bool(true)
391 -- Testing fgetcsv() with file opened using x+b mode --
392 int(0)
393 bool(false)
394 bool(false)
395 int(57)
396 bool(true)
398 -- Testing fgetcsv() with file opened using x+t mode --
399 int(0)
400 bool(false)
401 bool(false)
402 int(%d)
403 bool(true)
405 -- Testing fgetcsv() with file opened using r mode --
406 int(0)
407 bool(false)
408 bool(false)
409 int(61)
410 bool(true)
412 -- Testing fgetcsv() with file opened using rb mode --
413 int(0)
414 bool(false)
415 bool(false)
416 int(61)
417 bool(true)
419 -- Testing fgetcsv() with file opened using rt mode --
420 int(0)
421 bool(false)
422 bool(false)
423 int(%d)
424 bool(true)
426 -- Testing fgetcsv() with file opened using r+ mode --
427 int(0)
428 bool(false)
429 bool(false)
430 int(61)
431 bool(true)
433 -- Testing fgetcsv() with file opened using r+b mode --
434 int(0)
435 bool(false)
436 bool(false)
437 int(61)
438 bool(true)
440 -- Testing fgetcsv() with file opened using r+t mode --
441 int(0)
442 bool(false)
443 bool(false)
444 int(%d)
445 bool(true)
447 -- Testing fgetcsv() with file opened using a+ mode --
448 int(0)
449 bool(false)
450 bool(false)
451 int(61)
452 bool(true)
454 -- Testing fgetcsv() with file opened using a+b mode --
455 int(0)
456 bool(false)
457 bool(false)
458 int(61)
459 bool(true)
461 -- Testing fgetcsv() with file opened using a+t mode --
462 int(0)
463 bool(false)
464 bool(false)
465 int(%d)
466 bool(true)
468 -- Testing fgetcsv() with file opened using w+ mode --
469 int(0)
470 bool(false)
471 bool(false)
472 int(61)
473 bool(true)
475 -- Testing fgetcsv() with file opened using w+b mode --
476 int(0)
477 bool(false)
478 bool(false)
479 int(61)
480 bool(true)
482 -- Testing fgetcsv() with file opened using w+t mode --
483 int(0)
484 bool(false)
485 bool(false)
486 int(%d)
487 bool(true)
489 -- Testing fgetcsv() with file opened using x+ mode --
490 int(0)
491 bool(false)
492 bool(false)
493 int(61)
494 bool(true)
496 -- Testing fgetcsv() with file opened using x+b mode --
497 int(0)
498 bool(false)
499 bool(false)
500 int(61)
501 bool(true)
503 -- Testing fgetcsv() with file opened using x+t mode --
504 int(0)
505 bool(false)
506 bool(false)
507 int(%d)
508 bool(true)
510 -- Testing fgetcsv() with file opened using r mode --
511 int(0)
512 bool(false)
513 bool(false)
514 int(61)
515 bool(true)
517 -- Testing fgetcsv() with file opened using rb mode --
518 int(0)
519 bool(false)
520 bool(false)
521 int(61)
522 bool(true)
524 -- Testing fgetcsv() with file opened using rt mode --
525 int(0)
526 bool(false)
527 bool(false)
528 int(%d)
529 bool(true)
531 -- Testing fgetcsv() with file opened using r+ mode --
532 int(0)
533 bool(false)
534 bool(false)
535 int(61)
536 bool(true)
538 -- Testing fgetcsv() with file opened using r+b mode --
539 int(0)
540 bool(false)
541 bool(false)
542 int(61)
543 bool(true)
545 -- Testing fgetcsv() with file opened using r+t mode --
546 int(0)
547 bool(false)
548 bool(false)
549 int(%d)
550 bool(true)
552 -- Testing fgetcsv() with file opened using a+ mode --
553 int(0)
554 bool(false)
555 bool(false)
556 int(61)
557 bool(true)
559 -- Testing fgetcsv() with file opened using a+b mode --
560 int(0)
561 bool(false)
562 bool(false)
563 int(61)
564 bool(true)
566 -- Testing fgetcsv() with file opened using a+t mode --
567 int(0)
568 bool(false)
569 bool(false)
570 int(%d)
571 bool(true)
573 -- Testing fgetcsv() with file opened using w+ mode --
574 int(0)
575 bool(false)
576 bool(false)
577 int(61)
578 bool(true)
580 -- Testing fgetcsv() with file opened using w+b mode --
581 int(0)
582 bool(false)
583 bool(false)
584 int(61)
585 bool(true)
587 -- Testing fgetcsv() with file opened using w+t mode --
588 int(0)
589 bool(false)
590 bool(false)
591 int(%d)
592 bool(true)
594 -- Testing fgetcsv() with file opened using x+ mode --
595 int(0)
596 bool(false)
597 bool(false)
598 int(61)
599 bool(true)
601 -- Testing fgetcsv() with file opened using x+b mode --
602 int(0)
603 bool(false)
604 bool(false)
605 int(61)
606 bool(true)
608 -- Testing fgetcsv() with file opened using x+t mode --
609 int(0)
610 bool(false)
611 bool(false)
612 int(%d)
613 bool(true)
614 Done