2012-05-24 19 views
21

Có thể chuyển biến $ _SERVER sang tập lệnh PHP thông qua dòng lệnh không?

Cụ thể là tôi đang cố gắng đặt $ _SERVER ['recipient'] theo cách thủ công để tôi có thể kiểm tra đường ống email mà không cần thiết lập máy chủ thư.

+0

không phải là một câu hỏi rất rõ ràng nhưng có lẽ bạn muốn: php script.php command_line_arguments_go_here –

Trả lời

-5

Làm thế nào về việc thiết lập một trang giả gọi dummy.php với nội dung này:

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

On * nix:

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

<?php 

print_r($_SERVER); 

Test:

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

[recipient] => [email protected] 

Hoặc, bạn có thể xuất hoặc setenv (tùy thuộc vào HĐH của bạn), như

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

Lưu ý rằng điều này cũng hữu ích cho thiết lập các biến tích hợp như $ _SERVER ['HOST_NAME']. Làm việc như một say mê! –

+1

Có lý do nào không hiệu quả với DOCUMENT_ROOT không? Có cách nào xung quanh đó không? – eisaacson

+0

Có cách thay thế Windows ở đây không? – EyasSH

0

Câu trả lời của @sberry là chính xác.

... nhưng vì tôi đã đến trang này tìm cách thiết lập giá trị mặc định cho mảng $_SERVER, khi chạy PHP từ dòng lệnh, đây là câu trả lời của riêng tôi. Hy vọng nó có thể giúp ai đó.

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

Cá nhân tôi sử dụng như sau.

Ví dụ: đặt $ _SERVER ['recipient] trong dòng lệnh PHP của tôi.

Với OS X

Với Ubuntu GNU/Linux