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
我们的一个系统是 运行 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