fgetcsv 在 PHP 4 中返回 NULL

fgetcsv returning NULL in PHP 4

我们的一个系统是 运行 PHP 4,不,我不能改变它。

无论我上传什么文件,fgetcsv 函数似乎 return 无效。

非常简单地说:

$handle = fopen($file,"r");
var_dump(fgetcsv($handle));
fclose($handle);

这将打印出 "NULL"。

对 $handle 对象执行 var_dump 确实给了我一个资源:

resource(33) of type (stream)

但是我在使用 fgetcsv 时得到 NULL

我可以使用 file_get_contents 获取文件的内容,但是将其解析为 csv 更尴尬。

正如我所说,我真的无能为力 PHP 4. 有谁知道这可能是什么原因造成的,或者我应该找到另一种方法吗?

谢谢

您原来的问题可能与临时上传文件的使用有关。
尝试在move_uploaded_file

之后打开它

此外,fseek($handle, 0) 理论上可以提供帮助,因为它已经在任何地方被阅读了。


I can get the contents of the file using file_get_contents

您可以尝试使用 tmpfile 然后:

$csv = file_get_contents($file);
$temp = tmpfile();
fwrite($temp, $csv);
fseek($temp, 0); // prepare for read at start
$data = fgetcsv($temp);
fclose($temp); // file autoremoved here