php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件。那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种方法实现将 php 数组写入到文件以缓存数组。
(1)利用serialize 将数组序列化存储为文本文件,调用时候再使用unserialize 还原
1
2
3
4
5
6
7
8
9
10
|
$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
|
$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
=
"
return
writefile(
$cachefile
,
$cachetext
);
}
//数组转换成字串
function
arrayeval(
$array
,
$format
=false,
$level
=0){
$space
=
$line
=
''
;
if
(!
$format
){
for
(
$i
=0;
$i
<=
$level
;
$i
++){
$space
.=
"\t"
;
}
$line
=
"\n"
;
}
$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
|
$file
=
'./cache/phone.php'
;
$array
=
array
(
'color'
=>
array
(
'blue'
,
'red'
,
'green'
),
'size'
=>
array
(
'small'
,
'medium'
,
'large'
));
//缓存
$text
=
'
if
(false!==
fopen
(
$file
,
'w+'
)){
file_put_contents
(
$file
,
$text
);
}
else
{
echo
'创建失败'
;
}
|
以上就是为大家介绍的三种php将数组保存为文本格式的方法,希望对大家的学习有所帮助。
转自:http://www.jb51.net/article/74046.htm