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的官网是,可以从官网获取它的源代码和相关说明。

libcurl简介

libcurl为一个免费开源的,客户端url传输库,支持DICT,Telnet and TFTP等协议。 同curl一样,libcurl也支持SSL证书,NTLM等)、下载文件断点续传,上载文件断点续传(file transfer resume),http代理服务器管道(proxy tunneling)等。

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

libcurl是免费的,线程安全的,IPV6兼容的,同事它还有很多其他非常丰富的特性。libcurl已经被很多知名的大企业以及应用程序所采用。 可以在这里获取的源码及相关文档。

curl与libcurl对比

相同点

curl和libcurl都可以利用多种多样的协议来传输文件包括HTTP,GOPHER,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中几个执行系统命令的相关函数即可。 代码示例:

代码如下:
"); var_dump($baidu);

PHP中使用libcurl

在PHP中使用libcurl,也就是我们通常所说的PHP中的“curl”。这部分的内容会在以后的文章中给出,这里只写出一个示例代码:

代码如下:
PHP">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,CURLOPT_INFILE,$fp); curl_setopt($ch,CURLOPT_FTPASCII,CURLOPT_INFILESIZE,filesize(__FILE__)); $result = curl_exec($ch); curl_close($ch);

使用curl还是libcurl?

使用curl还是libcurl这个需要根据具体的情况而定。例如,当有一个定时脚本在远程服务器的文件改变时发送邮件或者当前PHP环境不支持libcurl时,我们应该使用curl。否则,我们使用libcurl即可。

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...