cURL 是一個(gè)利用URL語(yǔ)法規(guī)定來(lái)傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫(kù)。本文將介紹 cURL 的一些高級(jí)特性,以及在PHP中如何運(yùn)用它。
為什么要用 cURL?
是的,我們可以通過(guò)其他辦法獲取網(wǎng)頁(yè)內(nèi)容。大多數(shù)時(shí)候,我因?yàn)橄胪祽校贾苯佑煤?jiǎn)單的PHP函數(shù):
$content = file_get_contents("http://www.nettuts.com"); // or $lines = file("http://www.nettuts.com"); // or readfile(http://www.nettuts.com);
不過(guò),這種做法缺乏靈活性和有效的錯(cuò)誤處理。而且,你也不能用它完成一些高難度任務(wù)——比如處理coockies、驗(yàn)證、表單提交、文件上傳等等。
引用: cURL 是一種功能強(qiáng)大的庫(kù),支持很多不同的協(xié)議、選項(xiàng),能提供 URL 請(qǐng)求相關(guān)的各種細(xì)節(jié)信息。
基本結(jié)構(gòu)
在學(xué)習(xí)更為復(fù)雜的功能之前,先來(lái)看一下在PHP中建立cURL請(qǐng)求的基本步驟:
- 初始化
- 設(shè)置變量
- 執(zhí)行并獲取結(jié)果
- 釋放cURL句柄
// 1. 初始化 $ch = curl_init(); // 2. 設(shè)置選項(xiàng),包括URL curl_setopt($ch, CURLOPT_URL, "http://www.nettuts.com"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); // 3. 執(zhí)行并獲取HTML文檔內(nèi)容 $output = curl_exec($ch); // 4. 釋放curl句柄 curl_close($ch);
第二步(也就是 curl_setopt() )最為重要,一切玄妙均在此。有一長(zhǎng)串cURL參數(shù)可供設(shè)置,它們能指定URL請(qǐng)求的各個(gè)細(xì)節(jié)。要一次性全部看完并理解可能比較困難,所以今天我們只試一下那些更常用也更有用的選項(xiàng)。
檢查錯(cuò)誤
你可以加一段檢查錯(cuò)誤的語(yǔ)句(雖然這并不是必需的):
// ... $output = curl_exec($ch); if ($output === FALSE) { echo "cURL Error: " . curl_error($ch); } // ...
請(qǐng)注意,比較的時(shí)候我們用的是“=== FALSE”,而非“== FALSE”。因?yàn)槲覀兊脜^(qū)分 空輸出 和 布爾值FALSE,后者才是真正的錯(cuò)誤。
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) 基于PHP的cURL快速入門 [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|