В соответствии с документация по getenv
, Я должен быть в состоянии использовать его, чтобы проверить $_SERVER
переменная.
<?php
// Example use of getenv()
$ip = getenv('REMOTE_ADDR');
// Or simply use a Superglobal ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
Однако мне кажется, что это работает только при запуске с веб-сервера (Apache), но не из командной строки. $_SERVER
переменная заполняется правильно в обоих случаях, но getenv
только читает это на веб-сервере.
<?php
var_dump( getenv('SCRIPT_FILENAME'));
var_dump($_SERVER['SCRIPT_FILENAME']);
Вывод на Apache в браузер:
/var/www/localhost/questions-answers/scratch.php:7:
строка ‘/var/www/localhost/questions-answers/scratch.php’ (длина = 48)
/var/www/localhost/questions-answers/scratch.php:8:
строка ‘/var/www/localhost/questions-answers/scratch.php’ (длина = 48)
Выход на CLI:
/var/www/localhost/questions-answers/scratch.php:7:
BOOL (ложь)
/var/www/localhost/questions-answers/scratch.php:8:
string (11) «scratch.php»
Я чувствую, что в моем наборе отсутствует какая-то опция php.ini
но я не могу найти ссылку на это подозрение. Это обратное этот вопрос.
Задача ещё не решена.
Других решений пока нет …