另一些有用的cURL 選項(xiàng)
HTTP 認(rèn)證
如果某個(gè)URL請(qǐng)求需要基于 HTTP 的身份驗(yàn)證,你可以使用下面的代碼: 復(fù)制內(nèi)容到剪貼板代碼:
$url = "http://www.somesite.com/members/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 發(fā)送用戶名和密碼 curl_setopt($ch, CURLOPT_USERPWD, "myusername:mypassword"); // 你可以允許其重定向 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 下面的選項(xiàng)讓 cURL 在重定向后 // 也能發(fā)送用戶名和密碼 curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1); $output = curl_exec($ch); curl_close($ch);
FTP 上傳
PHP 自帶有 FTP 類庫(kù), 但你也能用 cURL:
// 開一個(gè)文件指針 $file = fopen("/path/to/file", "r"); // url里包含了大部分所需信息 $url = "ftp://username:password@mydomain.com:21/path/to/new/file"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 上傳相關(guān)的選項(xiàng) curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $fp); curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file")); // 是否開啟ASCII模式 (上傳文本文件時(shí)有用) curl_setopt($ch, CURLOPT_FTPASCII, 1); $output = curl_exec($ch); curl_close($ch);
翻墻術(shù)
你可以用代理發(fā)起cURL請(qǐng)求:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,'http://www.example.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 指定代理地址 curl_setopt($ch, CURLOPT_PROXY, '11.11.11.11:8080'); // 如果需要的話,提供用戶名和密碼 curl_setopt($ch, CURLOPT_PROXYUSERPWD,'user:pass'); $output = curl_exec($ch); curl_close ($ch);
回調(diào)函數(shù)
可以在一個(gè)URL請(qǐng)求過程中,讓cURL調(diào)用某指定的回調(diào)函數(shù)。例如,在內(nèi)容或者響應(yīng)下載的過程中立刻開始利用數(shù)據(jù),而不用等到完全下載完。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,'http://net.tutsplus.com'); curl_setopt($ch, CURLOPT_WRITEFUNCTION,"progress_function"); curl_exec($ch); curl_close ($ch); function progress_function($ch,$str) { echo $str; return strlen($str); }
這個(gè)回調(diào)函數(shù)必須返回字串的長(zhǎng)度,不然此功能將無法正常使用。
在URL響應(yīng)接收的過程中,只要收到一個(gè)數(shù)據(jù)包,這個(gè)函數(shù)就會(huì)被調(diào)用。
小結(jié)
今天我們一起學(xué)習(xí)了cURL庫(kù)的強(qiáng)大功能和靈活的擴(kuò)展性。希望你喜歡。下一次要發(fā)起URL請(qǐng)求時(shí),考慮下cURL吧!
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2966700-1-1.html
本文鏈接:http://www.95time.cn/tech/program/2010/7348.asp
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 基于PHP的cURL快速入門 [5] 下一頁(yè)
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|