[原创] PHP关于URI的服务器变量

  PHP 与 URI 相关的服务器变量,以 “http://localhost:8000/xxx/yyy/index.php/zzz/?a=1&b=2?c=3” 为例子。一张图进行说明:
在这里插入图片描述

  • $_SERVER["SERVER_PROTOCOL"]

  返回URL请求的协议名称以及协议的版本好,格式如:协议名称/协议版本号。
  上面示例URL中,返回 HTTP/1.1

  • $_SERVER["SERVER_PORT"]

  返回URL请求的服务器端口号。
  上面示例URL中,返回 8000

  • $_SERVER["HOST_NAME"]

  返回URL请求的主机名以及端口号,格式如:主机名:端口号
  上面示例URL中,返回 localhost:8000

  • $_SERVER["SERVER_NAME"]

  返回URL请求的主机名(不含端口号)
  上面示例URL中,返回 localhost

  • $_SERVER["SCRIPT_NAME"]

  返回URL的文件路径

  说明:

  1. 返回结果是一个相对于web根目录的绝对路径,第一个字符为“/”;
  2. 如果URL不包含文件名(例如访问默认页面),该环境变量会自动补充文件名;
  3. 即使URL文件名后面还存在类似“/***/***”的内容,也不会影响其结果;

  上面示例URL中,返回 /xxx/yyy/index.php
  如果URL为 http://localhost:8000/xxx/ (默认页面为index.php),则返回 /xxx/index.php

  • $_SERVER["QUERY_STRING"]

  返回URL中第一个“?”后面至第二个“?”前面的内容,或者第一个“?”后面至其后面第一个“#”前面的内容。

  说明:

  1. 该服务器变量不含有“?”字符;
  2. 如果URL中不含有“?”,该环境变量为空;
  3. 如果URL中只有一个“?”也不含有“#”字符,那么就是返回到URL结束处;

  上面示例URL中,返回a=1&b=2

  • $_SERVER["REQUEST_URI"]

  返回从URL的域名(或端口号)后面至结束的内容

  说明:

  1. 这是一个相对于web根目录的绝对路径+URL查询字符,第一个字符为“/”;
  2. 该环境变量保留URL的原状,例如URL中不含文件名(访问默认页面),也不会自动添加文件名

  上面示例URL中,返回 /xxx/yyy/index.php/zzz/?a=1&b=2?c=3

  • $_SERVER["PHP_SELF"]

  返回从URL的域名(或端口号)后面至第一个“?”之前的内容

  说明

  1. 如果URL不包含文件名(例如访问一个默认页面),该环境变量会自动补充文件名;
  2. 与“$_SERVER[‘SCRIPT_NAME’]”变量的区别,如果文件名(“****.***”)后面至“?”之间没有内容,那么“$_SERVER[‘PHP_SELF’]”和“$_SERVER[‘SCRIPT_NAME’]”返回的结果是一样。但如果文件名后面至“?”之间还有内容,那么就不同了。在这种情况下“$_SERVER[‘SCRIPT_NAME’]”返回结果不包含文件名后面的内容,而“$_SERVER[‘PHP_SELF’]”会连同文件名与“?”之间的内容一并返回。

  上面示例URL中,返回 /xxx/yyy/index.php/zzz
  如果URL为 http://localhost:8000/xxx/?a=1,返回 /xxx/index.php(这种情况下等价于$_SERVER["SCRIPT_NAME"])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值