CodeIgniter - получить текущий маршрут страницы

Я создаю модуль посетителя страницы. Цель состоит в том, чтобы узнать пользователей, которые посещали больше всего, и какие модули посещали больше всего.

Я хочу получить маршрут текущей страницы.

Вот что я хочу сделать:

  1. У меня есть модуль под названием модуль инвентаризации.
  2. Этот модуль имеет маршрут 'merchandiser/report/inventory'. (в routes.php это $route['merchandiser/report/inventory']).

Это тот же путь, который я хочу пройти.

Я пытался:

<?php echo current_url(); ?>

Но он возвращает что-то вроде этого.

192.168.3.3/portal/merchandiser/report/inventory

192.168.3.3/portal/ - мой базовый url`

Теперь мой вопрос:

Как удалить 192.168.3.3/portal/ и просто получить merchandiser/report/inventory

Надеюсь, ты сможешь направить меня или указать, где его найти.

Спасибо.

str_replace('192.168.3.3/portal/', '', current_url())?
brombeer 13.04.2018 11:59

Как сказал @kerbholz или даже более динамично: str_replace(base_url(), '', current_url()).

Tpojka 13.04.2018 16:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
6 305
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Вы можете использовать это в codeigniter.

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

Он вернет сегменты текущего URL.

Ответ принят как подходящий

Надеюсь, что это поможет вам :

использовать помощника url

   uri_string();

если ваш URL был таким:

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

Функция вернет:

blog/comments/123

подробнее: https://www.codeigniter.com/user_guide/helpers/url_helper.html#uri_string

или вы можете использовать uri что-то вроде:

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

Я думаю, что codeigniters urlhelper должен выполнять эту работу с:

uri_string(
    current_url()
)

Use this

echo base_url(uri_string());

Это работает как шарм:

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

Вы можете распечатать значения или перенаправить после аутентификации с помощью перенаправления ("$ controller / $ method");

в codeigniter 4 вы можете установить имя маршрута и использовать его для получения имени маршрута

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

и получить контроллер и метод

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

Другие вопросы по теме