Все значения PHP-переменной $_SERVER
- Способ №1: использование массива индексов
- Способ №2: использование функции print_r()
- Способ №3: использование конструкции foreach () {}
- Списки индексов
Способ №1: использование массива индексов
Читая официальное руководство по PHP, в частности, про зарезервированную переменную $_SERVER
, я наткнулся на интересный комментарий, в котором был приведён скрипт, выводящий все её значения. Этот скрипт я немного подкорректировал и выложил ниже.
<?php
$indices = array(
'PHP_SELF',
'argv',
'argc',
'GATEWAY_INTERFACE',
'SERVER_ADDR',
'SERVER_NAME',
'SERVER_SOFTWARE',
'SERVER_PROTOCOL',
'REQUEST_METHOD',
'REQUEST_TIME',
'REQUEST_TIME_FLOAT',
'QUERY_STRING',
'DOCUMENT_ROOT',
'HTTP_ACCEPT',
'HTTP_ACCEPT_CHARSET',
'HTTP_ACCEPT_ENCODING',
'HTTP_ACCEPT_LANGUAGE',
'HTTP_CONNECTION',
'HTTP_HOST',
'HTTP_REFERER',
'HTTP_USER_AGENT',
'HTTPS',
'REMOTE_ADDR',
'REMOTE_HOST',
'REMOTE_PORT',
'REMOTE_USER',
'REDIRECT_REMOTE_USER',
'SCRIPT_FILENAME',
'SERVER_ADMIN',
'SERVER_PORT',
'SERVER_SIGNATURE',
'PATH_TRANSLATED',
'SCRIPT_NAME',
'REQUEST_URI',
'PHP_AUTH_DIGEST',
'PHP_AUTH_USER',
'PHP_AUTH_PW',
'AUTH_TYPE',
'PATH_INFO',
'ORIG_PATH_INFO'
);
echo '<table style="border-spacing: 2em;">' . "\n";
foreach ($indices as $index) {
$result = (isset( $_SERVER[$index] )) ?
('<td>' . $_SERVER[$index] . '</td>') :
('<td>-</td>');
echo '<tr><td>$_SERVER[\'<i style="color: red;">' . $index . '</i>\']</td>' . $result . '</tr>' . "\n";
}
echo '</table>';
?>
Способ №2: использование функции print_r()
В процессе написания первого способа вывода всех значений переменной $_SERVER
, Мне пришла в голову иная мысль о том как можно их вывести:
<?php
echo '<pre>';
print_r( $_SERVER );
echo '</pre>';
?>
Аналогичную идею, позже ☺, я обнаружил в другом комментарии:
<?php
echo '<textarea>';
print_r( $_SERVER );
echo '</textarea>';
?>
Способ №3: использование конструкции foreach () {}
Третий способ похож на предыдущий, однако:
<?php
foreach ($_SERVER as $index => $value) {
echo '$_SERVER[\'' . $index . '\'] = ' . $value .' <br>' . "\n";
}
?>
Результат работы второго и третьего способов отличается от результата первого.
Списки индексов
Оригинальный (как на PHP.Net) | Сортированный по алфавиту |
---|---|
|
|
Значение $_SERVER['SERVER_SIGNATURE']
автоматически помещается в HTML-элемент <address>
, что можно увидеть, протестировав следующий код:
<?php
echo $_SERVER['SERVER_SIGNATURE'];
?>