php $_SERVER[‘QUERY_STRING‘]函数

• 简介$_SERVER函数( 获取当前服务器信息)

预定义变量就是系统自己定义好的变量,直接使用就可以。预定义变量都是以数组的形式存在的(也就是说我们根据 [ ] 中的不同参数,选择我们要的到的信息)。PHP的预定义有很多种,包括我们的get,post等等,都是php的预定义变量。

$_SERVER是 预定义变量之一 ,一个包含头信息、路径、脚本位置等信息的数组。该数组的元素由Web服务器创建。

 

做题过程中遇到的四个变量的区分进行一个简单的介绍:

1. $_SERVER["QUERY_STRING"]    #查询(query)的字符串     
2.$_SERVER["REQUEST_URI"]       #访问此页面所需的URI
3.$_SERVER["SCRIPT_NAME"]       #包含当前脚本的路径           
4.$_SERVER["PHP_SELF"]。          #当前执行的叫脚本的文件名
 

•示例:

1,http://www.boke.com/

  结果:

  $_SERVER["QUERY_STRING"] = “”

  $_SERVER["REQUEST_URI"] = “/”

  $_SERVER["SCRIPT_NAME"] = “/index.php”

  $_SERVER["PHP_SELF"] = “/index.php”

 2,http://www.boke.com/scr.php/?a=bbb(附带查询)

  结果:

  $_SERVER["QUERY_STRING"] = “a=bbb″

  $_SERVER["REQUEST_URI"] = “/?a=bbb″

  $_SERVER["SCRIPT_NAME"] = “/src.php”

  $_SERVER["PHP_SELF"] = “/src.php”

  3,http://www.boke.com/scr.php/?x=111&y=222

$_SERVER["QUERY_STRING"] = “x=111&y=222”

  $_SERVER["REQUEST_URI"] = “/scr.php/?x=111&y=222”

  $_SERVER["SCRIPT_NAME"] = “/src.php”

  $_SERVER["PHP_SELF"] = “/src.php”

•总结:

  $_SERVER["QUERY_STRING"]获取查询语句,获取的是?后面的值

  $_SERVER["REQUEST_URI"] 获取 http://www.boke.com 后面的值,包括/

  $_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:/src.php (如果网址是http://www.boke.com/aaa/src.php ,最后检索的内容就是 /aaa/src.php)

  $_SERVER["PHP_SELF"] 当前正在执行脚本的文件名

 
 
下面是$_SERVER的数组信息表
 
数组元素 说明
$_SERVER['PHP_SELF'] 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://c.biancheng.net/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar
$_SERVER['SERVER_ADDR'] 当前运行脚本所在服务器的 IP 地址
$_SERVER['SERVER_NAME'] 当前运行脚本所在服务器的主机名。如果脚本运行于虚拟主机中,该名称就由那个虚拟主机所设置的值决定
$_SERVER['SERVER_PROTOCOL'] 请求页面时通信协议的名称和版本。例如,“HTTP/1.0”
$_SERVER['REQUEST_METHOD'] 访问页面使用的请求方法。例如“GET”“HEAD”“POST”“PUT”
$_SERVER['DOCUMENT_ROOT'] 当前运行脚本所在的文档根目录。在服务器配置文件中定义
$_SERVER['HTTP_ACCEPT_LANGUAGE'] 当前请求头中 Accept-Language: 项的内容(如果存在)。例如,“en”
$_SERVER['REMOVE_ADDR'] 浏览当前页面的用户 IP 地址(客户端ip),注意与 $_SERVE R['SERVER_ADDR'] 的区别
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径
$_SERVER['QUERY_STRING']  查询(query)的字符串。
$_SERVER['PATH_INFO'] 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息(如果存在)。例如,当前脚本是通过 URL http://c.biancheng.net/php/path_info.php/some/stuff?foo=bar 被访问的,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff
 $_SERVES[HTTP_X_FORWARDED_FOR]  在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。

要想透过代理服务器取得客户端的真实 IP 地址,就要使用$_SER VER["HTTP_X_FORWARDED_FOR"]  来读取。

php预定义变量~$_SERVER[‘QUERY_STRING‘]的更多相关文章

  1. php预定义常量$_SERVER

    1.需求 了解预定义常量$_SERVER 2.属性 $_SERVER['REQUEST_URI'] //URI 用来指定要访问的页面.例如 "/index.html" $_SERV ...

  2. PHP预定义变量$_SERVER

    PHP预定义变量$_SERVER $_SERVER 是一个包含诸如头部(headers).路径(paths)和脚本位置(script locations)的数组.数组的实体由 web 服务器创建,不能 ...

  3. linux中位置参数变量和预定义变量

    位置参数变量   预定义变量

  4. 6)PHP,预定义变量

    预定义变量也叫超全局变量: :预定义变量又叫超全局变量,包括: $_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS, $_COOKIE, $_SESSION, . ...

  5. 深入理解PHP内核(八)变量及数据类型-预定义变量

    原文链接:http://www.orlion.ga/249/ PHP脚本在执行的时候用户全局变量(在用户空间显示定义的变量)会保存在一个HashTable数据类型的符号表中(symbol_table) ...

  6. nginx内置预定义变量

    nginx的配置文件中可以使用的内置变量以美元符$开始,也有人叫全局变量.其中,部分预定义的变量的值是可以改变的. $arg_PARAMETER 这个变量值为:GET请求中变量名PARAMETER参数 ...

  7. PHP预定义变量

    * PHP预定义 * 预定义变量 * $_GET - 接收客户端以请求类型为GET方法发送的数据内容 * $_POST - 接收客户端以请求类型为POST方法发送的数据内容 * $_REQUEST - ...

  8. [Shell]Bash变量:自定义变量 & 环境变量 & 位置参数变量 & 预定义变量

    --------------------------------------------------------------------------------- 变量是计算机内存的单元,其中存放的值 ...

  9. $_ENV和$GLOBALS预定义变量

    1,$_ENV该全局数组可以获取环境变量,在php5.3中默认禁用,但是可以在php.ini中启用. variables_order="EGPCS" 2,$GLOBALS一个包含了 ...

  10. make的自动变量和预定义变量

    make的自动变量 $@ 规则目标的文件名.如果目标是档案文件的一个成员,"$@"就是档案文件的名称 $% 当目标是档案文件的一个成员时,"$%"是该成员的名称 ...

随机推荐

  1. LangChain和Hub的前世今生

    作为LLM(大模型)开发框架的宠儿,LangChain在短短几年内迅速崛起,成为开发者们不可或缺的工具.本文将带你探讨LangChain和LangChainHub的发展历程. 1. LLM开发框架的宠 ...

  2. Legacy (线段树优化建图)

    题目链接:Legacy - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题解: 考虑题目中一个点向区间连边,如真的对区间中的每一点分别连边后跑最短路,时间空间都要炸. 因为是一个点向 ...

  3. LaravelLumen 分组求和问题 where groupBy sum

    在Laravel中使用分组求和,如果直接使用Laravel各数据库操作方法,应该会得出来如下代码式: DB::table('table_a') ->where('a','=',1) ->g ...

  4. pom.xml 指定编译jdk版本

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

  5. vue项目的简单创建与插件下载

    准备工作 安装node.js 安装node.js过程全部采用默认配置,一步一步next即可 检验node.js是否安装成功:在cmd命令行中输入node -v以及npm -v 通过cmd创建 安装vu ...

  6. 解决方案 | 获取所有的打印输出的图纸尺寸的名称GetCanonicalMediaNames返回为空的原因竟然是官方帮助文件给我带来了误导-CAD VBA

    巨大的坑,该代码来自于acadauto_2014--AutoCAD2014 ActiveX Reference Guide.chm 但是存在一个巨大的bug. '获取所有的打印输出的图纸尺寸的名称 , ...

  7. <script> 和 <script setup> 的一些主要差别

    <script setup> 是 Vue 3 中的新特性,它是一种简化和更具声明性的语法,用于编写组件的逻辑部分.相比之下,<script> 是 Vue 2 中常用的编写组件逻 ...

  8. oeasy教您玩转vim - 10 - # 插入新行

    插入新行 回忆上节课内容 i.I 在前面插入文本 a.A 在后面插入文本 o.O 换行插入文本 o 其实是 A 回车 O 其实是 k o O 也是 k A 回车 模式切换小技巧 比如你在一句话的中间, ...

  9. selenium高亮显示定位到的页面元素

    from selenium import webdriver import unittest,time def highLightElement(driver,element): #封装好的高亮显示页 ...

  10. JAVA课后谈1

    1.课程中动手动脑的问题 在本次课堂实验中,我暴露出了很多问题,尤其是逻辑思维方面,不能很好的处理数理运算问题.在实际生活中客户的要求千变万化,而我们作为一个合格的程序设计者应该顺应其要求,尽可能的去 ...