7

我想避免写入数据库并将常量/数组用于 lang 文件等。

IE:

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

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

你对最好和最有效的方法有什么建议?

4

4 回答 4

18

我发现最有效的方法是这样的:

以某种方式在 php 中构建您的数组并将其导出到文件中var_export()

file_put_contents( '/some/file/data.php', '<?php return '.var_export( $data_array, true ).";\n" );

然后稍后,无论您需要这些数据,都像这样拉它

$data = include '/some/file/data.php';
于 2012-09-21T12:59:21.580 回答
12

绝对是 JSON

要保存它:

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

要取回它:

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

就如此容易 !

于 2012-09-21T13:25:09.820 回答
6

好吧,如果您坚持将数据放入文件中,您可能会考虑使用 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);
?>
于 2012-09-21T12:58:04.303 回答
3

你可以试试json_encode()json_decode()

$save = json_encode($array);

将 $save 的内容写入文件

要加载语言,请使用:

$lang = file_get_contents('langfile');
$lang = json_decode($lang, true);
于 2012-09-21T13:15:53.070 回答