我在使用通过PHP表单上传的CSV文件时遇到问题.这是代码:
$row = 1;
if (($handle = fopen($_FILES['csv']['tmp_name'], "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当我查询变量时$data,看起来CSV文件的内容被写入一行而不是多行.结果,我获得了228个列值的数组.
为什么是这样?我的PHP脚本没有正确检测到新行吗?如果是这样,是否有选项可以解决此问题?
Chr*_*isR 13
将auto_detect_line_endings ini设置为true:
ini_set('auto_detect_line_endings', true);
Run Code Online (Sandbox Code Playgroud)
小智 7
最可能的问题是源数据中的行结尾.您是否可以制作包含多个列和行的测试CSV文件,以确认或消除您正在测试的数据?
另见:http://www.php.net/manual/en/filesystem.configuration.php#ini.auto-detect-line-endings
| 归档时间: |
|
| 查看次数: |
3096 次 |
| 最近记录: |