欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年07月01日 15:39:19   投稿:junjie  
這篇文章主要介紹了curl和libcurl的區(qū)別簡介,本文講解了curl簡介、libcurl簡介、curl與libcurl對比、“curl”的不同意思、PHP中使用curl和libcurl等內(nèi)容,這么多的curl,搞都搞不懂,看了本文才知道,我們一直用的其實是libcurl,需要的朋友可以參考下

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、用戶名/密碼認證(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、用戶名/密碼認證(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的強大功能。接下來將要介紹的PHP擴展就是對curl的一個封裝。

幾個名詞

“curl”的不同意思

1.curl指的是curl命令行工具,可以從命令行或者腳本或者批處理文件中運行curl。curl創(chuàng)建于1998年,并且提供了100多個選項去控制它。
2.cURL是一個軟件項目的名字。該軟件項目包含了上面所說的curl和libcurl,并且都是開源的。
3.CURL通常用作PHP中l(wèi)ibcurl擴展的名字。這個擴展確保了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ù)即可。
代碼示例:

復(fù)制代碼 代碼如下:

$baidu=shell_exec("/usr/bin/curl -L var_dump($baidu);

PHP中使用libcurl

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

復(fù)制代碼 代碼如下:

// 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)有一個定時腳本在遠程服務(wù)器的文件改變時發(fā)送郵件或者當(dāng)前PHP環(huán)境不支持libcurl時,我們應(yīng)該使用curl。否則,我們使用libcurl即可。

相關(guān)文章

  • php代碼架構(gòu)的八點注意事項

    php代碼架構(gòu)的八點注意事項

    這篇文章主要介紹了php代碼架構(gòu)的八點注意事項,較為全面的分析總結(jié)了基于面向?qū)ο蟪绦蛟O(shè)計的代碼架構(gòu)設(shè)計問題相關(guān)注意事項,需要的朋友可以參考下
    2016-01-01
  • php通用檢測函數(shù)集合

    php通用檢測函數(shù)集合

    php下一些通用的檢測字符串的函數(shù)集合,方便大家使用
    2008-07-07
  • Adnroid 微信內(nèi)置瀏覽器清除緩存

    Adnroid 微信內(nèi)置瀏覽器清除緩存

    本文主要介紹,微信內(nèi)置瀏覽器無法清除緩存的問題.這里整理了一些方法,以供大家學(xué)習(xí)參考,希望能幫到有需要的小伙伴
    2016-07-07
  • PHP EOT定界符的使用詳解

    PHP EOT定界符的使用詳解

    定界符 另一種給字符串定界的方法使用定界符語法(“<<<”)。應(yīng)該在 <<< 之后提供一個標識符,然后是字符串,然后是同樣的標識符結(jié)束字符串。
    2008-09-09
  • php獲得當(dāng)前的腳本網(wǎng)址

    php獲得當(dāng)前的腳本網(wǎng)址

    這篇文章介紹了php獲得當(dāng)前的腳本網(wǎng)址的方法,通過php服務(wù)器變量$_SERVER的簡單判斷、轉(zhuǎn)換與輸出,實現(xiàn)獲取當(dāng)前網(wǎng)址的功能,需要的朋友可以參考一下
    2007-12-12
  • PHP動態(tài)生成指定大小隨機圖片的方法

    PHP動態(tài)生成指定大小隨機圖片的方法

    這篇文章主要介紹了PHP動態(tài)生成指定大小隨機圖片的方法,涉及PHP根據(jù)傳入?yún)?shù)動態(tài)生成圖片的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • php Exception異常處理詳解

    php Exception異常處理詳解

    異常經(jīng)常被用來處理一些在程序正常執(zhí)行中遇到的各種類型的錯誤。比如做數(shù)據(jù)庫鏈接時,你就要處理數(shù)據(jù)庫連接失敗的情況。使用異??梢蕴岣呶覀兂绦虻娜蒎e特性,從而使我們的應(yīng)用程序更加的穩(wěn)定和健壯
    2022-11-11
  • PHP實現(xiàn)預(yù)定義鉤子和自定義鉤子的簡單示例

    PHP實現(xiàn)預(yù)定義鉤子和自定義鉤子的簡單示例

    這篇文章主要給大家介紹了PHP實現(xiàn)預(yù)定義鉤子和自定義鉤子,在PHP中,鉤子(Hooks)是一種機制,允許開發(fā)人員在特定的時機插入自定義代碼,通過使用鉤子,開發(fā)人員可以在應(yīng)用程序的特定事件發(fā)生時執(zhí)行自定義的功能或邏輯,文中有詳細的代碼講解,需要的朋友可以參考下
    2023-11-11
  • php過濾器使用詳解

    php過濾器使用詳解

    PHP 過濾器用于驗證和清理外部輸入。PHP 過濾器擴展具有檢查用戶輸入所需的許多功能,旨在使數(shù)據(jù)驗證更容易、更快
    2022-11-11
  • PHP 反射(Reflection)使用實例

    PHP 反射(Reflection)使用實例

    這篇文章主要介紹了PHP 反射(Reflection)使用實例,本文講解了ReflectionClass、ReflectionExtension、 ReflectionFunction、ReflectionMethod、ReflectionObject、ReflectionParameter等類的使用實例,需要的朋友可以參考下
    2015-05-05

最新評論