• 缓存1 静态缓存-->读库保存成php文件 mkdir-->file_put_contents-->var_export -->include


    @mkdir()-->file_put_contents-->$data =  "<?php return ".var_export($setting, true).';'  --> $settings[$app] = include($path);

    加true,赋值给新变量,不输出,

    $data = $this->db->select("SELECT `var`,`value` FROM `$this->table` WHERE `app`=?", array($app));
    foreach($data as $v){
    $setting[$v['var']] = $v['value'];
    }

    <?php 

    function create($structure, $mode = 0755, $force = false)

    return @mkdir($structure, $mode);

    }

    //读取数据库,重新遍历.放入一个新数组,

    //01创建目录

    //02写入文件

    create('system');

    $setting = "<?php return ".var_export($setting, true).';'; //php换行.return拼接 所有数组的值
    return file_put_contents('./system/setting.php', $setting);

    $a = array('var'=>'sitename','value'=>'天山云');
    echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
    var_export($a); //原样输出数组,保留大括号,适合file_put_contents 写入文件
    echo '<hr>';
    var_dump($a); //数组转花括号,下标加了中括号,值加了类型,无法继续给其他php程序使用.适合显示给用户看


    array ( 'var' => 'sitename', 'value' => '天山云', ) //var_export($a);
    array(2) { ["var"]=> string(8) "sitename" ["value"]=> string(9) "天山云" } //var_dump($a);

    主程序中,执行前_before_execute.先把设置数据,从库中读取出来.缓存到cache目录下
    $setting = setting('system');

    01调用公共方法settin()
    02get获取数据--什么静态数组.如果存在直接返回.没有就重新生成缓存
    self::getInstance()->cache($app);
    使用方法,代替静态对象self::getInstance()

    static function getInstance() {//如果没有就新建对象,返回对象
    if(!self::$objInstance){
    $objInstance = new setting();
    }
    return $objInstance;
    }

    03读取数据库,变量好数组.放入新数组中.
    04写入php文件,先检查没有目录.先创建目录

    数据表

    setting表 3个字段
    app模块,var属性.value值
    文章模块,
    评论模块:
    敏感词汇:主席,岛国大片
    页码:
    系统模块
    关键词,描述,网站标题,网站url,图片压缩.宽高

    如:遇到二维数组.把数组值取出.在eval中赋值给一个变量$newval.执行后.$newval就是数组的值了
    foreach ($data as $r)
    {
    if (substr($r['value'], 0, 5) === 'array') //截取遍历后的值.开头5位是array就是二维数组
    {
    eval("$newval = {$r['value']};"); //需要解析二位数组的值(使用花括号),赋值给一个新变量.新变量需要原样保留$,需要反斜杠转义
    $setting[$r['var']] = $newval;
    }

    上面别人的方法.可以不用eval.一样可以达到效果.
    都不用判断是否为数组.遍历.放入新数组中.就可以
    foreach($data as $v){
    $result[$v['var']] = $v['value'];
    }

  • 相关阅读:
    6.一个python-selenium的实战
    9.python-ini文件使用(读和写)
    4.表数据的操作-insert、delete
    5.数据库的查询-select
    2.自动化测试之python+selenium基础
    6.python中目录的操作
    sql如何先排序再去重
    hbase(0.94) get、scan源码分析
    Antlr 在 idea 中正确使用的方式
    某日看代码对代码可读性的思考
  • 原文地址:https://www.cnblogs.com/bj-tony/p/5313937.html
Copyright © 2020-2023  润新知