博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用php的序列化和反序列化来做简单的数据本地存储
阅读量:6769 次
发布时间:2019-06-26

本文共 2793 字,大约阅读时间需要 9 分钟。

利用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 
"; var_dump($dbhandle->getAll()); echo "
add 1
"; $dbhandle->setValueForKey("baidu","www.baidu.com"); $dbhandle->setValueForKey("qq","www.qq.com"); $dbhandle->setValueForKey("taobao","www.taobao.com"); var_dump($dbhandle->getAll()); echo "
mod 1
"; $dbhandle->setValueForKey("baidu","http://www.baidu.com"); var_dump($dbhandle->getAll()); echo "
get 1
"; echo $dbhandle->getValueForKey("baidu"); echo "
get 1
"; var_dump($dbhandle->getAllKey()); echo "
clear 1
"; $dbhandle->cleardb(); echo "
get 1
"; var_dump($dbhandle->getAll());

 

转载于:https://www.cnblogs.com/cocoajin/p/5810248.html

你可能感兴趣的文章
Objective-C-如何选择@property-和-Instance-Variable(iVar)
查看>>
WEB前端开发的思考与感悟
查看>>
Django搭建个人博客:文章标签功能
查看>>
Go 语言编译过程概述
查看>>
为什么要做短视频秒播优化
查看>>
《微服务设计》读书笔记(关于微服务的一点想法)
查看>>
最小外接矩形思路以及实现
查看>>
借助工具完成js 合并及压缩混淆处理
查看>>
PAT A1063
查看>>
时序数据库连载系列:时序数据库那些事
查看>>
如何制作可以在 MaxCompute 上使用的 crcmod
查看>>
行为型模式:迭代器模式
查看>>
测试格式
查看>>
CentOS 7 将 Nginx 添加系统服务
查看>>
uni-app 1.4 发布,一套代码,发行小程序(微信/支付宝/百度)、H5、App多个平台...
查看>>
React中富文本编辑器的技术选型调研
查看>>
网易云 MySQL实例迁移的技术实现
查看>>
一、 函数调用栈,执行上下文及变量对象
查看>>
智能支付稳定性测试实战
查看>>
Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
查看>>