$_SERVER

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SERVERVariables de servidor y de ejecución

Descripción

$_SERVER es un array que contiene información como encabezados, rutas y ubicaciones de script. Las entradas de este array son creadas por el servidor web, por lo que no hay garantía de que cada servidor web proporcione toda esta información; los servidores pueden omitir algunas o proporcionar otras no listadas aquí. Sin embargo, la mayoría de estas variables están contempladas en la especificación » CGI/1.1 y es probable que estén definidas.

Nota: Cuando PHP se ejecuta en línea de comandos command line, la mayoría de estas entradas no estarán disponibles o no tendrán sentido.

Además de los elementos enumerados a continuación, PHP creará elementos adicionales con valores provenientes de los encabezados de la petición. Estas entradas se nombrarán HTTP_ seguido del nombre del encabezado, en mayúsculas y con guiones bajos en lugar de guiones. Por ejemplo, el encabezado Accept-Language estará disponible como $_SERVER['HTTP_ACCEPT_LANGUAGE'].

Índices

'PHP_SELF'
El nombre del archivo del script en ejecución, relativo a la raíz web. Por ejemplo, $_SERVER['PHP_SELF'] en el script ubicado en http://example.com/foo/bar.php será /foo/bar.php. La constante __FILE__ contiene la ruta completa y el nombre del archivo (incluido) actual. Si PHP funciona en línea de comandos, esta variable contiene el nombre del script.
'argv'
Array de argumentos pasados al script. Cuando el script es llamado en línea de comandos, esto da acceso a los argumentos, como en lenguaje C. Cuando el script es llamado con el método GET, este array contendrá la cadena de consulta.
'argc'
Contiene el número de parámetros de línea de comandos pasados al script (si el script funciona en línea de comandos).
'GATEWAY_INTERFACE'
Número de revisión de la interfaz CGI del servidor. Por ejemplo 'CGI/1.1'.
'SERVER_ADDR'
La dirección IP del servidor bajo el cual el script actual está siendo ejecutado.
'SERVER_NAME'
El nombre del servidor host que ejecuta el script siguiente. Si el script es ejecutado en un host virtual, esto será el valor definido para ese host virtual.

Nota: En Apache 2, UseCanonicalName = On y ServerName deben ser definidos. De lo contrario, este valor refleja el nombre de host proporcionado por el cliente, que puede ser falsificado.

'SERVER_SOFTWARE'
Cadena de identificación del servidor, que es dada en los encabezados al responder a las peticiones.
'SERVER_PROTOCOL'
Nombre y revisión del protocolo de comunicación; por ejemplo HTTP/1.0;
'REQUEST_METHOD'
Método de petición utilizado para acceder a la página; por ejemplo GET, HEAD, POST, PUT.

Nota:

El script PHP termina después de enviar los encabezados (es decir, después de producir cualquier salida sin bufferización de salida) si el método de la petición era HEAD.

'REQUEST_TIME'
El timestamp Unix del inicio de la petición.
'REQUEST_TIME_FLOAT'
El timestamp del inicio de la petición, con precisión a microsegundos.
'QUERY_STRING'
La cadena de consulta, si existe, que es utilizada para acceder a la página.
'DOCUMENT_ROOT'
La raíz bajo la cual el script actual está siendo ejecutado, como se define en la configuración del servidor.
'HTTPS'
Definido a un valor no vacío si el script fue llamado vía el protocolo HTTPS.
'REMOTE_ADDR'
La dirección IP del cliente que solicita la página actual.
'REMOTE_HOST'
El nombre del host que lee el script actual. La resolución DNS inversa se basa en el valor de REMOTE_ADDR.

Nota: El servidor web debe estar configurado para crear esta variable. Por ejemplo, en Apache, HostnameLookups On debe ser definido dentro de httpd.conf para que exista. Ver también gethostbyaddr().

'REMOTE_PORT'
El puerto utilizado por la máquina cliente para comunicarse con el servidor web.
'REMOTE_USER'
El usuario autenticado.
'REDIRECT_REMOTE_USER'
El usuario autenticado si la petición fue redirigida internamente.
'SCRIPT_FILENAME'

La ruta absoluta hacia el archivo que contiene el script en ejecución.

Nota:

Si un script es ejecutado con el CLI, con una ruta relativa, como file.php o ../file.php, $_SERVER['SCRIPT_FILENAME'] contendrá la ruta relativa especificada por el usuario.

'SERVER_ADMIN'
El valor dado a la directiva SERVER_ADMIN (para Apache), en el archivo de configuración. Si el script es ejecutado por un host virtual, esto será la valor definido por el host virtual.
'SERVER_PORT'
El puerto de la máquina servidor utilizado para las comunicaciones. Por defecto, es '80'. Usando SSL, por ejemplo, será reemplazado por el número de puerto HTTP seguro.

Nota: En Apache 2, UseCanonicalName = On, así como UseCanonicalPhysicalPort = On deben ser definidos para obtener el puerto físico real, de lo contrario este valor puede ser falsificado y puede o no devolver el valor del puerto físico.

'SERVER_SIGNATURE'
Cadena que contiene el número de versión del servidor y el nombre de host virtual, que son añadidos a las páginas generadas por el servidor, si esta opción está activada.
'PATH_TRANSLATED'
Ruta en el sistema de archivos (no el document-root) hasta el script actual, una vez que el servidor ha hecho una traducción de ruta virtual a real.

Nota: Los usuarios de Apache 2 deben usar AcceptPathInfo = On en su httpd.conf para definir PATH_INFO.

'SCRIPT_NAME'
Contiene el nombre del script actual. Esto sirve cuando las páginas deben llamarse a sí mismas. La constante __FILE__ contiene la ruta completa y el nombre del archivo (incluido) actual.
'REQUEST_URI'
El URI que fue proporcionado para acceder a esta página. Por ejemplo: '/index.html'.
'PHP_AUTH_DIGEST'
Cuando se utiliza la autenticación HTTP Digest, esta variable es definida en el encabezado "Authorization" enviado por el cliente (que debe ser utilizado para realizar la validación apropiada).
'PHP_AUTH_USER'
Cuando se utiliza la autenticación HTTP, esta variable es definida al usuario proporcionado por el usuario.
'PHP_AUTH_PW'
Cuando se utiliza la autenticación HTTP, esta variable es definida a la contraseña proporcionada por el usuario.
'AUTH_TYPE'
Cuando se utiliza la autenticación HTTP, esta variable es definida al tipo de identificación.
'PATH_INFO'
Contiene la información sobre el nombre de la ruta proporcionada por el cliente respecto al nombre del archivo que ejecuta el script actual, sin la cadena relativa a la consulta si existe. Actualmente, si el script actual es ejecutado vía el URI http://www.example.com/php/path_info.php/some/stuff?foo=bar, entonces la variable $_SERVER['PATH_INFO'] contendrá /some/stuff.
'ORIG_PATH_INFO'
Versión original de 'PATH_INFO' antes de ser analizada por PHP.

Ejemplos

Ejemplo #1 Ejemplo con $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

El resultado del ejemplo sería algo similar a:

www.example.com

Notas

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.