PHP文件缓存

项目中要用到临时存储一个数组,于是想利用PHP的文件操作来临时存储数组。

步骤1:
首先需要创建一个文件用到PHP文件操作相关函数

(PHP 4, PHP 5, PHP 7)
fopen — 打开文件或者 URL

resource fopen ( string filename,stringmode [, bool useincludepath=false[,resourcecontext ]] )

代码:

<?php function create_file($file,$str) { $myfile=fopen($file,'w'); fputs($myfile,$str); fclose($myfile); return $myfile; } //文件创建,$file为文件地址(包括文件名称),$str是要写入的数据

 

步骤二:要存入数组信息,需要将数组序列化

(PHP 4, PHP 5, PHP 7)
serialize — 产生一个可存储的值的表示

string serialize ( mixed $value )
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

代码:

<?php $arr=array( 'a'=>'apple', 'b'=>array('ball','banana') ); var_dump($arr); $str=serialize($arr); var_dump($str);

显示:

array (size=2)
  'a' => string 'apple' (length=5) 'b' => array (size=2) 0 => string 'ball' (length=4) 1 => string 'banana' (length=6) string 'a:2:{s:1:"a";s:5:"apple";s:1:"b";a:2:{i:0;s:4:"ball";i:1;s:6:"banana";}}' (length=72)

步骤三:将序列化后的字符串存入文本文件读取时需要用unserialize()反序列化还原数组

代码:

<?php 
function create_file($file,$str) //创建文件函数 { $myfile=fopen($file,'w'); fputs($myfile,$str); fclose($myfile); return $myfile; } $file="test.txt"; $arr=array( 'a'=>'apple', 'b'=>array( 'ball','banana' ) ); $str= serialize($arr); //序列化数组 create_file($file,$str); //创建文件并且写入数据 $arr_str=file_get_contents ($file,'r+'); //以字符串形式读取文件 var_dump($arr_str); $arr=unserialize($arr_str); //反序列化还原数组 var_dump($arr);

浏览器输出:

string 'a:2:{s:1:"a";s:5:"apple";s:1:"b";a:2:{i:0;s:4:"ball";i:1;s:6:"banana";}}' (length=72) array (size=2) 'a' => string 'apple' (length=5) 'b' => array (size=2) 0 => string 'ball' (length=4) 1 => string 'banana' (length=6)

转载于:https://www.cnblogs.com/haohaoyuan/p/7641564.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值