`
王之子
  • 浏览: 105566 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

php 
阅读更多

 

/**
* @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将数组存储为文本文件方法汇总

    php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件。那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种方法实现将 php 数组...

    php下把数组保存为文件格式的实例应用

    我使用过两种办法: 第一种是数组序列化,简单,但是调用时比较麻烦一些;第二种是保存为标准的数组格式,保存时麻烦但是调用时简单。 第一种方法: PHP代码 复制代码 代码如下: $file=”./cache/file.cache”; $...

    PHP-一个好用的文件缓存类

    以前开发的项目中的一个文件缓存类,自己写的。 支持缓存的数据类型包括null、boolean、string、int、array、object(只能以数组形式缓存属性);缓存的内容为PHP源码,方便查错;支持每个缓存文件设置不同的失效...

    ThinkPHP实现静态缓存和动态缓存示例代码

    静态缓存 要使用静态缓存功能,需要开启HTML_CACHE_ON参数,并且使用HTML_CACHE_RULES配置参数设置静态缓存规则文件。 定义静态规则 'HTML_CACHE_ON' =&gt; true, // 开启静态缓存 'HTML_CACHE_TIME' =&gt; 60, // ...

    cacher:一个简单的可堆叠 PHP 缓存库,带有 Redis、文件、内存(数组)和自定义 ArrayAccess 后端

    缓存器 一个简单的可堆叠 PHP 缓存库,带有 Redis、文件、内存(数组)和自定义 ArrayAccess 后端安装通过 Composer 安装 { "require": { "mrjgreen/cacher": "1.*" }}用法 $ backend = new Cacher \ Backends \ ...

    功能强大的php解析rss文件类.zip

    简单但功能强大的PHP解析RSS文件类,启用缓存,缓存文件是最新,则返回缓存数组,缓存文件如果过期,则创建新的缓存文件,如果未启用缓存,则直接加载文件。Parse() 是由GET()调用的私有方法,用来解析RSS文件,所以...

    基于原生PHP7.4编写的动态博客系统,大二PHP动态网页设计期末作品,包含SQL脚本与数据库文件。.zip

    PHP内置丰富的数据类型(如整型、浮点型、字符串、数组、对象等),并提供了大量的预定义函数,涵盖了字符串操作、数学运算、文件系统处理、日期时间处理、数据库连接等常见功能,极大提高了开发效率。 在Web开发中...

    php-dba-cache:使用数据库(dbm样式)抽象层创建缓存以缓存对象,字符串,整数或数组

    php-dba-cache使用数据库(dbm样式)抽象层来缓存/存储您PHP对象,字符串,整数或数组。 甚至SimpleXMLElement的实例都可以放入缓存中。 您不必担心缓存文件的大小。 这取决于磁盘的可用空间。 具有持久连接的Oracle...

    fanCache缓存类

    可以缓存一般类型、数组。具有按需调用,有效期设置,模块形式保存。 可能有一些BUG,可以向我发E-MAIL。 */ /* 使用方法 请先设置全局变量 require_once(\"fanCache.inc.php\"); $cache = new fanCache(); ...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    PHP文件下载类 PHP无限分类[左右值]算法 PHP显示日期、周几、农历初几、什么节日函数 PHP格式化数据,防止注入函数 PHP模拟登陆 PHP生成唯一标识符函数 PHP生成曲线图函数 PHP生成条形码 PHP统计字符串里...

    PHP中常见的缓存技术实例分析

    缓存的原理:把一些经常要用到但又很少改动的数据以数组或其它形式存储到一个独立的PHP文件中,然后在需要用到的时候包含进来。 缓存的优点:能够大大减少数据库的查询次数,减轻数据库的压力,提高程序的执行效率。...

    PHP保存带BOM文件的方法

    php实现编辑和保存文件的方法php获取目录所有文件并将结果保存到数组(实例)如何利用php+mysql保存和输出文件php带密码功能并下载远程文件保存本地指定目录 修改加强版php自定文件保存session的方法PHP文件缓存内容...

    PHP常用的缓存技术汇总

    这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件...

    PHP缓存技术的多种方法小结

    1、普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,...

    cache-engine-php:具有多个驱动程序的多功能缓存引擎PSR-6和PSR-16实现

    本地缓存仅使用数组。 它不会在请求之间持续存在 \ ByJG \ Cache \ Psr16 \ FileSystemCacheEngine 将缓存结果保存在本地文件系统中 \ ByJG \ Cache \ Psr16 \ MemcachedEngine 使用Memcached作为缓存引擎 \ ByJG...

    PHP企业级应用之常见缓存技术篇

    这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据, 并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件...

    Yii数据库缓存实例分析

    1、在main.php主文件中添加 'dbcache'=&gt;array( 'class'=&gt;'system.caching.CDbCache', //数据库缓存,注意你自己的路径问题 ), 2、设置数据库缓存 Yii::app()-&gt;cache-&gt;set($key,$value,$outtime); //$key 唯一...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

Global site tag (gtag.js) - Google Analytics