1--TEST--
2Test fgetcsv() : usage variations - with line without any csv fields
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() to read a line from a file which doesn't have any CSV field */
11
12echo "*** Testing fgetcsv() : reading the line which is without csv fields ***\n";
13
14
15$filename = __DIR__ . '/fgetcsv_variation13.tmp';
16@unlink($filename);
17
18$file_modes = array ("r","rb", "rt", "r+", "r+b", "r+t",
19                     "a+", "a+b", "a+t",
20                     "w+", "w+b", "w+t",
21                     "x+", "x+b", "x+t");
22
23$loop_counter = 1;
24  for($mode_counter = 0; $mode_counter < count($file_modes); $mode_counter++) {
25    // create the file and add the content with has csv fields
26    if ( strstr($file_modes[$mode_counter], "r") ) {
27      $file_handle = fopen($filename, "w");
28    } else {
29      $file_handle = fopen($filename, $file_modes[$mode_counter] );
30    }
31    if ( !$file_handle ) {
32      echo "Error: failed to create file $filename!\n";
33      exit();
34    }
35    // write line of text
36    fwrite($file_handle, "This is line of text without csv fields\n");
37
38    // close the file if the mode to be used is read mode  and re-open using read mode
39    // else rewind the file pointer to beginning of the file
40    if ( strstr($file_modes[$mode_counter], "r" ) ) {
41      fclose($file_handle);
42      $file_handle = fopen($filename, $file_modes[$mode_counter]);
43    } else {
44      // rewind the file pointer to bof
45      rewind($file_handle);
46    }
47
48    echo "\n-- Testing fgetcsv() with file opened using $file_modes[$mode_counter] mode --\n";
49
50
51    // read the line which is without csv fields, provide delimiter and see the working of fgetcsv
52    $fp_pos = ftell($file_handle);
53    var_dump( fgetcsv($file_handle) );
54    // check the file pointer position and if eof
55    var_dump( ftell($file_handle) );
56    var_dump( feof($file_handle) );
57
58    // close the file
59    fclose($file_handle);
60    //delete file
61    unlink($filename);
62  } //end of mode loop
63
64echo "Done\n";
65?>
66--EXPECT--
67*** Testing fgetcsv() : reading the line which is without csv fields ***
68
69-- Testing fgetcsv() with file opened using r mode --
70array(1) {
71  [0]=>
72  string(39) "This is line of text without csv fields"
73}
74int(40)
75bool(false)
76
77-- Testing fgetcsv() with file opened using rb mode --
78array(1) {
79  [0]=>
80  string(39) "This is line of text without csv fields"
81}
82int(40)
83bool(false)
84
85-- Testing fgetcsv() with file opened using rt mode --
86array(1) {
87  [0]=>
88  string(39) "This is line of text without csv fields"
89}
90int(40)
91bool(false)
92
93-- Testing fgetcsv() with file opened using r+ mode --
94array(1) {
95  [0]=>
96  string(39) "This is line of text without csv fields"
97}
98int(40)
99bool(false)
100
101-- Testing fgetcsv() with file opened using r+b mode --
102array(1) {
103  [0]=>
104  string(39) "This is line of text without csv fields"
105}
106int(40)
107bool(false)
108
109-- Testing fgetcsv() with file opened using r+t mode --
110array(1) {
111  [0]=>
112  string(39) "This is line of text without csv fields"
113}
114int(40)
115bool(false)
116
117-- Testing fgetcsv() with file opened using a+ mode --
118array(1) {
119  [0]=>
120  string(39) "This is line of text without csv fields"
121}
122int(40)
123bool(false)
124
125-- Testing fgetcsv() with file opened using a+b mode --
126array(1) {
127  [0]=>
128  string(39) "This is line of text without csv fields"
129}
130int(40)
131bool(false)
132
133-- Testing fgetcsv() with file opened using a+t mode --
134array(1) {
135  [0]=>
136  string(39) "This is line of text without csv fields"
137}
138int(40)
139bool(false)
140
141-- Testing fgetcsv() with file opened using w+ mode --
142array(1) {
143  [0]=>
144  string(39) "This is line of text without csv fields"
145}
146int(40)
147bool(false)
148
149-- Testing fgetcsv() with file opened using w+b mode --
150array(1) {
151  [0]=>
152  string(39) "This is line of text without csv fields"
153}
154int(40)
155bool(false)
156
157-- Testing fgetcsv() with file opened using w+t mode --
158array(1) {
159  [0]=>
160  string(39) "This is line of text without csv fields"
161}
162int(40)
163bool(false)
164
165-- Testing fgetcsv() with file opened using x+ mode --
166array(1) {
167  [0]=>
168  string(39) "This is line of text without csv fields"
169}
170int(40)
171bool(false)
172
173-- Testing fgetcsv() with file opened using x+b mode --
174array(1) {
175  [0]=>
176  string(39) "This is line of text without csv fields"
177}
178int(40)
179bool(false)
180
181-- Testing fgetcsv() with file opened using x+t mode --
182array(1) {
183  [0]=>
184  string(39) "This is line of text without csv fields"
185}
186int(40)
187bool(false)
188Done
189