thinkPHP3.2.3 F方法序列化问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/h_025/article/details/78987489

相信大家在使用thinkPHP3.1.3的时候,一定使用过F方法,用来缓存数据,例如:

$result=array(
'WEB_title' => 'MIS',
'WEB_Stitle' => 'MIS科技',
'WEB_KEY' => '网站建设,网站开发',
'WEB_DESC' => '专业的网站建设公司'
);
F('data', $result, CONF_PATH);   在3.1.3中是可以存储成功的,返回值是true,格式也是正常格式,没有被序列化,

3.2.3中返回值是false,数据已经被序列化了,如:a:4:{s:9:"WEB_title";s:3:"MIS";s:10:"WEB_Stitle";s:12:"MIS科技";s:7:"WEB_KEY";s:25:"网站建设,网站开发";s:8:"WEB_DESC";s:27:"专业的网站建设公司";}  这样的格式。

为了能够在3.2.3中实现和3.1.3中F方法这部分同样的功能,有两种方法:

第一:   在需要F方法存储地方使用这部分代码:

\Think\Storage::put(APP_PATH.MODULE_NAME.'/Conf/webset.php','<?php return  '.var_export($result,true).';', 'F');
第二:在Application/Common/Common 下创建functions.php,编写如下函数:

/* 
*@param [type] $arr [要写入的数据]
*@param [type] $filename [文件路径] 
*/
function wirterArr($arr, $filename) {
	return file_put_contents($filename, '<?php \r\n return '.var_export($arr, true).';');
}

在需要的地方直接调用该函数即可。



猜你喜欢

转载自blog.csdn.net/h_025/article/details/78987489