1--TEST--
2Test fgetcsv() : usage variations - with different enclosure but same delimiter
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*/
9
10/* Testing fgetcsv() by reading from a file when different enclosure that is not
11   present in the data being read and delimiter which is present in the data  */
12
13echo "*** Testing fgetcsv() : with different enclosure but same delimiter char ***\n";
14
15/* the array is with three elements in it. Each element should be read as
16   1st element is delimiter, 2nd element is enclosure
17   and 3rd element is csv fields
18*/
19$csv_lists = array (
20  array(',', '"', '"water",fruit'),
21  array(',', '"', '"water","fruit"'),
22  array(' ', '^', '^water^ ^fruit^'),
23  array(':', '&', '&water&:&fruit&'),
24  array('=', '=', '=water===fruit='),
25  array('-', '-', '-water--fruit-air'),
26  array('-', '-', '-water---fruit---air-'),
27  array(':', '&', '&""""&:&"&:,:":&,&:,,,,')
28);
29
30$filename = dirname(__FILE__) . '/fgetcsv_variation11.tmp';
31@unlink($filename);
32
33$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
34                     "a+", "a+b", "a+t",
35                     "w+", "w+b", "w+t",
36                     "x+", "x+b", "x+t");
37
38$loop_counter = 1;
39foreach ($csv_lists as $csv_list) {
40  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
41    // create the file and add the content with has csv fields
42    if ( strstr($file_modes[$mode_counter], "r") ) {
43      $file_handle = fopen($filename, "w");
44    } else {
45      $file_handle = fopen($filename, $file_modes[$mode_counter] );
46    }
47    if ( !$file_handle ) {
48      echo "Error: failed to create file $filename!\n";
49      exit();
50    }
51    $delimiter = $csv_list[0];
52    $enclosure = $csv_list[1];
53    $csv_field = $csv_list[2];
54    fwrite($file_handle, $csv_field . "\n");
55    // write another line of text and a blank line
56    // this will be used to test, if the fgetcsv() read more than a line and its
57    // working when only a blan line is read
58    fwrite($file_handle, "This is line of text without csv fields\n");
59    fwrite($file_handle, "\n"); // blank line
60
61    // close the file if the mode to be used is read mode  and re-open using read mode
62    // else rewind the file pointer to beginning of the file
63    if ( strstr($file_modes[$mode_counter], "r" ) ) {
64      fclose($file_handle);
65      $file_handle = fopen($filename, $file_modes[$mode_counter]);
66    } else {
67      // rewind the file pointer to bof
68      rewind($file_handle);
69    }
70
71    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n";
72
73    // call fgetcsv() to parse csv fields
74
75
76    // use different delimiter but same enclosure char
77    fseek($file_handle, 0, SEEK_SET);
78    $enc = "+";
79    var_dump( fgetcsv($file_handle, 1024, $delimiter, $enc) );
80    // check the file pointer position and if eof
81    var_dump( ftell($file_handle) );
82    var_dump( feof($file_handle) );
83
84    // close the file
85    fclose($file_handle);
86    //delete file
87    unlink($filename);
88  } //end of mode loop
89} // end of foreach
90
91echo "Done\n";
92?>
93--EXPECT--
94*** Testing fgetcsv() : with different enclosure but same delimiter char ***
95
96-- Testing fgetcsv() with file opened using r mode --
97array(2) {
98  [0]=>
99  string(7) ""water""
100  [1]=>
101  string(5) "fruit"
102}
103int(14)
104bool(false)
105
106-- Testing fgetcsv() with file opened using rb mode --
107array(2) {
108  [0]=>
109  string(7) ""water""
110  [1]=>
111  string(5) "fruit"
112}
113int(14)
114bool(false)
115
116-- Testing fgetcsv() with file opened using rt mode --
117array(2) {
118  [0]=>
119  string(7) ""water""
120  [1]=>
121  string(5) "fruit"
122}
123int(14)
124bool(false)
125
126-- Testing fgetcsv() with file opened using r+ mode --
127array(2) {
128  [0]=>
129  string(7) ""water""
130  [1]=>
131  string(5) "fruit"
132}
133int(14)
134bool(false)
135
136-- Testing fgetcsv() with file opened using r+b mode --
137array(2) {
138  [0]=>
139  string(7) ""water""
140  [1]=>
141  string(5) "fruit"
142}
143int(14)
144bool(false)
145
146-- Testing fgetcsv() with file opened using r+t mode --
147array(2) {
148  [0]=>
149  string(7) ""water""
150  [1]=>
151  string(5) "fruit"
152}
153int(14)
154bool(false)
155
156-- Testing fgetcsv() with file opened using a+ mode --
157array(2) {
158  [0]=>
159  string(7) ""water""
160  [1]=>
161  string(5) "fruit"
162}
163int(14)
164bool(false)
165
166-- Testing fgetcsv() with file opened using a+b mode --
167array(2) {
168  [0]=>
169  string(7) ""water""
170  [1]=>
171  string(5) "fruit"
172}
173int(14)
174bool(false)
175
176-- Testing fgetcsv() with file opened using a+t mode --
177array(2) {
178  [0]=>
179  string(7) ""water""
180  [1]=>
181  string(5) "fruit"
182}
183int(14)
184bool(false)
185
186-- Testing fgetcsv() with file opened using w+ mode --
187array(2) {
188  [0]=>
189  string(7) ""water""
190  [1]=>
191  string(5) "fruit"
192}
193int(14)
194bool(false)
195
196-- Testing fgetcsv() with file opened using w+b mode --
197array(2) {
198  [0]=>
199  string(7) ""water""
200  [1]=>
201  string(5) "fruit"
202}
203int(14)
204bool(false)
205
206-- Testing fgetcsv() with file opened using w+t mode --
207array(2) {
208  [0]=>
209  string(7) ""water""
210  [1]=>
211  string(5) "fruit"
212}
213int(14)
214bool(false)
215
216-- Testing fgetcsv() with file opened using x+ mode --
217array(2) {
218  [0]=>
219  string(7) ""water""
220  [1]=>
221  string(5) "fruit"
222}
223int(14)
224bool(false)
225
226-- Testing fgetcsv() with file opened using x+b mode --
227array(2) {
228  [0]=>
229  string(7) ""water""
230  [1]=>
231  string(5) "fruit"
232}
233int(14)
234bool(false)
235
236-- Testing fgetcsv() with file opened using x+t mode --
237array(2) {
238  [0]=>
239  string(7) ""water""
240  [1]=>
241  string(5) "fruit"
242}
243int(14)
244bool(false)
245
246-- Testing fgetcsv() with file opened using r mode --
247array(2) {
248  [0]=>
249  string(7) ""water""
250  [1]=>
251  string(7) ""fruit""
252}
253int(16)
254bool(false)
255
256-- Testing fgetcsv() with file opened using rb mode --
257array(2) {
258  [0]=>
259  string(7) ""water""
260  [1]=>
261  string(7) ""fruit""
262}
263int(16)
264bool(false)
265
266-- Testing fgetcsv() with file opened using rt mode --
267array(2) {
268  [0]=>
269  string(7) ""water""
270  [1]=>
271  string(7) ""fruit""
272}
273int(16)
274bool(false)
275
276-- Testing fgetcsv() with file opened using r+ mode --
277array(2) {
278  [0]=>
279  string(7) ""water""
280  [1]=>
281  string(7) ""fruit""
282}
283int(16)
284bool(false)
285
286-- Testing fgetcsv() with file opened using r+b mode --
287array(2) {
288  [0]=>
289  string(7) ""water""
290  [1]=>
291  string(7) ""fruit""
292}
293int(16)
294bool(false)
295
296-- Testing fgetcsv() with file opened using r+t mode --
297array(2) {
298  [0]=>
299  string(7) ""water""
300  [1]=>
301  string(7) ""fruit""
302}
303int(16)
304bool(false)
305
306-- Testing fgetcsv() with file opened using a+ mode --
307array(2) {
308  [0]=>
309  string(7) ""water""
310  [1]=>
311  string(7) ""fruit""
312}
313int(16)
314bool(false)
315
316-- Testing fgetcsv() with file opened using a+b mode --
317array(2) {
318  [0]=>
319  string(7) ""water""
320  [1]=>
321  string(7) ""fruit""
322}
323int(16)
324bool(false)
325
326-- Testing fgetcsv() with file opened using a+t mode --
327array(2) {
328  [0]=>
329  string(7) ""water""
330  [1]=>
331  string(7) ""fruit""
332}
333int(16)
334bool(false)
335
336-- Testing fgetcsv() with file opened using w+ mode --
337array(2) {
338  [0]=>
339  string(7) ""water""
340  [1]=>
341  string(7) ""fruit""
342}
343int(16)
344bool(false)
345
346-- Testing fgetcsv() with file opened using w+b mode --
347array(2) {
348  [0]=>
349  string(7) ""water""
350  [1]=>
351  string(7) ""fruit""
352}
353int(16)
354bool(false)
355
356-- Testing fgetcsv() with file opened using w+t mode --
357array(2) {
358  [0]=>
359  string(7) ""water""
360  [1]=>
361  string(7) ""fruit""
362}
363int(16)
364bool(false)
365
366-- Testing fgetcsv() with file opened using x+ mode --
367array(2) {
368  [0]=>
369  string(7) ""water""
370  [1]=>
371  string(7) ""fruit""
372}
373int(16)
374bool(false)
375
376-- Testing fgetcsv() with file opened using x+b mode --
377array(2) {
378  [0]=>
379  string(7) ""water""
380  [1]=>
381  string(7) ""fruit""
382}
383int(16)
384bool(false)
385
386-- Testing fgetcsv() with file opened using x+t mode --
387array(2) {
388  [0]=>
389  string(7) ""water""
390  [1]=>
391  string(7) ""fruit""
392}
393int(16)
394bool(false)
395
396-- Testing fgetcsv() with file opened using r mode --
397array(2) {
398  [0]=>
399  string(7) "^water^"
400  [1]=>
401  string(7) "^fruit^"
402}
403int(16)
404bool(false)
405
406-- Testing fgetcsv() with file opened using rb mode --
407array(2) {
408  [0]=>
409  string(7) "^water^"
410  [1]=>
411  string(7) "^fruit^"
412}
413int(16)
414bool(false)
415
416-- Testing fgetcsv() with file opened using rt mode --
417array(2) {
418  [0]=>
419  string(7) "^water^"
420  [1]=>
421  string(7) "^fruit^"
422}
423int(16)
424bool(false)
425
426-- Testing fgetcsv() with file opened using r+ mode --
427array(2) {
428  [0]=>
429  string(7) "^water^"
430  [1]=>
431  string(7) "^fruit^"
432}
433int(16)
434bool(false)
435
436-- Testing fgetcsv() with file opened using r+b mode --
437array(2) {
438  [0]=>
439  string(7) "^water^"
440  [1]=>
441  string(7) "^fruit^"
442}
443int(16)
444bool(false)
445
446-- Testing fgetcsv() with file opened using r+t mode --
447array(2) {
448  [0]=>
449  string(7) "^water^"
450  [1]=>
451  string(7) "^fruit^"
452}
453int(16)
454bool(false)
455
456-- Testing fgetcsv() with file opened using a+ mode --
457array(2) {
458  [0]=>
459  string(7) "^water^"
460  [1]=>
461  string(7) "^fruit^"
462}
463int(16)
464bool(false)
465
466-- Testing fgetcsv() with file opened using a+b mode --
467array(2) {
468  [0]=>
469  string(7) "^water^"
470  [1]=>
471  string(7) "^fruit^"
472}
473int(16)
474bool(false)
475
476-- Testing fgetcsv() with file opened using a+t mode --
477array(2) {
478  [0]=>
479  string(7) "^water^"
480  [1]=>
481  string(7) "^fruit^"
482}
483int(16)
484bool(false)
485
486-- Testing fgetcsv() with file opened using w+ mode --
487array(2) {
488  [0]=>
489  string(7) "^water^"
490  [1]=>
491  string(7) "^fruit^"
492}
493int(16)
494bool(false)
495
496-- Testing fgetcsv() with file opened using w+b mode --
497array(2) {
498  [0]=>
499  string(7) "^water^"
500  [1]=>
501  string(7) "^fruit^"
502}
503int(16)
504bool(false)
505
506-- Testing fgetcsv() with file opened using w+t mode --
507array(2) {
508  [0]=>
509  string(7) "^water^"
510  [1]=>
511  string(7) "^fruit^"
512}
513int(16)
514bool(false)
515
516-- Testing fgetcsv() with file opened using x+ mode --
517array(2) {
518  [0]=>
519  string(7) "^water^"
520  [1]=>
521  string(7) "^fruit^"
522}
523int(16)
524bool(false)
525
526-- Testing fgetcsv() with file opened using x+b mode --
527array(2) {
528  [0]=>
529  string(7) "^water^"
530  [1]=>
531  string(7) "^fruit^"
532}
533int(16)
534bool(false)
535
536-- Testing fgetcsv() with file opened using x+t mode --
537array(2) {
538  [0]=>
539  string(7) "^water^"
540  [1]=>
541  string(7) "^fruit^"
542}
543int(16)
544bool(false)
545
546-- Testing fgetcsv() with file opened using r mode --
547array(2) {
548  [0]=>
549  string(7) "&water&"
550  [1]=>
551  string(7) "&fruit&"
552}
553int(16)
554bool(false)
555
556-- Testing fgetcsv() with file opened using rb mode --
557array(2) {
558  [0]=>
559  string(7) "&water&"
560  [1]=>
561  string(7) "&fruit&"
562}
563int(16)
564bool(false)
565
566-- Testing fgetcsv() with file opened using rt mode --
567array(2) {
568  [0]=>
569  string(7) "&water&"
570  [1]=>
571  string(7) "&fruit&"
572}
573int(16)
574bool(false)
575
576-- Testing fgetcsv() with file opened using r+ mode --
577array(2) {
578  [0]=>
579  string(7) "&water&"
580  [1]=>
581  string(7) "&fruit&"
582}
583int(16)
584bool(false)
585
586-- Testing fgetcsv() with file opened using r+b mode --
587array(2) {
588  [0]=>
589  string(7) "&water&"
590  [1]=>
591  string(7) "&fruit&"
592}
593int(16)
594bool(false)
595
596-- Testing fgetcsv() with file opened using r+t mode --
597array(2) {
598  [0]=>
599  string(7) "&water&"
600  [1]=>
601  string(7) "&fruit&"
602}
603int(16)
604bool(false)
605
606-- Testing fgetcsv() with file opened using a+ mode --
607array(2) {
608  [0]=>
609  string(7) "&water&"
610  [1]=>
611  string(7) "&fruit&"
612}
613int(16)
614bool(false)
615
616-- Testing fgetcsv() with file opened using a+b mode --
617array(2) {
618  [0]=>
619  string(7) "&water&"
620  [1]=>
621  string(7) "&fruit&"
622}
623int(16)
624bool(false)
625
626-- Testing fgetcsv() with file opened using a+t mode --
627array(2) {
628  [0]=>
629  string(7) "&water&"
630  [1]=>
631  string(7) "&fruit&"
632}
633int(16)
634bool(false)
635
636-- Testing fgetcsv() with file opened using w+ mode --
637array(2) {
638  [0]=>
639  string(7) "&water&"
640  [1]=>
641  string(7) "&fruit&"
642}
643int(16)
644bool(false)
645
646-- Testing fgetcsv() with file opened using w+b mode --
647array(2) {
648  [0]=>
649  string(7) "&water&"
650  [1]=>
651  string(7) "&fruit&"
652}
653int(16)
654bool(false)
655
656-- Testing fgetcsv() with file opened using w+t mode --
657array(2) {
658  [0]=>
659  string(7) "&water&"
660  [1]=>
661  string(7) "&fruit&"
662}
663int(16)
664bool(false)
665
666-- Testing fgetcsv() with file opened using x+ mode --
667array(2) {
668  [0]=>
669  string(7) "&water&"
670  [1]=>
671  string(7) "&fruit&"
672}
673int(16)
674bool(false)
675
676-- Testing fgetcsv() with file opened using x+b mode --
677array(2) {
678  [0]=>
679  string(7) "&water&"
680  [1]=>
681  string(7) "&fruit&"
682}
683int(16)
684bool(false)
685
686-- Testing fgetcsv() with file opened using x+t mode --
687array(2) {
688  [0]=>
689  string(7) "&water&"
690  [1]=>
691  string(7) "&fruit&"
692}
693int(16)
694bool(false)
695
696-- Testing fgetcsv() with file opened using r mode --
697array(6) {
698  [0]=>
699  string(0) ""
700  [1]=>
701  string(5) "water"
702  [2]=>
703  string(0) ""
704  [3]=>
705  string(0) ""
706  [4]=>
707  string(5) "fruit"
708  [5]=>
709  string(0) ""
710}
711int(16)
712bool(false)
713
714-- Testing fgetcsv() with file opened using rb mode --
715array(6) {
716  [0]=>
717  string(0) ""
718  [1]=>
719  string(5) "water"
720  [2]=>
721  string(0) ""
722  [3]=>
723  string(0) ""
724  [4]=>
725  string(5) "fruit"
726  [5]=>
727  string(0) ""
728}
729int(16)
730bool(false)
731
732-- Testing fgetcsv() with file opened using rt mode --
733array(6) {
734  [0]=>
735  string(0) ""
736  [1]=>
737  string(5) "water"
738  [2]=>
739  string(0) ""
740  [3]=>
741  string(0) ""
742  [4]=>
743  string(5) "fruit"
744  [5]=>
745  string(0) ""
746}
747int(16)
748bool(false)
749
750-- Testing fgetcsv() with file opened using r+ mode --
751array(6) {
752  [0]=>
753  string(0) ""
754  [1]=>
755  string(5) "water"
756  [2]=>
757  string(0) ""
758  [3]=>
759  string(0) ""
760  [4]=>
761  string(5) "fruit"
762  [5]=>
763  string(0) ""
764}
765int(16)
766bool(false)
767
768-- Testing fgetcsv() with file opened using r+b mode --
769array(6) {
770  [0]=>
771  string(0) ""
772  [1]=>
773  string(5) "water"
774  [2]=>
775  string(0) ""
776  [3]=>
777  string(0) ""
778  [4]=>
779  string(5) "fruit"
780  [5]=>
781  string(0) ""
782}
783int(16)
784bool(false)
785
786-- Testing fgetcsv() with file opened using r+t mode --
787array(6) {
788  [0]=>
789  string(0) ""
790  [1]=>
791  string(5) "water"
792  [2]=>
793  string(0) ""
794  [3]=>
795  string(0) ""
796  [4]=>
797  string(5) "fruit"
798  [5]=>
799  string(0) ""
800}
801int(16)
802bool(false)
803
804-- Testing fgetcsv() with file opened using a+ mode --
805array(6) {
806  [0]=>
807  string(0) ""
808  [1]=>
809  string(5) "water"
810  [2]=>
811  string(0) ""
812  [3]=>
813  string(0) ""
814  [4]=>
815  string(5) "fruit"
816  [5]=>
817  string(0) ""
818}
819int(16)
820bool(false)
821
822-- Testing fgetcsv() with file opened using a+b mode --
823array(6) {
824  [0]=>
825  string(0) ""
826  [1]=>
827  string(5) "water"
828  [2]=>
829  string(0) ""
830  [3]=>
831  string(0) ""
832  [4]=>
833  string(5) "fruit"
834  [5]=>
835  string(0) ""
836}
837int(16)
838bool(false)
839
840-- Testing fgetcsv() with file opened using a+t mode --
841array(6) {
842  [0]=>
843  string(0) ""
844  [1]=>
845  string(5) "water"
846  [2]=>
847  string(0) ""
848  [3]=>
849  string(0) ""
850  [4]=>
851  string(5) "fruit"
852  [5]=>
853  string(0) ""
854}
855int(16)
856bool(false)
857
858-- Testing fgetcsv() with file opened using w+ mode --
859array(6) {
860  [0]=>
861  string(0) ""
862  [1]=>
863  string(5) "water"
864  [2]=>
865  string(0) ""
866  [3]=>
867  string(0) ""
868  [4]=>
869  string(5) "fruit"
870  [5]=>
871  string(0) ""
872}
873int(16)
874bool(false)
875
876-- Testing fgetcsv() with file opened using w+b mode --
877array(6) {
878  [0]=>
879  string(0) ""
880  [1]=>
881  string(5) "water"
882  [2]=>
883  string(0) ""
884  [3]=>
885  string(0) ""
886  [4]=>
887  string(5) "fruit"
888  [5]=>
889  string(0) ""
890}
891int(16)
892bool(false)
893
894-- Testing fgetcsv() with file opened using w+t mode --
895array(6) {
896  [0]=>
897  string(0) ""
898  [1]=>
899  string(5) "water"
900  [2]=>
901  string(0) ""
902  [3]=>
903  string(0) ""
904  [4]=>
905  string(5) "fruit"
906  [5]=>
907  string(0) ""
908}
909int(16)
910bool(false)
911
912-- Testing fgetcsv() with file opened using x+ mode --
913array(6) {
914  [0]=>
915  string(0) ""
916  [1]=>
917  string(5) "water"
918  [2]=>
919  string(0) ""
920  [3]=>
921  string(0) ""
922  [4]=>
923  string(5) "fruit"
924  [5]=>
925  string(0) ""
926}
927int(16)
928bool(false)
929
930-- Testing fgetcsv() with file opened using x+b mode --
931array(6) {
932  [0]=>
933  string(0) ""
934  [1]=>
935  string(5) "water"
936  [2]=>
937  string(0) ""
938  [3]=>
939  string(0) ""
940  [4]=>
941  string(5) "fruit"
942  [5]=>
943  string(0) ""
944}
945int(16)
946bool(false)
947
948-- Testing fgetcsv() with file opened using x+t mode --
949array(6) {
950  [0]=>
951  string(0) ""
952  [1]=>
953  string(5) "water"
954  [2]=>
955  string(0) ""
956  [3]=>
957  string(0) ""
958  [4]=>
959  string(5) "fruit"
960  [5]=>
961  string(0) ""
962}
963int(16)
964bool(false)
965
966-- Testing fgetcsv() with file opened using r mode --
967array(5) {
968  [0]=>
969  string(0) ""
970  [1]=>
971  string(5) "water"
972  [2]=>
973  string(0) ""
974  [3]=>
975  string(5) "fruit"
976  [4]=>
977  string(3) "air"
978}
979int(18)
980bool(false)
981
982-- Testing fgetcsv() with file opened using rb mode --
983array(5) {
984  [0]=>
985  string(0) ""
986  [1]=>
987  string(5) "water"
988  [2]=>
989  string(0) ""
990  [3]=>
991  string(5) "fruit"
992  [4]=>
993  string(3) "air"
994}
995int(18)
996bool(false)
997
998-- Testing fgetcsv() with file opened using rt mode --
999array(5) {
1000  [0]=>
1001  string(0) ""
1002  [1]=>
1003  string(5) "water"
1004  [2]=>
1005  string(0) ""
1006  [3]=>
1007  string(5) "fruit"
1008  [4]=>
1009  string(3) "air"
1010}
1011int(18)
1012bool(false)
1013
1014-- Testing fgetcsv() with file opened using r+ mode --
1015array(5) {
1016  [0]=>
1017  string(0) ""
1018  [1]=>
1019  string(5) "water"
1020  [2]=>
1021  string(0) ""
1022  [3]=>
1023  string(5) "fruit"
1024  [4]=>
1025  string(3) "air"
1026}
1027int(18)
1028bool(false)
1029
1030-- Testing fgetcsv() with file opened using r+b mode --
1031array(5) {
1032  [0]=>
1033  string(0) ""
1034  [1]=>
1035  string(5) "water"
1036  [2]=>
1037  string(0) ""
1038  [3]=>
1039  string(5) "fruit"
1040  [4]=>
1041  string(3) "air"
1042}
1043int(18)
1044bool(false)
1045
1046-- Testing fgetcsv() with file opened using r+t mode --
1047array(5) {
1048  [0]=>
1049  string(0) ""
1050  [1]=>
1051  string(5) "water"
1052  [2]=>
1053  string(0) ""
1054  [3]=>
1055  string(5) "fruit"
1056  [4]=>
1057  string(3) "air"
1058}
1059int(18)
1060bool(false)
1061
1062-- Testing fgetcsv() with file opened using a+ mode --
1063array(5) {
1064  [0]=>
1065  string(0) ""
1066  [1]=>
1067  string(5) "water"
1068  [2]=>
1069  string(0) ""
1070  [3]=>
1071  string(5) "fruit"
1072  [4]=>
1073  string(3) "air"
1074}
1075int(18)
1076bool(false)
1077
1078-- Testing fgetcsv() with file opened using a+b mode --
1079array(5) {
1080  [0]=>
1081  string(0) ""
1082  [1]=>
1083  string(5) "water"
1084  [2]=>
1085  string(0) ""
1086  [3]=>
1087  string(5) "fruit"
1088  [4]=>
1089  string(3) "air"
1090}
1091int(18)
1092bool(false)
1093
1094-- Testing fgetcsv() with file opened using a+t mode --
1095array(5) {
1096  [0]=>
1097  string(0) ""
1098  [1]=>
1099  string(5) "water"
1100  [2]=>
1101  string(0) ""
1102  [3]=>
1103  string(5) "fruit"
1104  [4]=>
1105  string(3) "air"
1106}
1107int(18)
1108bool(false)
1109
1110-- Testing fgetcsv() with file opened using w+ mode --
1111array(5) {
1112  [0]=>
1113  string(0) ""
1114  [1]=>
1115  string(5) "water"
1116  [2]=>
1117  string(0) ""
1118  [3]=>
1119  string(5) "fruit"
1120  [4]=>
1121  string(3) "air"
1122}
1123int(18)
1124bool(false)
1125
1126-- Testing fgetcsv() with file opened using w+b mode --
1127array(5) {
1128  [0]=>
1129  string(0) ""
1130  [1]=>
1131  string(5) "water"
1132  [2]=>
1133  string(0) ""
1134  [3]=>
1135  string(5) "fruit"
1136  [4]=>
1137  string(3) "air"
1138}
1139int(18)
1140bool(false)
1141
1142-- Testing fgetcsv() with file opened using w+t mode --
1143array(5) {
1144  [0]=>
1145  string(0) ""
1146  [1]=>
1147  string(5) "water"
1148  [2]=>
1149  string(0) ""
1150  [3]=>
1151  string(5) "fruit"
1152  [4]=>
1153  string(3) "air"
1154}
1155int(18)
1156bool(false)
1157
1158-- Testing fgetcsv() with file opened using x+ mode --
1159array(5) {
1160  [0]=>
1161  string(0) ""
1162  [1]=>
1163  string(5) "water"
1164  [2]=>
1165  string(0) ""
1166  [3]=>
1167  string(5) "fruit"
1168  [4]=>
1169  string(3) "air"
1170}
1171int(18)
1172bool(false)
1173
1174-- Testing fgetcsv() with file opened using x+b mode --
1175array(5) {
1176  [0]=>
1177  string(0) ""
1178  [1]=>
1179  string(5) "water"
1180  [2]=>
1181  string(0) ""
1182  [3]=>
1183  string(5) "fruit"
1184  [4]=>
1185  string(3) "air"
1186}
1187int(18)
1188bool(false)
1189
1190-- Testing fgetcsv() with file opened using x+t mode --
1191array(5) {
1192  [0]=>
1193  string(0) ""
1194  [1]=>
1195  string(5) "water"
1196  [2]=>
1197  string(0) ""
1198  [3]=>
1199  string(5) "fruit"
1200  [4]=>
1201  string(3) "air"
1202}
1203int(18)
1204bool(false)
1205
1206-- Testing fgetcsv() with file opened using r mode --
1207array(9) {
1208  [0]=>
1209  string(0) ""
1210  [1]=>
1211  string(5) "water"
1212  [2]=>
1213  string(0) ""
1214  [3]=>
1215  string(0) ""
1216  [4]=>
1217  string(5) "fruit"
1218  [5]=>
1219  string(0) ""
1220  [6]=>
1221  string(0) ""
1222  [7]=>
1223  string(3) "air"
1224  [8]=>
1225  string(0) ""
1226}
1227int(22)
1228bool(false)
1229
1230-- Testing fgetcsv() with file opened using rb mode --
1231array(9) {
1232  [0]=>
1233  string(0) ""
1234  [1]=>
1235  string(5) "water"
1236  [2]=>
1237  string(0) ""
1238  [3]=>
1239  string(0) ""
1240  [4]=>
1241  string(5) "fruit"
1242  [5]=>
1243  string(0) ""
1244  [6]=>
1245  string(0) ""
1246  [7]=>
1247  string(3) "air"
1248  [8]=>
1249  string(0) ""
1250}
1251int(22)
1252bool(false)
1253
1254-- Testing fgetcsv() with file opened using rt mode --
1255array(9) {
1256  [0]=>
1257  string(0) ""
1258  [1]=>
1259  string(5) "water"
1260  [2]=>
1261  string(0) ""
1262  [3]=>
1263  string(0) ""
1264  [4]=>
1265  string(5) "fruit"
1266  [5]=>
1267  string(0) ""
1268  [6]=>
1269  string(0) ""
1270  [7]=>
1271  string(3) "air"
1272  [8]=>
1273  string(0) ""
1274}
1275int(22)
1276bool(false)
1277
1278-- Testing fgetcsv() with file opened using r+ mode --
1279array(9) {
1280  [0]=>
1281  string(0) ""
1282  [1]=>
1283  string(5) "water"
1284  [2]=>
1285  string(0) ""
1286  [3]=>
1287  string(0) ""
1288  [4]=>
1289  string(5) "fruit"
1290  [5]=>
1291  string(0) ""
1292  [6]=>
1293  string(0) ""
1294  [7]=>
1295  string(3) "air"
1296  [8]=>
1297  string(0) ""
1298}
1299int(22)
1300bool(false)
1301
1302-- Testing fgetcsv() with file opened using r+b mode --
1303array(9) {
1304  [0]=>
1305  string(0) ""
1306  [1]=>
1307  string(5) "water"
1308  [2]=>
1309  string(0) ""
1310  [3]=>
1311  string(0) ""
1312  [4]=>
1313  string(5) "fruit"
1314  [5]=>
1315  string(0) ""
1316  [6]=>
1317  string(0) ""
1318  [7]=>
1319  string(3) "air"
1320  [8]=>
1321  string(0) ""
1322}
1323int(22)
1324bool(false)
1325
1326-- Testing fgetcsv() with file opened using r+t mode --
1327array(9) {
1328  [0]=>
1329  string(0) ""
1330  [1]=>
1331  string(5) "water"
1332  [2]=>
1333  string(0) ""
1334  [3]=>
1335  string(0) ""
1336  [4]=>
1337  string(5) "fruit"
1338  [5]=>
1339  string(0) ""
1340  [6]=>
1341  string(0) ""
1342  [7]=>
1343  string(3) "air"
1344  [8]=>
1345  string(0) ""
1346}
1347int(22)
1348bool(false)
1349
1350-- Testing fgetcsv() with file opened using a+ mode --
1351array(9) {
1352  [0]=>
1353  string(0) ""
1354  [1]=>
1355  string(5) "water"
1356  [2]=>
1357  string(0) ""
1358  [3]=>
1359  string(0) ""
1360  [4]=>
1361  string(5) "fruit"
1362  [5]=>
1363  string(0) ""
1364  [6]=>
1365  string(0) ""
1366  [7]=>
1367  string(3) "air"
1368  [8]=>
1369  string(0) ""
1370}
1371int(22)
1372bool(false)
1373
1374-- Testing fgetcsv() with file opened using a+b mode --
1375array(9) {
1376  [0]=>
1377  string(0) ""
1378  [1]=>
1379  string(5) "water"
1380  [2]=>
1381  string(0) ""
1382  [3]=>
1383  string(0) ""
1384  [4]=>
1385  string(5) "fruit"
1386  [5]=>
1387  string(0) ""
1388  [6]=>
1389  string(0) ""
1390  [7]=>
1391  string(3) "air"
1392  [8]=>
1393  string(0) ""
1394}
1395int(22)
1396bool(false)
1397
1398-- Testing fgetcsv() with file opened using a+t mode --
1399array(9) {
1400  [0]=>
1401  string(0) ""
1402  [1]=>
1403  string(5) "water"
1404  [2]=>
1405  string(0) ""
1406  [3]=>
1407  string(0) ""
1408  [4]=>
1409  string(5) "fruit"
1410  [5]=>
1411  string(0) ""
1412  [6]=>
1413  string(0) ""
1414  [7]=>
1415  string(3) "air"
1416  [8]=>
1417  string(0) ""
1418}
1419int(22)
1420bool(false)
1421
1422-- Testing fgetcsv() with file opened using w+ mode --
1423array(9) {
1424  [0]=>
1425  string(0) ""
1426  [1]=>
1427  string(5) "water"
1428  [2]=>
1429  string(0) ""
1430  [3]=>
1431  string(0) ""
1432  [4]=>
1433  string(5) "fruit"
1434  [5]=>
1435  string(0) ""
1436  [6]=>
1437  string(0) ""
1438  [7]=>
1439  string(3) "air"
1440  [8]=>
1441  string(0) ""
1442}
1443int(22)
1444bool(false)
1445
1446-- Testing fgetcsv() with file opened using w+b mode --
1447array(9) {
1448  [0]=>
1449  string(0) ""
1450  [1]=>
1451  string(5) "water"
1452  [2]=>
1453  string(0) ""
1454  [3]=>
1455  string(0) ""
1456  [4]=>
1457  string(5) "fruit"
1458  [5]=>
1459  string(0) ""
1460  [6]=>
1461  string(0) ""
1462  [7]=>
1463  string(3) "air"
1464  [8]=>
1465  string(0) ""
1466}
1467int(22)
1468bool(false)
1469
1470-- Testing fgetcsv() with file opened using w+t mode --
1471array(9) {
1472  [0]=>
1473  string(0) ""
1474  [1]=>
1475  string(5) "water"
1476  [2]=>
1477  string(0) ""
1478  [3]=>
1479  string(0) ""
1480  [4]=>
1481  string(5) "fruit"
1482  [5]=>
1483  string(0) ""
1484  [6]=>
1485  string(0) ""
1486  [7]=>
1487  string(3) "air"
1488  [8]=>
1489  string(0) ""
1490}
1491int(22)
1492bool(false)
1493
1494-- Testing fgetcsv() with file opened using x+ mode --
1495array(9) {
1496  [0]=>
1497  string(0) ""
1498  [1]=>
1499  string(5) "water"
1500  [2]=>
1501  string(0) ""
1502  [3]=>
1503  string(0) ""
1504  [4]=>
1505  string(5) "fruit"
1506  [5]=>
1507  string(0) ""
1508  [6]=>
1509  string(0) ""
1510  [7]=>
1511  string(3) "air"
1512  [8]=>
1513  string(0) ""
1514}
1515int(22)
1516bool(false)
1517
1518-- Testing fgetcsv() with file opened using x+b mode --
1519array(9) {
1520  [0]=>
1521  string(0) ""
1522  [1]=>
1523  string(5) "water"
1524  [2]=>
1525  string(0) ""
1526  [3]=>
1527  string(0) ""
1528  [4]=>
1529  string(5) "fruit"
1530  [5]=>
1531  string(0) ""
1532  [6]=>
1533  string(0) ""
1534  [7]=>
1535  string(3) "air"
1536  [8]=>
1537  string(0) ""
1538}
1539int(22)
1540bool(false)
1541
1542-- Testing fgetcsv() with file opened using x+t mode --
1543array(9) {
1544  [0]=>
1545  string(0) ""
1546  [1]=>
1547  string(5) "water"
1548  [2]=>
1549  string(0) ""
1550  [3]=>
1551  string(0) ""
1552  [4]=>
1553  string(5) "fruit"
1554  [5]=>
1555  string(0) ""
1556  [6]=>
1557  string(0) ""
1558  [7]=>
1559  string(3) "air"
1560  [8]=>
1561  string(0) ""
1562}
1563int(22)
1564bool(false)
1565
1566-- Testing fgetcsv() with file opened using r mode --
1567array(6) {
1568  [0]=>
1569  string(6) "&""""&"
1570  [1]=>
1571  string(3) "&"&"
1572  [2]=>
1573  string(1) ","
1574  [3]=>
1575  string(1) """
1576  [4]=>
1577  string(3) "&,&"
1578  [5]=>
1579  string(4) ",,,,"
1580}
1581int(24)
1582bool(false)
1583
1584-- Testing fgetcsv() with file opened using rb mode --
1585array(6) {
1586  [0]=>
1587  string(6) "&""""&"
1588  [1]=>
1589  string(3) "&"&"
1590  [2]=>
1591  string(1) ","
1592  [3]=>
1593  string(1) """
1594  [4]=>
1595  string(3) "&,&"
1596  [5]=>
1597  string(4) ",,,,"
1598}
1599int(24)
1600bool(false)
1601
1602-- Testing fgetcsv() with file opened using rt mode --
1603array(6) {
1604  [0]=>
1605  string(6) "&""""&"
1606  [1]=>
1607  string(3) "&"&"
1608  [2]=>
1609  string(1) ","
1610  [3]=>
1611  string(1) """
1612  [4]=>
1613  string(3) "&,&"
1614  [5]=>
1615  string(4) ",,,,"
1616}
1617int(24)
1618bool(false)
1619
1620-- Testing fgetcsv() with file opened using r+ mode --
1621array(6) {
1622  [0]=>
1623  string(6) "&""""&"
1624  [1]=>
1625  string(3) "&"&"
1626  [2]=>
1627  string(1) ","
1628  [3]=>
1629  string(1) """
1630  [4]=>
1631  string(3) "&,&"
1632  [5]=>
1633  string(4) ",,,,"
1634}
1635int(24)
1636bool(false)
1637
1638-- Testing fgetcsv() with file opened using r+b mode --
1639array(6) {
1640  [0]=>
1641  string(6) "&""""&"
1642  [1]=>
1643  string(3) "&"&"
1644  [2]=>
1645  string(1) ","
1646  [3]=>
1647  string(1) """
1648  [4]=>
1649  string(3) "&,&"
1650  [5]=>
1651  string(4) ",,,,"
1652}
1653int(24)
1654bool(false)
1655
1656-- Testing fgetcsv() with file opened using r+t mode --
1657array(6) {
1658  [0]=>
1659  string(6) "&""""&"
1660  [1]=>
1661  string(3) "&"&"
1662  [2]=>
1663  string(1) ","
1664  [3]=>
1665  string(1) """
1666  [4]=>
1667  string(3) "&,&"
1668  [5]=>
1669  string(4) ",,,,"
1670}
1671int(24)
1672bool(false)
1673
1674-- Testing fgetcsv() with file opened using a+ mode --
1675array(6) {
1676  [0]=>
1677  string(6) "&""""&"
1678  [1]=>
1679  string(3) "&"&"
1680  [2]=>
1681  string(1) ","
1682  [3]=>
1683  string(1) """
1684  [4]=>
1685  string(3) "&,&"
1686  [5]=>
1687  string(4) ",,,,"
1688}
1689int(24)
1690bool(false)
1691
1692-- Testing fgetcsv() with file opened using a+b mode --
1693array(6) {
1694  [0]=>
1695  string(6) "&""""&"
1696  [1]=>
1697  string(3) "&"&"
1698  [2]=>
1699  string(1) ","
1700  [3]=>
1701  string(1) """
1702  [4]=>
1703  string(3) "&,&"
1704  [5]=>
1705  string(4) ",,,,"
1706}
1707int(24)
1708bool(false)
1709
1710-- Testing fgetcsv() with file opened using a+t mode --
1711array(6) {
1712  [0]=>
1713  string(6) "&""""&"
1714  [1]=>
1715  string(3) "&"&"
1716  [2]=>
1717  string(1) ","
1718  [3]=>
1719  string(1) """
1720  [4]=>
1721  string(3) "&,&"
1722  [5]=>
1723  string(4) ",,,,"
1724}
1725int(24)
1726bool(false)
1727
1728-- Testing fgetcsv() with file opened using w+ mode --
1729array(6) {
1730  [0]=>
1731  string(6) "&""""&"
1732  [1]=>
1733  string(3) "&"&"
1734  [2]=>
1735  string(1) ","
1736  [3]=>
1737  string(1) """
1738  [4]=>
1739  string(3) "&,&"
1740  [5]=>
1741  string(4) ",,,,"
1742}
1743int(24)
1744bool(false)
1745
1746-- Testing fgetcsv() with file opened using w+b mode --
1747array(6) {
1748  [0]=>
1749  string(6) "&""""&"
1750  [1]=>
1751  string(3) "&"&"
1752  [2]=>
1753  string(1) ","
1754  [3]=>
1755  string(1) """
1756  [4]=>
1757  string(3) "&,&"
1758  [5]=>
1759  string(4) ",,,,"
1760}
1761int(24)
1762bool(false)
1763
1764-- Testing fgetcsv() with file opened using w+t mode --
1765array(6) {
1766  [0]=>
1767  string(6) "&""""&"
1768  [1]=>
1769  string(3) "&"&"
1770  [2]=>
1771  string(1) ","
1772  [3]=>
1773  string(1) """
1774  [4]=>
1775  string(3) "&,&"
1776  [5]=>
1777  string(4) ",,,,"
1778}
1779int(24)
1780bool(false)
1781
1782-- Testing fgetcsv() with file opened using x+ mode --
1783array(6) {
1784  [0]=>
1785  string(6) "&""""&"
1786  [1]=>
1787  string(3) "&"&"
1788  [2]=>
1789  string(1) ","
1790  [3]=>
1791  string(1) """
1792  [4]=>
1793  string(3) "&,&"
1794  [5]=>
1795  string(4) ",,,,"
1796}
1797int(24)
1798bool(false)
1799
1800-- Testing fgetcsv() with file opened using x+b mode --
1801array(6) {
1802  [0]=>
1803  string(6) "&""""&"
1804  [1]=>
1805  string(3) "&"&"
1806  [2]=>
1807  string(1) ","
1808  [3]=>
1809  string(1) """
1810  [4]=>
1811  string(3) "&,&"
1812  [5]=>
1813  string(4) ",,,,"
1814}
1815int(24)
1816bool(false)
1817
1818-- Testing fgetcsv() with file opened using x+t mode --
1819array(6) {
1820  [0]=>
1821  string(6) "&""""&"
1822  [1]=>
1823  string(3) "&"&"
1824  [2]=>
1825  string(1) ","
1826  [3]=>
1827  string(1) """
1828  [4]=>
1829  string(3) "&,&"
1830  [5]=>
1831  string(4) ",,,,"
1832}
1833int(24)
1834bool(false)
1835Done