我正在使用PHP创建API,但URL遇到问题,它会将此URL发送给我http://localhost/api/index/Peoples/3
这个想法是,我想使用Peoples类,并且想要获得代码为3的Person,有什么办法可以让我获得Peoples和3号?
我的想法是,我从浏览器中检索URL,然后将其爆炸。虽然我不需要通过url传递参数,但效果很好
public function getClass(){
$params = explode("/api/index/", $this->currentUrl);
if(count($params) == 1)
return "no have class !";
else
{
$params = explode('/', $params[1]);
$this->callClass($params[0]);
return "Classe : ".$params[0];
}
}
使用此代码,我可以恢复Peoples,然后知道我将使用哪个类。现在,我想传递代码的参数,例如3。我可以传递如下../Peoples?id=3,但是我不得不破坏更多的字符串,有更好的方法吗? >
传递../Peoples?id=3或../Peoples/3和我如何恢复之间有什么区别?
答案 0 :(得分:0)
您可以尝试类似的事情
public function getClass()
{
$path = explode('/', parse_url($this->currentUrl, PHP_URL_PATH));
if(count($path) !== 5){
return 'not valid url';
}
$id = array_pop($path);
$class = array_pop($path);
//$this->callClass($class);
$newPath = $class.'?id='.$id;
return $newPath;
}
关于您有关/ Peoples?id = 3或../Peoples/3的问题 如果使用的是诸如symfony或laravel之类的框架,您可以在其中定义控制器,第二个则更容易,而第一个则可以使用$ _GET ['id']
轻松地从URL中获取数据。希望这就是您想要的。