如果我从mysql(或其他)获得以下文本字符串,我如何使用PHP将其转换为实际数组?
array("foo" => "bar","honey" => "pops")
我知道我可以将数组保存在序列化状态,但这正是我在这里要避免的。
答案 0 :(得分:1)
使用eval
,但这太危险了...... 我不建议您使用
$string = '$array = array("foo" => "bar","honey" => "pops");' ;
eval($string);
var_dump($array);
输出
array(2) {
["foo"]=>
string(3) "bar"
["honey"]=>
string(4) "pops"
}
使用标准格式,例如
JSON
http://php.net/manual/en/book.json.php
XML
http://php.net/manual/en/book.simplexml.php
Serialized PHP
http://php.net/manual/en/function.serialize.php
答案 1 :(得分:1)
答案是“不要这样做”。 从不将PHP代码放入数据库中。该数据库用于数据,而不是代码。
正确的方式是存储序列化数组(不确定为什么要避免这种情况)。
答案 2 :(得分:0)
您可以使用eval
功能:
http://php.net/manual/en/function.eval.php
尝试这样的事情:
$my_string = 'array("foo" => "bar","honey" => "pops")';
eval("\$result=$my_string;");