PHP获取当前页面的URL
2019独角兽企业重金招聘Python工程师标准>>>
使用PHP编写程序的时候,我们常常想要获取当前页面的URL。下面提供一个用于获取当前页面URL的函数以及使用方法:
示例一:
<?php
// 说明:获取完整URLfunction 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;
}
?>
定义该函数之后就可以直接调用了:
1
2 3 |
<?php
echo curPageURL ( ) ; ?> |
上面的函数可以获取当前页面完整的URL,即你在浏览器地址栏看到的内容。但是,有时候我们不想要URL中的参数( ? 号后面的内容),如:http://www.ludou.org/hello.html?u=123,只想获取http://www.ludou.org/hello.html,你可以将以上函数做以下更改:
示例二:
<?php
// 说明:获取无参数URLfunction 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中的参数),
示例三:
<?php
// 说明:获取无参数URLfunction 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']
值的通用解决方案,可以使用以下方案:
<?php
// 说明:获取 _SERVER['REQUEST_URI'] 值的通用解决方案
// 来源:drupal-5.1 bootstrap.inc
// 整理:http://www.codebit.cn/pub/html/php_mysql/tip/other/request_urifunction request_uri()
{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;
}
?>
转载于:https://my.oschina.net/kalcaddle/blog/32575
PHP获取当前页面的URL相关推荐
- Python+selenium 自动化-获取当前页面的url地址,打开指定的url地址
非常简单,driver.current_url 就能获取当前页面的 url 地址. # 调用chrome浏览器 driver = webdriver.Chrome() # 打开指定的url地址 dri ...
- JS - 获取当前页面的 url地址 及 相关信息
JS - 获取当前页面的 url地址 及 相关信息 一. 获取当前页面的 url地址 二. 获取当前网址url 后的指定参数 一. 获取当前页面的 url地址 window.location 以htt ...
- js获取当前页面的url网址信息
WEB开发中,时常会用到javascript来获取当前页面的url网址信息 下面我们举例一个URL,然后获得它的各个组成部分:http://i.jb51.net/EditPosts.aspx?opt= ...
- 微信小程序参数传递获取当前页面的url和参数
页面跳转添加参数 wx.navigateTo({url: `../deeddetail/deeddetail?id=${e.currentTarget.dataset.id}`, }) 接收optio ...
- 使用JS获取当前页面的URL(网址信息)
<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>& ...
- js获取当前页面的URL信息
2019独角兽企业重金招聘Python工程师标准>>> window.location 属性 描述 hash 设置或获取 href 属性中在井号"#"后面的分段 ...
- JQUERY获取当前页面的URL信息
window.location 属性 描述 hash 设置或获取 href 属性中在井号"#"后面的分段. host 设置或获取 location 或 URL 的 hostname ...
- Django获取当前页面的URL——小记
获取带参数URL:request.get_all_path() 获取不带参数URL:request.path 获取主机地址:request.get_host() 转载于:https://www.cnb ...
- 工作小总结(字符串包含,获取当前页面的url等系列问题)
1.字符串包含: var str="我爱中国";if(str.indexOf("中国")>=0){ alert("含有此字符串");} ...
最新文章
- js根据经纬度取随机附近经纬度
- 表单必填_forms. 表单(中)
- php指针注意问题,c语言指针注意问题
- 第二天2017/03/29: 字符串操作
- 期货与期权(part8)--市场报价
- 【百度】大型网站的HTTPS实践(一)——HTTPS协议和原理
- json和python中字典的区别和联系_Python 中json与字典的关系
- hash表、java中的hashMap/hashSet
- Java多线程学习十九:JVM 对锁进行了哪些优化?
- 【SpringBoot】开启热部署(jsp 页面热部署、devtools 全局热部署)
- 漫画:什么是神秘的“凯利公式”?
- 如何攻克 C++ 中复杂的类型转换?
- 零基础学python-从0开始学Python,0基础小白
- flash 随机函数
- 计算机数据结构考研知识点汇总,数据结构考研知识点总结.pdf
- 高性能mysql学习笔记一
- 小程序报错 出现脚本错误或者未正确调用 Page()
- aip通用文档 服务器,为 Rights Management 连接器配置服务器 - AIP | Microsoft Docs
- 《计算机网络》学习笔记----第七版课后习题参考答案 第四章
- MySQL理论基础以及sql语法
热门文章
- appium java版本错误_java – 无法创建新会话. appium代码中的错误
- java between_Java8 Period.between方法坑及注意事项
- vrml场景实例代码_高并发的中断下半部tasklet实例解析
- (二)操作系统设计技术知识重点笔记
- 笔记-信息化与系统集成技术-商业智能-数据仓库系统
- gitignore 不起作用的解决办法
- Winform中实现连接Mysql8使用mysqldump实现备份表的数据
- Winform中实现双击Dev的TreeList在ZedGraph中生成对应颜色的曲线
- SpringCloud-使用熔断器仪表盘监控熔断
- C#中ArrayList的简单使用