国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

curl和libcurl的區(qū)別簡介

2024-04-25 20:38:02
字體:
供稿:網(wǎng)友

curl簡介

curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。

它支持很多協(xié)議:DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP。

curl同樣支持SSL證書,HTTP POST, HTTP PUT,FTP上傳,基于表單的HTTP上傳,代理(proxies)、cookies、用戶名/密碼認(rèn)證(Basic, Digest, NTLM等)、下載文件斷點續(xù)傳,上載文件斷點續(xù)傳(file transfer resume),http代理服務(wù)器管道(proxy tunneling)以及其他特性。

curl是瑞典curl組織開發(fā)的,curl的官網(wǎng)是http://curl.haxx.se/,可以從官網(wǎng)獲取它的源代碼和相關(guān)說明。

libcurl簡介

libcurl為一個免費開源的,客戶端url傳輸庫,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP等協(xié)議。

同curl一樣,libcurl也支持SSL證書,HTTP POST, HTTP PUT,FTP上傳,基于表單的HTTP上傳,代理(proxies)、cookies、用戶名/密碼認(rèn)證(Basic, Digest, NTLM等)、下載文件斷點續(xù)傳,上載文件斷點續(xù)傳(file transfer resume),http代理服務(wù)器管道(proxy tunneling)等。

libcurl是高度可移植的,可以工作在不同的平臺上,支持Windows,Unix,Linux等。

libcurl是免費的,線程安全的,IPV6兼容的,同事它還有很多其他非常豐富的特性。libcurl已經(jīng)被很多知名的大企業(yè)以及應(yīng)用程序所采用。

可以在這里獲取libcurl的源碼及相關(guān)文檔。

curl與libcurl對比

相同點

curl和libcurl都可以利用多種多樣的協(xié)議來傳輸文件,包括HTTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET and FILE等。

不同點

curl是命令行工具,可以通過shell或腳本來運行curl。curl底層所使用的庫是libcurl。

libcurl是一個庫,通常與別的程序綁定在一起使用,如命令行工具curl就是封裝了libcurl庫。所以我們也可以在你自己的程序或項目中使用libcurl以獲得類似CURL的強(qiáng)大功能。接下來將要介紹的PHP擴(kuò)展就是對curl的一個封裝。

幾個名詞

“curl”的不同意思

1.curl指的是curl命令行工具,可以從命令行或者腳本或者批處理文件中運行curl。curl創(chuàng)建于1998年,并且提供了100多個選項去控制它。

2.cURL是一個軟件項目的名字。該軟件項目包含了上面所說的curl和libcurl,并且都是開源的。

3.CURL通常用作PHP中l(wèi)ibcurl擴(kuò)展的名字。這個擴(kuò)展確保了PHP程序員在程序中可以訪問libcurl庫所提供的功能。

curl—命令行工具

1.命令行工具,可以從shell或者腳本中運行該工具。

2.提供了130多種不同的“flags”

3.通常被用來模擬瀏覽器的行為

4.跨平臺

libcurl—庫

1.用作其他程序的開發(fā)庫

2.可以與許多語言想結(jié)合,如PHP、C++

3.跨平臺

4.提供了多種不同的使用它的APIs

PHP中使用curl和libcurl

PHP中使用curl

在PHP中使用curl非常簡單,只要調(diào)用PHP中幾個執(zhí)行系統(tǒng)命令的相關(guān)函數(shù)即可。

代碼示例:

代碼如下:

$baidu=shell_exec("/usr/bin/curl -L http://www.baidu.com");

var_dump($baidu);

PHP中使用libcurl

在PHP中使用libcurl,也就是我們通常所說的PHP中的“curl”。這部分的內(nèi)容會在以后的文章中給出,這里只寫出一個示例代碼:

代碼如下:

// FTP this script to a server

$fp = fopen(__FILE__, "r");

$url = "ftp://username:password@mydomain.com:21/path/to/newfile.php";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_UPLOAD, 1);

curl_setopt($ch, CURLOPT_INFILE, $fp);

curl_setopt($ch, CURLOPT_FTPASCII, 1);

curl_setopt($ch, CURLOPT_INFILESIZE, filesize(__FILE__));

$result = curl_exec($ch);

curl_close($ch);

使用curl還是libcurl?

使用curl還是libcurl這個需要根據(jù)具體的情況而定。例如,當(dāng)有一個定時腳本在遠(yuǎn)程服務(wù)器的文件改變時發(fā)送郵件或者當(dāng)前PHP環(huán)境不支持libcurl時,我們應(yīng)該使用curl。否則,我們使用libcurl即可。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通城县| 兴山县| 珲春市| 正宁县| 洮南市| 泸州市| 芦山县| 玛曲县| 台州市| 镇雄县| 库车县| 喀喇沁旗| 郯城县| 长垣县| 调兵山市| 富锦市| 克东县| 赞皇县| 疏附县| 信丰县| 原平市| 衡阳县| 祁门县| 额济纳旗| 庆云县| 福安市| 望谟县| 昌宁县| 临潭县| 隆子县| 万载县| 砀山县| 峨边| 确山县| 习水县| 石狮市| 栾城县| 洱源县| 藁城市| 西吉县| 陇西县|