Мне нужно получить массив, который выводится Perl Data :: Dumper.
Массив находится в необработанном файле, и мне нужно получить его с помощью php.
Массив формируется следующим образом:
$stats = { 'days' => 25, 'lengths' => { 'Piwee' => 269, 'Jeanne-' => 904, 'kaAnar' => 340, [... Very Big ARRAY....]
Я нашел это решение здесь, но я не хочу использовать eval (), потому что этот массив будет иметь пользовательские данные. Поскольку мне всегда нужно вывести eval () в случае решения str_replace, я думаю, мне нужно найти другой способ сделать это.
Может быть, конвертировать в XML или прямое разбор PHP?
Я не уверен, что было бы лучшим решением здесь.
Решение perl / PHP / bash было бы в порядке
примечание 1: я не могу отредактировать код Perl, который выводит этот необработанный файл
примечание 2: я не код в Perl, поэтому я не знаю, как работать с такими данными
Не используйте Data::Dumper
для экспорта ваших данных. Это прежде всего для целей отладки, а не для сериализации данных, и особенно не для ввода чужого языка
Используйте вызов encode_json
модуля Perl JSON
для создания строки JSON из хэша Perl и PHP json_decode
для преобразования его в ассоциативный массив PHP
Например, скажем, что ваш вывод из Data::Dumper
находится в файле stats.data
, тогда короткая программа Perl, подобная этой, будет печатать эквивалент JSON для STDOUT
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}