我试图通过一个cronjob运行PHP脚本,有时(大约一半时间)我得到以下警告期间有时会失败):无法打开流:HTTP请求失败!在/path/myfile.php在线285PHP的file_get_contents的cronjob
该程序继续运行后,这让我觉得这不是一个超时问题或内存问题(超时设置为10分钟,内存为128M),但我存储该函数调用结果的变量是空的。奇怪的部分是,我正在与其他网址参数进行其他几个电话到这个网站,他们从来没有问题。这个函数调用的唯一区别是它下载的文件大约是70 MB,而其他文件大约是300 KB。
另外,我从来没有得到这个警告,如果我SSH进入Web服务器并手动运行PHP脚本,只有当它从一个CRON运行。
我也尝试使用cURL而不是file_get_contents,但后来内存不足。
谢谢,在这里的任何帮助将不胜感激。
我给cURL另一个尝试,看看我得到什么样的输出。我知道我可能不应该保持70 MB的记忆,但它在测试过程中工作,所以我刚刚去了。写入文件的问题是我没有权限通过ssh编辑文件,但我想象着cronjob的所有者,我会试一试。 – Casey 2011-05-03 17:09:33
@Casey - 据推测tmp目录是可写的。查看http://www.php.net/manual/en/function.tmpfile.php上的第4条评论(注意:他们正在讨论通过curl上传文件,但它基本相同) – Eli 2011-05-03 17:25:13
对,temp是可写的。我现在将文件保存到php:// temp并从那里解析它。我会尝试运行cron,看看会发生什么。谢谢。 – Casey 2011-05-03 17:52:58