0

当我尝试在我的 php 脚本中使用 curl 从远程第三方服务器下载文件时遇到问题。

该文件是 csv,我认为它是由从数据库读取数据的脚本创建的。事实上,要获取该文件,您必须使用一些参数(如月份和年份)填写 HTML 表单。我使用 curl 登录服务器并发送填充表单的值,但是当我尝试将响应保存到本地文件时,我得到下载页面的 html 代码而不是 csv 文件。

这是我的代码:

    $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