2013-11-09 3 views
0

사이트 사용자는 - array(1,23,4,5) 등의 양식 입력을 작성할 수 있습니다. array(array('qwe')) 등의 변형이 가능합니다. 내가 보안상의 이유로의 eval 나오긴을 사용할 수 없습니다배열의 문자열

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) { 
    } 
} 

그래서 내가 변환 할 필요가 regulary에 배열에 지정된처럼 문자열의 모든 유형을 변환 할 수있는 방법

추신 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다. (이 구문 분석 오류가 발생하므로 마찬가지로 위험하고 유효하지 않을 수 있습니다)

+2
+0

그것들은 정확히 같은 배열입니다. 하나는'print_r'의 출력이고 하나는'var_dump'입니다. – AbraCadaver

+0

@AbraCadaver 아니, 아니요 ... 그는 STRING (1)을 (2) (으)로 변환하려고합니다. 그래서 만약 누군가가 손에서'array' 구조체를 써야한다면 - 배열로부터 이것을하고 싶습니다. – speccode

답변

0

PHPSandbox를 사용하여 PHP를 구문 분석하고 파싱 배열 내에서 모든 변형을 가져 왔습니다. 당신이 필요 왜

나는

0

평가 (없이이 작업을 수행 할 수있는 유일한 방법은) 임시 파일에 그것을 작성하는 그것을 포함 할 것입니다 :

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

이것은 보안 위반입니다. Couse 나는'array (mail (...));와 같은 것을 쓸 수있다. – Spell