1--TEST--
2Test fputcsv() : usage variations - with delimiter and enclosure as NULL
3--FILE--
4<?php
5/*
6 Prototype: array fputcsv ( resource $handle , array $fields [, string $delimiter [, string $enclosure]]] );
7 Description: Format line as CSV and write to the file pointer
8*/
9
10/* Testing fputcsv() to write to a file when delimiter and enclosure is NULL */
11
12echo "*** Testing fputcsv() : with delimiter and enclosure as NULL ***\n";
13
14/* the array is with three elements in it. Each element should be read as
15   1st element is delimiter, 2nd element is enclosure
16   and 3rd element is csv fields
17*/
18$csv_lists = array (
19  array(',', '"', array('water','fruit') ),
20  array(',', '"', array('"water","fruit') ),
21  array(',', '"', array('"water","fruit"') ),
22  array(' ', '^', array('^water^ ^fruit^')),
23  array(':', '&', array('&water&:&fruit&')),
24  array('=', '=', array('=water===fruit=')),
25  array('-', '-', array('-water--fruit-air')),
26  array('-', '-', array('-water---fruit---air-')),
27  array(':', '&', array('&""""&:&"&:,:":&,&:,,,,'))
28
29);
30$file_path = __DIR__;
31$filename = "$file_path/fputcsv_variation4.tmp";
32
33$file_modes = array ("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
42    echo "\n-- file opened in $file_modes[$mode_counter] --\n";
43    // create the file and add the content with has csv fields
44    if ( strstr($file_modes[$mode_counter], "r") ) {
45      $file_handle = fopen($filename, "w");
46    } else {
47      $file_handle = fopen($filename, $file_modes[$mode_counter] );
48    }
49    if ( !$file_handle ) {
50      echo "Error: failed to create file $filename!\n";
51      exit();
52    }
53    $delimiter = $csv_list[0];
54    $enclosure = $csv_list[1];
55    $csv_field = $csv_list[2];
56
57    // write to a file in csv format
58    var_dump( fputcsv($file_handle, $csv_field, NULL, NULL) );
59    // check the file pointer position and eof
60    var_dump( ftell($file_handle) );
61    var_dump( feof($file_handle) );
62    //close the file
63    fclose($file_handle);
64
65    // print the file contents
66    var_dump( file_get_contents($filename) );
67
68    //delete file
69    unlink($filename);
70  } //end of mode loop
71} // end of foreach
72
73echo "Done\n";
74?>
75--EXPECTF--
76*** Testing fputcsv() : with delimiter and enclosure as NULL ***
77
78-- file opened in r+ --
79
80Warning: fputcsv(): delimiter must be a character in %s on line %d
81bool(false)
82int(0)
83bool(false)
84string(0) ""
85
86-- file opened in r+b --
87
88Warning: fputcsv(): delimiter must be a character in %s on line %d
89bool(false)
90int(0)
91bool(false)
92string(0) ""
93
94-- file opened in r+t --
95
96Warning: fputcsv(): delimiter must be a character in %s on line %d
97bool(false)
98int(0)
99bool(false)
100string(0) ""
101
102-- file opened in a+ --
103
104Warning: fputcsv(): delimiter must be a character in %s on line %d
105bool(false)
106int(0)
107bool(false)
108string(0) ""
109
110-- file opened in a+b --
111
112Warning: fputcsv(): delimiter must be a character in %s on line %d
113bool(false)
114int(0)
115bool(false)
116string(0) ""
117
118-- file opened in a+t --
119
120Warning: fputcsv(): delimiter must be a character in %s on line %d
121bool(false)
122int(0)
123bool(false)
124string(0) ""
125
126-- file opened in w+ --
127
128Warning: fputcsv(): delimiter must be a character in %s on line %d
129bool(false)
130int(0)
131bool(false)
132string(0) ""
133
134-- file opened in w+b --
135
136Warning: fputcsv(): delimiter must be a character in %s on line %d
137bool(false)
138int(0)
139bool(false)
140string(0) ""
141
142-- file opened in w+t --
143
144Warning: fputcsv(): delimiter must be a character in %s on line %d
145bool(false)
146int(0)
147bool(false)
148string(0) ""
149
150-- file opened in x+ --
151
152Warning: fputcsv(): delimiter must be a character in %s on line %d
153bool(false)
154int(0)
155bool(false)
156string(0) ""
157
158-- file opened in x+b --
159
160Warning: fputcsv(): delimiter must be a character in %s on line %d
161bool(false)
162int(0)
163bool(false)
164string(0) ""
165
166-- file opened in x+t --
167
168Warning: fputcsv(): delimiter must be a character in %s on line %d
169bool(false)
170int(0)
171bool(false)
172string(0) ""
173
174-- file opened in r+ --
175
176Warning: fputcsv(): delimiter must be a character in %s on line %d
177bool(false)
178int(0)
179bool(false)
180string(0) ""
181
182-- file opened in r+b --
183
184Warning: fputcsv(): delimiter must be a character in %s on line %d
185bool(false)
186int(0)
187bool(false)
188string(0) ""
189
190-- file opened in r+t --
191
192Warning: fputcsv(): delimiter must be a character in %s on line %d
193bool(false)
194int(0)
195bool(false)
196string(0) ""
197
198-- file opened in a+ --
199
200Warning: fputcsv(): delimiter must be a character in %s on line %d
201bool(false)
202int(0)
203bool(false)
204string(0) ""
205
206-- file opened in a+b --
207
208Warning: fputcsv(): delimiter must be a character in %s on line %d
209bool(false)
210int(0)
211bool(false)
212string(0) ""
213
214-- file opened in a+t --
215
216Warning: fputcsv(): delimiter must be a character in %s on line %d
217bool(false)
218int(0)
219bool(false)
220string(0) ""
221
222-- file opened in w+ --
223
224Warning: fputcsv(): delimiter must be a character in %s on line %d
225bool(false)
226int(0)
227bool(false)
228string(0) ""
229
230-- file opened in w+b --
231
232Warning: fputcsv(): delimiter must be a character in %s on line %d
233bool(false)
234int(0)
235bool(false)
236string(0) ""
237
238-- file opened in w+t --
239
240Warning: fputcsv(): delimiter must be a character in %s on line %d
241bool(false)
242int(0)
243bool(false)
244string(0) ""
245
246-- file opened in x+ --
247
248Warning: fputcsv(): delimiter must be a character in %s on line %d
249bool(false)
250int(0)
251bool(false)
252string(0) ""
253
254-- file opened in x+b --
255
256Warning: fputcsv(): delimiter must be a character in %s on line %d
257bool(false)
258int(0)
259bool(false)
260string(0) ""
261
262-- file opened in x+t --
263
264Warning: fputcsv(): delimiter must be a character in %s on line %d
265bool(false)
266int(0)
267bool(false)
268string(0) ""
269
270-- file opened in r+ --
271
272Warning: fputcsv(): delimiter must be a character in %s on line %d
273bool(false)
274int(0)
275bool(false)
276string(0) ""
277
278-- file opened in r+b --
279
280Warning: fputcsv(): delimiter must be a character in %s on line %d
281bool(false)
282int(0)
283bool(false)
284string(0) ""
285
286-- file opened in r+t --
287
288Warning: fputcsv(): delimiter must be a character in %s on line %d
289bool(false)
290int(0)
291bool(false)
292string(0) ""
293
294-- file opened in a+ --
295
296Warning: fputcsv(): delimiter must be a character in %s on line %d
297bool(false)
298int(0)
299bool(false)
300string(0) ""
301
302-- file opened in a+b --
303
304Warning: fputcsv(): delimiter must be a character in %s on line %d
305bool(false)
306int(0)
307bool(false)
308string(0) ""
309
310-- file opened in a+t --
311
312Warning: fputcsv(): delimiter must be a character in %s on line %d
313bool(false)
314int(0)
315bool(false)
316string(0) ""
317
318-- file opened in w+ --
319
320Warning: fputcsv(): delimiter must be a character in %s on line %d
321bool(false)
322int(0)
323bool(false)
324string(0) ""
325
326-- file opened in w+b --
327
328Warning: fputcsv(): delimiter must be a character in %s on line %d
329bool(false)
330int(0)
331bool(false)
332string(0) ""
333
334-- file opened in w+t --
335
336Warning: fputcsv(): delimiter must be a character in %s on line %d
337bool(false)
338int(0)
339bool(false)
340string(0) ""
341
342-- file opened in x+ --
343
344Warning: fputcsv(): delimiter must be a character in %s on line %d
345bool(false)
346int(0)
347bool(false)
348string(0) ""
349
350-- file opened in x+b --
351
352Warning: fputcsv(): delimiter must be a character in %s on line %d
353bool(false)
354int(0)
355bool(false)
356string(0) ""
357
358-- file opened in x+t --
359
360Warning: fputcsv(): delimiter must be a character in %s on line %d
361bool(false)
362int(0)
363bool(false)
364string(0) ""
365
366-- file opened in r+ --
367
368Warning: fputcsv(): delimiter must be a character in %s on line %d
369bool(false)
370int(0)
371bool(false)
372string(0) ""
373
374-- file opened in r+b --
375
376Warning: fputcsv(): delimiter must be a character in %s on line %d
377bool(false)
378int(0)
379bool(false)
380string(0) ""
381
382-- file opened in r+t --
383
384Warning: fputcsv(): delimiter must be a character in %s on line %d
385bool(false)
386int(0)
387bool(false)
388string(0) ""
389
390-- file opened in a+ --
391
392Warning: fputcsv(): delimiter must be a character in %s on line %d
393bool(false)
394int(0)
395bool(false)
396string(0) ""
397
398-- file opened in a+b --
399
400Warning: fputcsv(): delimiter must be a character in %s on line %d
401bool(false)
402int(0)
403bool(false)
404string(0) ""
405
406-- file opened in a+t --
407
408Warning: fputcsv(): delimiter must be a character in %s on line %d
409bool(false)
410int(0)
411bool(false)
412string(0) ""
413
414-- file opened in w+ --
415
416Warning: fputcsv(): delimiter must be a character in %s on line %d
417bool(false)
418int(0)
419bool(false)
420string(0) ""
421
422-- file opened in w+b --
423
424Warning: fputcsv(): delimiter must be a character in %s on line %d
425bool(false)
426int(0)
427bool(false)
428string(0) ""
429
430-- file opened in w+t --
431
432Warning: fputcsv(): delimiter must be a character in %s on line %d
433bool(false)
434int(0)
435bool(false)
436string(0) ""
437
438-- file opened in x+ --
439
440Warning: fputcsv(): delimiter must be a character in %s on line %d
441bool(false)
442int(0)
443bool(false)
444string(0) ""
445
446-- file opened in x+b --
447
448Warning: fputcsv(): delimiter must be a character in %s on line %d
449bool(false)
450int(0)
451bool(false)
452string(0) ""
453
454-- file opened in x+t --
455
456Warning: fputcsv(): delimiter must be a character in %s on line %d
457bool(false)
458int(0)
459bool(false)
460string(0) ""
461
462-- file opened in r+ --
463
464Warning: fputcsv(): delimiter must be a character in %s on line %d
465bool(false)
466int(0)
467bool(false)
468string(0) ""
469
470-- file opened in r+b --
471
472Warning: fputcsv(): delimiter must be a character in %s on line %d
473bool(false)
474int(0)
475bool(false)
476string(0) ""
477
478-- file opened in r+t --
479
480Warning: fputcsv(): delimiter must be a character in %s on line %d
481bool(false)
482int(0)
483bool(false)
484string(0) ""
485
486-- file opened in a+ --
487
488Warning: fputcsv(): delimiter must be a character in %s on line %d
489bool(false)
490int(0)
491bool(false)
492string(0) ""
493
494-- file opened in a+b --
495
496Warning: fputcsv(): delimiter must be a character in %s on line %d
497bool(false)
498int(0)
499bool(false)
500string(0) ""
501
502-- file opened in a+t --
503
504Warning: fputcsv(): delimiter must be a character in %s on line %d
505bool(false)
506int(0)
507bool(false)
508string(0) ""
509
510-- file opened in w+ --
511
512Warning: fputcsv(): delimiter must be a character in %s on line %d
513bool(false)
514int(0)
515bool(false)
516string(0) ""
517
518-- file opened in w+b --
519
520Warning: fputcsv(): delimiter must be a character in %s on line %d
521bool(false)
522int(0)
523bool(false)
524string(0) ""
525
526-- file opened in w+t --
527
528Warning: fputcsv(): delimiter must be a character in %s on line %d
529bool(false)
530int(0)
531bool(false)
532string(0) ""
533
534-- file opened in x+ --
535
536Warning: fputcsv(): delimiter must be a character in %s on line %d
537bool(false)
538int(0)
539bool(false)
540string(0) ""
541
542-- file opened in x+b --
543
544Warning: fputcsv(): delimiter must be a character in %s on line %d
545bool(false)
546int(0)
547bool(false)
548string(0) ""
549
550-- file opened in x+t --
551
552Warning: fputcsv(): delimiter must be a character in %s on line %d
553bool(false)
554int(0)
555bool(false)
556string(0) ""
557
558-- file opened in r+ --
559
560Warning: fputcsv(): delimiter must be a character in %s on line %d
561bool(false)
562int(0)
563bool(false)
564string(0) ""
565
566-- file opened in r+b --
567
568Warning: fputcsv(): delimiter must be a character in %s on line %d
569bool(false)
570int(0)
571bool(false)
572string(0) ""
573
574-- file opened in r+t --
575
576Warning: fputcsv(): delimiter must be a character in %s on line %d
577bool(false)
578int(0)
579bool(false)
580string(0) ""
581
582-- file opened in a+ --
583
584Warning: fputcsv(): delimiter must be a character in %s on line %d
585bool(false)
586int(0)
587bool(false)
588string(0) ""
589
590-- file opened in a+b --
591
592Warning: fputcsv(): delimiter must be a character in %s on line %d
593bool(false)
594int(0)
595bool(false)
596string(0) ""
597
598-- file opened in a+t --
599
600Warning: fputcsv(): delimiter must be a character in %s on line %d
601bool(false)
602int(0)
603bool(false)
604string(0) ""
605
606-- file opened in w+ --
607
608Warning: fputcsv(): delimiter must be a character in %s on line %d
609bool(false)
610int(0)
611bool(false)
612string(0) ""
613
614-- file opened in w+b --
615
616Warning: fputcsv(): delimiter must be a character in %s on line %d
617bool(false)
618int(0)
619bool(false)
620string(0) ""
621
622-- file opened in w+t --
623
624Warning: fputcsv(): delimiter must be a character in %s on line %d
625bool(false)
626int(0)
627bool(false)
628string(0) ""
629
630-- file opened in x+ --
631
632Warning: fputcsv(): delimiter must be a character in %s on line %d
633bool(false)
634int(0)
635bool(false)
636string(0) ""
637
638-- file opened in x+b --
639
640Warning: fputcsv(): delimiter must be a character in %s on line %d
641bool(false)
642int(0)
643bool(false)
644string(0) ""
645
646-- file opened in x+t --
647
648Warning: fputcsv(): delimiter must be a character in %s on line %d
649bool(false)
650int(0)
651bool(false)
652string(0) ""
653
654-- file opened in r+ --
655
656Warning: fputcsv(): delimiter must be a character in %s on line %d
657bool(false)
658int(0)
659bool(false)
660string(0) ""
661
662-- file opened in r+b --
663
664Warning: fputcsv(): delimiter must be a character in %s on line %d
665bool(false)
666int(0)
667bool(false)
668string(0) ""
669
670-- file opened in r+t --
671
672Warning: fputcsv(): delimiter must be a character in %s on line %d
673bool(false)
674int(0)
675bool(false)
676string(0) ""
677
678-- file opened in a+ --
679
680Warning: fputcsv(): delimiter must be a character in %s on line %d
681bool(false)
682int(0)
683bool(false)
684string(0) ""
685
686-- file opened in a+b --
687
688Warning: fputcsv(): delimiter must be a character in %s on line %d
689bool(false)
690int(0)
691bool(false)
692string(0) ""
693
694-- file opened in a+t --
695
696Warning: fputcsv(): delimiter must be a character in %s on line %d
697bool(false)
698int(0)
699bool(false)
700string(0) ""
701
702-- file opened in w+ --
703
704Warning: fputcsv(): delimiter must be a character in %s on line %d
705bool(false)
706int(0)
707bool(false)
708string(0) ""
709
710-- file opened in w+b --
711
712Warning: fputcsv(): delimiter must be a character in %s on line %d
713bool(false)
714int(0)
715bool(false)
716string(0) ""
717
718-- file opened in w+t --
719
720Warning: fputcsv(): delimiter must be a character in %s on line %d
721bool(false)
722int(0)
723bool(false)
724string(0) ""
725
726-- file opened in x+ --
727
728Warning: fputcsv(): delimiter must be a character in %s on line %d
729bool(false)
730int(0)
731bool(false)
732string(0) ""
733
734-- file opened in x+b --
735
736Warning: fputcsv(): delimiter must be a character in %s on line %d
737bool(false)
738int(0)
739bool(false)
740string(0) ""
741
742-- file opened in x+t --
743
744Warning: fputcsv(): delimiter must be a character in %s on line %d
745bool(false)
746int(0)
747bool(false)
748string(0) ""
749
750-- file opened in r+ --
751
752Warning: fputcsv(): delimiter must be a character in %s on line %d
753bool(false)
754int(0)
755bool(false)
756string(0) ""
757
758-- file opened in r+b --
759
760Warning: fputcsv(): delimiter must be a character in %s on line %d
761bool(false)
762int(0)
763bool(false)
764string(0) ""
765
766-- file opened in r+t --
767
768Warning: fputcsv(): delimiter must be a character in %s on line %d
769bool(false)
770int(0)
771bool(false)
772string(0) ""
773
774-- file opened in a+ --
775
776Warning: fputcsv(): delimiter must be a character in %s on line %d
777bool(false)
778int(0)
779bool(false)
780string(0) ""
781
782-- file opened in a+b --
783
784Warning: fputcsv(): delimiter must be a character in %s on line %d
785bool(false)
786int(0)
787bool(false)
788string(0) ""
789
790-- file opened in a+t --
791
792Warning: fputcsv(): delimiter must be a character in %s on line %d
793bool(false)
794int(0)
795bool(false)
796string(0) ""
797
798-- file opened in w+ --
799
800Warning: fputcsv(): delimiter must be a character in %s on line %d
801bool(false)
802int(0)
803bool(false)
804string(0) ""
805
806-- file opened in w+b --
807
808Warning: fputcsv(): delimiter must be a character in %s on line %d
809bool(false)
810int(0)
811bool(false)
812string(0) ""
813
814-- file opened in w+t --
815
816Warning: fputcsv(): delimiter must be a character in %s on line %d
817bool(false)
818int(0)
819bool(false)
820string(0) ""
821
822-- file opened in x+ --
823
824Warning: fputcsv(): delimiter must be a character in %s on line %d
825bool(false)
826int(0)
827bool(false)
828string(0) ""
829
830-- file opened in x+b --
831
832Warning: fputcsv(): delimiter must be a character in %s on line %d
833bool(false)
834int(0)
835bool(false)
836string(0) ""
837
838-- file opened in x+t --
839
840Warning: fputcsv(): delimiter must be a character in %s on line %d
841bool(false)
842int(0)
843bool(false)
844string(0) ""
845
846-- file opened in r+ --
847
848Warning: fputcsv(): delimiter must be a character in %s on line %d
849bool(false)
850int(0)
851bool(false)
852string(0) ""
853
854-- file opened in r+b --
855
856Warning: fputcsv(): delimiter must be a character in %s on line %d
857bool(false)
858int(0)
859bool(false)
860string(0) ""
861
862-- file opened in r+t --
863
864Warning: fputcsv(): delimiter must be a character in %s on line %d
865bool(false)
866int(0)
867bool(false)
868string(0) ""
869
870-- file opened in a+ --
871
872Warning: fputcsv(): delimiter must be a character in %s on line %d
873bool(false)
874int(0)
875bool(false)
876string(0) ""
877
878-- file opened in a+b --
879
880Warning: fputcsv(): delimiter must be a character in %s on line %d
881bool(false)
882int(0)
883bool(false)
884string(0) ""
885
886-- file opened in a+t --
887
888Warning: fputcsv(): delimiter must be a character in %s on line %d
889bool(false)
890int(0)
891bool(false)
892string(0) ""
893
894-- file opened in w+ --
895
896Warning: fputcsv(): delimiter must be a character in %s on line %d
897bool(false)
898int(0)
899bool(false)
900string(0) ""
901
902-- file opened in w+b --
903
904Warning: fputcsv(): delimiter must be a character in %s on line %d
905bool(false)
906int(0)
907bool(false)
908string(0) ""
909
910-- file opened in w+t --
911
912Warning: fputcsv(): delimiter must be a character in %s on line %d
913bool(false)
914int(0)
915bool(false)
916string(0) ""
917
918-- file opened in x+ --
919
920Warning: fputcsv(): delimiter must be a character in %s on line %d
921bool(false)
922int(0)
923bool(false)
924string(0) ""
925
926-- file opened in x+b --
927
928Warning: fputcsv(): delimiter must be a character in %s on line %d
929bool(false)
930int(0)
931bool(false)
932string(0) ""
933
934-- file opened in x+t --
935
936Warning: fputcsv(): delimiter must be a character in %s on line %d
937bool(false)
938int(0)
939bool(false)
940string(0) ""
941Done
942