Преобразовать строку в массив PHP (аналог json_decode для представления массива PHP) - PullRequest
1 голос
/ 07 декабря 2011

У меня есть следующая строка (взято у пользователя) в формате PHP "массив".

array(
  array('age', '30', '>'),
  array(
    array('city', 'New Delhi'),
    array('city', 'New York')
  )
);

Я не хочу преобразовывать эту строку в массив PHP без использованияeval (потому что я хочу избежать угроз безопасности).Это похоже на выполнение json_decode.Однако в этом случае синтаксис в PHP.Возможно ли это быстро / легко?

1 Ответ

2 голосов
/ 07 декабря 2011

Вы можете попробовать это, но во многих случаях это, очевидно, не получится

$s = "array(
  array('age', '30', '>'),
  array(
    array('city', 'New Delhi'),
    array('city', 'New York')
  )
);
";
$rep = trim(str_replace(array('array(', ')', "\r", "\n", ' ', "'"), array('[', ']', '', '', '', '"'), $s), ';');
var_dump(json_decode($rep));
var_dump($rep);
...