获取当前页面未完整的URL

时间:2011-08-25 05:04:09

标签: php url

是否可以使用php

将当前页面保存在变量(而不是完整的URL)中

所以如果我的页面是www.mywebsite.com/news/bob

我希望在变量中获得/bob

4 个答案:

答案 0 :(得分:1)

 <?PHP $file_name = $_SERVER['PHP_SELF']; ?>

答案 1 :(得分:1)

请参阅this变量

$_SERVER['PATH_INFO']

也许你需要

basename($_SERVER['PATH_INFO']);

答案 2 :(得分: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']);

答案 3 :(得分: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)));