2012-05-24 15 views
21

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.

+0

nie jest to jednoznaczne pytanie, ale być może chcesz: php script.php command_line_arguments_go_here –

Odpowiedz

-5

Jak o ustanowienie atrapę stronę o nazwie dummy.php z tej treści:

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

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]" 
+0

Pamiętaj, że jest to również przydatne dla ustawianie wbudowanych zmiennych, takich jak $ _SERVER ['HOST_NAME']. Działa jak marzenie! –

+1

Czy jest jakiś powód, dla którego to nie działa dla DOCUMENT_ROOT? Czy istnieje sposób na obejście tego? – eisaacson

+0

Czy istnieje tutaj alternatywa dla systemu Windows? – EyasSH

0

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); 
0

Osobiście używam poniższego.

Przykład: ustaw $ _SERVER ['odbiorca] w mojej linii poleceń PHP.

Z OS X

z Ubuntu GNU/Linux

Powiązane problemy