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

輸出

好了,這就是我們要的,將這個數據存儲到配置文件就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章