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