数组形式保存到文件中
2014-09-10 16:21
218 查看
/**
* 写入缓存
* @param string $name 缓存名称
* @param mixed $data 缓存数据
* @param array $setting 缓存配置
* @param string $type 缓存类型
* @param string $module 所属模型
* @return mixed 缓存路径/false
*/
public function set($name, $data, $setting = '', $type = 'data', $module = ROUTE_M) {
$this->get_setting($setting);
if(empty($type)) $type = 'data';
if(empty($module)) $module = ROUTE_M;
$filepath = CACHE_PATH.'caches_'.$module.'/caches_'.$type.'/';
$filename = $name.$this->_setting['suf'];
if(!is_dir($filepath)) {
mkdir($filepath, 0777, true);
}
if($this->_setting['type'] == 'array') {
$data = "<?php\nreturn ".var_export($data, true).";\n?>";
} elseif($this->_setting['type'] == 'serialize') {
$data = serialize($data);
}
if ($module == 'commons' || ($module == 'commons' && substr($name, 0, 16) != 'category_content')) {
$db = pc_base::load_model('cache_model');
$datas = new_addslashes($data);
if ($db->get_one(array('filename'=>$filename, 'path'=>'caches_'.$module.'/caches_'.$type.'/'), '`filename`')) {
$db->update(array('data'=>$datas), array('filename'=>$filename, 'path'=>'caches_'.$module.'/caches_'.$type.'/'));
} else {
$db->insert(array('filename'=>$filename, 'path'=>'caches_'.$module.'/caches_'.$type.'/', 'data'=>$datas));
}
}
//是否开启互斥锁
if(pc_base::load_config('system', 'lock_ex')) {
$file_size = file_put_contents($filepath.$filename, $data, LOCK_EX);
} else {
$file_size = file_put_contents($filepath.$filename, $data);
}
return $file_size ? $file_size : 'false';
}
* 写入缓存
* @param string $name 缓存名称
* @param mixed $data 缓存数据
* @param array $setting 缓存配置
* @param string $type 缓存类型
* @param string $module 所属模型
* @return mixed 缓存路径/false
*/
public function set($name, $data, $setting = '', $type = 'data', $module = ROUTE_M) {
$this->get_setting($setting);
if(empty($type)) $type = 'data';
if(empty($module)) $module = ROUTE_M;
$filepath = CACHE_PATH.'caches_'.$module.'/caches_'.$type.'/';
$filename = $name.$this->_setting['suf'];
if(!is_dir($filepath)) {
mkdir($filepath, 0777, true);
}
if($this->_setting['type'] == 'array') {
$data = "<?php\nreturn ".var_export($data, true).";\n?>";
} elseif($this->_setting['type'] == 'serialize') {
$data = serialize($data);
}
if ($module == 'commons' || ($module == 'commons' && substr($name, 0, 16) != 'category_content')) {
$db = pc_base::load_model('cache_model');
$datas = new_addslashes($data);
if ($db->get_one(array('filename'=>$filename, 'path'=>'caches_'.$module.'/caches_'.$type.'/'), '`filename`')) {
$db->update(array('data'=>$datas), array('filename'=>$filename, 'path'=>'caches_'.$module.'/caches_'.$type.'/'));
} else {
$db->insert(array('filename'=>$filename, 'path'=>'caches_'.$module.'/caches_'.$type.'/', 'data'=>$datas));
}
}
//是否开启互斥锁
if(pc_base::load_config('system', 'lock_ex')) {
$file_size = file_put_contents($filepath.$filename, $data, LOCK_EX);
} else {
$file_size = file_put_contents($filepath.$filename, $data);
}
return $file_size ? $file_size : 'false';
}
相关文章推荐
- unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的 问题表现情况如下: emlog缓存的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,
- 数组保存到文件
- 将文件读取成二进制数组保存到数据库
- 把txt文件保存了表格形式并存放到BMP文件
- 把字节数组保存为一个文件
- 在Java中将数据库查询结果保存为List<Map>类型的JavaScript数组文件
- 如何用java实现在网页中保存html编辑器 编辑好的 html 文件?!(如blog里发文章的时候把要发表的内容以html文件的形式保存到服务器上?)
- python下将文件以二进制形式保存
- 点阵字体显示系列补记:将字库文件转换成数组形式
- Asp.net 中文件以Binary 形式数据库的保存和读取
- ASP.NET中文件上传下载方法集合(上传限制,保存方式-二进制或文件形式,上传Internet上的资源 )
- 将图读成数组保存(也可以是普通文件)
- C# 保存 byte 数组 到文件中, 用vs2005 打开该文件查看
- 把 Integer 数组保存到文件、并读取
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- 把文件以二进制格式或base64字符串形式保存到数据库中,并实现下载功能源码
- ASP.NET中文件上传下载方法集合(上传限制,保存方式-二进制或文件形式,上传Internet上的资源 )
- Asp.net 中文件以Binary 形式数据库的保存和读取
- FCK在ASP.NET(C#)中的应用,FCK上传文件按照年月的形式保存
- 利用CodeBlocks修改PUTTY以文件形式保存配置信息