В настоящее время я использую следующий код для получения переменной страницы, раздела и класса из URL-адреса.
$domain = 'http://' . $_SERVER['HTTP_HOST'];
$path = $_SERVER['REQUEST_URI'];
$url = $domain . $path;
// page + section + class
$page = basename($url);
$page = $class = str_replace('.php','',$page);
$page = str_replace('-',' ',$page);
if ($path == "/") {
$section = $class = "home";
} else if (basename(dirname($url),"/") == $_SERVER['HTTP_HOST']) {
$section = $page;
} else {
$section = basename(dirname($url),"/");
$section = str_replace('-',' ',$section);
$class = basename(dirname($url),"/") . " " . $class;
}
Например, если URL-адрес равен http://www.mydomain.co.uk/about/
, код возвратит следующие переменные:
$page = "about"
$section = "about"
$class = "about"
Для http://www.mydomain.co.uk/about/general-info/
$page = "general info"
$section = "about"
$class = "about general-info"
Но когда я добавляю больше глубины, например, Для http://www.mydomain.co.uk/about/general-info/history/
к коду выдается:
$page = "history"
$section = "general info"
$class = "general-info history"
, где в идеале мне нужночтобы вывести следующее:
$page = "history"
$section = "about general info"
$class = "about general-info history"
или разбить разделы на столько, сколько необходимо, например:
$section1 = "about"
$section2 = "general-info"
Надеюсь, кто-то может помочь.Если что-то неясно, пожалуйста, спросите.