文档章节

php获取当前页面完整真实的url地址的方法,包括带参数的,总结了三种方法

liunx_
 liunx_
发布于 2017/08/30 08:31
字数 214
阅读 11
收藏 1
01 function GetCurUrl(){
02     if(isset($_SERVER['REQUEST_URI'])){
03         $url=$_SERVER['REQUEST_URI'];
04     }else{
05         if(isset($_SERVER['argv'])){
06             $url=$_SERVER['PHP_SELF'].'?'.$_SERVER['argv'][0];
07         }else{
08             $url=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
09         }
10     }
11     return urlencode($url);//注意这里给编码了
12 }

第二种方法(据说织梦用的就是这种方法):

 

 

01 //获得当前的脚本网址
02 function GetCurUrl(){
03     if(!empty($_SERVER['REQUEST_URI'])){
04         $scriptName=$_SERVER['REQUEST_URI'];
05         $nowurl=$scriptName;
06     }else{
07         $scriptName=$_SERVER['PHP_SELF'];
08         if(empty($_SERVER['QUERY_STRING'])){
09             $nowurl=$scriptName;
10         }else{
11             $nowurl=$scriptName.'?'.$_SERVER['QUERY_STRING'];
12         }
13     }
14     return $nowurl;
15 }

第三种方法(推荐):

 

 

01 //php获取当前访问的完整url地址
02 function GetCurUrl(){
03     $url='http://';
04     if(isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']=='on'){
05         $url='https://';
06     }
07     if($_SERVER['SERVER_PORT']!='80'){
08         $url.=$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'];
09     }else{
10         $url.=$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
11     }
12     return $url;
13 }

© 著作权归作者所有

共有 人打赏支持
上一篇: 常用SQL查询语句
下一篇: 经典SQL语句大全
liunx_
粉丝 0
博文 20
码字总数 29282
作品 0
成都
程序员
私信 提问
Yii2的一些小坑---关于跳转和助手类的灵活使用

YII本身的跳转很灵活。一般的MVC出现跳转的也不外乎: (1)V->V 页面之前的跳转 (2)C->V 正常的MVC方式 (3)V->C 请求数据接口数据传参,我还是一般都会用JS的ajax实现 这三种也都逃不了...

0_0Loong
01/15
0
0
代码审计 Empire CMS v7.5前台XSS漏洞

  *本文原创作者:q601333824,属于FreeBuf原创奖励计划,转载请注明来自FreeBuf.COM   概述   帝国CMS简称Empire CMS,当前的最新版本为7.5,前几天挖过一个该CMS的后台漏洞,最近也去...

FreeBuf
07/22
0
0
JavaScript Location对象

window.location 对象用来获取当前页面的地址 (URL)信息,并可将浏览器重定向到其他页面。 window.location 对象在编写代码时可不使用 window 这个前缀。 location对象的属性和方法 属性 方法...

wersdffg
2015/07/23
0
0
ios的Ping++支付接入步骤

Ping++ SDK 包括 Server 和 Client 两部分。 其中 Server SDK 提供了 , , , , , 六种语言版本。 Client SDK 提供了 , , 三种平台版本。 应用在接入 Ping++ SDK 时,需要使用以下三个参数,这...

南瓜宝宝
2015/03/18
0
0
javaScript之Location,Navigator,History

Location,Navigator,History三个对象是window对象常用属性, ,window.history属性它表示当前窗口的浏览历史; window.location 属性提供 URL 相关的信息和操作方法。通过和属性,可以拿到这个...

大灰狼的小绵羊哥哥
11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TensorFlow的基础概念02

TensorFlow的计算流图 import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'#TensorFlow的计算模型,数据流图'''TensorFlow = Tensor + FlowTensor 张量 数据结构:多维数组Flo...

怪咖先生forever
7分钟前
1
0
大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
22分钟前
6
0
藏在正则表达式里的陷阱

前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 我们可以看到所...

前端小攻略
24分钟前
2
0
关联更新,关联查询

关联更新 update A,B SET A.c1=B.c1,A.c2=B.c2 where A.id=B.id and ... update A inner join on A.id=B.id set A.c1=B.c1,A.c2=B.c2 where... 关联查询 交叉连接(cross join),内连接(inner ......

关元
28分钟前
3
0
django的环境搭建及启用

Pycharm社区版不像商业版那样可以直接创建django工程,需要通过一下步骤创建: 新建一个用于Django开发的虚拟环境 打开命令窗口 新建虚拟环境: conda create -n env_name python=3.6 查看系...

davidwbnu
28分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部