\Bitrix\Main\Server
Этот класс нужен для того, чтобы не использовать напрямую глобальную переменную $_SERVER.
Для создания объекта необходимо обращаться через текущее соединение (getContext) экземпляра приложения (Application::getInstance). Вот так:
$server = \Bitrix\Main\Application::getInstance()->getContext()->getServer()
Методы:
$server->addFilter($filter); $server->getDocumentRoot(); // DOCUMENT_ROOT (/home/bitrix/www) $server->getPersonalRoot(); // установленная папка root. Используется серверная переменнтая BX_PERSONAL_ROOT. Если переменная пустая - возвращается /bitrix $server->getHttpHost(); // HTTP_HOST http хост сервера (blog.budagov.ru:443) $server->getServerName(); // SERVER_NAME имя сервера (blog.budagov.ru) $server->getServerAddr(); // SERVER_ADDR локальный IP сервера (127.0.0.1) $server->getRemoteAddr(); // REMOTE_ADDR внешний IP сервера (31.129.214.29) $server->getUserAgent(); // HTTP_USER_AGENT User Agent браузера (Mozilla/5.0 (Windows NT 10.0; Win64; ...) $server->getServerPort(); // SERVER_PORT порт подключения, (443) $server->getRequestScheme(); // REQUEST_SCHEME тип подключения, (http) $server->getRequestUri(); // REQUEST_URI $server->getRequestMethod(); // REQUEST_METHOD $server->getPhpSelf(); // PHP_SELF $server->getScriptName(); // SCRIPT_NAME $server->rewriteUri($url, $queryString, $redirectStatus); // $server->transferUri($url, $queryString); //Так же доступны методы \Bitrix\Main\Type\Dictionary
$server->getRaw($name); $server->toArrayRaw(); $server->get($name); // получение любой переменной, $server->get('REQUEST_TIME') $server->set($name, $value); // установить значение переменной, $server->set('DOCUMENT_ROOT', '/test/') $server->getValues(); // все серверные переменные в виде массива $server->setValues($values); // установить несколько переменных сразу, $server->setValues(['DOCUMENT_ROOT' => '/test/', 'SCRIPT_NAME' => 'test.php']); $server->clear(); // удаляет все переменные $server->count(); // считает количество серверных переменных, примерно как count($_SERVER) $server->toArray(); // все данные в виде массива $server->isEmpty(); // проверяет есть ли данные в серверных переменных $server->jsonSerialize(); // по идее тут все данные в виде json, но судя по исходникам пока это аналог $server->toArray(); $server->current(); // Метод возвращает текущий элемент. $server->next(); // Переход вперёд к следующему элементу $server->key(); // Метод возвращает ключ текущего элемента. $server->valid(); // Метод проверяет валидность текущей позиции. $server->rewind(); // Метод возвращает итератор к первому элементу. $server->offsetExists($offset); Существует ли смещение. $server->offsetGet($offset); Установка по получению. $server->offsetSet($offset, $value); Установка по смещению. $server->offsetUnset($offset); Очистка по смещению.
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.