PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析


Posted in PHP onDecember 11, 2019

本文实例讲述了PHP超级全局变量用法。分享给大家供大家参考,具体如下:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

咱们这次就来聊聊$GLOBALS&$_SERVER&$_REQUEST这三个超级全局变量。首先是$GLOBALS,它是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问,它还是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。具体用法如下:

<?php 
$x = 75; 
$y = 25;
function addition() 
{
 $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition();
echo $z;
?>

在上面的实例中, z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。

接下来看下$_SERVER,它是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。使用$_SERVER中的元素的实例如下:

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

咱们来看下所有 $_SERVER 变量中的重要元素:

元素/代码 描述
$_SERVER['PHP_SELF'] 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER['GATEWAY_INTERFACE'] 服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。
$_SERVER['SERVER_ADDR'] 当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_NAME'] 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
$_SERVER['SERVER_SOFTWARE'] 服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL'] 请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。
$_SERVER['REQUEST_METHOD'] 访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。
$_SERVER['REQUEST_TIME'] 请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496)
$_SERVER['QUERY_STRING'] query string(查询字符串),如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT'] 当前请求头中 Accept: 项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET'] 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。
$_SERVER['HTTP_HOST'] 当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['HTTP_REFERER'] 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。)
$_SERVER['HTTPS'] 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
$_SERVER['REMOTE_ADDR'] 浏览当前页面的用户的 IP 地址。
$_SERVER['REMOTE_HOST'] 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER['REMOTE_PORT'] 用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN'] 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com)
$_SERVER['SERVER_PORT'] Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
$_SERVER['SERVER_SIGNATURE'] 包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER['SCRIPT_URI'] URI 用来指定要访问的页面。例如 "/index.html"。

最后来看下$_REQUEST,它主要用于收集HTML表单提交的数据。以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果我们希望其他的PHP文件来处理该数据,我们就可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据,具体代码如下:

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>

好啦,本次记录就到这里了。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP insert语法详解
Jun 07 PHP
PHP 读取文件的正确方法
Apr 29 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
php输出图像的方法实例分析
Feb 16 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 PHP
php array_chunk()函数用法与注意事项
Jul 12 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 #PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 #PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 #PHP
PHP字符串与数组处理函数用法小结
Jan 07 #PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 #PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 #PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 #PHP
You might like
Zend引擎的发展 [15]
2006/10/09 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
js module大战
2019/04/19 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
使用Python的内建模块collections的教程
2015/04/28 Python
python编写爬虫小程序
2015/05/14 Python
python实现八大排序算法(2)
2017/09/14 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Python目录和文件处理总结详解
2019/09/02 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
python绘制高斯曲线
2021/02/19 Python
python3判断IP地址的方法
2021/03/04 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
html5录音功能实战示例
2019/03/25 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
工商企业管理应届生求职信
2013/11/03 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
讲解Python实例练习逆序输出字符串
2022/05/06 Python