欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何把数组动态写进PHP文件作为文件缓存

程序员文章站 2022-06-11 13:49:21
...

 

/**
* @Purpose: 设置缓存文件信息
* @Method Name:set_user_capacityCache()
* @Parameter: int $uid 用户的uid, array $arr 存放的数据数组
* @Return: 返回存放文件的字符长度
*/
function set_user_capacityCache($uid, $arr){
	$objfile = get_user_capacityCache_path($uid);
	$arrays = array();
	if(file_exists($objfile)){
		$arrays = file_get_contents($objfile);
                $arrays = unserialize($arrays);
		if(!is_array($arrays))
			$arrays = array();
	}
	$arrays[$uid] = $arr;
        $data = serialize($arrays);
	$strlen = file_put_contents($objfile, $data, LOCK_EX);
	chmod($objfile, 0777);
	return $strlen;
}
/**
* @Purpose: 缓存文件存在 则取缓存的内容,不存在 返回false
* @Method Name:output_user_capacityCache()
* @Parameter: int $uid 用户的uid
* @Return: 存在 返回array数据 不存在 返回 false
*/
function output_user_capacityCache($uid)
{
	$objfile = get_user_capacityCache_path($uid);
	if(!file_exists($objfile))
        {
	    return false;
	} 
        else 
        {
            $arrays = file_get_contents($objfile);
            $arrays = unserialize($arrays);
	    if(!is_array($arrays) || empty($arrays[$uid]) || ($arrays[$uid]['timestamp'] + 24*3600 < time()))
		return false;
	    return $arrays[$uid];
	}
}
/**
* @Purpose: 取得能力集市信息文件路径
* @Method Name:  get_user_headCache_path()
* @Parameter: int $uid 用户的uid
* @Return: string 返回文件的路径
*/
function get_user_capacityCache_path($uid)
{
	$dir = __DIR__;//目录
	$folder_name = ceil($uid/10000); //文件夹名称
	$file_name = ceil($uid/100).'.php'; //文件名称
	
	$folder_dir = $dir.$folder_name."/";
	$file_path = $folder_dir.$file_name;
	
	if(!is_dir($folder_dir))
	    mkdir($folder_dir, 0777, true);

	return $file_path;
}

 

 注意:只能存放数组,无法存放对象。

相关标签: php