2011-08-25 113 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)));