CodeIgniter - 获取当前页面路由

时间:2018-04-13 09:54:52

标签: php codeigniter

我正在创建一个页面访问者模块。目标是了解访问次数最多的用户以及访问次数最多的模块。

我想获取当前页面的页面路径。

这是我想要做的:

  1. 我有一个名为库存模块的模块。
  2. 此模块有一条路线'merchandiser/report/inventory'。 (在routes.php中,它是$route['merchandiser/report/inventory'])
  3. 这是我想要的路线。

    我试过了:

    <?php echo current_url(); ?>
    

    但它会返回类似的内容。

    192.168.3.3/portal/merchandiser/report/inventory
    

    192.168.3.3/portal/是我的基础网址

    现在我的问题是:

    如何删除192.168.3.3/portal/并获取merchandiser/report/inventory

    希望你能指导我或带我到哪里找到它。

    谢谢。

6 个答案:

答案 0 :(得分:3)

希望这会对你有所帮助:

使用url帮助

   uri_string();

如果你的网址是这样的:

http://some-site.com/blog/comments/123

该函数将返回:

blog/comments/123

了解更多:https://www.codeigniter.com/user_guide/helpers/url_helper.html#uri_string

或者你可以使用像这样的东西:

echo $this->uri->segment(1).'/'.$this->uri->segment(2).'/'.$this->uri->segment(3); 

/*produces controller/method/parameter structure

https://www.codeigniter.com/user_guide/libraries/uri.html

答案 1 :(得分:1)

您可以在codeigniter中使用它。

$this->uri->segment(1); // controller
$this->uri->segment(2); // action
$this->uri->segment(3); // 1stsegment
$this->uri->segment(4); // 2ndsegment

它将返回当前网址的细分。

答案 2 :(得分:0)

我认为codeigniters urlhelper应该通过以下方式完成工作:

uri_string(
    current_url()
)

答案 3 :(得分:0)

  

使用此

echo base_url(uri_string());

答案 4 :(得分:0)

这就像魅力:

$controller = $this->router->fetch_class();
    $method = $this->router->fetch_method();
    echo $this->uri->uri_string();

您可以打印出这些值或在身份验证后使用redirect(“ $ controller / $ method”);

答案 5 :(得分:0)

在codeigniter 4中,您可以设置路由名称并用于获取路由名称

$router = \CodeIgniter\Config\Services::router();
$current_route = $router->getMatchedRouteOptions()['as'];

并获取控制器和方法

$router->controllerName()
$router->methodName();