+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


D7: Объект сервера, работаем правильно с переменными сервера

В новом ядре Битрикс D7, чтобы достучаться до некоторых серверных переменных, нужно использовать специальный класс. Я про такие переменные сервера как IP-адрес, хост, и так далее. Коротенечко пробежимся по классу.

Итак, вызывается переменная так:
$context = \Bitrix\Main\Application::getInstance()->getContext();
$server = $context->getServer();

Вот теперь мы можем обращаться к переменным. Перечислю методы, доступные на данный момент:

$server->getDocumentRoot() - док.рут текущий.
$server->getPersonalRoot() - путь Битрикс, по умолчанию равен /bitrix.
$server->getHttpHost() - HTTP_HOST
$server->getServerName() - SERVER_NAME
$server->getServerAddr() - SERVER_ADDR
$server->getServerPort() - SERVER_PORT
$server->getRequestUri() - REQUEST_URI
$server->getRequestMethod() - REQUEST_METHOD
$server->getPhpSelf() - PHP_SELF
$server->getScriptName() - SCRIPT_NAME

И есть еще два метода, применение которых на практике я пока не знаю:
   public function rewriteUri($url, $queryString, $redirectStatus = null)
   {
      $this->values["REQUEST_URI"] = $url;
      $this->values["QUERY_STRING"] = $queryString;
      if ($redirectStatus != null)
         $this->values["REDIRECT_STATUS"] = $redirectStatus;
   }

   public function transferUri($url, $queryString = "")
   {
      $this->values["REAL_FILE_PATH"] = $url;
      if ($queryString != "")
      {
         if (!isset($this->values["QUERY_STRING"]))
            $this->values["QUERY_STRING"] = "";
         if (isset($this->values["QUERY_STRING"]) && ($this->values["QUERY_STRING"] != ""))
            $this->values["QUERY_STRING"] .= "&";
         $this->values["QUERY_STRING"] .= $queryString;
      }
   }

Оригинал статьи. Там же можно оставить комментарий.


Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA