- 资源介绍
- 更新记录
- 安装教程
资源详情
php curl使用总结(一)
今天和第三方支付做对接的时候,在本地用wamp(php版本5.4.14)运行他们的支付demo的时候,报了一个错误。loadXML函数中不能传空值。排查代码的时候,发现他们用了curl,我以前也接触过curl,但是并没有很深的研究只知道他是一种模拟浏览器传输数据的工具。借着这个机会把curl好好的研究一下。
1、curl是什么
百度百科给的解释是:数据传输神器。那它神器在什么地方那,通过查找资料得出curl可以使用url的语法模拟浏览器来传输数据,因为是模拟浏览器所以它支持多种的网络协议。目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。
php中使用最多的是通过curl来模拟get和post请求。
2、如何使用curl
(1)、要想使用curl,第一步先要在php中开启curl,在php配置文件php.ini中找到extension=php_curl.dll,把前面的‘;’去掉。重启服务器。在php代码中用phpinfo()打印,发现图中curl说明开启成功。
(2)、使用curl完成简单的请求主要分为四大步:
1).初始化,创建一个新的curl资源。
2).设置url和相应的选项
3).抓取url并把他传递给浏览器
4).关闭curl资源。把资源释放。
1 $MyAES = new MyAES(); 2 $jiaRes = $MyAES->desEncryptStr($data,\"1102130405061708\"); 3 $header[] = \"Content-type: text/xml;charset=UTF-8\"; 4 $ch = curl_init(); 5 curl_setopt($ch, CURLOPT_URL,REURL); 6 curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 7 curl_setopt($ch, CURLOPT_HTTPHEADER,$header); 8 curl_setopt($ch, CURLOPT_POST, true); 9 curl_setopt($ch, CURLOPT_POSTFIELDS, $jiaRes); 10 $aa = curl_exec($ch); 11 // grab URL, and print 12 if(curl_errno($ch)){ 13 print curl_error($ch); 14 } 15 curl_close($ch);
贴上项目一段代码,好好的分析一下。
curl_init这个是初始化,创建一个新的curl资源。
curl_setopt这个是php的函数。设置一个curl传输选项。 根据php手册对curl_setopt这个函数说明一下,这个函数需要传三个参数,第一个是curl句柄(我的理解就是那个创建的curl资源)。第二个是需要设置的curlopt_XX选项。第三个参数就是选项对应的值。 curl_exec函数是执行curl会话。这个函数是初始化一个curl并且全部的选项都设置之后再调用。 成功时返回TRUE
, 或者在失败时返回FALSE
。 然而,如果CURLOPT_RETURNTRANSFER
选项被设置,函数执行成功时会返回执行的结果,失败时返回FALSE
。 CURLOPT_URL 需要获取的url地址 CURLOPT_RETURNTRANSFER 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。CURLOPT_HTTPHEADER 一个用来设置HTTP头字段的数组。使用如下的形式的数组进行设置:
array(\'Content-type: text/plain\', \'Content-length: 100\')
CURLOPT_POST 启用时会发送一个常规的POST请求 CURLOPT_POSTFIELDS 全部数据以http协议中post方式发送。
跟多curlopt对应的设置请查看php文档 http://php.net/manual/zh/book.curl.php 特意说明一下curl_setopt_array — 为 cURL 传输会话批量设置选项 使用案例为
1 <?php 2 // 创建一个新cURL资源 3 $ch = curl_init(); 4 5 // 设置URL和相应的选项 6 $options = array(CURLOPT_URL => \'http://www.example.com/\', 7 CURLOPT_HEADER => false 8 ); 9 10 curl_setopt_array($ch, $options); 11 12 // 抓取URL并把它传递给浏览器 13 curl_exec($ch); 14 15 // 关闭cURL资源,并且释放系统资源 16 curl_close($ch); 17 ?>
curl是很强大的,例如,我们只想把获取到的内容输入到文件,而不是直接输出给浏览器,我们就可以使用CURLOPT_RETURNTRANSFER选项!
这样在curl执行的时候,就会把页面的内容输出到文件当中,我们就可以完成采集等功能啦!
效率方面,curl的原理是模拟浏览器的操作,它的效率要比file_get_contents()高出四倍以上,试想一下,我们
要采集一个信息量特别庞大的站,运行效率的差别可想而知!
不单单是效率上,稳定忄生上来说,curl也远比file_get_contents()函数要好很多!
猜你喜欢
-
(\'[其他] PHPStorm-最好的PHP IDE一个神器的诸多神奇功能视频全程讲解 PHPStorm使用视\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
2017年 迭代式教学法 PHP全套视频,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’【教程】PHP高性能构架246讲PHP视频教程 百度网盘下载\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’PHP架构师全套\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
php文件上传与下载重基础到实战视频教程,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
[php] 燕十八 XML 视频教程,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
[项目实战] PHP功能经典案例日历/九九乘法表/递归函数万年历/验证码/缩略图等实战视频课程,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\'[项目实战] PHP商城高并发挑战极致视频教程 PHP高并发性能挑战教程\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’PHP从基础语法到原生项目开发\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
罔依云课堂 – ThinkCMF 5 视频教程 模板开发,全套视频教程学习资料通过百度云网盘下载
2021-11-16
-
[项目实战] 布尔教育Blog项目实战视频 php博客项目实战教程 php实战教程,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
【22G】多个精品DUBBO分布式项目实战视频教程数据交换平台项目+SpringMVC+maven等,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’燕十八2016新版PHP培训课程\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’php web开发实战\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’PHP Composer 视频教程\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’全方位深度剖析PHP7底层源码(已完结)\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
PHP开发高可用高安全app后端,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
(\’新版《核弹头new》手机H5小游戏源码 在线小游戏源码带手机端+火车头采集 帝国\’,),全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
近距离探索memcache缓存,全套视频教程学习资料通过百度云网盘下载
2021-11-16 -
基于PHP架构的Linux基础、进阶优化、开发、负载均衡教程 Linux运维 之 Linux开发篇,全套视频教程学习资料通过百度云网盘下载
2021-11-16
猜你在找
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 诸葛孔明
- 2021-11-16Hi,初次和大家见面了,请多关照!