0

PHP スクリプトで curl を使用してリモートのサードパーティ サーバーからファイルをダウンロードしようとすると、問題が発生します。

ファイルはcsvで、データベースからデータを読み取るスクリプトによって作成されたと思います。実際、そのファイルを取得するには、HTML フォームにいくつかのパラメーター (月や年など) を入力する必要があります。curl を使用してサーバーにログインし、フォームに入力する値を送信しますが、応答をローカル ファイルに保存しようとすると、csv ファイルではなくダウンロード ページの html コードが表示されます。

これが私のコードです:

    $fp = fopen(getcwd()."\patti.csv", "w+");

    $ch = curl_init($urlPatti);//the url of the download page
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$postfields);//parameters to send
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 50);
    curl_setopt($ch, CURLOPT_FILE, $fp); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

    $result = curl_exec ($ch);
    $errorMsg=curl_error($ch);
    curl_close ($ch);
    fclose($fp);

これは私がページから受け取るヘッダーです:

HTTP/1.1 200 OK
Date: Thu, 22 Aug 2013 08:59:39 GMT
Server: Apache-Coyote/1.1
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Last-Modified: Thu, 22 Aug 2013 08:59:39 GMT
Content-Type: text/html
Vary: Accept-Encoding
Via: 1.1 ido.venetolavoro.it
Transfer-Encoding: chunked
4

0 に答える 0