我是靠谱客的博主 斯文嚓茶,最近开发中收集的这篇文章主要介绍php 怎样数据缓存文件,PHP 实现文件缓存数组等数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

PHP 有Redis,Memcache等高速缓存,但是低端服务器可能就没有这些配置了,我们可以尝试着把经常用到的数据(如:数组、导航条、页面底部信息等)缓存到文件中,这样就能“快速的”获取相应的信息了。

以下是尝试的一部分代码:

// 自定义缓存

class YCache

{

// 从文件读取缓存

// 将 json 转换为普通格式

// key 要读取的键值

public static function get($key ,$options)

{

$reval = '';

$path = __DIR__ . './cache/';

if (is_array($options))

{

$baseOptions = self::setOptions([

'path' => $path,

] ,$options);

$path = $baseOptions['path'];

}

$file_name = $path.md5($key).'.txt';

//echo $file_name;die();

if (file_exists($file_name))

$reval = json_decode(file_get_contents($file_name),true);

else

$reval = null;

return $reval;

}

// 写入文件缓存

// 用 json 格式保存内容

// key 要保存的键值

// value 要保存的值

public static function set($key ,$value ,$options)

{

$path = __DIR__ . './cache/';

if (is_array($options))

{

$baseOptions = self::setOptions([

'path' => $path,

] ,$options);

$path = $baseOptions['path'];

}

$file_name = $path.md5($key).'.txt';

if(!file_exists(dirname($file_name)))

mkdir(dirname($file_name), 0555);

//echo $file_name;die();

file_put_contents($file_name , json_encode($value));

}

// 根据传入的参数更改相应的设定

// baseOptions 基础设定数组

// options 传入的设定数组

public static function setOptions($baseOptions ,$options)

{

if (! is_null($options['subPath']))

$baseOptions['path'] .= $options['subPath'] .'/';

return $baseOptions;

}

}

测试代码如下:

$arr = [

1 => [

'name' => '帮助',

'parent_id' => 0,

'namealias' => 'help',

'keywords' => 'chm,helper'

],

2 => [

'name' => '经验',

'parent_id' => 1,

'namealias' => 'exp',

'keywords' => 'exp,helper'

],

];

// 将数组存储到文件中

YCache::set('category_menu_with_zero',$arr ,['subPath' => 'category']);

读取数据:

$re = YCache::get('category_menu_with_zero' ,['subPath' => 'category']);

echo $re[2]['name'];

输出结果:

经验

最后

以上就是斯文嚓茶为你收集整理的php 怎样数据缓存文件,PHP 实现文件缓存数组等数据的全部内容,希望文章能够帮你解决php 怎样数据缓存文件,PHP 实现文件缓存数组等数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部