从URL检索信息

时间:2018-07-04 20:47:32

标签: php url

我正在使用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和我如何恢复之间有什么区别?

1 个答案:

答案 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中获取数据。

希望这就是您想要的。