PHP:解析不带变量名的URL查询的最佳方法?

时间:2019-07-17 12:03:36

标签: php parsing url

提供如下网址

www.example.com?1+1

我应该如何解析数据并进行数学运算?

如果是这样的话

www.example.com?a=1&op=+&b=1

那我就可以做$ _GET [“ variable_name”]。

但是我该怎么办? 解析此类查询的最佳方法是什么?

我正在寻找解决方案,但似乎找不到与我当前的知识有关的东西。 我尝试查看$_SERVER,但我认为这没有帮助。

1 个答案:

答案 0 :(得分:0)

如果 ,您确定不会传递任何恶意文件(或只是进行测试),那么您可以执行以下操作:

$output = eval('return ' . parse_url($_SERVER['REQUEST_URI'])['query'] . ';');

echo $output;

强制性通知:

  

警告   eval()语言构造非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已经仔细验证了除了使用此构造方法外没有其他选择,请特别注意不要在未经事先正确验证的情况下将任何用户提供的数据传递到其中。

但是 ,我建议您使用以下方法,并在链接的问题中使用解析器解析表达式:

$exp = parse_url($_SERVER['REQUEST_URI'])['query']; // 1+1

阅读材料

How to evaluate formula passed as string in PHP?

parse_url

eval