php url方面的问题,获取url和参数
来源:互联网 发布:达芬奇调色mac电脑配置 编辑:程序博客网 时间:2024/06/06 00:38
使用PHP编写程序的时候,我们常常想要获取当前页面的URL。下面提供一个用于获取当前页面URL的函数以及使用方法:
示例一:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 说明:获取完整URL
function curPageURL()
{
$pageURL = 'http';
if ($_SERVER["HTTPS"]=="on")
{
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"]!="80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
定义该函数之后就可以直接调用了:
2
3
echo curPageURL();
?>
上面的函数可以获取当前页面完整的URL,即你在浏览器地址栏看到的内容。但是,有时候我们不想要URL中的参数( ? 号后面的内容),如:http://www.ludou.org/hello.html?u=123,只想获取http://www.ludou.org/hello.html,你可以将以上函数做以下更改:
示例二:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 说明:获取无参数URL
function curPageURL()
{
$pageURL = 'http';
if ($_SERVER["HTTPS"]=="on")
{
$pageURL .= "s";
}
$pageURL .= "://";
$this_page = $_SERVER["REQUEST_URI"];
// 只取 ? 前面的内容
if (strpos($this_page,"?")!==false)
$this_page = reset(explode("?",$this_page));
if ($_SERVER["SERVER_PORT"]!="80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$this_page;
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"].$this_page;
}
return $pageURL;
}
?>
当然也可以采用 $_SERVER['PHP_SELF']
(该变量不返回URL中的参数),
示例三:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 说明:获取无参数URL
function curPageURL()
{
$pageURL = 'http';
if ($_SERVER["HTTPS"]=="on")
{
$pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"]!="80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER['PHP_SELF'];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER['PHP_SELF'];
}
return $pageURL;
}
?>
另外,$_SERVER['REQUEST_URI']
和 $_SERVER['REQUEST_URL']
是有稍微区别的:$_SERVER["REQUEST_URI"]
返回完整的路径 ( /directory/file.ext?query=string
)$_SERVER['REQUEST_URL']
只返回文件路径,不包括参数,( /directory/file.ext
),和$_SERVER['PHP_SELF']
差不多,只不过在有些服务器上$_SERVER['REQUEST_URL']
不可用!
注意:URL使用rewrite规则的时候,$_SERVER['PHP_SELF']和$_SERVER["REQUEST_URL"]可能不会返回你想要的东西
最后提醒一点,$_SERVER["REQUEST_URI"]
只有 apache 才支持,想要一个获取 $_SERVER['REQUEST_URI']
值的通用解决方案,可以使用以下方案:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 说明:获取 _SERVER['REQUEST_URI'] 值的通用解决方案
// 来源:drupal-5.1 bootstrap.inc
// 整理:http://www.codebit.cn/pub/html/php_mysql/tip/other/request_uri
function requestUri()
{
if (isset($_SERVER['REQUEST_URI']))
{
$uri = $_SERVER['REQUEST_URI'];
}
else
{
if (isset($_SERVER['argv']))
{
$uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['argv'][0];
}
else
{
$uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
}
}
return $uri;
}
?>
参考资料:
- http://php.net/manual/en/reserved.variables.server.php
- http://www.webcheatsheet.com/php/get_current_page_url.php
- php url方面的问题,获取url和参数
- PHP获取url参数
- js和php获取当前页面URL的各项参数
- php如何获取url的参数
- jquery获取Url和JS获取Url的参数值
- 用POST和GET获取URL后的参数问题
- 获取Url中的地址的参数问题,
- PHP获取url后缀参数
- struts2获取url参数问题
- php url传递参数问题
- php获取加密url参数乱码问题处理
- easyui 获取datagrid的url和参数 获取url 获取查询参数
- PHP获取当前页面的名称,主机名,URL完整地址,URL参数,获取IP
- 详解php获取url地址栏及各种参数的方法
- PHP 获取当前url的函数及参数
- PHP URL参数获取方式的四种例子
- php url里#后面的参数无法获取
- 获取URL参数的值
- 批处理关于截取变量中字符串(字段)问题的详细说明(转)
- Linux下安装VNC
- ff 多个sesstion
- input与img对齐问题
- 图说菜鸟如何成为移动应用开发者
- php url方面的问题,获取url和参数
- [乐意黎原创] 乐意黎 | 黎硕 | 碌人乘凉--> AERCHI 你所不懂的
- html5 常用 标签
- 在GridView中插入新记录的方法(结合DetailsView)
- el表达式调用方法(曾经碰到的一个问题)
- 放平心态度过悉知的第一个平稳期
- 获取所有表及属性
- 为什么要开会?开那么多的会有意思吗?
- 在PB可视用户类中动态创建其它可视对象