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);
0 comments:
張貼留言