程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> curl和libcurl的區別簡介

curl和libcurl的區別簡介

編輯:關於PHP編程

       這篇文章主要介紹了curl和libcurl的區別簡介,本文講解了curl簡介、libcurl簡介、curl與libcurl對比、“curl”的不同意思、PHP中使用curl和libcurl等內容,這麼多的curl,搞都搞不懂,看了本文才知道,我們一直用的其實是libcurl,需要的朋友可以參考下

      curl簡介

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

      它支持很多協議: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、用戶名/密碼認證(Basic, Digest, NTLM等)、下載文件斷點續傳,上載文件斷點續傳(file transfer resume),http代理服務器管道(proxy tunneling)以及其他特性。

      curl是瑞典curl組織開發的,curl的官網是http://curl.haxx.se/,可以從官網獲取它的源代碼和相關說明。

      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等協議。

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

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

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

      可以在這裡獲取libcurl的源碼及相關文檔。

      curl與libcurl對比

      相同點

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

      不同點

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

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

      幾個名詞

      “curl”的不同意思

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

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

      3.CURL通常用作PHP中libcurl擴展的名字。這個擴展確保了PHP程序員在程序中可以訪問libcurl庫所提供的功能。

      curl—命令行工具

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

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

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

      4.跨平台

      libcurl—庫

      1.用作其他程序的開發庫

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

      3.跨平台

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

      PHP中使用curl和libcurl

      PHP中使用curl

      在PHP中使用curl非常簡單,只要調用PHP中幾個執行系統命令的相關函數即可。

      代碼示例:

       代碼如下:

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

      var_dump($baidu);

      PHP中使用libcurl

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

      代碼如下:

      // FTP this script to a server

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

      $url = "ftp://username:[email protected]: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這個需要根據具體的情況而定。例如,當有一個定時腳本在遠程服務器的文件改變時發送郵件或者當前PHP環境不支持libcurl時,我們應該使用curl。否則,我們使用libcurl即可。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved