Skip to content

Commit e258f13

Browse files
committed
Add test for weird fgetcsv behavior
I was trying to figure out when fgetcsv parsing can return false. Apparently this can only happen if there is an unclosed enclosure and no terminating newline -- why does the newline matter???
1 parent 076fbd3 commit e258f13

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

ext/standard/tests/file/fgetcsv.phpt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,23 @@ various fgetcsv() functionality tests
1515
'"",""',
1616
'"\\"","aaa"',
1717
'"""""",',
18-
'""""",aaa',
19-
'"\\""",aaa',
20-
'aaa,"\\"bbb,ccc',
18+
'""""",aaa' . "\n",
19+
'"\\""",aaa' . "\n",
20+
'aaa,"\\"bbb,ccc' . "\n",
2121
'aaa,bbb ',
2222
'aaa,"bbb "',
2323
'aaa"aaa","bbb"bbb',
2424
'aaa"aaa""",bbb',
25-
'aaa"\\"a","bbb"'
25+
'aaa"\\"a","bbb"',
26+
'aaa,"bbb' . "\n",
27+
'aaa,"bbb',
2628
);
2729

2830
$file = __DIR__ . '/fgetcsv.csv';
2931
@unlink($file);
3032
foreach ($list as $v) {
3133
$fp = fopen($file, "w");
32-
fwrite($fp, $v . "\n");
34+
fwrite($fp, $v);
3335
fclose($fp);
3436

3537
var_dump(fgetcsv(fopen($file, "r"), 1024));
@@ -156,3 +158,11 @@ array(2) {
156158
[1]=>
157159
string(3) "bbb"
158160
}
161+
array(2) {
162+
[0]=>
163+
string(3) "aaa"
164+
[1]=>
165+
string(4) "bbb
166+
"
167+
}
168+
bool(false)

0 commit comments

Comments
 (0)