从URL

时间:2017-09-18 10:16:54

标签: php

我想在PHP中创建一个简单的页面,它从URL读取具有相对参数的指定函数。

我的网址与www.mysite.com/Api.php?function=sendMail&name=AA000AA

类似

我使用$_SERVER['REQUEST_URI']获取URL并将结果传递给我编写的具有以下构造的Class

public function __construct($uri = '')

一切正常,直到我用&符号添加参数,我得到以下错误

Fatal error: Uncaught Error: Function name must be a string in /data/web/Api.php:36 Stack trace: #0 /data/web/Api.php(71): ApiAction->__construct('/app/Api.php?fu...')

但是在var_dump检查后我得到了这个

string(43) "/Api.php?function=sendMail&name=AA000AA"

告诉我的是一个字符串。 我试图施展它但它一直给我同样的错误。

I类呼叫具有以下代码

class ApiAction{

    protected $link;

    public function __construct($uri){
        $request = str_replace("/Api.php?", "", $uri);
        $parameters = explode("&", $request);
        $command = array();
        foreach ($parameters as $value) {
            $tmp = explode("=", $value);
            $command[$tmp[0]] = (string)$tmp[1];
        }
        $result = '';

}

但是当我使用

创建此类的新实例时,它会遇到此错误
new ApiAction($_SERVER['REQUEST_URI']);

但是,正如前面提到的,它在我用&符号添加参数之前完美地工作,I.E。

www.mysite.com/Api.php?function=sendMail

没有任何问题

1 个答案:

答案 0 :(得分:1)

您需要编码& widh %26并使用parse_url / parse_str之类的内容来提取数据。