<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/reserved.variables.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'reserved.variables.server.php',
    1 => '$_SERVER',
    2 => 'Информация о сервере и среде исполнения',
  ),
  'up' => 
  array (
    0 => 'reserved.variables.php',
    1 => 'Предопределённые переменные',
  ),
  'prev' => 
  array (
    0 => 'reserved.variables.globals.php',
    1 => '$GLOBALS',
  ),
  'next' => 
  array (
    0 => 'reserved.variables.get.php',
    1 => '$_GET',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'language/predefined/variables/server.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="reserved.variables.server" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">$_SERVER</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.1.0, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">$_SERVER</span> &mdash; <span class="dc-title">Информация о сервере и среде исполнения</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-reserved.variables.server-description">
  <h3 class="title">Описание</h3>
  <p class="para">
   Переменная <var class="varname">$_SERVER</var> — массив (<span class="type"><a href="language.types.array.php" class="type array">array</a></span>), который содержит информацию
   о заголовках, путях и расположениях скриптов.
   Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет
   предоставлять каждую из этих переменных; серверы иногда опускают отдельные переменные или предоставляют другие,
   которые здесь не указали.
   Однако большинство из этих переменных учтены в спецификации
   <a href="https://datatracker.ietf.org/doc/html/rfc3875" class="link external">&raquo;&nbsp;CGI/1.1</a> и, скорее всего, определятся.
  </p>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    При запуске PHP <a href="features.commandline.php" class="link">в командной строке</a>
    бо́льшая часть этих записей недоступна или не содержит никакого значения.
   </span>
  </p></blockquote>
  <p class="para">
   В дополнение к перечисленным ниже элементам PHP создаст дополнительные элементы
   со значениями из заголовков запросов. Элементам присваивается название с префиксом <code class="literal">HTTP_</code>,
   за которым идёт название заголовка, написанное с заглавной буквы и с подчёркиванием вместо дефиса.
   Например, заголовок <code class="literal">Accept-Language</code> будет доступен как <code class="code">$_SERVER[&#039;HTTP_ACCEPT_LANGUAGE&#039;]</code>.
  </p>
 </div>


 <div class="refsect1 indices" id="refsect1-reserved.variables.server-indices">
  <h3 class="title">Индексы</h3>

  <p class="para">
   <dl>
    
     <dt>&#039;<var class="varname">PHP_SELF</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Название файла скрипта, который выполняется в текущий момент, относительно
       корня документов. Например, переменная <var class="varname">$_SERVER['PHP_SELF']</var> в скрипте
       по адресу <var class="filename">http://example.com/foo/bar.php</var>
       примет значение <var class="filename">/foo/bar.php</var>.
       Константа <a href="language.constants.magic.php" class="link">__FILE__</a>
       содержит полный путь и название файла текущего (то есть
       подключённого) файла.
      </span>
      <span class="simpara">
       Переменная содержит название скрипта,
       если PHP запустили в командной строке.
      </span>
     </dd>
    

    
     <dt>&#039;<a href="reserved.variables.argv.php" class="link">argv</a>&#039;</dt>
     <dd>
      <span class="simpara">
       Массив аргументов, которые передали скрипту. При запуске скрипта
       в командой строке это даёт C-подобный доступ
       к параметрам командной строки. При вызове через метод GET
       этот массив содержит строку запроса.
      </span>
     </dd>
    

    
     <dt>&#039;<a href="reserved.variables.argc.php" class="link">argc</a>&#039;</dt>
     <dd>
      <span class="simpara">
       Содержит количество параметров, которые передали скрипту,
       если скрипт запустили в командной строке.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">GATEWAY_INTERFACE</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Содержит используемую сервером версию спецификации CGI-интерфейса;
       например <code class="literal">&#039;CGI/1.1&#039;</code>..
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_ADDR</var>&#039;</dt>
     <dd>
      <span class="simpara">
       IP-адрес сервера, по которому выполняется текущий скрипт.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_NAME</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Имя хоста, на котором выполняется текущий скрипт.
       Переменная содержит имя, которое определили для виртуального хоста,
       если скрипт выполняется на виртуальном хосте.
      </span>
      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <span class="simpara">
        В Apache 2 потребуется установить директивы <code class="literal">UseCanonicalName = On</code>
        и <code class="literal">ServerName</code>,
        иначе значение отразит имя хоста, которое предоставил
        клиент и которое подделывают злоумышленники.
        Небезопасно полагаться на это значение в контексте, который требует безопасности.
       </span>
      </p></blockquote>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_SOFTWARE</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Строка идентификации сервера, указанная в заголовках,
       когда происходит ответ на запрос.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_PROTOCOL</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Имя и версия информационного протокола, через который
       запросили страницу; например <code class="literal">&#039;HTTP/1.0&#039;</code>;
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REQUEST_METHOD</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Метод, которым запросили страницу; например <code class="literal">&#039;GET&#039;</code>,
       <code class="literal">&#039;HEAD&#039;</code>, <code class="literal">&#039;POST&#039;</code>, <code class="literal">&#039;PUT&#039;</code>.
      </span>
      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <p class="para">
        При запросе методом <code class="literal">HEAD</code>
        PHP-скрипт завершается после отправки заголовков — после
        любого вывода без буферизации вывода.
       </p>
      </p></blockquote>
     </dd>
    

    
     <dt>&#039;<var class="varname">REQUEST_TIME</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Метка времени, когда PHP начал обработку запроса.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REQUEST_TIME_FLOAT</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Метка времени, когда PHP начал обработку запроса, с точностью до микросекунд.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">QUERY_STRING</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Строка запроса, если адрес содержит такую, через которую получили доступ к странице.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">DOCUMENT_ROOT</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Директория корня документов, в которой выполняется текущий скрипт,
       в точности та, которую указали в конфигурационном файле сервера.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">HTTPS</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Принимает непустое значение, если запрос выполнили через протокол HTTPS.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REMOTE_ADDR</var>&#039;</dt>
     <dd>
      <span class="simpara">
       IP-адрес, с которого пользователь просматривает текущую страницу.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REMOTE_HOST</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Удалённый хост, с которого пользователь просматривает текущую
       страницу. Обратный поиск DNS основан на значении переменной
       <var class="varname">REMOTE_ADDR</var>.
      </span>
      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <span class="simpara">
        Сервер потребуется настроить, чтобы создавать эту переменную.
        Например, для веб-сервера Apache потребуется указать директиву
        <code class="literal">HostnameLookups On</code> в файле <var class="filename">httpd.conf</var>, чтобы эта
        переменная создавалась. Смотрите также описание функции <span class="function"><a href="function.gethostbyaddr.php" class="function">gethostbyaddr()</a></span>.
       </span>
      </p></blockquote>
     </dd>
    

    
     <dt>&#039;<var class="varname">REMOTE_PORT</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Порт на удалённой машине, на котором устанавливается соединение с сервером.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REMOTE_USER</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Аутентифицированный пользователь.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REDIRECT_REMOTE_USER</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Аутентифицированный пользователь, если запрос перенаправлен изнутри.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">SCRIPT_FILENAME</var>&#039;</dt>
     <dd>
      <p class="para">
       Абсолютный путь к исполняемому скрипту.
       <blockquote class="note"><p><strong class="note">Замечание</strong>: 
        <p class="para">
         Переменная <var class="varname">$_SERVER['SCRIPT_FILENAME']</var>
         содержит относительный путь, который указал пользователь,
         если скрипт запустили в командной строке (CLI)
         по относительному пути наподобие <var class="filename">file.php</var>
         или <var class="filename">../file.php</var>.
        </p>
       </p></blockquote>
      </p>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_ADMIN</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Значение директивы SERVER_ADMIN веб-сервера Apache,
       которое указали в конфигурационном файле сервера. При запуске скрипта
       на виртуальном хосте значение
       определяется для этого виртуального хоста.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_PORT</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Порт, на котором сервер принимает запросы.
       При стандартной конфигурации сервера переменная содержит значение <code class="literal">&#039;80&#039;</code>;
       для соединений по протоколу SSL, например, значение переменной соответствует
       порту, который определили для защищённых HTTP-соединений.
      </span>
      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <span class="simpara">
        На веб-сервере Apache 2 потребуется установить директивы
        установить <code class="literal">UseCanonicalName = On</code>
        и <code class="literal">UseCanonicalPhysicalPort = On</code>, чтобы получить реальный физический порт,
        иначе значение подделают и переменная не вернёт реальное значение физического порта.
        В контекстах, которые требуют усиленной безопасности,
        полагаться на это значение небезопасно.
       </span>
      </p></blockquote>
     </dd>
    

    
     <dt>&#039;<var class="varname">SERVER_SIGNATURE</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Строка, которая содержит версию сервера и имя виртуального хоста. Эта информация
       добавляются на страницы, которые генерирует сервер, если в конфигурации сервера
       включили директиву, которая отвечает за добавление такой строки.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">PATH_TRANSLATED</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Путь к текущему скрипту после выполнения сервером сопоставления virtual-to-real.
       Путь строится на основе файловой системы, а не на основе корневого каталога сервера.
      </span>
      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <span class="simpara">
        Пользователи Apache 2 включают директиву
        <code class="literal">AcceptPathInfo = On</code> в конфигурационном файле
        <var class="filename">httpd.conf</var>, чтобы определить значение переменной <var class="envar">PATH_INFO</var>.
       </span>
      </p></blockquote>
     </dd>
    

    
     <dt>&#039;<var class="varname">SCRIPT_NAME</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Путь к текущему исполняемому скрипту. Переменная полезна на страницах,
       которым требуется указывать на самих себя.
       Полный путь и название текущего включаемого файла
       содержит константа <a href="language.constants.magic.php" class="link">__FILE__</a>.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">REQUEST_URI</var>&#039;</dt>
     <dd>
      <span class="simpara">
       URI-идентификатор наподобие &#039;<code class="literal">/index.html</code>&#039;,
       который указали для доступа к странице.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">PHP_AUTH_DIGEST</var>&#039;</dt>
     <dd>
      <span class="simpara">
       При HTTP-аутентификации по дайджесту переменной присваивается
       значение заголовка &#039;Authorization&#039;, который отправил клиент и которое затем
       проверяют.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">PHP_AUTH_USER</var>&#039;</dt>
     <dd>
      <span class="simpara">
       При выполнении HTTP-аутентификации переменной присваивается
       имя пользователя, которое предоставил пользователь.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">PHP_AUTH_PW</var>&#039;</dt>
     <dd>
      <span class="simpara">
       При выполнении HTTP-аутентификации переменной присваивается
       пароль, которое предоставил пользователь.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">AUTH_TYPE</var>&#039;</dt>
     <dd>
      <span class="simpara">
       При выполнении HTTP-аутентификации переменной присваивается
       тип аутентификации, который сервер устанавливает на основе клиентских данных.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">PATH_INFO</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Содержит информацию о пути, которую предоставил клиент. Значение идёт
       после фактического названия скрипта, но до строки запроса, если строку запроса указали.
       Переменная <var class="varname">$_SERVER['PATH_INFO']</var> получит значение
       <code class="literal">/some/stuff</code>,
       если текущий скрипт запросили по URL-адресу наподобие
       <var class="filename">http://www.example.com/php/path_info.php/some/stuff?foo=bar</var>.
      </span>
     </dd>
    

    
     <dt>&#039;<var class="varname">ORIG_PATH_INFO</var>&#039;</dt>
     <dd>
      <span class="simpara">
       Исходное значение переменной &#039;<var class="varname">PATH_INFO</var>&#039; перед
       обработкой PHP.
      </span>
     </dd>
    

   </dl>
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-reserved.variables.server-examples">
  <h3 class="title">Примеры</h3>
  <p class="para">
   <div class="example" id="variable.server.basic">
    <p><strong>Пример #1 Пример вывода значения переменной <var class="varname">$_SERVER</var></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'SERVER_NAME'</span><span style="color: #007700">];<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    
<div class="example-contents"><p>
 Вывод приведённого примера будет похож на:
</p></div>

    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">www.example.com</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-reserved.variables.server-notes">
  <h3 class="title">Примечания</h3>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
 <p class="para">
  Это «суперглобальная»,
  или автоматическая глобальная, переменная. Поэтому переменная доступна во всех контекстах скрипта.
  Выполнять <strong class="command">global $variable;</strong> для доступа к глобальной переменной внутри метода или функции не требуется.
 </p>
</p></blockquote>

 </div>


 <div class="refsect1 seealso" id="refsect1-reserved.variables.server-seealso">
  <h3 class="title">Смотрите также</h3>
  <p class="para">
   <ul class="simplelist">
    <li><a href="book.filter.php" class="link">Фильтрация данных</a></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>