[php-src] Issue #9600: fgetcsv does not read the file correctly
| From: | f2h2h1 | Date: | Fri, 23 Sep 2022 04:28:39 +0000 |
| Subject: | [php-src] Issue #9600: fgetcsv does not read the file correctly | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-242455@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/9600
Author: f2h2h1
### Description
this bug only exists in Windows
The following code:
```php
<?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