Usando $ _SERVER en PHP

$ _SERVER es una de las variables globales de PHP, denominada Superglobales, que contiene información sobre servidores y entornos de ejecución. Estas son variables predefinidas para que siempre estén accesibles desde cualquier clase, función o archivo.

Las entradas aquí son reconocidas por los servidores web, pero no hay garantía de que cada servidor web reconozca cada Superglobal. Estas tres matrices PHP $ _SERVER se comportan de manera similar: devuelven información sobre el archivo en uso. Cuando se exponen a diferentes escenarios, en algunos casos se comportan de manera diferente. Estos ejemplos pueden ayudarlo a decidir cuál es el mejor para lo que necesita. Una lista completa de matrices $ _SERVER está disponible en el sitio web de PHP.

$ _SERVER ['PHP_SELF']

PHP_SELF es el nombre del script que se está ejecutando actualmente.

  • http://www.yoursite.com/example/ - -> /example/index.php
  • http://www.yoursite.com/example/index.php - -> /example/index.php
  • http://www.yoursite.com/example/index.php?a=test - -> /example/index.php
  • http://www.yoursite.com/example/index.php/dir/test - -> / dir / test

Cuando usa $ _SERVER ['PHP_SELF'], devuelve el nombre de archivo /example/index.php con y sin el nombre de archivo escrito en la URL. Cuando las variables se agregan al final, se truncan y nuevamente se devuelve /example/index.php. La única versión que produjo un resultado diferente tiene directorios agregados después del nombre del archivo. En ese caso, devolvió esos directorios.

$ _SERVER ['REQUEST_URI']

REQUEST_URI se refiere al URI dado para acceder a una página.

  • http://www.yoursite.com/example/ - -> / /
  • http://www.yoursite.com/example/index.php - -> /example/index.php
  • http://www.yoursite.com/example/index.php?a=test - -> /example/index.php?a=test
  • http://www.yoursite.com/example/index.php/dir/test - -> /example/index.php/dir/test

Todos estos ejemplos devolvieron exactamente lo que se ingresó para la URL. Devolvió un simple /, el nombre del archivo, las variables y los directorios adjuntos, todo tal como fueron ingresados.

$ _SERVER ['SCRIPT_NAME']

SCRIPT_NAME es la ruta del script actual. Esto es útil para páginas que necesitan apuntar a sí mismas.

  • http://www.yoursite.com/example/ - -> /example/index.php
  • http://www.yoursite.com/example/index.php - -> /example/index.php
  • http://www.yoursite.com/example/index.php?a=test - -> /example/index.php
  • http://www.yoursite.com/example/index.php/dir/test - -> /example/index.php

Todos los casos aquí solo devolvieron el nombre de archivo /example/index.php independientemente de si se escribió, no se escribió o se le agregó algo..