将数组写入文件的最佳方法?

时间:2012-09-21 12:49:34

标签: php mysql

我想避免写入DB并使用常量/数组来处理lang文件等。

即:

$lang = array (
  'hello' => 'hello world!'
);

并能够从后台编辑它。 (然后我不会从穷人的数据库中取出它,而是使用$ lang ['hello'] ..)。

你有什么建议以最佳和最有效的方式拉动它?

4 个答案:

答案 0 :(得分:17)

我找到的最有效的方式是这样的:

以某种方式在php中构建你的数组并使用var_export()

将其导出到一个文件中
file_put_contents( '/some/file/data.php', '<?php return '.var_export( $data_array, true ).";\n" );

然后,无论你需要什么,这个数据就像这样拉

$data = include '/some/file/data.php';

答案 1 :(得分:12)

绝对是JSON

要保存它:

file_put_contents("my_array.json", json_encode($array));

要取回它:

$array = json_decode(file_get_contents("my_array.json"));

就这么简单!

答案 2 :(得分:5)

如果您坚持将数据放入文件中,您可以考虑使用php函数serialize()unserialize(),然后使用file_put_contents将数据放入文件中。

示例:

<?php
$somearray = array( 'fruit' => array('pear', 'apple', 'sony') );
file_put_contents('somearray.dat', serialize( $somearray ) );
$loaded = unserialize( file_get_contents('somearray.dat') );

print_r($loaded);
?>

答案 3 :(得分:3)

您可以尝试json_encode()json_decode()

$save = json_encode($array);

将$ save的内容写入文件

加载lang使用:

$lang = file_get_contents('langfile');
$lang = json_decode($lang, true);