我有一个字符串:
$str = "array (
'from' => 'OK',
'to' => 'OK',
array (
'id' => 204847
),
)"
我怎样才能创建匹配的数组? 或者我怎么能得到身份证?
答案 0 :(得分:3)
如果此字符串不是用户输入,则最简单的方法是使用eval
。
eval('$myArray = '.$str.';');
来自文档的重要提示:
eval()
语言构造 非常危险 ,因为它允许执行任意PHP代码。 因此不鼓励使用 。如果您仔细确认除了使用此构造之外没有其他选项,请特别注意 不要将任何用户提供的数据 传递到其中,而不事先正确验证它。
答案 1 :(得分:2)
你可以使用PHP的eval()
函数认为你需要知道这个字符串是可信的..即便如此我也不愿推荐它:
文档: http://php.net/manual/en/function.eval.php
警告: When is eval evil in php?为什么它是邪恶的
答案 2 :(得分:2)
我要打破“回答提出的问题”模式,因为eval
非常危险,我甚至不会接近建议使用它。
相反,请将字符串更改为可识别的互换格式,例如JSON甚至XML。或PHP's native serialisation format ......