CURL簡介
curl是利用URL語法在命令行方式下工作的文件傳輸工具。
它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。
curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證,HTTP上傳, 代理服務器, cookies, 用戶名/密碼認證, 下載文件斷點續傳,上載文件斷點續傳,,http代理服務器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務器,,通過http代理服務器上傳文件到FTP服務器等等,功能十分強大。
Windows操作系統下的網絡螞蟻,網際快車(FlashGet)的功能它都可以做到。准確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統,用戶習慣稱curl為下載工具。
PHP中的curl
php中也有一組用於curl操作的函數,這些函數由curl_開頭,具體大家可以查閱php手冊
因為他效率比較高且不需要服務器特定配置支持,在普通虛擬主機中即可使用,file_get_contents()效率稍低些,常用失敗的情況、curl()效率挺高的,支持多線程,不過需要開啟下curl擴展。
下面是curl擴展開啟的步驟:
1、將PHP文件夾下的三個文件php_curl.dll,libeay32.dll,ssleay32.dll復制到system32下;(視擴展dll目錄設置而定)
2、將php.ini(c:WINDOWS目錄下)中的;extension=php_curl.dll中的分號去掉;
3、重啟apache或者IIS。
在PHP中建立cURL請求的基本步驟:
初始化
設置變量
執行並獲取結果
釋放cURL句柄
// 1. 初始化
$ch = curl_init();
// 2. 設置選項,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.nettuts.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 執行並獲取HTML文檔內容
$output = curl_exec($ch);
// 4. 釋放curl句柄
curl_close($ch);