0

cURL関数を使用して特定のURLからいくつかのzipファイルを自動的にダウンロードするPHPスクリプトがあります。

ただし、問題があります。CURL でダウンロードした zip アーカイブを Windows ネイティブの Zip Extractor で開くと、「無効なアーカイブ」エラーが発生します。ブラウザでURLからzipファイルをダウンロードすればOKです。

例: CURL でダウンロードされた zip は 21.8 Kb で、ブラウザからダウンロードされたものは 21.4 Kb です。

これが私のカールのセットアップです:

curl_setopt($this->ch, CURLOPT_URL, $link);
curl_setopt($this->ch, CURLOPT_HEADER, TRUE);
$data  = curl_exec($this->ch);

次に、ファイル ($data) を次のように Web サイトにローカルに保存します。

$file = fopen($full_path, "w+");
fputs($file, $data);
fclose($file);

WinRar ではどちらの zip も問題ありませんが、100% 有効な zip ファイルをダウンロードするスクリプトが必要です。

誰でもこれで私を助けることができますか?

4

1 に答える 1

0

解決策を考え出しました: CURLOPT_HEADER を false に設定する必要があります。そうしないと、応答として HTTP ヘッダーが書き込まれます (そして、私の zip ファイルにも)。

于 2014-08-18T23:28:16.523 に答える