2013-11-09 85 views
0

網站的用戶可以填寫表單輸入類似的東西 - array(1,23,4,5)等。 可以是像array(array('qwe'))等其他變體。字符串到數組

怎麼樣指定regulary陣列

,所以我需要轉換

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對不起,我的英語不好。

+2

爲什麼你需要這個? – Gavin

+0

這些是完全相同的數組,其中一個是'print_r'和一個'var_dump'的輸出。 – AbraCadaver

+0

@AbraCadaver不,不......他希望將STRING(1)轉換爲數組(2)。所以如果有人會從手寫'數組'結構 - 他想從這做數組。 – speccode

回答

0

這樣做沒有的eval(唯一的辦法),將其寫到一個臨時文件,包括它(就像冒險,有可能是無效的,因此產生一個解析錯誤):

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

這是一個安全漏洞。 Couse我可以寫一些像'array(mail(...));' – Spell