如何解析var_dump
PHP 的输出以创建数组?
问问题
9071 次
6 回答
23
如果您想要一个也是有效 PHP 代码的表示,请使用var_export
$a = array (1, 2, array ("a", "b", "c"));
$dump=var_export($a, true);
echo $dump;
将显示
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
要将其转回数组,您可以使用 eval,例如
eval("\$foo=$dump;");
var_dump($foo);
不知道你为什么要这样做。如果您想在某处存储 PHP 数据结构,然后稍后重新创建它,请查看更适合此任务的serialize()和unserialize() 。
于 2009-09-15T08:43:49.673 回答
2
我有一个类似的问题:一个长时间运行的脚本最后产生了一个大型数组的 vardump。我不得不以某种方式将其解析回来以进行进一步分析。我的解决方案是这样的:
cat log.stats |
sed 's/\[//g' |
sed 's/\]//g' |
sed -r 's/int\(([0-9]+)\)/\1,/g' |
sed 's/\}/\),/g' |
sed -r 's/array\([0-9]+\) \{/array(/g' >
log.stats.php
于 2012-02-06T11:43:19.953 回答
1
也许您正在寻找var_export
可以为您提供传递值的有效 PHP 表达式。
于 2009-09-15T08:43:55.370 回答
1
也许您正在尝试将对象转换为数组? http://www.phpro.org/examples/Convert-Object-To-Array-With-PHP.html
于 2009-09-15T08:44:56.927 回答
1
var_export
创建 PHP 代码,您可以通过eval
.
但我想知道,你的想法是什么?
于 2009-09-15T08:44:59.333 回答
1
你不能。var_dump
只输出文本但不返回任何内容。
于 2009-09-15T08:41:29.697 回答