Установить переменную $ _SERVER при вызове PHP из командной строки?

Можно ли передать переменную $ _SERVER в скрипт PHP через командную строку?

В частности, я пытаюсь установить $ _SERVER [& quot; получатель & quot;] вручную, чтобы я мог тестировать почтовые каналы без настройки почтового сервера.

 user55784624 мая 2012 г., 06:48
не очень понятный вопрос, но, возможно, вы хотите: php script.php command_line_arguments_go_here

Ответы на вопрос(4)

ержанием:

<?php
    $_SERVER['recipient'] = '[email protected]';
?>

The answer by @sberry is correct.

... но потому что я пришел на эту страницу в поисках настройкиdefault values для$_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 );

$ recipient="[email protected]" php script.php

<?php

print_r($_SERVER);

Тестовое задание:

$ recipient="[email protected]" php script.php | grep recipient

[recipient] => [email protected]

Или вы можете экспортировать его или setenv (в зависимости от вашей ОС), как

$ export recipient="[email protected]"
$ setenv recipient="[email protected]"
 13 янв. 2015 г., 05:02
Есть ли альтернатива Windows здесь?
 22 окт. 2014 г., 18:04
Есть ли причина, по которой это не работает для DOCUMENT_ROOT? Есть ли способ обойти это?
 26 июн. 2014 г., 06:38
Обратите внимание, что это также полезно для установки встроенных переменных, таких как $ _SERVER [& apos; HOST_NAME & apos;]. Работает как шарм!
 11 нояб. 2015 г., 19:44
@JohnWiseman Я так же разочарован, как и ты! :( увидетьbugs.php.net/bug.php?id=67808
 09 мая 2015 г., 01:58
Это не похоже на работу с PHP 5.6? О, это работает, если вы запускаете php script.php, но не если вы делаете php -S.

Пример: набор$_SERVER['recipient] в моей командной строке PHP.

With OS X

Follow the instructions in https://github.com/ersiner/osx-env-sync

Append the following line to the file '~/.bash_profile' (create it, if it does not exist)

export recipient="[email protected]"

With Ubuntu GNU/Linux

Append the following line to the file '/etc/environment' (create it, if it does not exist, see https://help.ubuntu.com/community/EnvironmentVariables)

[email protected]

Ваш ответ на вопрос