Как распарсить строку?
Есть строки:
"array(), array('example' => array(0 => 'one', 1 => 'two', 3 => '...'), 'other' => '...'), TRUE" "'one', array('one' => 1, 'two' => 'two', 'three' => '...'), NULL" ...Это собственно параметры функции, они могут быть самые разные. Задача - парсинг логов трассировки php приложения. Нужно всего лишь разбить эти параметры по отдельности. Можно было бы разделить просто по запятым, но в параметрах есть многомерные массивы где есть запятые. Может кто-то подскажет способ, регулярное выражение или ещё что-то. Можно php или js. |
eval($str) ?
|
Цитата:
Передавайте как ассоциативный массив, что мешает? |
nerv_, я думал задача - получить из этих строк массивы.
Вот так: $str = "array(), array('example' => array(0 => 'one', 1 => 'two', 3 => '...'), 'other' => '...'), TRUE"; $array = eval('return array(' . $str . ');'); var_dump($array); Не знаток PHP... |
Парсится лог файл трассировки функций, и задача разделить ту мешанину, что приходит в качестве параметров в эти функции, а это: объекты; массивы пустые, многомерные; строки; ресурсы; регвыражения и так далее, они расположены в строке через запятую. Разделить для вывода в html удобного для просмотра.
Причем проблем не было со всем кроме массивов, eval не помогает. Пришлось написать функцию которая ищет "array" и считает скобки формируя уровень вложенности распознавая тем самым эти массивы, ну и пару регулярок. Вопрос вроде бы снят. Хотя надо ещё дописывать код для учета всех случаев, например если в качестве параметра придет массив с запросами к базе данных - там тоже скобки. |
Цитата:
Вставил код сюда: http://phpjs.hertzen.com/console.html и получил дамп входных параметров. Что не так? |
Цитата:
За ссылку благодарю может пригодится, но в данном случае не подходит. |
Цитата:
|
Часовой пояс GMT +3, время: 15:40. |