zoukankan      html  css  js  c++  java
  • curl的使用

    //使用 CURL 传送GET、POST数据
    /**

    $url 请求路径
    $data 请求的参数
    return 请求的数据
    *
    */

    function CURLSend($url, $method = 'get', $data = '') { $ch = curl_init(); //初始化 $headers = array('Accept-Charset: utf-8'); //设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, $url); //指定请求的URL curl_setopt($ch, CURLOPT_CUSTOMREQUEST, strtoupper($method)); //提交方式 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //不验证SSL curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //不验证SSL curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //设置HTTP头字段的数组 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible;MSIE 5.01;Windows NT 5.0)'); //头的字符串 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); //自动设置header中的Referer:信息 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //提交数值 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //是否输出到屏幕上,true不直接输出 $temp = curl_exec($ch); //执行并获取结果 curl_close($ch); return $temp; //return 返回值 }
    <?php
    /*
    *创建一个curl_init提交函数,模拟get提交,模拟post提交,模拟json提交
    *$url 提交的服务器地址,必须
    *$data 提交的数据,必须,是关联数组,
    *$method 提交的方式,必须,默认get提交,选项值,只能填get、post、json
    *$options 其他选项,可有可以无,如果设置了,不能设置CURLOPT_URL,必须符合curl_setopt_array()的参数语法
    *如果失败则返回false,提交数据成功,则返回服务器返回的结果
    */
    function curl($url='',$data=array(),$method='get',$options=array()){
        //验证数据传进来的数据是否合法
        if(empty($url) || !filter_var($url,FILTER_VALIDATE_URL)){
            return false;
        }
        if(!is_array($data) && empty($data)){
            return false;
        }
        $method = strtolower($method);
        if(!in_array($method,array('get','post','json'))){
            return false;
        }
        //初始化curl句柄,
        $ch = curl_init();
        //设置服务器返回的数据不直接输出,而是保留在curl_exec()的返回值中
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        if(!empty($options) && is_array($options)){
            if(curl_setopt_array($ch,$options) == false){
                return false;
            }
        }
        switch($method){
            case 'get':
                //把要提交的数据转换为get键值对提交
                $data = http_build_query($data);
                curl_setopt($ch,CURLOPT_URL,$url.'?'.$data);
                //获取curl执行后,服务器返回的结果
                $return = curl_exec($ch);
                curl_close($ch);
                return $return;
                break;
            case 'post':
                curl_setopt($ch,CURLOPT_URL,$url);
                //设置post提交
                curl_setopt($ch,CURLOPT_POST,true);
                //提交post的数据
                curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
                $return = curl_exec($ch);
                curl_close($ch);
                return $return;
                break;
            case 'json':
                //设置json提交的数据
                $data = json_encode($data);
                curl_setopt($ch,CURLOPT_URL,$url);
                //设置post提交
                curl_setopt($ch,CURLOPT_POST,true);
                //json的数据通过post的方式提交
                curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
                $return = curl_exec($ch);
                curl_close($ch);
                return $return;
                break;
            default:
                return false;
            break;
        }
    }
     $url = "http://jc.yiui.top/test/curl/index";
     //下面是测试,本人是测试成功了,我服务器是直接输出$_POST,$_GET
     $data  = array( 'name'  =>  'jack' , 'age' => '23' );
     $method ='post';
     var_dump(curl($url,$data,$method));
  • 相关阅读:
    HBase HTablePool
    Hadoop MapReduce InputFormat/OutputFormat
    MapReduce执行过程源码分析(一)——Job任务的提交
    HBase MultiVersionConsistencyControl
    HBase Split
    HBase HFile
    Do not to test a private method.
    HTML5使用ApplicationCache
    Swift使用FMDB操作SQLite
    使用Swift操作NSDate类型基础
  • 原文地址:https://www.cnblogs.com/huay/p/10359576.html
Copyright © 2011-2022 走看看