(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER -- $HTTP_SERVER_VARS [eliminado] — Información del entorno del servidor y de ejecución
$_SERVER es un array que contiene información, tales como cabeceras, rutas y ubicaciones de script. Las entradas de este array son creadas por el servidor web. No hay garantía que cada servidor web proporcione alguna de estas entradas, existen servidores que pueden omitir algunas o proporcionar otras no recogidas aquí. Un gran número de estas variables se encuentran recogidas en » especificación CGI 1.1, así que al menos debe esperar encontrar estas entradas.
Nota: Antes de PHP 5.4.0, $HTTP_SERVER_VARS contenía la misma información inicial, aunque no era una superglobal. (Observe que $HTTP_SERVER_VARS y $_SERVER eran variables diferentes, por lo que PHP las trata de forma distinta).
Puede encontrar o no los siguientes elementos en $_SERVER. Tenga en cuenta que si ejecuta PHP desde línea de comando pocos o ninguno de los siguientes elementos estarán disponibles (o tendrán algún significado).
CGI/1.1
'. Nota: Bajo Apache 2, se debe establecer
UseCanonicalName = On
yServerName
. De lo contrario, este valor refleja el nombre del host proporcionado por el cliente, el cual se puede burlar. No es seguro depender de este valor en contextos que necesiten seguridad.
HTTP/1.0
'. GET
', 'HEAD
', 'POST
', 'PUT
'. Nota:
El script de PHP se considera terminado después de enviar las cabeceras (es decir después de producir cualquier resultado sin emplear buffers para el resultado) si el método de la petición empleado era
HEAD
.
Accept:
de la petición actual, si existe. Accept-Charset:
de la petición actual, si existe. Por ejemplo: 'iso-8859-1,*,utf-8
'. Accept-Encoding:
de la petición actual, si existe. Por ejemplo: 'gzip
'. Accept-Language:
de la petición actual, si existe. Por ejemplo: 'en
'. Connection:
de la petición actual, si existe. Por ejemplo: 'Keep-Alive
'. Host:
de la petición actual, si existe. User-Agent:
de la petición actual, si existe. Consiste en una cadena que indica el agente de usuario empleado para acceder a la pagina. Un ejemplo típico es: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre otras opciones, puede emplear dicho valor con get_browser() para personalizar el resultado de la salida de la página en función de las capacidades del agente de usuario empleado. Nota: Tenga en cuenta que si se emplea ISAPI con IIS el valor será
off
si la petición no se ha realizado a través del protocolo HTTPS.
Nota: Su servidor web debe estar configurado para crear esta variable. Por ejemplo en Apache necesita que exista
HostnameLookups On
dentro de httpd.conf. Consulte tambien gethostbyaddr().
La ruta del script ejecutándose actualmente en forma absoluta.
Nota:
Si un script se ejecuta mediante CLI como ruta relativa, como por ejemplo file.php o ../file.php, entonces $_SERVER['SCRIPT_FILENAME'] contendrá la ruta relativa especificada por el usuario.
80
'; el empleo de SSL, por ejemplo, cambiará dicho valor al valor definido para el puerto HTTP seguro. Nota: Bajo Apache 2, se debe establecer
UseCanonicalName = On
, así comoUseCanonicalPhysicalPort = On
para poder obtener el puerto físico (real), de otro modo, este valor podría ser burlado y podría o no devolver el valor del puerto físico. No es seguro confiar en este valor en contextos que requieran seguridad.
Nota: A partir de PHP 4.3.2, PATH_TRANSLATED no está definida de forma implícita en el SAPI de Apache 2, en comparación a la situación de Apache 1, donde era necesario establecer el mismo valor que la variable del servidor SCRIPT_FILENAME cuando no era proporcionada por Apache. Este cambio ha sido realizado para cumplir la especificación CGI donde PATH_TRANSLATED sólo debe existir si PATH_INFO esta definida. Los usuarios de Apache 2 pueden emplear
AcceptPathInfo = On
dentro de httpd.conf para definir PATH_INFO.
/index.html
'. /some/stuff
. Versión | Descripción |
---|---|
5.4.0 | $HTTP_SERVER_VARS ya no está disponible debido a la eliminación de arrays grandes de registro. |
5.3.0 | La directiva register_long_arrays , la cual hacía que estuviera disponible $HTTP_SERVER_VARS está obsoleta. |
Ejemplo #1 Ejemplo de $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
El resultado del ejemplo sería algo similar a:
www.example.com
Nota:
Esta es una 'superglobal' o una variable automatic global. Significa simplemente que es una variable que está disponible en cualquier parte del script. No hace falta hacer global $variable; para acceder a la misma desde funciones o métodos.