Ita*_*vka 2 php arrays string parsing
可能重复:
创建使用print_r打印的数组
重复如何从print_r打印的数组的输出创建数组? 这也有一个很好的代码示例来解决这个问题
我需要反转一个输出错误日志print_r($data,true).
示例数据如下所示:
Array
(
[subject] => this is the subject
[body] => <p>Dear user,</p><p>this is the body of the email</p>
[from_id] => 0
[from_email] => admin@karakas.org
[to] => Array
(
[0] => Array
(
[id] => 0
[email] => 64909
)
)
[send_to_inbox] => 1
)
Run Code Online (Sandbox Code Playgroud)
在PHP手册中有一个print_r_reverse()评论函数:http:
//php.net/manual/en/function.print-r.php
但是,var_export()如果使用生成日志,则可以替代var_export().这样,您只需要eval()检索导出的数组.
的输出print_r()不是为了解析而设计的;它旨在供开发人员出于调试目的而阅读。您不应该尝试解析它。
如果您确实必须解析这种性质的 PHP 数据转储,那么该var_export()函数就是用于此类事情的。但是,我也不建议解析它——它仍然不太可能是最适合您的解决方案。
如果您的目的是存储数组结构的字符串表示形式,然后稍后解析它,那么最好使用serialize()/unserialize()函数或json_encode()/json_decode()函数。
这两者都将为您提供更可靠且更易于解析的数据转储格式。在这两者中,我json_encode()每次都会推荐它,因为它不仅易于使用,而且还支持其他语言,易于手动阅读且紧凑。
简而言之,不要解析print_r()输出;使用json_encode()/json_decode()代替。
https://www.php.net/manual/en/function.json-encode.php