将带有数组语句的PHP字符串转换为实数数组

时间:2011-11-30 22:16:35

标签: php arrays

我有一个名为$taxonomy_str

的字符串var

例如,echo $taxonomy_str将显示:

array('relation' => 'AND', 
  array('taxonomy' => category, 
        'field' => 'id', 
        'terms' => array( 41, 42 ), 
        'operator' => 'IN'), 
  array('taxonomy' => geography,
        'field' => 'id',
        'terms' => array( 20, 29 ),
        'operator' => 'IN')
)

我需要一种方法将带有数组语句的字符串转换为真实数组,如何使用PHP实现此目的?

感谢。

4 个答案:

答案 0 :(得分:4)

您可以使用eval(),但如果您从用户输入中获取字符串,则确实不安全。

答案 1 :(得分:4)

一件有点微不足道的事情就是eval

eval('$foo = ' . $taxonomy_str . ';');
// $foo now contains the outer array

(来自评论)或许更好的形式:

$foo = eval('return ' . $taxonomy_str . ';');

这实际上执行$taxonomy_str就好像它是源代码一样,因此作为输入提供的任何有效PHP都将运行。如果您要说,将$taxonomy_str作为用户的输入,则存在一定程度的危险。

答案 2 :(得分:1)

您可以使用eval功能。确保你的字符串是安全的,没有狡猾的东西。

答案 3 :(得分:1)

您可以使用eval()函数。有关更多信息,请参阅PHP官方文档