Можно ли передать переменную $ _SERVER в PHP-скрипт через командную строку?
В частности, я пытаюсь установить $ _SERVER ['recipient'] вручную, чтобы я мог тестировать почтовые конвейеры без настройки почтового сервера.
On * nix:
$ recipient="email@domain.com" php script.php <?php print_r($_SERVER);
Контрольная работа:
$ recipient="email@domain.com" php script.php | grep recipient [recipient] => something@domain.com
Или вы можете экспортировать его или setenv (в зависимости от вашей ОС), например
$ export recipient="email@domain.com" $ setenv recipient="email@domain.com"
Ответ от @sberry правильный.
… но поскольку я пришел на эту страницу, ища установки значений по умолчанию для массива $_SERVER
, при запуске PHP из командной строки, вот мой собственный ответ. Надеюсь, это может помочь кому-то.
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 );
Я лично использую следующее.
Пример: установите $ _SERVER ['получатель] в моей командной строке PHP.
С OS X
Добавьте в файл ' ~ / .bash_profile следующую строку: (создайте ее, если она не существует)
export recipient="something@example.com"
С Ubuntu GNU / Linux
Добавьте в файл « / etc / environment » следующую строку (создайте ее, если она не существует, см. https://help.ubuntu.com/community/EnvironmentVariables )
recipient=something@example.com
Как насчет создания фиктивной страницы с именем dummy.php с этим содержимым:
<?php $_SERVER['recipient'] = 'me@gmail.com'; ?>