Vaya al Contenido

PHP $_ENV - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Superglobals

Superglobal $_ENV en PHP


PHP ofrece varias superglobales para acceder a información relevante del entorno de ejecución, una de las más importantes es $_ENV. Esta variable es un array asociativo que almacena todas las variables de entorno disponibles durante la ejecución del script.
Estas variables pueden variar según el sistema operativo y el servidor donde esté alojado el script PHP. Además, PHP ofrece funciones adicionales para interactuar con las variables de entorno, como getenv() y putenv().

¿Qué es $_ENV?


La superglobal $_ENV contiene todas las variables de entorno del servidor. Estas variables suelen ser proporcionadas por el shell o sistema operativo en el que se ejecuta PHP.
Dependiendo del servidor, las variables de entorno disponibles pueden incluir configuraciones del sistema, rutas del servidor y otras variables relevantes para la ejecución del script.
Por ejemplo, las variables de entorno más comunes incluyen:

PATH: Lista de rutas donde el sistema operativo busca los ejecutables.
HOME: El directorio principal del usuario actual.
USER: El nombre de usuario con el que se ha iniciado sesión en el sistema.

Importancia de las Variables de Entorno


Las variables de entorno permiten que un sistema operativo o servidor proporcione información relevante al script PHP sin necesidad de que esta se pase explícitamente.
Esto es útil para definir configuraciones a nivel del sistema, como la ubicación de binarios, directorios de datos, o credenciales.

Mostrando las Variables de Entorno


Podemos utilizar un bucle foreach para recorrer todas las variables de entorno y mostrarlas. A continuación, un ejemplo que lista todas las variables presentes:

Ejemplo: Listado de todas las Variables de Entorno


<?php
foreach ($_ENV as $clave => $valor) {
echo $clave . " => " . $valor . "<br>";
}
?>


Variables entorno WINDOWS en PHP
Variable Valor
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\user\AppData\Roaming
CommonProgramFiles C:\Program Files\Common Files
CommonProgramFiles(x86) C:\Program Files (x86)\Common Files
CommonProgramW6432 C:\Program Files\Common Files
COMPUTERNAME GNVBGL3
ComSpec C:\WINDOWS\system32\cmd.exe
DriverData C:\Windows\System32\Drivers\DriverData
HOMEDRIVE C:
HOMEPATH \Users\user
LOCALAPPDATA C:\Users\user\AppData\Local
LOGONSERVER \GNVBGL3
MOZ_PLUGIN_PATH C:\Program Files (x86)\Foxit Software\Foxit PDF Reader\plugins
NUMBER_OF_PROCESSORS 8
OneDrive C:\Users\user\OneDrive
OneDriveConsumer C:\Users\user\OneDrive
OS Windows_NT
Path C:\Python311\Scripts\;C:\Python311\;C:\WINDOWS\system32;
C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\xampp\php;
C:\Users\user\AppData\Local\Microsoft\WindowsApps;
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
PROCESSOR_ARCHITECTURE AMD64
PROCESSOR_IDENTIFIER Intel64 Family 6 Model 140 Stepping 1, GenuineIntel
PROCESSOR_LEVEL 6
PROCESSOR_REVISION 8c01
ProgramData C:\ProgramData
ProgramFiles C:\Program Files
ProgramFiles(x86) C:\Program Files (x86)
ProgramW6432 C:\Program Files
PSModulePath C:\Program Files\WindowsPowerShell\Modules;
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PUBLIC C:\Users\Public
SystemDrive C:
SystemRoot C:\WINDOWS
TEMP C:\Users\user\AppData\Local\Temp
TMP C:\Users\user\AppData\Local\Temp
USERDOMAIN GNVBGL3
USERDOMAIN_ROAMINGPROFILE GNVBGL3
USERNAME user
USERPROFILE C:\Users\user
windir C:\WINDOWS
ZES_ENABLE_SYSMAN 1
__COMPAT_LAYER RunAsAdmin Installer
AP_PARENT_PID 10608

Este listado contiene todas las variables de entorno que un sistema Windows puede proporcionar. Si ejecutas el código en un servidor Linux o macOS, las variables disponibles y sus valores serán diferentes, pero el método para acceder a ellas será el mismo.

Accediendo a Variables de Entorno con $_ENV


El array $_ENV se puede recorrer con un bucle foreach para mostrar todas las variables de entorno disponibles. A continuación, un ejemplo que lista todas las variables presentes:
Ejemplo: Listado de todas las Variables de Entorno

<?php
foreach ($_ENV as $clave => $valor) {
echo $clave . " => " . $valor . "<br>";
}
?>


Explicación del Código


El array asociativo $_ENV contiene pares clave-valor, donde las claves son los nombres de las variables de entorno y los valores son sus respectivos contenidos.
El bucle foreach recorre cada variable y las imprime en pantalla.

Resultado (en un sistema Linux)


HOME => /home/usuario
SHELL => /bin/bash
USER => usuario
PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin


Acceso a Variables Específicas con $_ENV


También es posible acceder directamente a una variable de entorno utilizando la clave correspondiente en el array $_ENV. Por ejemplo, si deseas acceder a la variable PATH, puedes hacerlo de la siguiente manera:

Ejemplo: Acceso a una Variable Específica


<?php
echo "Ruta del sistema: " . $_ENV['PATH'];
?>

Explicación del Código


$_ENV['PATH'] devuelve el valor de la variable de entorno PATH, que es la ruta del sistema donde se buscan los ejecutables.

Nota sobre la Configuración de php.ini


El contenido del array $_ENV puede depender de la configuración del archivo php.ini, específicamente de la directiva variables_order. Si el valor de esta directiva no incluye la letra “E”, es posible que $_ENV esté vacío.
Para asegurarte de que PHP rellene el array $_ENV, la directiva variables_order debe estar configurada de la siguiente manera:

variables_order = "EGPCS"

Esta configuración asegura que PHP cargue las variables de entorno, además de las variables de sesión, POST, COOKIE y SERVER.

Usando la Función getenv()


Si prefieres una forma más flexible para acceder a las variables de entorno, puedes usar la función getenv(). Esta función no depende de la configuración de php.ini, por lo que es una opción más segura para obtener el valor de una variable de entorno.

Ejemplo: Uso de getenv()


<?php
echo "Ruta del sistema: " . getenv('PATH');
?>


Explicación del Código


getenv('PATH') obtiene directamente el valor de la variable de entorno PATH, sin necesidad de acceder al array $_ENV.

Resultado


Ruta del sistema: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

Diferencias entre $_ENV y getenv()


$_ENV: Depende de la configuración de php.ini y puede estar vacío si la configuración no incluye «E» en variables_order.
getenv(): Funciona independientemente de la configuración de php.ini y es preferible cuando se necesita asegurarse de que las variables de entorno están disponibles.

Creando Variables de Entorno con putenv()


La función putenv() permite establecer variables de entorno dentro del script PHP. Estas variables solo estarán disponibles durante la ejecución del script y no persistirán después de su finalización.

Ejemplo: Creando una Variable de Entorno Temporal


<?php
putenv("PHP_USUARIO_TEMPORAL=admin");
echo "Usuario temporal: " . getenv("PHP_USUARIO_TEMPORAL");
?>


Explicación del Código


putenv("PHP_USUARIO_TEMPORAL=admin") establece una nueva variable de entorno llamada PHP_USUARIO_TEMPORAL con el valor admin.
getenv("PHP_USUARIO_TEMPORAL") recupera el valor de la variable creada.

Resultado


Usuario temporal: admin

Restricciones en el Uso de putenv()


Aunque puedes crear variables de entorno personalizadas, hay restricciones sobre qué variables puedes modificar. Las variables protegidas por la directiva safe_mode_protected_env_vars en el archivo php.ini no pueden ser alteradas. Por ejemplo, modificar variables críticas del sistema como PATH o USER puede estar restringido.

Mejoras en la Seguridad con Variables de Entorno


Algunas variables de entorno contienen información sensible, como rutas a claves privadas, configuraciones de base de datos o credenciales de API. Es recomendable seguir las siguientes prácticas para asegurar el manejo seguro de las variables de entorno:

No exponer variables sensibles: Evita imprimir valores sensibles de variables de entorno en la salida del navegador.
Definir variables en entornos controlados: Utiliza archivos .env o configuraciones de servidor para definir variables de entorno importantes fuera del código fuente.
Validar las entradas: Si vas a usar una variable de entorno, asegúrate de validar su contenido antes de utilizarlo en operaciones críticas.

Conclusión


Las variables de entorno juegan un papel importante en la configuración y ejecución de aplicaciones en PHP. La superglobal $_ENV y las funciones getenv() y putenv() te permiten acceder y manipular estas variables de manera eficiente.
Al conocer la diferencia entre ellas y cómo están influenciadas por la configuración de php.ini, puedes aprovechar estas herramientas para hacer que tus scripts PHP sean más dinámicos y seguros.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"