相信大家在使用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).';');
}
在需要的地方直接调用该函数即可。