在PHP拼抢CSV超过卷曲
问题描述:
不幸的是,我不能使用任何的fopen或的file_get_contents,所以我的工作脚本已经成为一个破碎的一个使用卷曲:在PHP拼抢CSV超过卷曲
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$tmp = curl_exec($ch);
curl_close($ch);
header("Content-type: application/csv");
header(Content-Disposition: attachment; filename=$start.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo $tmp;
URL将在一个CSV文件 - ,而fopen版本之前的工作。我得到的只是一个空的CSV文件,返回给浏览器。
谢谢。
答
好吧,可能会出现一些错误的地方,很可能$ tmp变量将成为您的密钥。
我假定$ url和$开头的变量已经正确申报
第一件事,我建议是做线沿线的东西:
if(! $tmp = curl_exec($ch))
{
echo curl_error($ch);
}
else
{
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=$start.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo $tmp;
}
curl_close($ch);
可能给你约一个想法是什么出错了
+0
上面的代码是获取CSV还是只显示更多的curl请求信息? – hitautodestruct
答
将CURLOPT_RETURNTRANSFER设置为1,以便将某些内容放入$ tmp中,否则,curl_exec将直接输出csv(并在发送标题之前)。请参阅http://www.php.net/manual/en/function.curl-setopt.php
答
我相信curl_exec($ch)
不会返回字符串,除非您先使用curl_setopt($ch,CURLOPT_RETURNTRANSFER,true)
。
在发送''csv''头文件之前先试着看看是否有任何输出 –