利用php的序列化和反序列化来做简单的数据本地存储
利用php的序列化和反序列化来做简单的数据本地存储
如下程序可以做为一个工具类
/** * 利用php的序列化和反序列化来做简单的数据本地存储 */ class objectdb { private static $db; //成功返回 objectdb 对象,不需要在外面使用new //目录需要写文件的权限 public function defaultdb($dbname='./default.db') { self::$db = $dbname; if(file_exists($dbname)) { return new objectdb(); } $ret=file_put_contents($dbname,serialize(array())); if ($ret > 0) { return new objectdb(); } return false; } //添加数据key,value 或更新 public function setValueForKey($key,$value) { $arrdata = $this->getDBarray(); $arrdata[$key] = $value; return $this->setDBarray($arrdata); } //删除指定key的数据 public function removeValueForKey($key) { $arrdata = $this->getDBarray(); unset($arr[$key]); } //获取指定key的数据 public function getValueForKey($key) { $arrdata = $this->getDBarray(); return $arrdata[$key]; } //获取所有的数据 public function getAll() { $arrdata = $this->getDBarray(); return $arrdata; } //获取所有的key public function getAllKey() { $arrdata = $this->getDBarray(); return array_keys($arrdata); } //清空db数据 public function cleardb() { $ret=file_put_contents(self::$db,serialize(array())); return $ret; } //private get private function getDBarray() { $rdata=file_get_contents(self::$db); return unserialize($rdata); } //private set private function setDBarray($arr) { $ret=file_put_contents(self::$db,serialize($arr)); if ($ret > 0) { return true; }else { return false; } } }
测试代码如下
//test $dbhandle = objectdb::defaultdb(); if (!$dbhandle) { echo "init failure!"; exit(); } echo "start <br>"; var_dump($dbhandle->getAll()); echo "<br>add 1 <br>"; $dbhandle->setValueForKey("baidu","www.baidu.com"); $dbhandle->setValueForKey("qq","www.qq.com"); $dbhandle->setValueForKey("taobao","www.taobao.com"); var_dump($dbhandle->getAll()); echo "<br>mod 1 <br>"; $dbhandle->setValueForKey("baidu","http://www.baidu.com"); var_dump($dbhandle->getAll()); echo "<br>get 1 <br>"; echo $dbhandle->getValueForKey("baidu"); echo "<br>get 1 <br>"; var_dump($dbhandle->getAllKey()); echo "<br>clear 1 <br>"; $dbhandle->cleardb(); echo "<br>get 1 <br>"; var_dump($dbhandle->getAll());
分类:
php
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具