我想在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
没有任何问题
答案 0 :(得分:1)
您需要编码&
widh %26
并使用parse_url
/ parse_str
之类的内容来提取数据。