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相关推荐

  1. Python+selenium 自动化-获取当前页面的url地址,打开指定的url地址

    非常简单,driver.current_url 就能获取当前页面的 url 地址. # 调用chrome浏览器 driver = webdriver.Chrome() # 打开指定的url地址 dri ...

  2. JS - 获取当前页面的 url地址 及 相关信息

    JS - 获取当前页面的 url地址 及 相关信息 一. 获取当前页面的 url地址 二. 获取当前网址url 后的指定参数 一. 获取当前页面的 url地址 window.location 以htt ...

  3. js获取当前页面的url网址信息

    WEB开发中,时常会用到javascript来获取当前页面的url网址信息 下面我们举例一个URL,然后获得它的各个组成部分:http://i.jb51.net/EditPosts.aspx?opt= ...

  4. 微信小程序参数传递获取当前页面的url和参数

    页面跳转添加参数 wx.navigateTo({url: `../deeddetail/deeddetail?id=${e.currentTarget.dataset.id}`, }) 接收optio ...

  5. 使用JS获取当前页面的URL(网址信息)

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>& ...

  6. js获取当前页面的URL信息

    2019独角兽企业重金招聘Python工程师标准>>> window.location 属性 描述  hash 设置或获取 href 属性中在井号"#"后面的分段 ...

  7. JQUERY获取当前页面的URL信息

    window.location 属性 描述 hash 设置或获取 href 属性中在井号"#"后面的分段. host 设置或获取 location 或 URL 的 hostname ...

  8. Django获取当前页面的URL——小记

    获取带参数URL:request.get_all_path() 获取不带参数URL:request.path 获取主机地址:request.get_host() 转载于:https://www.cnb ...

  9. 工作小总结(字符串包含,获取当前页面的url等系列问题)

    1.字符串包含: var str="我爱中国";if(str.indexOf("中国")>=0){ alert("含有此字符串");} ...

最新文章

  1. js根据经纬度取随机附近经纬度
  2. 表单必填_forms. 表单(中)
  3. php指针注意问题,c语言指针注意问题
  4. 第二天2017/03/29: 字符串操作
  5. 期货与期权(part8)--市场报价
  6. 【百度】大型网站的HTTPS实践(一)——HTTPS协议和原理
  7. json和python中字典的区别和联系_Python 中json与字典的关系
  8. hash表、java中的hashMap/hashSet
  9. Java多线程学习十九:JVM 对锁进行了哪些优化?
  10. 【SpringBoot】开启热部署(jsp 页面热部署、devtools 全局热部署)
  11. 漫画:什么是神秘的“凯利公式”?
  12. 如何攻克 C++ 中复杂的类型转换?
  13. 零基础学python-从0开始学Python,0基础小白
  14. flash 随机函数
  15. 计算机数据结构考研知识点汇总,数据结构考研知识点总结.pdf
  16. 高性能mysql学习笔记一
  17. 小程序报错 出现脚本错误或者未正确调用 Page()
  18. aip通用文档 服务器,为 Rights Management 连接器配置服务器 - AIP | Microsoft Docs
  19. 《计算机网络》学习笔记----第七版课后习题参考答案 第四章
  20. MySQL理论基础以及sql语法

热门文章

  1. appium java版本错误_java – 无法创建新会话. appium代码中的错误
  2. java between_Java8 Period.between方法坑及注意事项
  3. vrml场景实例代码_高并发的中断下半部tasklet实例解析
  4. (二)操作系统设计技术知识重点笔记
  5. 笔记-信息化与系统集成技术-商业智能-数据仓库系统
  6. gitignore 不起作用的解决办法
  7. Winform中实现连接Mysql8使用mysqldump实现备份表的数据
  8. Winform中实现双击Dev的TreeList在ZedGraph中生成对应颜色的曲线
  9. SpringCloud-使用熔断器仪表盘监控熔断
  10. C#中ArrayList的简单使用