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