Украина, Днепр
(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-2026 All rights reserved.
created by WPS.