PHP – $_ENV


PHP – $_ENV



”;


$_ENV is a superglobal variable in PHP. It is an associative array that stores all the environment variables available in the current script. $HTTP_ENV_VARS also contains the same information, but it is not a superglobal, and it has now been deprecated.

The environment variables are imported into the global namespace. Most of these variables are provided by the shell under which the PHP parser is running. Hence, the list of environment variables may be different on different platforms.

This array ($_ENV) also includes CGI variables in case PHP is running as a server module or a CGI processor.

We can use the foreach loop to display all the environment variables available −


<?php
   foreach ($_ENV as $k=>$v)
   echo $k . " => " . $v . "<br>";
?>

On a Windows OS and with XAMPP server, you may get the list of environment variables as follows −












































Variable

Value

ALLUSERSPROFILE

C:ProgramData

APPDATA

C:UsersuserAppDataRoaming

CommonProgramFiles

C:Program FilesCommon Files

CommonProgramFiles(x86)

C:Program Files (x86)Common Files

CommonProgramW6432

C:Program FilesCommon Files

COMPUTERNAME

GNVBGL3

ComSpec

C:WINDOWSsystem32cmd.exe

DriverData

C:WindowsSystem32DriversDriverData

HOMEDRIVE

C −

HOMEPATH

Usersuser

LOCALAPPDATA

C:UsersuserAppDataLocal

LOGONSERVER

\GNVBGL3

MOZ_PLUGIN_PATH

C:Program Files (x86) Foxit Software Foxit PDF Readerplugins

NUMBER_OF_PROCESSORS

8

OneDrive

C:UsersuserOneDrive

OneDriveConsumer

C:UsersuserOneDrive

OS

Windows_NT

Path

C:Python311Scripts;

C:Python311;

C:WINDOWSsystem32;

C:WINDOWS;

C:WINDOWSSystem32Wbem;

C:WINDOWSSystem32WindowsPowerShell v1.0;

C:WINDOWSSystem32OpenSSH;

C:xamppphp;

C:UsersuserAppDataLocalMicrosoft WindowsApps;

C:VSCodeMicrosoft VS Codebin

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 FilesWindowsPowerShellModules;

C:WINDOWSsystem32WindowsPowerShellv1.0 Modules

PUBLIC

C:UsersPublic

SystemDrive

C −

SystemRoot

C:WINDOWS

TEMP

C:UsersuserAppDataLocalTemp

TMP

C:UsersuserAppDataLocalTemp

USERDOMAIN

GNVBGL3

USERDOMAIN_ROAMINGPROFILE

GNVBGL3

USERNAME

user

USERPROFILE

C:Usersuser

windir

C:WINDOWS

ZES_ENABLE_SYSMAN

1

__COMPAT_LAYER

RunAsAdmin Installer

AP_PARENT_PID

10608

You can access the value of individual environment variable too. This code fetches the PATH environment variable −


<?php
   echo "Path: " . $_ENV[''Path''];
?>

It will produce the following output


Path:
C:Python311Scripts;C:Python311;C:WINDOWSsystem32;
C:WINDOWS;C:WINDOWSSystem32Wbem;
C:WINDOWSSystem32WindowsPowerShellv1.0;
C:WINDOWSSystem32OpenSSH;C:xamppphp;
C:UsersmlathAppDataLocalMicrosoftWindowsApps;
C:VSCodeMicrosoft VS Codebin

Note − The $_ENV array may yield empty result, depending on “php.ini” setting “variables_order”. You may have to edit the “php.ini” file and set variables_order=”EGPCS” instead of variables_order=”GPCS” value.

The getenv() Function

The PHP library provides the getenv() function to retrieve the list of all the environment variables or the value of a specific environment variable.

The following script displays the values of all the available environment variables −


<?php
   $arr=getenv();
   foreach ($arr as $key=>$val)
   echo "$key=>$val";
?>

To obtain the value of a specific variable, use its name as the argument for the getenv() function −


<?php
   echo "Path: " . getenv("PATH");
?>

The putenv() Function

PHP also provides the putenv() function to create a new environment variable. The environment variable will only exist for the duration of the current request.

Changing the value of certain environment variables should be avoided. By default, users will only be able to set the environment variables that begin with “PHP_” (e.g. PHP_FOO=BAR).

The “safe_mode_protected_env_vars” directive in “php.ini” contains a comma-delimited list of environment variables that the end user won”t be able to change using putenv().


<?php
   putenv("PHP_TEMPUSER=GUEST");
   echo "Temp user: " . getenv("PHP_TEMPUSER");
?>

The browser will display the following output


Temp user: GUEST

Advertisements

”;

Leave a Reply

Your email address will not be published. Required fields are marked *