Is it possible to pass a $_SERVER variable to a PHP script via the command line?
Specifically I am trying to set the $_SERVER['recipient'] manually so I can test email piping without setting up a mail server.
$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the web server. There is no guarantee that every web server will provide any of these; servers may omit some, or provide others not listed here.
$_SERVER['PHP_SELF'] Returns the filename of the currently executing script. $_SERVER['GATEWAY_INTERFACE'] Returns the version of the Common Gateway Interface (CGI) the server is using.
$_SERVER['REQUEST_URI'] contains the URI of the current page. So if the full path of a page is https://www.w3resource.com/html/html-tutorials.php, $_SERVER['REQUEST_URI'] would contain /html/html-tutorials. php.
On *nix:
$ recipient="[email protected]" php script.php <?php print_r($_SERVER);
Test:
$ recipient="[email protected]" php script.php | grep recipient [recipient] => [email protected]
Or, you can export it or setenv (depending on your OS), like
$ export recipient="[email protected]" $ setenv recipient="[email protected]"
The answer by @sberry is correct.
...but because I came to this page looking for setting default values for the $_SERVER
array, when running PHP from command line, here is my own answer. Hope it might help somebody.
empty( $_SERVER['HTTP_HOST'] ) && $_SERVER['HTTP_HOST'] = 'localhost'; empty( $_SERVER['REQUEST_URI'] ) && $_SERVER['REQUEST_URI'] = '/'; empty( $_SERVER['DOCUMENT_ROOT'] ) && $_SERVER['DOCUMENT_ROOT'] = __DIR__; print_r( $_SERVER );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With