Maison >développement back-end >Problème PHP >Apprenez à jouer à $_SERVER

Apprenez à jouer à $_SERVER

醉折花枝作酒筹
醉折花枝作酒筹original
2021-08-02 14:27:462221parcourir

Dans l'article précédent, nous avons appris ce que sont les variables super globales et ce qu'est $GLOBALS. Si vous en avez besoin, veuillez lire "L'éditeur vous apprendra $GLOBALS dans les variables en PHP". Cette fois, nous vous présentons $_SERVER, vous pouvez vous y référer si nécessaire.

Pour que nous puissions comprendre ce tableau, regardons un petit châtaignier.

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

Le résultat est

/try/demo_source/demo_global_server.php
www.runoob.com
www.runoob.com
https://www.runoob.com/try/showphp.php?filename=demo_global_server
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
/try/demo_source/demo_global_server.php

Examinons d'abord les résultats. Il semble qu'ils soient tous à la même adresse. Ensuite, nous pouvons deviner avec audace que ce tableau est un tableau qui stocke des informations.

$_SERVER est un tableau comprenant les informations d'en-tête (en-tête), le chemin (chemin) et les emplacements de script (emplacements de script) et d'autres informations. Les éléments de ce tableau sont créés par le serveur Web. Il n'y a aucune garantie que chaque serveur servira tous les éléments ; les serveurs peuvent ignorer certains éléments ou servir des éléments non répertoriés ici.

Parlons des éléments importants dans toutes les variables $_SERVER.

  • $_SERVER['PHP_SELF'], le nom de fichier du script en cours d'exécution, lié à la racine du document. Par exemple, utiliser $_SERVER['PHP_SELF'] dans un script sur http://example.com/test.php/foo.bar entraînera /test.php/foo.bar. La constante __FILE__ contient le chemin complet et le nom de fichier du fichier actuel (c'est-à-dire contenant). À partir de PHP version 4.3.0, cette variable contiendra le nom du script si PHP s'exécute en mode ligne de commande. Cette variable n'est pas disponible dans les versions précédentes. 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'],当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。

  • $_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 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。

  • $_SERVER['SERVER_PORT'],Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。

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

  • $_SERVER['PATH_TRANSLATED'],当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。

  • $_SERVER['SCRIPT_NAME'],包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__

  • 🎜$_SERVER['GATEWAY_INTERFACE'], la version de la spécification CGI utilisée par le serveur ; par exemple, "CGI/1.1". 🎜🎜🎜$_SERVER['SERVER_ADDR'], l'adresse IP du serveur sur lequel le script est actuellement en cours d'exécution. 🎜🎜🎜$_SERVER['SERVER_NAME'], le nom d'hôte du serveur sur lequel le script est actuellement en cours d'exécution. Si le script s'exécute sur un hôte virtuel, le nom est déterminé par la valeur définie pour cet hôte virtuel. 🎜🎜🎜$_SERVER['SERVER_SOFTWARE'], chaîne d'identification du serveur, donnée dans les informations d'en-tête lors de la réponse à la requête. (Par exemple : Apache/2.2.24)🎜🎜🎜$_SERVER['SERVER_PROTOCOL'], le nom et la version du protocole de communication lors de la demande de la page. Par exemple, "HTTP/1.0". 🎜🎜🎜$_SERVER['REQUEST_METHOD'], la méthode de requête utilisée pour accéder à la page ; par exemple, "GET", "HEAD", "POST", "PUT". 🎜🎜🎜$_SERVER['REQUEST_TIME'], l'horodatage du début de la requête. Disponible à partir de PHP 5.1.0. (Par exemple : 1377687496)🎜🎜🎜$_SERVER['QUERY_STRING'], chaîne de requête (chaîne de requête), le cas échéant, l'accès à la page s'effectue via celle-ci. 🎜🎜🎜$_SERVER['HTTP_ACCEPT'], le contenu de l'élément Accept: dans l'en-tête de la requête actuelle, s'il existe. 🎜🎜🎜$_SERVER['HTTP_ACCEPT_CHARSET'], le contenu de l'élément Accept-Charset: dans l'en-tête de la requête actuelle, s'il existe. Par exemple : "iso-8859-1,*,utf-8". 🎜🎜🎜$_SERVER['HTTP_HOST'], le contenu de l'élément Host: dans l'en-tête de la requête actuelle, s'il existe. 🎜🎜🎜$_SERVER['HTTP_REFERER'], dirige l'agent utilisateur vers l'adresse de la page précédente de la page courante (si elle existe). Déterminé par le paramètre agent utilisateur. Tous les agents utilisateurs ne définiront pas cet élément, et certains fournissent également la fonction de modification de HTTP_REFERER. Bref, la valeur n'est pas digne de confiance. )🎜🎜🎜$_SERVER['HTTPS'], est défini sur une valeur non vide si le script est accessible via le protocole HTTPS. 🎜🎜🎜$_SERVER['REMOTE_ADDR'], l'adresse IP de l'utilisateur parcourant la page en cours. 🎜🎜🎜$_SERVER['REMOTE_HOST'], le nom d'hôte de l'utilisateur parcourant la page actuelle. La résolution inversée DNS ne dépend pas du REMOTE_ADDR de l'utilisateur. 🎜🎜🎜$_SERVER['REMOTE_PORT'], le numéro de port utilisé sur la machine de l'utilisateur pour se connecter au serveur web. 🎜🎜🎜$_SERVER['SCRIPT_FILENAME'], le chemin absolu du script en cours d'exécution. 🎜🎜🎜$_SERVER['SERVER_ADMIN'], cette valeur spécifie le paramètre SERVER_ADMIN dans le fichier de configuration du serveur Apache. Si le script s'exécute sur un hôte virtuel, cette valeur est celle de cet hôte virtuel. 🎜🎜🎜$_SERVER['SERVER_PORT'], le port utilisé par le serveur web. La valeur par défaut est "80". Si vous utilisez une connexion sécurisée SSL, cette valeur est le port HTTP défini par l'utilisateur. 🎜🎜🎜$_SERVER['SERVER_SIGNATURE'], une chaîne contenant la version du serveur et le nom de l'hôte virtuel. 🎜🎜🎜$_SERVER['PATH_TRANSLATED'], le chemin de base du système de fichiers (pas le répertoire racine du document) où se trouve le script actuel. C'est le résultat une fois que le serveur a été imagé d'un chemin virtuel vers un chemin réel. 🎜🎜🎜$_SERVER['SCRIPT_NAME'], contient le chemin du script actuel. Ceci est utile lorsque la page doit pointer vers elle-même. La constante __FILE__ contient le chemin complet et le nom de fichier du script actuel (c'est-à-dire le fichier d'inclusion). 🎜
  • $_SERVER['SCRIPT_URI'], l'URI est utilisé pour spécifier la page à laquelle accéder. Par exemple "/index.html".

C'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →Tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn