-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Closed as not planned
Labels
Description
Description
this bug only exists in Windows
The following code:
<?php
$csv = <<<EOF
"chinese test.","中文测试。"
"chinese, test.","中文,测试。"
"chinese test2","中文测试2"
"chinese, test2","中文,测试2"
EOF;
$file = fopen('php://memory', 'a+b');
fwrite($file, $csv);
fseek($file, 0, SEEK_SET);
$result = [];
while($row = fgetcsv($file, 0, ',', '"', '\\')) {
if (is_array($row)) {
$result[] = $row;
} else {
break;
}
}
var_dump($result);
Resulted in this output:
array(2) {
[0] =>
array(5) {
[0] =>
string(13) "chinese test."
[1] =>
string(24) "中文测试。"
chinese"
[2] =>
string(7) " test.""
[3] =>
string(34) "中文,测试。"
chinese test2""
[4] =>
string(13) "中文测试2"
}
[1] =>
array(2) {
[0] =>
string(14) "chinese, test2"
[1] =>
string(16) "中文,测试2"
}
}
But I expected this output instead:
array(4) {
[0]=>
array(2) {
[0]=>
string(13) "chinese test."
[1]=>
string(15) "中文测试。"
}
[1]=>
array(2) {
[0]=>
string(14) "chinese, test."
[1]=>
string(18) "中文,测试。"
}
[2]=>
array(2) {
[0]=>
string(13) "chinese test2"
[1]=>
string(13) "中文测试2"
}
[3]=>
array(2) {
[0]=>
string(14) "chinese, test2"
[1]=>
string(16) "中文,测试2"
}
}
PHP Version
PHP 7.4.26 ( NTS Visual C++ 2017 x64 )
Operating System
Windows 10 21H2