Есть ли способ проанализировать вывод print_r

Возможный дубликат:
Создать массив, напечатанный с помощью 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 ) 

В руководстве 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() вывод print_r() ; json_decode() этого используйте json_encode() / json_decode() .

http://uk1.php.net/manual/en/function.json-encode.php