缓存1 静态缓存-->读库保存成php文件 mkdir-->file_put_contents-->var_export -->include
2016-03-24 07:11
639 查看
@mkdir()-->file_put_contents-->$data = "<?php\nreturn ".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\nreturn ".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'];
}
加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\nreturn ".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'];
}
相关文章推荐
- Thinkphp自动验证规则
- PHP中的魔术方法:__construct, __destruct , __call,__get, __set, __isset, __unset , __toString, __set,__clone and __autoload
- ThinkPHP3.2使用import来new对象时的异常
- 1、php----自动加载类 __autoload()函数
- ThinkPHP的常用配置选项汇总
- PHP错误机制知识汇总
- vsftpd+iptables
- wordpress 上传文件报错
- vMA配置之用户账户和FastPass
- 三款免费的PHP加速器:APC、eAccelerator、XCache比较
- 使用UTL_SMTP包实现存储过程邮件发送
- php 连接mysql
- 阿里云OSS for phpcmsV9
- laravel整合ucenter案例
- PHP 中获取当前时间[Datetime Now]
- 设置调试PHP,debug php输出所有错误信息
- PHP并发IO编程之路
- lesson6 -SSH FTP
- php特殊字符过滤,html标签处理
- php中预定义变量汇总