用php如何写后台数据,php无数据库读写配置-为网站写后台

php无数据库读写配置

做小网站,或者业务中无需数据库的网站,常常需要一些配置项,如果为了配置这些参数使用数据库实在是太麻烦,这里记录下配置文件的修改

实现逻辑

程序中使用一个文件用来存储配置参数,如:“config.php”

“config.php”文件中存储json格式的参数

对“config.php”文件进行读写,以达到读写配置的目的

参见

示例代码

GitHub地址:无数据库读写配置

主要代码

config.class.php

define('CONFIG_EXIT', '<?php exit;?>');

class Config {

private $data;

private $file;

/**

* 构造函数

* @param $file 存储数据文件

* @return

*/

function __construct($file) {

$file = $file . '.php';

$this->file = $file;

$this->data = self::read($file);

}

/**

* 读取配置文件

* @param $file 要读取的数据文件

* @return 读取到的全部数据信息

*/

public function read($file) {

if (!file_exists($file)) return array();

$str = file_get_contents($file);

$str = substr($str, strlen(CONFIG_EXIT));

$data = json_decode($str, true);

if (is_null($data)) return array();

return $data;

}

/**

* 获取指定项的值

* @param $key 要获取的项名

* @param $default 默认值

* @return data

*/

public function get($key = null, $default = '') {

if (is_null($key)) return $this->data; // 取全部数据

if (isset($this->data[$key])) return $this->data[$key];

return $default;

}

/**

* 设置指定项的值

* @param $key 要设置的项名

* @param $value 值

* @return null

*/

public function set($key, $value) {

if (is_string($key)) { // 更新单条数据

$this->data[$key] = $value;

} else if (is_array($key)) { // 更新多条数据

foreach ($this->data as $k => $v) {

if ($v[$key[0]] == $key[1]) {

$this->data[$k][$value[0]] = $value[1];

}

}

}

return $this;

}

/**

* 删除并清空指定项

* @param $key 删除项名

* @return null

*/

public function delete($key) {

unset($this->data[$key]);

return $this;

}

/**

* 保存配置文件

* @param $file 要保存的数据文件

* @return true-成功 其它-保存失败原因

*/

public function save() {

if (defined('JSON_PRETTY_PRINT')) {

$jsonStr = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

} else {

$jsonStr = json_encode($this->data);

}

// 含有二进制或非utf8字符串对应检测

if (is_null($jsonStr)) return '数据文件有误';

$buffer = CONFIG_EXIT . $jsonStr;

$file_strm = fopen($this->file, 'w');

if (!$file_strm) return '写入文件失败,请赋予 ' . $file . ' 文件写权限!';

fwrite($file_strm, $buffer);

fclose($file_strm);

return true;

}

}

标签:return,file,读写,param,key,php,data,数据库

来源: https://blog.csdn.net/eyunzhu/article/details/100065376

Yovae后台管理程序,程序大部分采用面向对象思想编,MVC没有做到,有涉及Ajax技术,不过不多,这个程序我了3天左右。 这个管理程序对于php的新手或想有进一步提升的朋友还是有蛮大的启发的,注释很少,我都用英文注释,o(︶︿︶)o 唉赶潮流,尽管英文不怎么样。程序源码只有后台没有前台,如果要做成一个完整的网站的话需要你自己去开发前台了,后台用来做网站我敢保证绝对没问题,别看我只用了3天时间做的,不过我本身对源码的安全性还是比较注重的,不可能有注入漏洞之类的,可能后台界面不怎么样,不过也可以了,操作起来应该应该还是蛮顺手的。Yovae后台管理程序可以提供小型企业发布产品和新闻,后台管理员权限有分级,氛围超级管理员和普通管理员,普通管理员没有添加管理员和查看网站日志的权限,类别管理还有优化的空间,不过我没有上,只提供了基本的类别添加和管理,嗯 因为我懒….呵呵。 很多代码都类化了,引用的类都存放在lib文件目录下,可以很方便地进行重用,每个class都刻意保护了id属性,我对每个类的magic method如_set()和_get方法都进行重,对于private变量的封装有一定的破坏,不过方便了访问变量。不知道这算不算扭曲了面向对象思想,但是我认为不管黑猫白猫能捉老鼠就是好猫。为了提高某一方面总得在另外的某方便有点损失。 欢迎大家下载Yovae后台管理程序,它是开源的而且免费,使用或修改无须作者本人的许可,只要保留我的版权信息即可。 不懂的可以参考:http://www.yovae.com/blog/?p=222
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值