在php中使用curl从服务器下载csv文件

在php中使用curl从服务器下载csv文件,php,csv,curl,Php,Csv,Curl,我被这件事深深打动了。我想使用curl从url下载csv文件。我参考了stackoverflow中的所有答案,并尝试了所有答案。但是没有得到我所期望的。我有以下代码 define("COOKIE_FILE", "cookie.txt"); $path = "settlement_file/test.csv"; set_time_limit(0); $fp = fopen ($path, 'w+');//This is the file where we save the informati

我被这件事深深打动了。我想使用curl从url下载csv文件。我参考了stackoverflow中的所有答案,并尝试了所有答案。但是没有得到我所期望的。我有以下代码

define("COOKIE_FILE", "cookie.txt");
$path = "settlement_file/test.csv";
set_time_limit(0);
$fp = fopen ($path, 'w+');//This is the file where we save the    information
$ch = curl_init(str_replace(" ","%20",$url));//Here is the file we are downloading, replace spaces with %20
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp); // write curl response to file
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_exec($ch); // get curl response
curl_close($ch);
fclose($fp);

您必须删除
curl\u setopt($ch,CURLOPT\u RETURNTRANSFER,1)语句。它使
curl\u exec
返回数据,而不是将其写入文件。因为它位于
curl_setopt($ch,CURLOPT_FILE,$fp)之后
它覆盖了这一点,所以只需删除前一行。

为什么在使用file_get_contents()时使用curl更适合这种情况?我正在使用的Url,使用cookies进行登录验证。@vishunu-lal以及使用curl的身份验证在哪里?@donald123:我还有一组代码将发布登录详细信息并创建cookie文件。我已经将cookie文件作为这个curl的一个选项,并尝试了。但是没有得到任何想要的结果。