简单封装curl的get与post发送数据

<?php
header('content-type:text/html;charset=utf-8');

class Curl{
    private $ch;
    private $curl_url;
    function __construct($url=null){
        $this->ch = curl_init();
        $this->curl_url = $url;

    }

    /**post和get方式发送数据
     * @param $method string post或get方式
     * @param $vars 数据
     */
    function sendData( $vars = array(), $method = 'get',$url = ''){
        if($method != 'post' && $method != 'get'){
            exit('请输入有效的提交方式post或get');
            return false;
        }

        if(!empty($url)){
           $this->curl_url = $url;
            return false;
        }else if(empty($this->curl_url)){
            exit('url不能为空');
            return false;
        }

        if($method == 'post'){
            curl_setopt($this->ch, CURLOPT_POST, 1);
            curl_setopt($this->ch, CURLOPT_URL,$this->curl_url);
            if(is_array($vars) && !empty($vars)) {
                curl_setopt($this->ch, CURLOPT_POSTFIELDS, $vars);
            }
        }
        else if($method == 'get'){
            if(is_array($vars) && !empty($vars)) {
                $query = http_build_query($vars);
                curl_setopt($this->ch, CURLOPT_URL,$this->curl_url.'?'.$query);//将数组转化为字符串参数
            }else{
                curl_setopt($this->ch, CURLOPT_URL,$this->curl_url);//传递进来的url后可能有参数
            }
        }
        //执行命令
        $data = curl_exec($this->ch);
        //关闭URL请求
        curl_close($this->ch);
        return $data;
    }
}

$ch = new Curl('http://localhost/index.php');
$res = $ch->sendData(array('num'=>12), 'post');

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS开发笔记

cordova开发之plugman的使用

使用cordova混合开发的时候,往往需要插件的开发来满足需求,下面就说说cordova的插件的开发的流程。 第一步:创建插件 plugman cr...

3826
来自专栏Python疯子

iOS 之多个 button 的单选与多选

下面是实现的代码: 首先创建10个button(一个一个写太麻烦了,个人认为还是用一个 for 循环来创建比较好)

1031
来自专栏移动端周边技术扩展

.a VS .framework VS .dylib

2505
来自专栏iOS开发笔记

iOS开发之-cordova项目创建

1.选择创建项目的目录 $ cd desktop 这里选择的是桌面,可以根据自己实际情况选择目录 2. 创建项目 $ cordova create hello ...

3376
来自专栏一个爱瞎折腾的程序猿

动易CMS之标签管理

4、系统可以根据设置的条件生成sql语句,也可以直接写sql语句。直接在文本框中输入sql语句即可,参数用【@+参数名】表示

2761
来自专栏Astropeak

用emacs的org2blog组件写cnblogs博客 -- 环境配置及使用

1173
来自专栏前端大白专栏

关于上报错误最简单的实现方式--利用图片

1735
来自专栏菩提树下的杨过

"Goole项目托管"及"CodePlex发布开源项目"要点

一.google项目托管相对比较容易 http://code.google.com/ 先注册一个gmail邮箱,然后参考孟子的这篇文章http://blog.c...

2107
来自专栏十月梦想

小程序目录结构

        第一篇微信小程序的博文,不知从何开始说;name就从最基础的目录结构来说吧,初次接触这个东西自己也是折腾挺久的,这里系统的对比一下web开发的文...

1401
来自专栏JavaEdge

MacOS 下使用 intellij IDEA 将git上传项目到 Github

1684

扫码关注云+社区

领取腾讯云代金券