我有一个每周运行一次的cron作业,并检查远程站点是否有任何更新,其中可能包含新数据,并且可能包含新图形。
我检查我的本地文件夹以查看图形是否已经存在,如果没有,那么我想保存该图形的本地副本。
当我从浏览器运行它时,我的代码似乎有效,但是当我每周检查一次文件夹时,会有很多空的图形文件。
它们具有正确的文件名,但都是零字节。
我在cron作业运行的php文件中的代码是:
if (!file_exists($graphic)) {
$imageString = file_get_contents($graphicurl);
file_put_contents($graphic, $imageString);
}
$ graphic将类似于“filename.jpg”
$ graphicurl将类似于“https://remotegraphicfile.jpg”
我看到许多文件,例如“filename.jpg”存在于我的本地文件夹中,但文件大小为零。
当被cron作业调用时,有什么理由不起作用吗?
答案 0 :(得分:0)
我现在通过更改原始代码来实现这一目标:
if (!file_exists($graphic)) {
$imageString = file_get_contents($graphicurl);
file_put_contents($graphic, $imageString);
}
对此:
if (!file_exists($graphic)) {
$file = fopen ($graphic, 'w');
$c = curl_init($graphicurl);
curl_setopt($c, CURLOPT_FILE, $file);
curl_exec($c);
curl_close($c);
fclose($file);
}
现在可以使用,并且在运行cron作业时图形保存到我的文件夹。