导出php5.4支持的数组格式,即以[]为标识符而不是以array()标识
2024-08-26 02:06:09
//导出php数组,以[]为标识符而不是以array()
if (!function_exists('varExport')) {
//导出php数组,以[]为标识符而不是以array()
function varExport($var)
{
echo '<meta charset="utf-8" />';
$traces = debug_backtrace();
$varNames = [];
foreach ($traces as $trace) {
if (isset($trace['function']) && in_array($trace['function'], array('varExport'))) {
echo $trace['file'] . ':' . $trace['line'] . "\n";
if (file_exists($trace['file'])) {
$vars = file($trace['file'])[$trace['line']-1];
preg_match('/varExport\(([$\w, ]+)\)/i', $vars, $matches);
$varNames = !empty($matches[1]) ? explode(',', $matches[1]) : [];
}
break;
}
}
$exporter = function ($var, $indent = "") use (&$exporter) {
switch (gettype($var)) {
case "string":
return '"' . addcslashes($var, "\\\$\"\r\n\t\v\f") . '"';
case "array":
$self = $exporter;
$indexed = array_keys($var) === range(0, count($var) - 1);
$r = [];
foreach ($var as $key => $value) {
$r[] = "$indent "
. ($indexed ? "" : $self($key) . " => ")
. $self($value, "$indent ");
}
return "[\n" . implode(",\n", $r) . "\n" . $indent . "]";
case "boolean":
return $var ? "TRUE" : "FALSE";
default:
return var_export($var, true);
}
};
echo '<pre>';
array_map(function ($var, $varName) use ($exporter) {
$varName = !empty($varName) ? trim($varName) . ' = ' : '';
$endChar = !empty($varName) ? ';' : '';
echo $varName . $exporter($var) . $endChar . "\n";
}, func_get_args(), $varNames);
echo '</pre>';
}
}
代码输出:
/data1/www/xxxxx/XxxxController.php:265
$channelList = [
[
"iChannelID" => "",
"sChannelName" => "全部"
],
[
"iChannelID" => 1,
"sChannelName" => "腾讯"
],
[
"iChannelID" => 2,
"sChannelName" => "淘宝"
],
[
"iChannelID" => 3,
"sChannelName" => "百度"
]
];
最新文章
- 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入
- .Net 序列化(去除默认命名空间,添加编码)
- [Android]Android MVP&;依赖注入&;单元测试
- I2C实时时钟rx-8025板卡实际应用
- Android aidl Binder框架浅析
- Android:删除模拟器中没用的应用
- 省市区三级联动JS
- keepliave
- workerman与thinkphp结合
- 22. Generate Parentheses(ML)
- spring boot 配置注入
- Netty入门(八)构建Netty HTTP/HTTPS应用
- 【BZOJ3832】[POI2014]Rally(拓扑排序,动态规划)
- MongoDB(课时16 分页显示)
- SpringMVC 实现返回一段数据 &; 实现自动发送json格式数据 - AJAX
- 模拟时钟(AnalogClock)
- leetCode题解之删除单链表中指定的元素
- 封装NSMapTable并简易的使用
- 后台登陆功能的实现 SESSION
- ETL开源工具kettle学习笔记
热门文章
- rename table table1 to table2;
- 「Python」人脸识别应用
- WebSocket解释及如何兼容低版本浏览器
- git操作图
- org.hibernate.HibernateException: getFlushMode is not valid without active transaction
- spring boot 2.0.3+spring cloud (Finchley)5、路由网关Spring Cloud Zuul
- 图论:DFS序
- IDEA不显示更新、提交按钮
- Map总结
- phpcms添加子栏目后的读取