将字符串转换为可执行命令

时间:2011-11-21 13:55:24

标签: php parsing

所以让我说我的变量就像这样:

$q = "DB::select('id')->from('reports')->where('field', '=', 'value');";

现在我该如何删除" "或做一些可以使其成为可执行查询的内容?

$q = DB::select('id')->from('reports')->where('field', '=', 'value');

顺便说一下,我正在使用kohana框架,但我认为这不重要,因为它是一个简单的PHP代码。

4 个答案:

答案 0 :(得分:6)

您可以使用eval来完成此操作。 Eval被认为是非常有害的,因此请确保在考虑使用eval之前对所有内容进行消毒。

答案 1 :(得分:1)

$q = "DB::select('id')->from('reports')->where('field', '=', 'value');";
eval('$q = ' . $q);

来源:http://php.net/eval

PS:当你不能100%确定将被评估的内容时,避免使用eval。 eval&之间的levenshtein必须有一个原因。邪恶只有1个!

答案 2 :(得分:1)

使用eval()函数。

eval("$q = " . "DB::select('id')->from('reports')->where('field', '=', 'value');");

退房:http://php.net/manual/en/function.eval.php

答案 3 :(得分:0)

看一下eval()函数: - > http://www.php.net/manual/en/function.eval.php