PHP経由でファイルをダウンロードする際に問題があります。PHP経由でファイルをダウンロード
面白いことに、私は問題を追跡できません。このコードは一部のWebサイトではうまく動作し、他のサイトではうまく機能しません。ウェブサイトからバックアップファイルをダウンロードするのはPHPのループです(リクエストの前にスリープに遅れがあります)。
なぜ私は問題を追跡できませんか? コードを手動で実行すると、そのコードが機能します(ファイルをダウンロードします)。 CRONによって実行されると、ファイルをダウンロードすることもありますが、ファイルをダウンロードしないこともあります(空の新しい行を2つだけダウンロードします)。
ダウンロードはcurlで行います(私はfsockopenとfreadで別のコードを試しました)。
誰も私がこれをどのように解決できるか考えていますか?
正しいオプションを設定すると、ヘッダーがCURLで削除されます。
function fetch_url($url) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_TIMEOUT, 20);
if ($cookiejar != '') {
curl_setopt($c, CURLOPT_COOKIEJAR, $cookiejar);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookiejar);
}
curl_setopt($c, CURLOPT_HEADER , false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST , false);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($c, CURLOPT_FOLLOWLOCATION , true);
curl_setopt($c, CURLOPT_AUTOREFERER , true);
curl_setopt($c, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
$con = curl_exec($c);
curl_close($c);
return $con;
}
echo fetch_url('http://www.example.com/zip.zip');
どうもありがとうございました。 – BetterMan21
セキュリティに関する質問:これらのバックアップを含むWebサーバーには、正当なユーザーとしてのアクセスを許可する方法がありますか?Joe Publicがこれらのバックアップのコピーをダウンロードするかどうかは関係ありませんか? – halfer
curl_errorを使用してtxtファイルなどにログする必要があります。なぜそれが動作しないのか、主に2GBを超えるファイル、ヘッダが間違っている、不完全なデータ、gzipエンコードまたはタイムアウト)...すべてのカール要求をログに記録して、セキュリティを適任にしてください –