2012-05-24 31 views
21

是否可以通過命令行將$ _SERVER變量傳遞給PHP腳本?

具體而言,我試圖手動設置$ _SERVER ['recipient'],這樣我就可以在不設置郵件服務器的情況下測試電子郵件管道。

+0

不是一個非常明確的問題,但也許你想:php script.php command_line_arguments_go_here – 2012-05-24 04:48:21

回答

-5

如何建立一個虛擬的頁面調用dummy.php與此內容:

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

在* nix:

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

請注意,這也是有用的設置內置變量,如$ _SERVER ['HOST_NAME']。奇蹟般有效! –

+1

是否有這樣的原因對DOCUMENT_ROOT不起作用?有沒有辦法解決這個問題? – eisaacson

+0

這裏有一個Windows替代方案嗎? – EyasSH

0

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

我個人使用以下內容。

例如:在我的PHP命令行中設置$ _SERVER ['recipient]

隨着OS X

與Ubuntu的GNU/Linux