用 var_export 来将数据存储到 php 配置文件里的时候,发现var_export转出来的变量定义还是 array()这种形式,不能转为[],所以自己写个函数来转换一下,代码如下:
<?php
function format_var_export($data = [])
{
$string = "<?php\n\nreturn " . var_export($data, TRUE) . ";";
$string = str_replace("=> \n array (", "=> [", $string);
$string = str_replace("),", "],", $string);
$string = str_replace(");", "];", $string);
$string = str_replace("array (", "[", $string);
$string = str_replace(" ", " ", $string);
return $string;
}
实验一下
config.php 代码如下:
<?php
$data = [
'user' => [
'name' => 'hello',
'uid' => 1
],
'tel' => [
'type' => 'phone',
'number' => '123456',
]
];
$string = format_var_export($data);
echo $string;
function format_var_export($data = [])
{
$string = "<?php\n\nreturn " . var_export($data, TRUE) . ";";
$string = str_replace("=> \n array (", "=> [", $string);
$string = str_replace("),", "],", $string);
$string = str_replace(");", "];", $string);
$string = str_replace("array (", "[", $string);
$string = str_replace(" ", " ", $string);
return $string;
}
执行脚本 php config.php
输出
好了,这就是我们要的,将这个数据存储到配置文件就行了。