phpcms文件存储数据

33 篇文章 0 订阅

效果

  1. 快速读取数据
  2. 定时刷新数据
  3. 即时替换数据

示例1(phpcms框架)
定时 查询参与答题总人数

content.class.php

//获取活动每期参与答题人数
function get_personnum_by_time($tb1, $tb2){
    $filename = PHP_ROOT."/uploadfile/json/personnum.json";
    /* //生成文件
     $aPersonNumInfo = $this->get_answer_question_person_num($tb1, $tb2); $fp = fopen($filename, "w");
     fwrite($fp, json_encode(array('expire_time'=>time() + 3600*24,'data'=>$aPersonNumInfo)));
     fclose($fp);die; */

    //获取文件数据
    $data = json_decode(file_get_contents($filename));
    //如果过期
    if($data && $data->expire_time < time()){
        //获取数据
        $aPersonNumInfo = $this->get_answer_question_person_num($tb1, $tb2);
        //创建并写入文件
        $data->expire_time = time() + 3600*24;
        $data->data = $aPersonNumInfo;
        if (!file_exists($filename)) {
            mkdirs($filename, 0777, true);
        }
        $fp = fopen($filename, "w");
        fwrite($fp, json_encode($data));
        fclose($fp);
    }else{
        $aPersonNumInfo = $data->data;
    }
    return $aPersonNumInfo;
}
function get_answer_question_person_num($tb1, $tb2){
    if($tb1 == NULL){
        return false;
    }
    if($tb2 == NULL){
        return false;
    }
    $button = $this->questionstate($tb2);
    if(!$button){
        return false;
    }
    $person_num = array();
    foreach($button as $k => $v){
        if($v[title] == '201607'){
            $sql = "SELECT * FROM `v_weixin_doctor_reply_img2016` WHERE `mainid` = '".$v[title]."'  AND `file_url` IS NOT NULL";
        }else{
            $sql = "SELECT * FROM `$tb1` WHERE `mainid` = ".$v[id];
        }
        $result = $this->db->query($sql);
        $person_num[$k] = $this->db->num_rows($result);
    }
    $this->db->free_result($result);
    return $person_num;
}

personnum.json

{"expire_time":1469088900,"data":[3133,6722,6580,2546,6700,4563,5165,3134,3406]}

示例2(laravel框架)

private function getJsApiTicket() {
    // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
    $baseurl = dirname(dirname(dirname(self::$jsonUrl))).'/public/json/';
    $file = $baseurl."jsapi_ticket.json";
    if(file_exists($file)){
        $data = json_decode(file_get_contents($file));
    }
    if (!isset($data)||$data->expire_time < time()) {
      $accessToken = self::getAccessToken();
      // 如果是企业号用以下 URL 获取 ticket
      // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
      $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
      $res = json_decode(self::httpGet($url));
      $ticket = $res->ticket;
      if(!isset($data)){
        $data = new stdClass();
      }
      if ($ticket) {
        $data->expire_time = time() + 7000;
        $data->jsapi_ticket = $ticket;
        $fp = fopen($baseurl."jsapi_ticket.json", "w");
        fwrite($fp, json_encode($data));
        fclose($fp);
      }
    } else {
      $ticket = $data->jsapi_ticket;
    }

    return $ticket;
}
public static function getAccessToken() {
    // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
    $baseurl = dirname(dirname(dirname(self::$jsonUrl))).'/public/json/';
    $file = $baseurl."access_token.json";
    if(file_exists($file)){
        $data = json_decode(file_get_contents($file));
    }
    if (!isset($data)||$data->expire_time < time()) {
      // 如果是企业号用以下URL获取access_token
      // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=".APPID."&corpsecret=".APPSECRET;
      $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".APPID."&secret=".APPSECRET;
      $res = json_decode(self::httpGet($url));
      $access_token = $res->access_token;
      if(!isset($data)){
        $data = new stdClass();
      }
      if ($access_token) {
        $data->expire_time = time() + 7000;
        $data->access_token = $access_token;
        $fp = fopen($baseurl."access_token.json", "w");
        fwrite($fp, json_encode($data));
        fclose($fp);
      }
    } else {
      $access_token = $data->access_token;
    }
    return $access_token;
}
public static function httpGet($url,$data='') {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_TIMEOUT, 500);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_URL, $url);
    if($data){
        curl_setopt ( $curl, CURLOPT_POST, 1 );
            curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data );
    }
    $content = curl_exec($curl);
    return $content;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值