2011-08-25 114 views

回答

1

看到this变量

$_SERVER['PATH_INFO'] 

也许你需要

basename($_SERVER['PATH_INFO']); 
1

$ _ SERVER [ 'PATH_INFO']似乎并没有在我的安装存在。不知道这里有什么故事,但如果它不在我的面前,它可能不在你的身上,所以这里有一些选择。

$current_page = '/' . basename($_SERVER['PHP_SELF']); 
$current_page = '/' . basename($_SERVER['REQUEST_URI']); 
$current_page = '/' . basename($_SERVER['SCRIPT_NAME']); 

我发现$ _SERVER ['PHP_SELF']是相当可靠的。

如果你喜欢的正则表达式,你可以尝试

$current_page = preg_replace('/(.*?\/)+(.*)$/', '/$2', $_SERVER['PHP_SELF']); 
0

如果您正在使用$ _ SERVER [“PHP_SELF”]上包括或所需的文件,那么它会返回当前的文件,而不是URL的当前页面。在Windows机器上,唯一可靠的选项是$ _SERVER ['REQUEST_URI']或$ _SERVER ['HTTP_X_ORIGINAL_URL']但是,它们也会包含任何查询字符串。

您需要从URL末尾去掉查询字符串才能获得所需的部分。

$current_page = $_SERVER['REQUEST_URI']; 
$current_page = substr($current_page, 0, strpos($current_page, "?")); //removes query string 
$current_page = = '/' . array_pop(array_filter(explode("/", $current_page)));