php 5.4 var_export的改进

用 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

输出

好了,这就是我们要的,将这个数据存储到配置文件就行了。

posted @ 2021-11-29 10:55  李照耀  阅读(85)  评论(0编辑  收藏  举报