Как я могу проанализировать вывод var_dump
в PHP для создания массива?
Используйте var_export, если вы хотите представление, которое также является допустимым PHP-кодом
$a = array (1, 2, array ("a", "b", "c")); $dump=var_export($a, true); echo $dump;
отобразит
array ( 0 => 1, 1 => 2, 2 => array ( 0 => 'a', 1 => 'b', 2 => 'c', ), )
Чтобы превратить это обратно в массив, вы можете использовать eval, например
eval("\$foo=$dump;"); var_dump($foo);
Не уверен, почему вы хотели бы это сделать. Если вы хотите где-то сохранить структуру данных PHP, а затем воссоздать ее позже, проверьте сериализованные () и unserialize (), которые больше подходят для этой задачи.
Вы не можете. var_dump
просто выводит текст, но ничего не возвращает.
Возможно, вы пытаетесь преобразовать объект в массив? http://www.phpro.org/examples/Convert-Object-To-Array-With-PHP.html
Возможно, вы ищете var_export
, который даст вам действительное выражение PHP переданного значения.
У меня была аналогичная проблема: сценарий с длительным запуском, созданный в конце, vardump большого массива. Мне пришлось как-то разобрать его для дальнейшего анализа. Мое решение было таким:
cat log.stats | sed 's/\[//g' | sed 's/\]//g' | sed -r 's/int\(([0-9]+)\)/\1,/g' | sed 's/\}/\),/g' | sed -r 's/array\([0-9]+\) \{/array(/g' > log.stats.php
var_export
создает PHP-код, который вы можете запустить через eval
.
Но мне интересно, какова твоя идея?