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 に答える