【问题标题】:fgetcsv returning NULL in PHP 4fgetcsv 在 PHP 4 中返回 NULL
【发布时间】:2019-01-21 10:10:27
【问题描述】:

我们的一个系统在 PHP 4 上运行,不,我无法更改。

无论我上传什么文件,fgetcsv 函数似乎都返回 null。

简单地说:

$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 上我真的无能为力。有谁知道可能导致这种情况的原因,或者我应该找到其他方法吗?

谢谢

【问题讨论】:

  • "如果提供了无效句柄,fgetcsv() 将返回 NULL"
  • 可以,但是句柄是有效的。
  • 是的,不知道,这就是我所知道的,呵呵。也许 PHP4 不能 var_dump() 一些实际上不是 var 的东西?先把返回值赋给一个var?
  • 什么是 $file?是某个网址吗?
  • 这是一个上传的文件。

标签: php php4


【解决方案1】:

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

之后打开它

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


我可以使用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

【讨论】:

  • str_getcsv() 在 PHP4 中不可用。
  • 糟糕)不知道
  • “临时上传文件使用”有什么问题?手册、规格、引文?
  • 啊哈,这似乎奏效了,尽管我必须在 fgetcsv() 中添加一个长度参数。詹克斯
猜你喜欢
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
  • 2015-09-04
相关资源
最近更新 更多