2012-05-24 3 views
21

$ _SERVER 변수를 PHP 스크립트에 명령 줄을 통해 전달할 수 있습니까?

특히 메일 서버를 설정하지 않고 이메일 파이핑을 테스트 할 수 있도록 $ _SERVER [ 'recipient']를 수동으로 설정하려고합니다.

이 내용으로 dummy.php라는 더미 페이지 설정에 대한
+0

매우 명확한 질문은 아니지만 아마도 원하는 것입니다 : php script.php command_line_arguments_go_here –

답변

31

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

[recipient] => [email protected] 

을 또는 당신이 할 수있는 export 또는 setenv (OS에 따라 다름) :

$ export recipient="[email protected]" 
$ setenv recipient="[email protected]" 
+0

이것은 또한 $ _SERVER [ 'HOST_NAME']과 같은 내장 변수를 설정합니다. 매력처럼 작동합니다! –

+1

이것이 DOCUMENT_ROOT에서 작동하지 않는 이유가 있습니까? 그 주위에 방법이 있습니까? – eisaacson

+0

여기에 Windows 대안이 있습니까? – EyasSH

0

@sberry의 답변이 정확합니다. 내가 명령 줄에서 PHP를 실행하는 경우, 기본 값들이 $_SERVER 배열 설정을 찾고 해당 페이지로 왔기 때문에

은 ...하지만, 여기에 내 자신의 대답이다. 그것이 누군가를 도울 수 있기를 바랍니다.

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와

우분투 GNU/리눅스와

관련 문제