Ⅰ 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命令全稱是什麼
curl,全稱CommandLine URL 或 CommandLine Uniform Resource Locator,顧名思義,curl命令是在命令行方式下工作,利用URL的語法進行數據的傳輸或者文件的傳輸。
這個命令行工具現在多用於Unix和Linux操作系統,是一個開源的工具,功能十分強大。
Ⅲ 怎麼在windows使用curl 命令進行上傳upload
linux curl是一個利用URL規則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
curl並不悶物是雙擊即可運行,你需要在命令提示符下使用它
如何進入命令提示符
點擊「開始」——「運行」——輸入CMD
或,WIN+R,輸入CMD
下載我下載版本的CURL後,解壓後文件夾放在如:D:curl的文件夾里(curl路徑)
命令提示符窗口中輸入"d:"回車,然後輸入「cd curl」即可跳轉到curl文件夾,
至此可做罩譽以輸入curl命令了(根據你的curl類推)或你也可以將curl加入到系統環境變數如何純段將curl所在文件夾加入系統變數
右鍵單擊「我的電腦」——「屬性」——「高級」——「環境變數」——
「系統變數」——「Path」——「編輯」——加入「;D:curl」(注意分號,
D:curl換成你的curl路徑)——「確定」加入到系統環境變數後可在命令提示符內直接運行如
「curl -O http://curl.haxx.se/download/curl-7.19.5-win32-ssl-sspi.zip」
這樣的命令,無需進入curl所在文件夾curl命令用法!
實例演示:
curl 是一般linux發行版中都帶有的小工具,利用這個工具可以很方便的下載文件,我一般使用這個工具來查看某個頁面相應的HTTP頭信息,在Windows系統中我們也一樣可以使用這個工具,如果不需要支持https的話,那直接下載一個可執行文件即可
這個頁面最底部有一個Windows下的下載鏈接,請選擇不帶SSL的版本,
否則還需要安裝SSL的支持包。
解壓後直接執行 curl.exe 即可(如不能直接運行,請使用cmd帶路徑執行curl.exe程序),如將改文件放入盤
C:curlcurl.exe.在cmd控制台為 C:curlcurl.exe --help
如果需要將cmd直接執行curl ,則可將curl.exe文件放入到C:WINDOWSsystem32目錄下。
Ⅳ curl和wget的區別和用法介紹
區別:1.curl是libcurl這個庫支持的,wget是一個純粹的命令行命令。
2.curl支持更多的協議。
3.curl 默認支持HTTP1.1(也支持1.0),而wget僅僅支持HTTP1.0規范。
4.curl在指定要下載的鏈接時能夠支持URL的序列或集合,而wget則不能這樣;
5.wget支持遞歸下載,而curl則沒有這個功能。
Linux curl是一個利用URL規則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱url為下載工具。
用法:CURL 是使用URL語法的傳送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL證書、HTTP POST、HTTP PUT 、FTP 上傳,kerberos、基於HTT格式的上傳、代理、cookie、用戶+口令證明、文件傳送恢復、http代理通道和大量其他有用的技巧。
wget是一個從網路上自動下載文件的自由工具,支持通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載,並可以使用HTTP代理。wget名稱的由來是「World Wide Web」與「get」的結合。
Ⅳ php curl 上傳多文件,怎麼弄
下面是一段示例代碼:
<?php
//註:PHP5.5.0起,文件上傳建議使用CURLFile代替@
//多文件上傳
$data=array(
'input_file[0]'=>newCURLFile('d:/1.txt','text/plain','testfile.txt'),
'input_file[1]'=>newCURLFile('d:/2.txt','text/plain'),
'input_file[2]'=>newCURLFile('d:/3.txt','text/plain'),
);
$ch=curl_init('http://demo.zjmainstay.cn/php/curl/curlUploadHandler.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);
如果你的版本比較低,文件部分使用:
'input_file[0]'=>'@d:/1.txt',
這樣既可。
我的博客《PHP cURL實現模擬登錄與採集使用方法詳解》對各類curl問題做了系統而詳細的講解,請參考「十、模擬上傳文件」部分查看更多文件上傳內容,如直接基於採集的文件內容進行上傳等。
Ⅵ 如何使用ftp用curl命令上傳文件
使用ftp用curl命令上傳文件方法:
第一種:
server端有現成的ftpserver:
上傳的option是 -T
比如我們向ftp傳一個文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/
curl -T hadoop_oom.log -u user:1234567 ftp://1.1.1.1/
第二種:
nginx上傳: (需要加上--with-http_dav_mole模塊 )
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_mole --with-http_ssl_mole --with-http_dav_mole
make && make install
要創建上傳的臨時目錄
mkdir -p /dev/shm/client_body_temp
nginx http段加入:
client_body_temp_path /dev/shm/client_body_temp 1 2;
client_max_body_size 1024m; #這個根據實際的情況,如有大文件upload需要加大,不然nginx拋413 error
然後:
server
{
listen 80;
server_name 1.1.1.1;
index index.html index.htm index.php;
root html;
autoindex on;
dav_methods PUT; #這個是重點默認不允許PUT
測試:
curl -T hadoop_oom.log http://1.1.1.1/
安全注意事項:
一般需要單獨location一個目錄單獨做upload用。或者這個nginx只做upload上傳單一用途。
然後就是nginx allow了,一般機房都是內網打通的,只允許idc內網才能PUT。不然就能任意PUT到你的upload機器了。