如何从 PHP 中 var_dump 的输出创建数组?

发布于 2024-08-05 07:48:14 字数 37 浏览 4 评论 0原文

如何在 PHP 中解析 var_dump 的输出来创建数组?

How can I parse the output of var_dump in PHP to create an array?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

垂暮老矣 2024-08-12 07:48:14

如果您想要一个也是有效 PHP 代码

$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',
 ),
)

表示形式,请使用 var_export要将其转回数组,您可以使用 eval,例如,

eval("\$foo=$dump;");
var_dump($foo);

不确定为什么您想要这样做。如果您想将 PHP 数据结构存储在某处,然后重新创建它,请查看 serialize()unserialize() 更适合此任务。

Use var_export if you want a representation which is also valid PHP code

$a = array (1, 2, array ("a", "b", "c"));
$dump=var_export($a, true);
echo $dump;

will display

array (
 0 => 1,
 1 => 2,
 2 => 
 array (
   0 => 'a',
   1 => 'b',
   2 => 'c',
 ),
)

To turn that back into an array, you can use eval, e.g.

eval("\$foo=$dump;");
var_dump($foo);

Not sure why you would want to do this though. If you want to store a PHP data structure somewhere and then recreate it later, check out serialize() and unserialize() which are more suited to this task.

腹黑女流氓 2024-08-12 07:48:14

也许您正在寻找 var_export 它将为您提供有效的 PHP 表达式传递的值。

Maybe you’re looking for var_export that will give you a valid PHP expression of the passed value.

じ违心 2024-08-12 07:48:14

我遇到了类似的问题:一个长时间运行的脚本最后生成了一个大型数组的 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

I had a similar problem : a long runing script produced at the end a vardump of large array. I had to parse it back somehow for further analyzis.
My solution was like this:

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
空袭的梦i 2024-08-12 07:48:14

你不能。 var_dump 仅输出文本,但不返回任何内容。

You can't. var_dump just outputs text but doesn't return anything.

就是爱搞怪 2024-08-12 07:48:14

也许您正在尝试将对象转换为数组?
http://www.phpro.org/examples/ Convert-Object-To-Array-With-PHP.html

Perhaps you are trying to convert an object to an array?
http://www.phpro.org/examples/Convert-Object-To-Array-With-PHP.html

习惯成性 2024-08-12 07:48:14

var_export 创建 PHP 代码,您可以通过 eval

但我想知道,你的想法是什么?

var_export creates the PHP code, which you can run through the eval.

But I wonder, what is your idea?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文