//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);
curl_close($ch);
這一段程式碼,是會直接輸出在螢幕上的,所以我的用法是:
php test.php > test.csv
再寫另一個程式來讀這個csv檔作處理。
另外說明一下: curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
這邊如果不加設定的話,以我原先要讀的網頁而言,它會導到一個moved的網頁,告訴我檔案要去哪邊下載 (但事實上我去下載時已經抓不到了,原因可能是它只是一個暫存檔)
加了這個設定之後,檔案就能被curl下載,簡單來說就是curl會去做follow location
=================================================
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
$fp = explode("\r",$result);
print_r($fp);
這一段的差異,只多了一個CURLOPT_RETURNTRANSFER的參數,但它會讓資料吐回來curl中,因此我把它放在$result這個變數中,再用explode把它切成陣列,就不需要前述的先產生csv檔,再讀csv這種麻煩的動作了。
官方網頁說明如下:
http://php.net/manual/en/function.curl-setopt.php
CURLOPT_RETURNTRANSFER
TRUE
to return the transfer as a string of the
return value of curl_exec() instead of outputting
it out directly.
沒有留言:
張貼留言