私は週に1回実行されるcronジョブを持っています。新しいデータを含むかもしれないアップデートや新しいグラフィックスを含むリモートサイトをチェックします。cronジョブからローカルフォルダにグラフィックを保存する
ローカルフォルダを確認してグラフィックが既に存在するかどうかを確認し、存在しない場合はそのグラフィックのローカルコピーを保存します。
私のコードはブラウザから実行するとうまくいくようですが、毎週フォルダをチェックすると、空のグラフィックファイルがたくさんあります。
これらは、正しいファイル名ですが、すべてゼロバイトです。
cronジョブが実行されるPHPファイル内の私のコードはこれです:
if (!file_exists($graphic)) {
$imageString = file_get_contents($graphicurl);
file_put_contents($graphic, $imageString);
}
$グラフィックは "filename.jpg"
の$ graphicurlは "https://remotegraphicfile.jpg"
のようなものになりますようになりますそして、私のローカルフォルダには "filename.jpg"のようなファイルがたくさんありますが、ファイルサイズはゼロです。
cronジョブで呼び出されたときにこの動作が無効になる理由はありますか?
私は今から私の元のコードを変更することで、この作業を取得するために管理している
地元のことはどういう意味ですか?ローカルのマシンまたはローカルのサーバー。 – GYaN
ローカルサーバー。スクリプトはAPIをチェックして、さまざまなデータをローカルのmysqlデータベースに保存し、グラフィックスをローカルサーバーに保存します。 – Richard
ほとんどの理由は、 '$ graphicurl'パラメータの指定されたURLにイメージが存在しないことが考えられます。壊れたリンクではサーバは '404 Not Found'エラーを返し、0バイトがディスクに書き込まれます。 –