联系客服1
联系客服2

php中使用cURL,全套视频教程学习资料通过百度云网盘下载

0
回复
221
查看
打印 上一主题 下一主题
[复制链接]
  • TA的每日心情
    开心
    2024-9-19 21:14
  • 签到天数: 757 天

    [LV.10]以坛为家III

    7335

    主题

    8751

    帖子

    131万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1312677
    楼主
    发表于 2021-3-29 10:45:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    资源详情



    phpcurl使用总结(一)
     



    今天和第三方支付做对接的时候,在本地用wamp(php版本5.4.14)运行他们的支付demo的时候,报了一个错误。loadXML函数中不能传空值。排查代码的时候,发现他们用了curl,我以前也接触过curl,但是并没有很深的研究只知道他是一种模拟浏览器传输数据的工具。借着这个机会把curl好好的研究一下。

    1、curl是什么

    百度百科给的解释是:数据传输神器。那它神器在什么地方那,通过查找资料得出curl可以使用url的语法模拟浏览器来传输数据,因为是模拟浏览器所以它支持多种的网络协议。目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTPPOST、HTTPPUT、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=newMyAES();
    2$jiaRes=$MyAES->desEncryptStr($data,"1102130405061708");
    3$header[]="Content-type:text/xml;charset=UTF-8";
    4$ch=curl_init();
    5curl_setopt($ch,CURLOPT_URL,REURL);
    6curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    7curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
    8curl_setopt($ch,CURLOPT_POST,true);
    9curl_setopt($ch,CURLOPT_POSTFIELDS,$jiaRes);
    10$aa=curl_exec($ch);
    11//grabURL,andprint
    12if(curl_errno($ch)){
    13printcurl_error($ch);
    14}
    15curl_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/',
    7CURLOPT_HEADER=>false
    8);
    9
    10curl_setopt_array($ch,$options);
    11
    12//抓取URL并把它传递给浏览器
    13curl_exec($ch);
    14
    15//关闭cURL资源,并且释放系统资源
    16curl_close($ch);
    17?>





    curl是很强大的,例如,我们只想把获取到的内容输入到文件,而不是直接输出给浏览器,我们就可以使用CURLOPT_RETURNTRANSFER选项!

    这样在curl执行的时候,就会把页面的内容输出到文件当中,我们就可以完成采集等功能啦!

    效率方面,curl的原理是模拟浏览器的操作,它的效率要比file_get_contents()高出四倍以上,试想一下,我们

    要采集一个信息量特别庞大的站,运行效率的差别可想而知!

    不单单是效率上,稳定忄生上来说,curl也远比file_get_contents()函数要好很多!









    游客,如果您要查看本帖隐藏内容请回复
    收藏
    收藏0
    分享
    分享
    支持
    支持0
    反对
    反对0
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    学习课程!一站搞定!
    学途无忧VIP会员群

    973849140

    周一至周日9:00-23:00

    反馈建议

    1227072433@qq.com 在线QQ咨询

    扫描二维码关注我们

    学途无忧!为学习谋坦途,为会员谋福利!|网站地图