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数组的第一个元素相关函数