2011-08-23 43 views
0

不幸的是,我不能使用任何的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文件,返回給瀏覽器。

謝謝。

+0

在發送''csv''頭文件之前先試着看看是否有任何輸出 –

回答

1

好吧,可能會出現一些錯誤的地方,很可能$ 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

4

默認curl_exec返回一個布爾值。您需要將CURLOPT_RETURNTRANSFER選項設置爲1true以獲取返回的傳輸有效內容。

+0

這個選項可能是原因 – ChrisK

1

我相信curl_exec($ch)不會返回字符串,除非您先使用curl_setopt($ch,CURLOPT_RETURNTRANSFER,true)