我目前使用下面的代码来实现网址中的页面,节和类变量。使用php将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"
希望有人可以提供帮助。如果有什么不清楚的地方,请询问。
请问可以告诉我,直到网址会有多少层次?像这里你已经提供了直到第三级。 – 2011-05-26 13:37:11
在大多数情况下,它只会持续到第3天。它可能会去第四次,但目前第三 – 2011-05-26 13:39:09
检查费迪南德的第一个答案。它也是我喜欢的。 – 2011-05-26 13:41:10