zoukankan      html  css  js  c++  java
  • 关于CURL的初步认识

    前言:你知道?这个CURL可以做爬虫的工作但是仅限于小型的爬虫..............

    (一) CURL的认识

      下面我觉得用图片来展示curl比较直观:
      

       所谓的curl就是客户端访问了服务器1,那么服务器1又模拟了服务客户端去访问了服务器2,然后拿到结果后一层层返回,并且curl以第三方的扩展库存在所以要用到必须要开启这个扩展.

    (二)curl分类

      分为get访问和post访问

    (三)curl模拟get请求

      

    <?php
    
    echo 't1.php<br/>';
    
    //使用curl模拟get请求
    #1. 初始化curl连接
    $ch = curl_init();
    
    //请求的新的链接地址
    $url = 'http://969m2z.natappfree.cc/t2.php?name=小风风&age=18&height=1.9';
    
    #2. 设置curl选项
    // 设置请求URL地址
    curl_setopt($ch,CURLOPT_URL,$url);
    // 不获取header头信息
    curl_setopt($ch,CURLOPT_HEADER,0);
    // 结果不直接返回到终端
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    // 设置curl不进行证书的检测
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
    
    // 超时时间 秒
    curl_setopt($ch,CURLOPT_TIMEOUT,10);
    // 设置请求的浏览器
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
    
    #3. 执行curl
    $data = curl_exec($ch);
    
    #4. 关闭curl连接
    curl_close($ch);
    
    
    var_dump($data);
    
    echo '<hr/>';
    
    echo '哈哈哈哈哈,看的到我么?';
    <?php
    
    #访问的第二个网站的代码
    
    echo 't2.php<br/>';
    
    var_dump( $_GET ); 

    (四)curl的post请求

    //在实现get请求的基础上需要增加的设置项:
    //
    发起POST请求 curl_setopt($ch,CURLOPT_POST,1); // post发送的数据,注意http_build_query可以将$data数组数据格式化成http传输数据的格式 curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));

    (五)用curl实现获取access_token(这个是调用公众号唯一的凭证有效期2小时)

    <?php
    
    include './request.php';//引入curl函数
    
    class NewWeixin{
    
        const appID = 'xxxxxxx';//开发者的appid
        const appsecret = 'xxxxxx';//开发者的加密密钥
    
        #获取access_token的方法
        public function getACToken(){ 
    
            $filePath = __DIR__ . '/' . self::appID . '.txt';//存储accesstoken的文件
    
            if( is_file($filePath) && filemtime($filePath)+7200>time()){//如果存储accesstoken的文件存在并且最后修改时间没有超过2个小时,说明accesstoken还在有效期内
                
                return file_get_contents($filePath);//那么,直接从文件中读取出accesstoken
            }
            //能够执行到这里说明要么文件不存在,要么文件存在但是accesstoken过期了
    
            //获取access_token的接口
            $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
            $url = sprintf($url, self::appID, self::appsecret);
            $json = curl($url);
            $data = json_decode($json);//因为得到的结果将会是一个json字符串,所以要将这个字符串转换成一个数组
            
            //将accesstoken覆盖写入进文件
            file_put_contents($filePath, $data->access_token);
    
            //调用curl函数请求接口api
            return $data->access_token;
        }
    }
    
    $obj = new NewWeixin;
    echo $obj->getACToken();


    IT这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
  • 相关阅读:
    数字建模工具
    博客园文档保存为pdf适合手机kindle阅读
    单点登录sso规范
    office在线预览方案
    KVM 虚机怎么热添加disk
    linux-基础FTP 协议传输
    TCP 三次握手四次挥手
    autossh 实现反向代理实现通过外网访问内网环境
    keepalived的工作原理
    openstack-ovs命令记录
  • 原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10181663.html
Copyright © 2011-2022 走看看