PHP $_SERVER变量详解与常用函数
需积分: 3 111 浏览量
更新于2024-09-15
收藏 2KB TXT 举报
"$_SERVER"是PHP中的一个超全局数组,它包含了服务器和环境相关的各种信息。这个数组在处理用户请求、获取服务器配置细节以及进行安全分析时非常有用。以下是一些重要的`$_SERVER`数组键及其含义:
1. `$_SERVER['HTTP_ACCEPT_LANGUAGE']`: 这个键值表示客户端浏览器接受的语言类型,通常用于多语言网站来确定显示哪种语言的页面。
2. `$_SERVER['REMOTE_ADDR']`: 它存储了访问服务器的用户的IP地址,这对于识别用户或限制访问很有帮助。
3. `$_SERVER['REMOTE_HOST']`: 提供了远程主机的名称,基于`REMOTE_ADDR`解析得到。
4. `$_SERVER['REQUEST_URI']`: 这是用户请求的完整URL路径,包括查询字符串(如果有)。
5. `$_SERVER['REMOTE_PORT']`: 客户端连接到服务器所使用的端口号。
6. `$_SERVER['SERVER_NAME']`: 服务器的主机名,通常用于构建回显或确认服务器的标识。
7. `$_SERVER['PHP_SELF']`: 当前执行脚本的文件名,包括路径,有助于构建动态URL。
8. `$_SERVER['argv']` 和 `$_SERVER['argc']`: 如果脚本通过命令行方式运行,这两个变量分别包含命令行参数的数组和参数数量。
9. `$_SERVER['GATEWAY_INTERFACE']`: 定义了CGI(通用网关接口)版本,表明服务器如何处理请求。
10. `$_SERVER['SERVER_SOFTWARE']`: 显示服务器使用的软件及其版本,如Apache或Nginx等。
11. `$_SERVER['SERVER_PROTOCOL']`: 服务器与客户端之间通信使用的HTTP协议版本。
12. `$_SERVER['REQUEST_METHOD']`: 客户端发起请求的方法,如GET、POST等。
13. `$_SERVER['QUERY_STRING']`: 请求URL中的查询字符串部分。
14. `$_SERVER['DOCUMENT_ROOT']`: Web服务器的文档根目录,用于定位相对URL。
15. `$_SERVER['HTTP_ACCEPT']`: 表示客户端可以接受的MIME类型。
16. `$_SERVER['HTTP_ACCEPT_CHARSET']`: 客户端支持的字符集。
17. `$_SERVER['HTTP_ACCEPT_ENCODING']`: 客户端支持的数据压缩格式。
18. `$_SERVER['HTTP_CONNECTION']`: 描述了客户端与服务器之间的连接类型,例如是否保持持久连接。
19. `$_SERVER['HTTP_HOST']`: 请求的主机名,如果请求中有指定的话。
20. `$_SERVER['HTTP_REFERER']`: 记录用户是从哪个页面链接过来的,用于追踪来源。
21. `$_SERVER['HTTP_USER_AGENT']`: 包含了用户使用的浏览器类型、版本和操作系统信息。
22. `$_SERVER['HTTPS']`: 如果请求是通过HTTPS安全协议进行的,它的值为'on',否则为空或'off'。
23. `$_SERVER['SCRIPT_FILENAME']`: 当前执行PHP脚本的绝对路径。
24. `$_SERVER['SERVER_ADMIN']`: 服务器管理员的电子邮件地址,通常在服务器配置文件中定义。
25. `$_SERVER['SERVER_PORT']`: 服务器监听的端口。
26. `$_SERVER['SERVER_SIGNATURE']`: 可自定义的服务器响应尾部。
27. `$_SERVER['PATH_TRANSLATED']`: 与`SCRIPT_FILENAME`类似,但考虑了文档根目录之外的符号链接。
28. `$_SERVER['SCRIPT_NAME']`: 仅包含当前执行脚本的路径,不包括查询字符串。
这些`$_SERVER`数组的键值对于开发者来说是宝贵的资源,它们提供了与请求交互的上下文信息,帮助构建动态内容、实现安全检查以及优化用户体验。了解并熟练运用这些变量,是成为优秀PHP开发者的必备技能之一。
2009-12-14 上传
2009-12-16 上传
2020-12-20 上传
点击了解资源详情
点击了解资源详情
2023-06-12 上传
2023-06-12 上传
2023-07-16 上传
<?php header("Content-Type: text/html; charset=UTF-8"); $expires = 60 * 20; //session 超时时间 function check_user_agent() //构造函数检查 User-Agent 的一致性 { if (isset($_SESSION['HTTP_USER_AGENT'])) { if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])) //user-agent 不一致 { exit('客户端信息异常'); } } else { $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']); } } function start_session($expire = 0) { session_start(); if ($expire != 0 && isset($_SESSION['last_visit'])) { $time_last = time() - $_SESSION['last_visit']; if (isset($_SESSION['expiretime'])) //如果超时 { session_unset(); session_destroy(); exit("请重新登录"); } } $_SESSION['last_visit'] = time(); //检查 user-agent 一致性 session_regenerate_id(true); //重置 SessionID } ?>
2023-06-02 上传
mai280838224
- 粉丝: 0
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析