curl和libcurl的区别简介

 2025-01-15  阅读 298  评论 8  点赞 236

摘要: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 p

curl简介

curl和libcurl的区别简介

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即可。


标签:phpphp教程

评论列表:

  •   xiedaimade
     发布于 2天前回复该评论
  • 又学到了新知识!
  •   xiedaimade
     发布于 2天前回复该评论
  • 又学到了新知识!
显示更多评论

发表评论:

管理员

承接各种程序开发,外贸网站代运营,外贸网站建设等项目
  • 内容2460
  • 积分67666
  • 金币86666

Copyright © 2024 LS'Blog-保定PHP程序员老宋个人博客 Inc. 保留所有权利。 Powered by LS'blog 3.0.3

页面耗时0.0290秒, 内存占用1.95 MB, 访问数据库31次

冀ICP备19034377号