在Coding过程中经常会碰到用文件存储数组的情况,比如做缓存文件等等等等。下面总结下文件存储数组的三种常用方法。
一、return array
01 <?php //存储数组的文件array.php
02 return Array (
03 "db_host1" => 123,
04 "db_host2" => 123,
05 "db_host3" => 123,
06 "db_host4" => 123,
07 "db_host5" => 123,
08 "db_host6" => 123,
09 "db_host7" => 123,
10 "db_host8" => 123,
11 "db_host9" => 123,
12 "db_host10" => 123,
13 "db_host11" => 123,
14 "db_host12" => 123,
15 "db_host13" => 123,
16 "db_host14" => 123,
17 "db_host15" => 123,
18 "db_host16" => 123 );
19 ?>
使用进直接require ‘array.php’ 即可:
1 <?
2 $file = './arr.php';
3 $arr = require $file;
4 ?>
二、序列化
<?php
2 //存储数组的文件ser.php
3 return
4 'a:16:{s:8:"db_host1";s:3:"123";s:8:"db_host2";s:3:"123";s:8:"db_host3";s:3:"123";s:8:"db_host4";s:3:"123";s:8:"db_host5";s:3:"123";s:8:"db_host6";s:3:"123";s:8:"db_host7";s:3:"123";s:8:"db_host8";s:3:"123";s:8:"db_host9";s:3:"123";s:9:"db_host10";s:3:"123";s:9:"db_host11";s:3:"123";s:9:"db_host12";s:3:"123";s:9:"db_host13";s:3:"123";s:9:"db_host14";s:3:"123";s:9:"db_host15";s:3:"123";s:9:"db_host16";s:3:"123";}';
5 ?>
调用后对文件进行反序列化即可得到数组:
<?
2 $file = './ser.php';
3 $arr = unserialize(require $file);
4 ?>
三、存为ini配置文件形式
先举个例子:文件名ini.php
01 <?php
02 exit;
03 ?>
04 db_host1 =123
05 db_host2 =123
06 db_host3 =123
07 db_host4 =123
08 db_host5 =123
09 db_host6 =123
10 db_host7 =123
11 db_host8 =123
12 db_host9 =123
13 db_host10 =123
14 db_host11 =123
15 db_host12 =123
16 db_host13 =123
17 db_host14 =123
18 db_host15 =123
19 db_host16 =123
用parse_ini_file直接对文件进行解析即可得到数组:
<?
2 $file = './ini.php';
3 $arr = parse_ini_file($file2);
4 ?>
,可以在ini文件中加注释、可以使其返回的数组为二维数组。
总结下上面三种方法,经测试在效率上差别不是很大;当数组是一维的情况下本人更喜欢用ini的形式——直观;如果要求返回的数组较复杂的话ini形式就不太适应,可以用return array形式或序列化。