在PHP网站开发中,为了满足网站的需要,时常需要对PHP环境变量进行设置和应用,在虚拟主机环境下,有时我们更需要通过PHP环境变量操作函 数来对PHP环境变量值进行设置。为此我们有必要对PHP环境变量先有所熟悉。今天和大家分享PHP环境变量$_SERVER和PHP系统常量的部分详细说明。

PHP提供了很多默认的系统变量,用于获得系统配置信息、网络请求相关信息等。这些默认的系统变量及其作用如表2-1所示。

变量

作用$GLOBALS[]

储存当前脚本中的所有全局变量,其KEY为变量名,VALUE为变量值$_SERVER[]

当前WEB服务器变量数组$_GET[]

存储以GET方法提交表单中的数据$_POST[]

存储以POST方法提交表单中的数据$_COOKIE[]

取得或设置用户浏览器Cookies中存储的变量数组$_FILES[]

存储上传文件提交到当前脚本的数据$_ENV[]

存储当前WEB环境变量$_REQUEST[]

存储提交表单中所有请求数组,其中包括$_GET、$_POST、$_COOKIE和$_SESSION中的所有内容

$_SESSION[]

存储当前脚本的会话变量数组

置文件的不同,在不同环境下显示的内容可能会有所不同。

与系统变量一样,PHP也提供了一些默认的系统常量供使用。在程序中可以随时应用这些系统常量,但是我们不能任意更改这些常量的值。PHP中常用的一些默认系统常量及其作用如表2-2所示。

常量

作用__FILE__存储当前脚本的绝对路径及文件名称__LINE__存储该常量所在的行号__FUNCTION__存储该常量所在的函数名称__CLASS__存储该常量所在的类的名称PHP_VERSION存储当前PHP的版本号PHP_OS存储当前服务器的操作系统$_GET 和$_POST主要针对FORM表单提交的数据,$_COOKIE和$_SESSION主要针对客户端游览器和服务器端会话数据。$_FILES主要针对文件上传时提交的数据,$_REQUEST主要针对提交表单中所有请求数组,包括$_GET、$_POST、$_COOKIE中的所有内容,你可以通过print_r函数分别输出$_REQUEST或者$_COOKIE等进行比较。

PHP环境变量$_SERVER简介是一个包含服务器端相关信息的PHP全局环境变量,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS。$_SERVER[‘PHP_SELF‘] 当前正在执行脚本的文件名,与 document root相关。在FORM表单中,如执行文件是本身,你可以在ACTION中使用$_SERVER[‘PHP_SELF‘],好处是当执行文件名有变动时可以不去频繁替换ACTION中的文件名。$_SERVER[‘SERVER_NAME‘] 当前运行的PHP程序所在服务器主机的名称。$_SERVER[‘REQUEST_METHOD‘] 访问页面时的请求方法,即GET、HEAD、POST、PUT。$_SERVER[‘DOCUMENT_ROOT‘] 当前运行的PHP程序所在的文档根目录。也就是PHP.INI文件中的定义。$_SERVER[‘HTTP_REFERER‘] 链接到当前页面的前一页面的URL地址。在页面跳转功能中非常有用。$_SERVER[‘REMOTE_ADDR‘] 正在浏览当前页面访问者的IP地址。$_SERVER[‘REMOTE_HOST‘] 正在浏览当前页面用户的主机名。$_SERVER[‘REMOTE_PORT‘] 正在游览的用户连接到服务器时所使用的端口。$_SERVER[‘SCRIPT_FILENAME‘] 当前执行脚本的绝对路径名。$_SERVER[‘SERVER_PORT‘] 服务器所使用的端口$_SERVER[‘SCRIPT_NAME‘] 包含当前脚本的路径。这在页面需要指向自己时非常有用。$_SERVER[‘REQUEST_URI‘] 访问此页面所需的URI。如“/index.html”。$_SERVER[‘PHP_AUTH_USER‘] 应用在HTTP用户登录认证功能中,这个变量是用户输入的用户名。$_SERVER[‘PHP_AUTH_PW‘] 应用在HTTP用户登录认证功能中,这个变量便是用户输入的密码。$_SERVER[‘AUTH_TYPE‘] 应用在HTTP用户登录认证功能中,这个变量便是认证的类型。

注:上述提到的这些PHP全局环境变量,在php.ini中的register_globals设置为on时,这些变量在所有PHP程序脚本中都可用,也就是$_SERVER数组被分离了。当然为了安全考虑,还是不要将register_globals打开为好。

PHP系统常量__FILE__当前PHP程序脚本的绝对路径及文件名称__LINE__存储该常量所在的行号__FUNCTION__存储该常量所在的函数名称__CLASS__存储该常量所在的类的名称PHP_VERSION存储当前PHP的版本号,也可以通过PHPVERSION()函数获取。PHP_OS存储当前服务器的操作系统

PHP环境变量$_SERVER的更多信息请参考PHP帮助手册,文章开头提到在虚拟主机环境下我们需要通过PHP环境变量操作函数来对PHP环境变量值进行设置,主要用到ini_set和ini_get,其实还有更多此类函数,比如PHP中的错误报告设置等,其实都涉及到PHP.INI中的相关内容,有机会下次分享。?>

php 系统环境变量引用,PHP 系统变量 环境变量相关推荐

  1. win10+tomcat+php+配置环境变量配置,Win10系统Tomcat环境变量配置方法

    在Win10系统中配置Tomcat环境变量之前,需要先配置JAVA,之后就可以配置Tomcat环境了,网络上的教程要么太简单,不明觉厉,要么太复杂,笔者整理了以下思路,便是以下Win10系统Tomca ...

  2. win10+tomcat+php+配置环境变量配置,Win10系统Tomcat环境变量配置方法一览

    Win10系统Tomcat环境变量配置方法一览 2017-08-01 08:15     标签:Win10 很多win10用户在配置Tomcat环境变量的时候,都需要先配置JAVA,这样才能配置Tom ...

  3. ubuntu系统php环境变量设置,Ubuntu系统环境变量详解

    使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题 ...

  4. linux如何查看桌面环境变量,如何设置和查看Linux系统的环境变量

    在 Linux 系统中,有环境变量和 Shell 变量这两种变量.环境变量是在程序及其子程序中全局可用的,常常用来储存像默认的文本编辑器或者浏览器,以及可执行文件的路径等等这样的信息.而 Shell ...

  5. Win10系统下环境变量Path编辑变成旧版本如何恢复

    安装很多开发软件时我们经常需要在系统环境中配置path环境变量,若path值被修改或删除是无法使用运行打开程序的.如果path值不小心被你修改了,大家只要改回来就可以了,但是有win10系统用户发现环 ...

  6. Spring配置文件获取系统的环境变量

    系统:windows系统 在命令行执行: 设置系统环境变量:set env=production 取系统环境变量:echo %env%            回车 production 在Spring ...

  7. 关于win11系统中环境变量path的显示和编辑格式变成一行的问题

    关于win11系统中环境变量path的显示和编辑格式变成一行的问题 问题描述: 这两天升级了win11系统 ,今天找到系统环境变量想查看一下maven的值,结果发现我的path的编辑状态变成下图的模样 ...

  8. 系统的环境变量path的作用是什么

    系统的环境变量path的作用是什么,本来不知道什么叫做环境变量的.但是自从学了Java之后就对path有点了解.然后设置了环境变量path,当然 也就知道按照网上的大侠给的方法照搬上去而已,根本不了解 ...

  9. Linux 命令之 env -- 显示系统的环境变量,定义执行命令时的环境变量

    文章目录 一.命令介绍 二.选项参数 三.命令示例 (一)显示系统的环境变量 (二)从当前环境中删除指定的变量 (三)定义指定的环境变量 (四)在一个修改后的环境下执行命令 一.命令介绍 env命令用 ...

  10. Ubuntu系统下环境变量那些事儿

    1.写在前面的话 要想查看ubuntu系统的环境变量需要执行命令,而windows下直接点开环境变量即可查看PATH路径下的所有环境变量,直接输入便可添加新的环境变量,但是ubuntu这样一个可视化界 ...

最新文章

  1. linux启动java jar文件_推荐:Linux启动Java程序jar包Shell脚本
  2. 提交调用验证_干货丨RPA验证码识别技巧
  3. cmd装b专用代码_Python 用5行代码学机器学习—线性回归
  4. 如何下载图片新闻并将其写入文件
  5. vue_组件_非prop特性
  6. [Delphi]根据输入日期按年月周日输出日期段
  7. guava集合操作类的使用_使用Guava进行测试集合的实现
  8. mybatis学习(8):The server time zone value '???ú±ê×??±??' is unrecognized or represents more
  9. C/C++ getchar函数 - C语言零基础入门教程
  10. python io密集型应用案例-Python中单线程、多线程和多进程的效率对比实验实例
  11. (转)C#开发微信门户及应用(2)--微信消息的处理和应答
  12. 图解 SpringMVC 五大组件
  13. matlab工具箱使用50hz低通滤波器设计 和FFT 变化截取50hz工频信号幅值
  14. Tomcat8正确配置环境变量详细方法
  15. 可以在linux下运行的u盘制作工具,U盘Linux制作工具LiveUSB Creator下载
  16. 打开dbf时自动打开fxp_全新帕萨特打开点火开关后雨刮器会自动工作一次
  17. 端口碰撞Port Knocking和单数据包授权SPA
  18. debussy和modelsim联合仿真配置
  19. 阿里达摩院开源DAMO-YOLO:兼顾速度与精度的新目标检测框架
  20. 学画画,这些美术集标记好的学习重点拿去用

热门文章

  1. 实战:Redis 哨兵模式(下)
  2. 记一次阿里巴巴一面的经历
  3. 频段表_5G频段范围之:频段3.3GHz-4.2GHz (n77,n78)
  4. 统计学(可汗学院视频62-81集笔记)
  5. html的数据类型有哪些,数据库数据类型有哪些
  6. 查看 rabbitmq 启动websocket 提示404_RabbitMQ 部署记录
  7. react项目中的参数解构_一天入门React学习心得
  8. 服务器能像客户端发信息吗,服务器怎么向客户端发信息吗
  9. mysql python连接时、指定的ip地址被转接了_pythonmysql.connector模块使用了错误的IP地址...
  10. 杭州招聘计算机专业毕业生,毕业季必看!杭州高校毕业生就业情况:这些专业最吃香!这个岗位最缺人!...