【问题标题】:php function fgetcsv() gives error while cron jobphp函数fgetcsv()在cron作业时出错
【发布时间】:2014-03-25 21:38:11
【问题描述】:

以下脚本在浏览器上运行良好。但是在 cron 作业中它给出了一个错误。

fgetcsv 期望参数 1 是资源,给定的布尔值

请帮忙。

代码:

$handle = fopen("http://www.spc.noaa.gov/climo/reports/today_hail.csv", "r");

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $import="INSERT into mytable Values('" . mysql_real_escape_string($data[0]) . "','$data[1]','" . mysql_real_escape_string($data[2]) . "','" . mysql_real_escape_string($data[3]) . "','" . mysql_real_escape_string($data[4]) . "','$data[5]','$data[6]','" . mysql_real_escape_string($data[7]) . "')";

    mysql_query($import) or die(mysql_error());        
}
fclose($handle); 

【问题讨论】:

  • 您的描述表明fopen() 返回true :-!
  • 您使用的是windows还是Linux?你可以试试 fopen 的 file_get_contents() 吗?
  • @shin 我认为 fopen 在这种情况下更好,不是吗?
  • @user3206125 是的,你是对的

标签: php csv cron fgetcsv


【解决方案1】:

这将是您的权限。

确保您的权限和文件所有权配置正确,能够从浏览器运行但不能从 cron 运行几乎总是表明存在权限问题。

【讨论】:

  • 更具体地说,cron 在与您的网络服务器(和 PHP 隐式)不同的用户下运行。这个其他用户对您尝试读取的任何文件都没有正确的权限。
  • 它说“期望参数 1 是资源,布尔值 given”。如“请为我提供文件句柄资源,不是布尔值”。
  • @SergiuParaschiv 谢谢先生,所以您仍然认为问题出在权限上吗..
  • @user3206125 布尔值很可能是假的,因为它无法获取资源。
猜你喜欢
  • 1970-01-01
  • 2016-01-29
  • 2015-10-29
  • 1970-01-01
  • 2011-08-03
  • 2011-07-15
  • 2015-10-29
  • 1970-01-01
  • 2012-04-28
相关资源
最近更新 更多