CURL 在寫程式的時候,還蠻常會用到的,抓資料很方便。
貼上一個自己亂寫的Sample。
function getResource($url){
$ch = curl_init();
//永遠抓最新
$header[] = "Cache-Control: no-cache";
$header[] = "Pragma: no-cache";
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
//等待時間
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
//Post Data
$postData="name=".$name."&id=".$id;
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postData);
// 設定referer
curl_setopt($ch, CURLOPT_REFERER, 'http://www.xuite.net');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = 'http://xuite.net';
$res = getResource($url);
//補充說明:2008-12-01
//CURLOPT_URL是要得到內容的地址
//CURLOPT_HEADER是要得到的頭
//CURLOPT_NOBODY是要得到的內容
//CURLOPT_PORT是端口
//CURLOPT_RETURNTRANSFER是要把輸出的內容放到buffer中,可以被echo或者賦予某變量
//CURLOPT_POST是標準的提交
//CURLOPT_POSTFIELDS是提交的內容
//CURLOPT_COOKIEJAR是要保存的cookie
//CURLOPT_COOKIEFILE是從文件讀取cookie並提交
//CURLOPT_FOLLOWLOCATION啟用時會將服務器服務器返回的「Location:」放在header中遞歸的返回給服務器
//CURLOPT_MAXREDIRS限定遞歸返回的數量
//CURLOPT_HTTPHEADER設置一個header中傳輸內容的數組
//CURLOPT_REFERER設置header中"Referer:"部分的值
//CURLOPT_USERAGENT在HTTP請求中包含一個」user-agent」頭的字符串。
//CURLOPT_ENCODING設定header中「Accept-Encoding: 」部分的內容,支持的編碼格式為:"identity","deflate","gzip"。如果設置為空字符串,則表示支持所有的編碼格式
//CURLOPT_COOKIE設定HTTP請求中Set-Cookie:部分的內容
下面這段是從Garlic那偷貼過來的,還可以設定帳號跟密碼
(1) php:就是多設定一個 CURLOPT_USERPWD的參數, 內容為 ID:PASSWORD
$ch = curl_init('http://192.168.1.1/rebootinfo.cgi');
curl_setopt($ch, CURLOPT_USERPWD, 'garlic:12345678');
echo curl_exec($ch);
curl_close($ch);
沒有留言:
張貼留言