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 @   李照耀  阅读(103)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2017-11-29 小物件之checkbox复选框
2017-11-29 处理特殊格式的GET传参
2016-11-29 onethink 系统函数中 生成随机加密key
点击右上角即可分享
微信分享提示