将字符串转换为PHP数组(用于PHP数组表示的json_decode模拟)

时间:2011-12-07 06:28:21

标签: php arrays string json literals

我有以下字符串(取自用户)的PHP“数组”格式。

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

我不想在不使用eval的情况下将此字符串转换为PHP数组(因为我想避免其安全风险)。这类似于做json_decode。但是,在这种情况下,语法是PHP。这可以快速/简单的方式吗?

1 个答案:

答案 0 :(得分:2)

你可以试试这个,但在很多情况下显然会失败

$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);