curl和libcurl的区别简介

 更新时间:2015年07月01日 15:39:19   投稿:junjie  
这篇文章主要介绍了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: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这个需要根据具体的情况而定。例如,当有一个定时脚本在远程服务器的文件改变时发送邮件或者当前PHP环境不支持libcurl时,我们应该使用curl。否则,我们使用libcurl即可。

相关文章

  • PHP中如何定义和使用常量

    PHP中如何定义和使用常量

    PHP中的常量分为自定义常量和系统常量,自定义常量需要使用PHP函数来进行定义,系统常量可以直接拿来使用,下面来看一下这两种常量在使用上有什么不同
    2013-02-02
  • PHP回调函数与匿名函数实例详解

    PHP回调函数与匿名函数实例详解

    这篇文章主要介绍了PHP回调函数与匿名函数,结合实例形式分析了php回调函数与匿名函数的具体功能、用法及相关注意事项,需要的朋友可以参考下
    2017-08-08
  • PHP实现搜索相似图片

    PHP实现搜索相似图片

    感知哈希的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。实际应用中,往往采用更强大的pHash算法和SIFT算法,它们能够识别图片的变形。只要变形程度不超过25%,它们就能匹配原图。
    2015-09-09
  • php设计模式之简单工厂模式详解

    php设计模式之简单工厂模式详解

    这篇文章主要介绍了php设计模式的简单工厂模式,又称为静态工厂方法模式,是一种重要的PHP设计模式,需要的朋友可以参考下
    2014-09-09
  • php定时删除文件夹下文件(清理缓存文件)

    php定时删除文件夹下文件(清理缓存文件)

    有的时候网站缓存文件夹里生成的临时文件越来越多,而长时间不清理就会造成文件夹下有上万个缓存文件,可能会使ftp工具多无法进入其文件夹。使临时文件无法删除
    2013-01-01
  • 9条PHP编程小知识及易犯的小错误

    9条PHP编程小知识及易犯的小错误

    这篇文章主要介绍了9条PHP编程必备知识,本文讲解了变量声明、解析错误、常见的错误、MySQL错误、注意echo和print的区别、注意空字符串('')和NULL的区别、分清==(等于)和===(全等于)的区别等内容,需要的朋友可以参考下
    2015-01-01
  • PHP form 表单传参明细研究

    PHP form 表单传参明细研究

    最近一段时间一直在做基于uchome的二次开发网站,因uchome中的很多跳转都是通过参数do来控制的,一直对这种机制不是十分的明细,总有一种雾里看花的感觉。
    2009-07-07
  • PHP5各个版本的新功能和新特性总结

    PHP5各个版本的新功能和新特性总结

    因为 PHP 那“集百家之长”的语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣,本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征
    2014-03-03
  • PHP调用FFMpeg实现音视频操作的示例详解

    PHP调用FFMpeg实现音视频操作的示例详解

    这篇文章主要为大家详细介绍了PHP如何调用FFMpeg实现简单的音视频操作,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-10-10
  • 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的

    如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的

    如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的...
    2007-03-03

最新评论