php将数组存储为文本文件方法汇总
这篇文章主要介绍了php将数组存储为文本文件的三种方法,每个方法都有利弊,需要的朋友可以参考下
php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件。那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种方法实现将 php 数组写入到文件以缓存数组。
(1)利用serialize 将数组序列化存储为文本文件,调用时候再使用unserialize 还原
| 1 2 3 4 5 6 7 8 9 10 |
<?php
$file="./cache/phone.php";
$array=array("color"=>
array("blue","red","green"),"size"=>
array("small","medium","large"));
//缓存
if(false!==fopen($file,"w+")){
file_put_contents($file,serialize($array));//写入缓存
}
//读出缓存
$handle=fopen($file,"r");
$cacheArray=unserialize(fread($handle,filesize($file)));
|
(2)自创的将数组保存为标准的数组格式,虽然保存时复杂了点但是调用时简单
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?php
$file="./cache/phone.php";
$array=array("color"=>
array("blue","red","green"),"size"=>
array("small","medium","large"));
cache_write($file,$array,"rows",false);
//写入
function
cache_write($filename,$values,$var="rows",$format=false){
$cachefile=$filename;
$cachetext="<?php
"."$".$var."=".arrayeval($values,$format).";";
return
writefile($cachefile,$cachetext);
}
//数组转换成字串
function
arrayeval($array,$format=false,$level=0){
$space=$line="";
if(!$format){
for($i=0;$i<=$level;$i++){
$space.=" ";
}
$line="
";
}
$evaluate="Array".$line.$space."(".$line;
$comma=$space;
foreach($array
as $key=>
$val){
$key=is_string($key)?""".addcslashes($key,""\").""":$key;
$val=!is_array($val)&&(!preg_match("/^-?d+$/",$val)||strlen($val)
> 12)?""".addcslashes($val,""\").""":$val;
if(is_array($val)){
$evaluate.=$comma.$key."=>".arrayeval($val,$format,$level+1);
}else{
$evaluate.=$comma.$key."=>".$val;
}
$comma=",".$line.$space;
}
$evaluate.=$line.$space.")";
return
$evaluate;
}
//写入文件
function
writefile($filename,$writetext,$openmod="w"){
if(false!==$fp=fopen($filename,$openmod)){
flock($fp,2);
fwrite($fp,$writetext);
fclose($fp);
return
true;
}else{
return
false;
}
}
|
(3)利用 var_export 将数组直接保存为数组形式存储到文本文件中
| 1 2 3 4 5 6 7 8 9 10 |
<?php
$file="./cache/phone.php";
$array=array("color"=>
array("blue","red","green"),"size"=>
array("small","medium","large"));
//缓存
$text="<?php $rows=".var_export($array,true).";";
if(false!==fopen($file,"w+")){
file_put_contents($file,$text);
}else{
echo
"创建失败";
}
|
以上就是为大家介绍的三种php将数组保存为文本格式的方法,希望对大家的学习有所帮助。
转自:http://www.jb51.net/article/74046.htm
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: thinkphp5 系统登录的实现
- 下一篇: 取得php数组的第一个元素相关函数
