`
再逢山水
  • 浏览: 156428 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PHP获取当前url路径的函数及服务器变量

    博客分类:
  • LAMP
阅读更多
1,$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串
2,$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI
3,$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径
4,$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名

实例

1,http://www.baidu.com/ (直接打开主页)
结果
$_SERVER["QUERY_STRING"] = ""
$_SERVER["REQUEST_URI"] = "/"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"


2,http://www.baidu.com/?p=222 (附带查询)
结果
$_SERVER["QUERY_STRING"] = "p=222";
$_SERVER["REQUEST_URI"] = "/?p=222";
$_SERVER["SCRIPT_NAME"] = "/index.php";
$_SERVER["PHP_SELF"] = "/index.php";


3,http://www.baidu.com/index.php?p=222&q=biuuu
结果
$_SERVER["QUERY_STRING"] = "p=222&q=biuuu";
$_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu";
$_SERVER["SCRIPT_NAME"] = "/index.php";
$_SERVER["PHP_SELF"] = "/index.php";
$_SERVER["QUERY_STRING"]; //获取查询语句,实例中可知,获取的是?后面的值
$_SERVER["REQUEST_URI"]; //获取http://www.biuuu.com后面的值,包括/
$_SERVER["SCRIPT_NAME"]; //获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"]; //当前正在执行脚本的文件名
echo $_SERVER['DOCUMENT_ROOT'].""; //获得服务器文档根变量
echo $_SERVER['PHP_SELF'].""; //获得执行该代码的文件服务器绝对路径的变量
echo __FILE__; //获得文件的文件系统绝对路径的变量
echo dirname(__FILE__); //获得文件所在的文件夹路径的函数


总结一下
对于QUERY_STRINGREQUEST_URISCRIPT_NAMEPHP_SELF,深入了解将有利于我们在$_SERVER函数中正确调用这四个值。通过实例详解$_SERVER函数中QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF掌握四个变量之间的区别。

来观察一下这些变量或函数的异同.
假设有一个请求地址为: http://localhost:8080/test.php/age=20
而test.php 的完整路径是: D:/server/www/example/test.php

1) getcwd()
将得到浏览器请求的页面文件所在的目录. 即test.php 文件所在的目录: D:/server/www/example/ ,
如果在test.php 执行了 require 或 include 语句, 比如 inculde(”test_dir/test2.php”),
那么在 test2.php 里 getcwd()函数 返回的也将是 test.php 所在的目录.

2)__FILE__
一个魔术变量, 用它将得到 __FILE__ 变量所在文件的完整路径,
比如: test.php 里 __FILE__ 将得到 D:/server/www/example/test.php ,
test_dir/test2.php 里的 __FILE__ 将得到 D:/server/www/example/test_dir/test2.php

3) $_SERVER["SCRIPT_FILENAME"]
将得到浏览器请求的页面文件的完整路径.
test.php 和 test_dir/test2.php 里用 $_SERVER["SCRIPT_NAME"] 都将得到 D:/server/www/example/test.php.

4) $_SERVER["SCRIPT_NAME"]
将得到浏览器请求的页面文件的文件名,注意: 与 $_SERVER["SCRIPT_NAME"] 不同, 此变量只得到文件名而不包含路径,
在test.php 与 test_dir/test2.php 用$_SERVER["SCRIPT_NAME"] 得到的都将是 test.php.
当然, 在test.php 与 test_dir/test2.php 执行 basename($_SERVER["SCRIPT_FILENAME"]) 与 $_SERVER["SCRIPT_NAME"] 相同.
执行 在test.php 与 test_dir/test2.php 执行 realpath(”test.php”) 得到的结果与 $_SERVER["SCRIPT_FILENAME"] 相同.

5) $_SERVER["PHP_SELF"]
将得到浏览器请求页面的文件名, 并剥掉问号 ? 后的内容, 注意:不包含路径,
比如在客户端里请求 http://localhost:8080/test.php?age=20&name=Tom,
那么test.php 和 test_dir/test2.php 的 $_SERVER["PHP_SELF"] 都将得到 “test.php”。“age=20&name=Tom”被剥掉。
而如果客户端里请求 http://localhost:8080/test.php/age=20&name=Tom,
那么test.php 和 test_dir/test2.php 的 $_SERVER["PHP_SELF"] 都将得到 “test.php/age=20&name=Tom”。

6) $_SERVER["REQUEST_URI"]
将得到浏览器请求页面的文件名, 以及文件名之后的所有内容(注意: 井号 # 之后的内容将被略去),
比如在客户端里请求 http://localhost:8080/test.php?age=20&name=Tom,
那么test.php 和 test_dir/test2.php 的 $_SERVER["REUEST_URI"] 都将得到 “test.php”。“age=20&name=Tom”被剥掉。
而如果客户端里请求 http://localhost:8080/test.php/age=20&name=Tom,
那么test.php 和 test_dir/test2.php 的 $_SERVER["REQUEST_URI"] 都将得到 “test.php/age=20&name=Tom”。
*/

// test.php:
echo “test1.php variables <br />”;
echo “getcwd: “, getcwd(), “<br />”;
echo “__FILE__: “, __FILE__, “<br />”;
echo “REQUEST_URI: “, $_SERVER["REQUEST_URI"], “<br />”;
echo “SCRIPT_NAME: “, $_SERVER["SCRIPT_NAME"], “<br />”;
echo “PHP_SELF: “, $_SERVER["PHP_SELF"], “<br />”;
echo “SCRIPT_FILENAME “, $_SERVER["SCRIPT_FILENAME"] , “<br />”;

// 把 test2.php 包含进来, 在 test2.php 里输出上面的变量,看有什么不同:
include_once(”test2/test2.php”);

分享到:
评论

相关推荐

    PHP获取当前url路径的函数及服务器变量[定义].pdf

    PHP 获取当前 URL 路径的函数及服务器变量详解 在 PHP 中,获取当前 URL 路径的函数及服务器变量是非常重要的,本文将详细介绍 QUERY_STRING、REQUEST_URI、SCRIPT_NAME 和 PHP_SELF 等服务器变量的定义、使用场景...

    PHP获取当前url路径的函数及服务器变量QUERY_STRING、REQUEST_URI

    ### PHP 获取当前URL路径的函数及服务器变量:QUERY_STRING、REQUEST_URI、SCRIPT_NAME、PHP_SELF 在PHP开发中,理解并正确使用服务器变量是至关重要的。这些变量可以帮助开发者获取当前请求的各种信息,例如请求的...

    PHP获取当前url路径的函数及服务器变量.pdf

    在PHP编程中,获取当前URL路径以及相关的服务器变量是非常常见的需求。这些信息通常可以通过`$_SERVER`全局数组来获取。`$_SERVER`数组包含了与PHP脚本运行时环境相关的各种服务器变量,例如请求方法、脚本位置、URL...

    使用PHP获取当前url路径的函数以及服务器变量

    在PHP中,获取当前URL路径以及服务器变量是常见的需求,特别是在处理动态网页和服务器交互时。本文将深入探讨如何利用PHP内置的函数和服务器变量来实现这一目标。 首先,我们来看几个常用的PHP函数,它们可以帮助...

    PHP获取当前页面URL函数实例

    首先,我们需要认识到,PHP本身并没有提供一个直接的函数来获取当前页面的URL,但可以通过组合一些内置的全局数组来实现这一功能。这种需求在Web开发中十分常见,尤其是在处理重定向、生成绝对URL或需要获取当前页面...

    PHP获取当前url的具体方法全面解析

    本文将深入解析如何在PHP中获取当前URL,并介绍相关的$_SERVER超级全局变量。 首先,让我们看下PHP获取当前URL的典型代码片段: ```php $url_this = "http://" . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['...

    PHP获取当前URL路径的处理方法(适用于多条件筛选列表)

    其中包括几个与当前URL路径获取相关的超全局变量,具体如下: 1. $_SERVER["QUERY_STRING"]:该变量包含了URL中"?"后面的查询(query)字符串。例如,在URL "***" 中,$_SERVER["QUERY_STRING"]的值将是"name=...

    PHP 获取服务器端的信息

    在PHP编程中,获取服务器端的信息是至关重要的,这包括但不限于服务器环境变量、HTTP请求头、服务器软件信息等。下面我们将深入探讨如何使用PHP来获取这些信息。 首先,PHP提供了预定义的全局变量,如`$_SERVER`,...

    PHP获取当前页面完整URL的方法

    7. 只取URL路径: 如果你只需要URL的路径部分,可以结合 `$_SERVER['SERVER_NAME']` 和 `$_SERVER['REQUEST_URI']` 并使用 `dirname()` 函数: ```php $url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER[...

    PHP 获取当前的网址的信息

    在PHP编程中,获取当前网址的信息是常见的需求,这涉及到HTTP协议、服务器环境变量以及PHP内置函数的应用。本文将深入探讨如何在PHP中获取这些信息,并通过实例代码进行解析。 首先,我们需要理解“当前网址”通常...

    PHP获取当前完整URL地址的函数

    如果只需要获取不包含查询字符串和锚点的URL路径,可能需要进一步处理`$_SERVER['REQUEST_URI']`。 另外,在使用上述函数时,还需要注意Web服务器的配置,比如是否使用了负载均衡器、是否开启了SSL重定向等。这些...

    解析php中获取url与物理路径的总结

    在编程实践中,了解如何使用这些变量和函数来获取URL和物理路径信息至关重要。它们能够在构建应用时,帮助开发者确保代码在不同的服务器和文件结构中能够正常工作。需要注意的是,在使用这些变量和函数时,开发者...

    php 超全局变量

    这些变量通常用于存储请求环境中的信息(如 HTTP 请求参数、服务器变量等),并且在整个脚本执行期间都是可用的。 #### 二、超全局变量列表 下面是 PHP 中常见的超全局变量及其用途: 1. **$GLOBALS**: 存储所有...

    php相对路径解决方法

    2. `dirname()`函数:返回路径的目录部分,例如`dirname(__FILE__)`可以获取到包含当前脚本的目录。 三、使用相对路径的策略 1. 相对当前脚本:如果需要引用与当前执行脚本同级或子级的文件,可以使用相对路径。...

    php获取当前页面完整URL地址

    在某些情况下,`$_SERVER['REQUEST_URL']`也可以用来获取不包含参数的URL路径,但需要注意的是,这个变量不是所有服务器环境都支持。如果你发现`REQUEST_URL`为空,可以尝试使用`request_uri()`函数,这是一个通用的...

Global site tag (gtag.js) - Google Analytics