serialize()函数和unserialize()函数
一个是进行序列化存储,
另一个则是进行序列化恢复
示例用法:
<?php
$array = array();
$array['key'] = 'website';
$array['value']='www.chhua.com';
$a = serialize($array);
echo $a;
unset($array);
$a = unserialize($a);
print_r($a);
?>
序列化的结果
a:2:{s:3:"key";s:7:"website";s:5:"value";s:13:"www.chhua.com";}
序列化恢复的结果
Array
(
[key] => website
[value] => www.chhua.com
)
思路:
单字段序列化存入,读取时恢复
项目示例
- 从数据库中读取
public function get_settings()
{
if ($system_setting = $this->fetch_all('system_setting'))
{
foreach ($system_setting as $key => $val)
{
$settings[$val['varname']] = unserialize($val['value']);
}
}
return $settings;
}
- 向数据库中存储
public function set_vars($vars)
{
if (!is_array($vars))
{
return false;
}
foreach ($vars as $key => $val)
{
$this->update('system_setting', array(
'value' => serialize($val)
), "`varname` = '" . $this->quote($key) . "'");
}
return true;
}
- 数据库截图