字符串到数组

时间:2013-11-09 19:42:33

标签: php arrays parsing string-parsing

网站用户可以填写表单输入 - array(1,23,4,5)等等。 可以是array(array('qwe'))等变体。

如何将指定的所有类型的字符串转换为常规数组

所以我需要转换

array(
    "String" => "I am a string", 
    "bool" => true, 
    "int" => 99, 
    "float" => 9.45, 
    "array" => array()
);

array(6) {
  ["String"]=>
  string(13) "I am a string"
  ["bool"]=>
  bool(true)
  ["int"]=>
  int(99)
  ["float"]=>
  float(9.45)
  ["array"]=>
  array(0) {
  }
}

此外,我无法使用eval安全原因

P.S。抱歉我的英语不好。

2 个答案:

答案 0 :(得分:0)

没有eval()的唯一方法是将它写入临时文件并包含它(同样有风险,可能无效,因此会产生解析错误):

file_put_contents('temp.php', '<?php $array = ' . $_POST['field'] . '; ?>');
include('temp.php');
var_dump($array);

答案 1 :(得分:0)

我使用PHPSandbox解析php并获取解析数组中的所有变体。

我使用https://github.com/fieryprophet/php-sandbox

中的代码