【发布时间】:2019-03-06 06:00:13
【问题描述】:
我正在尝试读取一个 CSV 文件,该文件的单元格中的值由逗号分隔。
这是我的代码:-
if (($handle = fopen($file_name['files']['tmp_name'], 'r')) !== FALSE) {
while ($row = fgetcsv($handle)) {
echo '<pre>';
print_r($row);
}
}
有时它可以完美运行。但有时当我编辑 CSV 并添加一些示例值(或从上面复制粘贴一些以前的值)时,fopen 不起作用。它不返回任何东西。它只是空的。
如果我将 csv 文件恢复到以前的状态,它仍然可以工作,或者如果我输入单个值而不是多个值,它仍然可以工作,但不适用于以逗号分隔的单元格中的值。
另外,如果我在 csv 中使用管道运算符而不是逗号,它仍然可以正常工作(这样做只是为了测试)。但我只想在 csv 中使用逗号分隔符。
另外,我正在从请求中获取文件。如果我使用本地存储中的文件,它可以正常工作。但是当我上传它然后尝试阅读它时,它就不起作用了。
如果我 var_dump fopen() 我得到 FALSE。
我看到了一些与此相关的问题,但没有任何效果。谁能帮帮我?
【问题讨论】:
-
上传的字段大小是多少?
-
可以有 1 到 10 个值,以逗号分隔。我有两列分隔包含用逗号分隔的字段
-
这些字段也是第一列有单位或双位数字,第二列有单、双或三字母的数字。所有这些都在各自的列中用逗号分隔。
-
对不起,我的意思是输入 file,而不是字段。 PHP中的最大文件上传大小会干扰您上传的文件吗?您是否尝试过 var_dumping 整个
$_FILES数组? -
var_dumping 整个 $_FILES 数组看起来不错,但是当我 echo fopen 时,它只是空白。文件的大小可能很大。我正在上传产品列表,因此可以有很多产品,例如 100,000 或 1,000,000 5 t0 7 列。
标签: csv magento-1.9 fopen php-5.5