Czy można przekazać zmienną $ _SERVER do skryptu PHP za pomocą wiersza poleceń?
W szczególności próbuję ręcznie ustawić $ _SERVER ['odbiorcę'], aby przetestować instalację poczty e-mail bez konfigurowania serwera pocztowego.
Czy można przekazać zmienną $ _SERVER do skryptu PHP za pomocą wiersza poleceń?
W szczególności próbuję ręcznie ustawić $ _SERVER ['odbiorcę'], aby przetestować instalację poczty e-mail bez konfigurowania serwera pocztowego.
Jak o ustanowienie atrapę stronę o nazwie dummy.php z tej treści:
<?php
$_SERVER['recipient'] = '[email protected]';
?>
W * nix:
$ recipient="[email protected]" php script.php
<?php
print_r($_SERVER);
test:
$ recipient="[email protected]" php script.php | grep recipient
[recipient] => [email protected]
Albo, można wyeksportuj go lub setenv (w zależności od systemu operacyjnego), np.
$ export recipient="[email protected]"
$ setenv recipient="[email protected]"
Pamiętaj, że jest to również przydatne dla ustawianie wbudowanych zmiennych, takich jak $ _SERVER ['HOST_NAME']. Działa jak marzenie! –
Czy jest jakiś powód, dla którego to nie działa dla DOCUMENT_ROOT? Czy istnieje sposób na obejście tego? – eisaacson
Czy istnieje tutaj alternatywa dla systemu Windows? – EyasSH
Odpowiedź @sberry jest poprawna.
... lecz dlatego przyszedłem na tę stronę szukając ustawienie domyślne wartościna tablicy $_SERVER
, gdy PHP działa z linii poleceń, tutaj jest moje własne odpowiedzi. Mam nadzieję, że to może pomóc komuś.
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);
Osobiście używam poniższego.
Przykład: ustaw $ _SERVER ['odbiorca] w mojej linii poleceń PHP.
Z OS X
poniższą linię do pliku '~/.bash_profile' (utwórz go, jeśli nie istnieje)
export recipient="[email protected]"
z Ubuntu GNU/Linux
poniższą linię do pliku '/etc/environment' (utwórz go, jeśli nie istnieje, patrz https://help.ubuntu.com/community/EnvironmentVariables)
nie jest to jednoznaczne pytanie, ale być może chcesz: php script.php command_line_arguments_go_here –