简单封装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 条评论
登录 后参与评论

相关文章

来自专栏JetpropelledSnake

Web前端学习笔记之安装和使用PhantomJS

将PhantomJS下载在/usr/local/src/packet/目录下(这个看个人喜好)

1125
来自专栏iOS开发笔记

cordova开发之plugman的使用

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

3686
来自专栏七夜安全博客

一种把指定程序的TCP流量重定向到代理的方法

graftcp 可以把任何指定程序(应用程序、脚本、shell 等)的 TCP 连接重定向到 SOCKS5 代理。

1463
来自专栏十月梦想

小程序目录结构

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

981
来自专栏iOS开发笔记

iOS开发之-cordova项目创建

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

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

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

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

2077
来自专栏Astropeak

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

1083
来自专栏较真的前端

PWA 入门: 写个非常简单的 PWA 页面

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

动易CMS之标签管理

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

1701
来自专栏Jerry的SAP技术分享

删除所有正在运行和退出的docker实例

使用这个命令,把docker ps -aq产生的输入作为输入传入到docker rm命令,达到删除所有容器实例的效果。

760

扫码关注云+社区