Украина, Днепр
(095) 478-70-11
Иногда нам нужно распарсить урл, для получения например контроллера и метода, получить параметры не через глобальный массив $_GET
Для этого конечно можно устраивать танцы с бубном над функциями explode,strstr и т.п. Но проще это сделать с помощью готовых решений:
$parseUrl = parse_url($_SERVER['REQUEST_URI']); if (!empty($parseUrl['path'])) { $routes = explode('/', $parseUrl['path']); if (!empty($parseUrl['query'])) { parse_str($parseUrl['query'], $queryUrl); } $arrRoutes = array_reverse(array_diff($routes, [''])); public function initialize(): void { $parseUrl = parse_url($_SERVER['REQUEST_URI']); if (!empty($parseUrl['path'])) { $routes = explode('/', $parseUrl['path']); if (!empty($parseUrl['query'])) { parse_str($parseUrl['query'], $queryUrl); } $arrRoutes = array_reverse(array_diff($routes, [''])); try { if (count($arrRoutes) > 0) { $nameController = $arrRoutes[1] ?? $arrRoutes[0]; if (!empty($arrRoutes[1])) { $this->actionName = $arrRoutes[0]; } $this->controllerName = $nameController; } } catch (NotExistFileException $e) { self::errorPage404(); } } }
Copyright © 2012-2024 All rights reserved.
created by WPS.