0

网站的用户可以填写表单输入类似的东西 -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另外,出于安全原因,我不能使用

PS对不起我的英语不好。

4

2 回答 2

0

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

file_put_contents('temp.php', '<?php $array = ' . $_POST['field'] . '; ?>');
include('temp.php');
var_dump($array);
于 2013-11-09T19:56:48.723 回答
0

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

我使用来自https://github.com/fieryprophet/php-sandbox的代码

于 2013-12-05T13:56:49.040 回答