Miles' Blog

天涯何處無幹話,何必要講實務話

cURL

cURL 是額外模組,需另外安裝並重新啟動 Apache。

apt-get install php5-curl
service apache2 restart

程式部分需先確認是否有安裝 extension。

// 確認 cURL 模組是否有安裝
if (!function_exists('curl_init')) {
die('Sorry cURL is not installed!');
}

Usage

跟 MySQL 一樣,首先,需要建立 curl 連線;有連線也會有關閉,所以都先寫好

// 初始化
$ch = curl_init();

// 設定、執行連線、取資料等。

// 關閉連線
curl_close($ch);

設定的範圍,包括連線 URL、Agent、header、timeout 等,都是可以調整設定的,詳細可以參考官方網站,下面是比較常見的設定:

// 設定要下載的 URL 位置
curl_setopt($ch, CURLOPT_URL, 'https://google.com.tw');

// 設定 HTTP referer (表示從哪連結到目前的網頁,格式也是 URL)
curl_setopt($ch, CURLOPT_REFERER, "https://www.google.com.tw/");

// 設定 User Agent
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36");

// 回傳訊息是否包含 Header 訊息
curl_setopt($ch, CURLOPT_HEADER, false);

// 如果是 true,curl_exec() 會回傳 string;false 會直接輸出結果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 設定 Timeout (seconds);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

設定完畢後,就可以直接用 curl_exec() 取得資料了。

// 因為剛剛有設定 CURLOPT_RETURNTRANSFER 為 true,所以可以把回傳來的 string 再做加工處理
$output = curl_exec($ch);

References

0%