我需要访问一个由Perl的Data :: Dumper输出的数组 数组是一个原始文件,我需要用php访问它 数组格式如下:
$stats = {
'days' => 25,
'lengths' => {
'Piwee' => 269,
'Jeanne-' => 904,
'kaAnar' => 340,
[... Very Big ARRAY....]
我在这里找到了this solution,但我不想使用eval(),因为这个数组将具有用户输入数据。
因为在str_replace解决方案的情况下我总是需要eval()输出,我想我需要找到另一种方法来做到这一点。
也许转换为XML或直接PHP解析?
我不确定这里最好的解决方案是什么。
perl / PHP / bash解决方案没问题
注1:我无法编辑输出此原始文件的Perl代码 注意2:我没有在Perl中编码所以我不知道如何使用这样的数据
答案 0 :(得分:6)
请勿使用Data::Dumper
导出您的数据。它主要用于调试目的,不用于数据序列化,尤其不用于输入外来语言
使用Perl JSON
模块的encode_json
调用从Perl哈希创建一个JSON字符串,并使用PHP json_decode
将其转换为PHP关联数组
例如,假设Data::Dumper
的输出位于文件stats.data
中,那么像这样的简短Perl程序将打印等效于STDOUT的JSON
use strict;
use warnings 'all';
use JSON;
print encode_json( do 'stats.data' or die $! ), "\n";
{"lengths":{"Jeanne-":904,"Piwee":269,"kaAnar":340},"days":25}