| |
|
|
| | Что такое переменные окружения сервера? Зачем они нужны, и откуда они появляются?
Объясните, кто может, на пальцах... | |
| |
|
|
| |
|
|
| |
для: tAleks
(02.07.2007 в 21:56)
| | | Переменные окружения - это такие глобальные параметры операционной системы (путь к папке Windows, редактор или почтовый клиент по умолчанию). Через эти параметры программам передаются предпочтения пользователя или настройки операционной системы. Особенно переменные окружения популярны в UNIX, однако и в Windows они тоже используются. Когда в 90-х годах прошлого столетия потребовалось для статических HTML-страниц создать динамику, решили не изобретать велосипед (PHP тогда ещё не было, а модулей для Web-серверов было мало), а использовать Perl или C++ программы. А все внешние параметры (GET, POST-данные, пользовательские агенты, рефереры), которые доступны Apache передавать в них при помощи переменных окружения. Apache заполняет переменные окружения, а скрипты их читают. Сейчас PHP формирует из этих переменных суперглобальный массив $_SERVER.
http://www.softtime.ru/info/articlephp.php?id_article=69 | |
| |
|
|
| |
|
|
| |
для: cheops
(02.07.2007 в 22:50)
| | | Спасибо.
Т.е. $_SERVER это часть массива $_ENV. Так?
А что из себя представляет массив $_ENV, т.е. то что не вошло в $_SERVER? | |
| |
|
|
| |
|
|
| |
для: tAleks
(08.07.2007 в 18:00)
| | | Ну вот что говорит великий и могучий манул :))
Переменные окружения: $_ENV
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $HTTP_ENV_VARS.
Эти переменные импортируются в глобальное пространство имён PHP из окружения, в котором запущен разборщик (интерпретатор) PHP. Многие предоставляются оболочкой, под которой PHP работает, а разные системы запускают, очевидно, разные виды оболочек, поэтому создать какой-то определённый список невозможно. Просмотрите в документации вашей оболочки список определённых переменных окружения.
Другие переменные окружения - это CGI-переменные, помещаемые сюда независимо от того, запущен PHP как серверный модуль или как CGI-процессор.
Это 'суперглобальная' (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_ENV; для доступа к ней в функциях или методах, как вы делаете с $HTTP_ENV_VARS.
$HTTP_ENV_VARS содержит ту же самую начальную информацию, но это не автоглобал. (Обратите внимание, что HTTP_ENV_VARS и $_ENV это разные переменные и что PHP обрабатывает их по-разному.)
Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_ENV и $HTTP_ENV_VARS. | |
| |
|
|