0

我有一个这样的字符串

$str = "array (
   'from' => 'OK',
   'to' => 'OK',
   array (
      'id' => 204847
   ),
)"

我怎样才能创建匹配的数组?或者我怎么能得到 id ?

4

3 回答 3

3

如果此字符串不是用户输入,最简单的方法是使用eval.

eval('$myArray = '.$str.';');

文档中的重要说明

eval()语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

于 2012-11-14T10:43:57.490 回答
2

你可以使用 PHP 的eval()函数,认为你需要确定这个字符串是可信的。即使这样我也不愿意推荐它:

文档: http: //php.net/manual/en/function.eval.php

警告: php 中的 eval 什么时候是邪恶的?为什么它是邪恶的

于 2012-11-14T10:43:35.360 回答
2

我将打破“按规定回答问题”的模式,因为eval它非常危险,我什至不会推荐使用它。

相反,将您的字符串更改为可识别的交换格式,例如JSON甚至XML。还是PHP的原生序列化格式...

于 2012-11-14T10:47:21.687 回答