TOP

超实用!PHP 的 $_SERVER详解
2019-12-20 11:40:29   字体:【 】  浏览:379次   评论:0

$_SERVER 是PHP预定义的超全局变量。所谓“超全局变量”,即在脚本全部作用域中都可以使用,$_SERVER保存关于报头、路径和脚本位置的信息。工作中经常忘记,在此整理记录下,加深印象。测试是在Windows下进行的,环境为Apache/2.4.23 (Win32)+PHP/5.6.27-nts,访问域名为http://www.example.com/index....,文件目录在E:/WWW/example/

主要内容详解

$_SERVER["SCRIPT_NAME"] => "/index.php",当前脚本路径

$_SERVER["REQUEST_URI"] => "/index.php?id=1",访问的页面URI,包含查询字符串

$_SERVER["QUERY_STRING"] => "id=1",查询字符串,不存在为" "

$_SERVER["REQUEST_METHOD"] => "GET",请求方法,如"POST"、"PUT"等

$_SERVER["SERVER_PROTOCOL"] => "HTTP/1.1",通信协议的名称和版本

$_SERVER["GATEWAY_INTERFACE"] => "CGI/1.1",服务器使用的CGI 规范的版本

$_SERVER["REMOTE_PORT"] => "60599",用户连接服务器使用的端口

$_SERVER["SCRIPT_FILENAME"] => "E:/WWW/example/index.php",当前脚本的绝对路径

$_SERVER["DOCUMENT_ROOT"] => "E:/WWW/example/",当前脚本文档根目录的绝对路径

$_SERVER["REMOTE_ADDR"] => "127.0.0.1",用户的IP地址

$_SERVER["SERVER_PORT"] => "80",服务器使用的端口

$_SERVER["SERVER_ADDR"] => "127.0.0.1",服务器的IP地址

$_SERVER["SERVER_NAME"] => "www.example.com",服务器的主机名,注:如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。在 Apache 2 里,必须设置 UseCanonicalName = On 和 ServerName。 否则该值会由客户端提供,就有可能被伪造。 上下文有安全性要求的环境里,不应该依赖此值。

$_SERVER["SERVER_SOFTWARE"] => "Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9",响应头中Server的内容

$_SERVER["SERVER_SIGNATURE"] => "",包含了服务器版本和虚拟主机名的字符串

$_SERVER["HTTP_HOST"] => "www.example.com",请求头中Host项的内容

$_SERVER["HTTP_CONNECTION"] => "keep-alive",请求头中Connection项的内容

$_SERVER["HTTP_PRAGMA"] => "no-cache",请求头中Pragma项的内容

$_SERVER["HTTP_CACHE_CONTROL"] => "no-cache",请求头中Cache-Control项的内容

$_SERVER["HTTP_UPGRADE_INSECURE_REQUESTS"] => "1",请求头中Upgrade-Insecure-Requests项的内容

$_SERVER["HTTP_USER_AGENT"] => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36",请求头中User-Agent项的内容

$_SERVER["HTTP_ACCEPT"] => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8",请求头中Accept项的内容

$_SERVER["HTTP_ACCEPT_ENCODING"] => "gzip, deflate",请求头中Accept-Encoding项的内容

$_SERVER["HTTP_ACCEPT_LANGUAGE"] => "zh-CN,zh;q=0.8",请求头中Accept-Language项的内容

$_SERVER["PHP_SELF"] => "/index.php",当前执行脚本的文件名

$_SERVER["REQUEST_TIME_FLOAT"] => 1510112348.8084,请求开始的时间戳,微秒级别精准度

$_SERVER["REQUEST_TIME"] => 1510112348,请求开始的时间戳

实例

以上是测试中的 $_SERVER 的主要内容,根据不同的环境配置,会有些变化。在实际工作中,$_SERVER有很多作用,这里只举两个简单实例,获取当前请求URL以及简单防盗链

<?php
// $_SERVER['HTTPS']当前是否为HTTPS协议
if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
    $url = 'https://';
} else {
    $url = 'http://';
}

if ($_SERVER['SERVER_PORT'] == 80) {
    $url .= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
} else {
    $url .= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['SERVER_PORT'];
}

<?php
// $_SERVER['HTTP_REFERER'],前一页面的url
if (!empty($_SERVER['HTTP_REFERER'])) {
    if (!strpos($_SERVER['HTTP_REFERER'], 'www.example.com')) {
        header('Location: http://www.example.com');
    }
}


Tags:实用 PHP _SERVER 详解 责任编辑:绍00
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇php168 全站地图 webmap.php 下一篇file_get_content s()获取https出..

  • 系统环境:Windows Server 2008 R2 + Sql Server 2008 R2 问题描述:Windows Server 2008 R2系统内存占用率过大,而在任务管理器中各进程内存占用总和都远不到此占用率。相关现象:1. 内存占用率90%以上2. 任务管理器中所有进程内存和较低,远不到90%,有二十多G的内存偏差 分析过程: 首先怀疑SQL&..

  • ALTER TABLE zysjyj DROP aid;ALTER TABLE zysjyj ADD aid int(10) NOT NULL FIRST;ALTER TABLE zysjyj AUTO_INCREMENT=10000;ALTER TABLE zysjyj MODIFY COLUMN aid int(10) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(aid);

  • 前言最近在进行apache性能优化设置。在修改apache配置)文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯。以下的apache配置调优均是在red had的环境下进行的。httpd 相关查看命令了解查看当前安装模块mpm(多路处理器)[root@localhost ~]# httpd -l查看httpd进程数(即各个mpm模式下Apache能够处理的并发请求数)[root@localhost ~]# p..

  • 说明在我的五旬节期间,我注意到您可以通过java script,如果您的站点易受XSS影响,并且您正在使用Apache HTTP服务器。这是可能的,因为apachehttp服务器发送一个“http400坏消息”请求“如果HTTP头值太长(超过服务器限制)。在本例中,apache还包括头名称和头值在400错误页上。所以通过XSS可以设置一组大的cookies,激发XHR请求并读取响应,还包含仅HttpCookies据我所知,..

  • 一些常见的状态码为:200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解:1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换..

  • 首先简单介绍一下,.htaccess文件是Apache服务器中的一个配置文件(Nginx服务器没有),它负责相关目录下的网页配置。通过对.htaccess文件进行设置,可以帮我们实现:网页301重定向、自定义400/403/404/500错误页面、改变文件扩展名、允许/阻止指定IP用户访问、禁止目录列表、配置默认文档等功能,可以说是功能非常强大,下面就给大家介绍一下最常用的几个功能的设置方法。设置网站错..

-->

发布者

绍00 绍00
等级:普通会员
积分:0 个
性别:保密
shao00@qq.com
62 身份还未认证 邮箱还未认证 手机还未认证 给它发送短消息 搜寻它在php发布的全部文章 61

最新文章

网站服务地区

汉沽区网站建设
黔西南布依族苗族自治州网站建设
湛江市网站建设
衡阳市网站建设
鄂尔多斯市网站建设
秀山土家族苗族自治县网站建设
钦州市网站建设
西安市网站建设
玉林市网站建设
呼伦贝尔市网站建设
南昌市网站建设
大兴安岭地区网站建设
迪庆藏族自治州网站建设
巴南区网站建设
黄石市网站建设
镇江市网站建设
北碚区网站建设
宝山区网站建设
晋城市网站建设
湘西土家族苗族自治州网站建设
襄樊市网站建设
赣州市网站建设

本月热门

相关文章