PHP之CURL

定义

curl是PHP语言的一个用来与服务器实现交互的工具,通过curl向服务器发送HTTP协议,可以更加灵活的选项设置不同的HTTP协议参数。

使用前的准备

curl扩展开启,重启服务器,有时候会遇到不成功的状况,应当在环境变量中设置对应的PHP路径。

使用CURL发送请求的具体流程

  1. 初始化连接句柄;
  2. 设置CURL选项;
  3. 执行并获取结果;
  4. 释放CURL连接句柄。

下面是curl模拟get,post请求方式的具体代码

curl 模拟get请求
1. 初始化curl工具

$ch = curl_init();
  1. 相关请求参数的设置
$url = 'http://www.baidu.com';
curl_setopt($ch,CURLOPT_URL,$url);
  1. 执行并获取结果
curl_exec($ch);
  1. 释放句柄
curl_close($ch);

curl模拟post请求
1. 初始化curl工具

$ch = curl_init();
  1. 相关请求参数的设置
$url = 'http://www.baidu.com';
curl_setopt($ch,CURLOPT_URL,$url);

注意post多出如下设置,即post提交查询

curl_setopt($ch,CURLOPT_POST,1);
//提交数据
$data = ['name'=>'li'];
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  1. 执行并获取结果
curl_exec($ch);
  1. 释放句柄
curl_close($ch);

在对应的post服务器接收post请求后我们可以获得相关数据

相关配置为
在第二步时设置
CURLOPT_RETURNTRANSFER
设为1表示接收返回值
在第三步时,将执行结果接收即可

当我们请求的是HTTPS请求时,一般都是跳过证书验证,代码如下。

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);

最后是我封装的一个简单的CURL类
希望博友按顺序阅读,有什么问题可以交流哦

class Curl
{
    //请求网址
    private $url;
    //是否直接返回
    private $is_return = 0;

    public function __get($name)
    {
        if(property_exists($this,$name))
        {
            return $this->$name;
        }
    }

    public function __set($name, $value)
    {
        if(property_exists($this,$name))
        {
            $this->$name = $value;
        }
    }

    public function send($data = [])
    {
        //1.开启curl
        $ch = curl_init();
        //2.请求服务器地址
        curl_setopt($ch,CURLOPT_URL,$this->url);
        //3.跳过证书验证
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
        //4.判断请求
        if($data && is_array($data))
        {
            curl_setopt($ch,CURLOPT_POST,1);
            //提交数据
            curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
        }
        //判断是否直接返回
        if($this->is_return === 1)
        {
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            $res = curl_exec($ch);
            curl_close($ch);
            return $res;
        }
        else
        {
            curl_exec($ch);
            curl_close($ch);
        }
    }
}

使用

require_once './curl.php';
$curl  = new Curl();
$curl->url = 'http://www.wjhphp.com/0906/post.php';
$curl->send();

post请求则需在调用send()函数时传递数据。

总结在这里

CURL是一个开源的发送请求的工具,其实还有很多配置项,这里只是介绍了它的简单使用,让大家了解CURL的基本使用,如果有其他需要可以查阅手册,学习相关的配置项。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值