Вы находитесь на странице: 1из 2

Лекции курса PHP7 + MySQL с нуля

(краткое содержание)

ЛЕКЦИЯ 39. РАБОТА С СЕТЬЮ. РАБОТА С ЗАПРОСАМИ

В предыдущем уроке Вы изучили, что такое запрос, его структуру и что такое
заголовки запроса.
Это прекрасно! Но как быть, если Вам необходимо изменить или добавить
заголовок в запрос браузера серверу?
В PHP существует функция header(), которая позволяет добавить заголовок,
или изменить существующий в случае, если он размещается в единственном числе
в поле заголовков.
int header(string $string)
Пример функции:
header(“Location: http://google.com”)
Так, функция header() добавит в поле заголовков строку “Location:
http://google.com”.
Заголовок Location отвечает за перенаправление браузера по указанному
адресу.
При использовании функции header() нужно помнить об одной важной детали
– использовать ее можно только до любого оператора вывода в сценарии,
например echo. Здесь важным моментом также является тот факт, что в скриптах
PHP любой символ, даже пробел, расположенный до конструкции <?php и после ?>
также считается оператором вывода.
Для случаев, когда необходимо выяснить, был ли использован оператор
вывода и, следовательно, отправлены заголовки запроса, можно использовать
функцию headers_sent():
bool headers_sent([string &$file, int &$line])
Функция возвращает true, если заголовки были отправлены. Кроме того, она
может поместить в $file имя файла, а в $line – номер строки, в которых был
произведен вывод заголовков.

Получение заголовков
Заранее стоит сказать, что получить список заголовков можно до их отправки
и после.
Для получения списка заголовков до их отправки из специального буфера в
браузер, а из него на сервер, можно использовать функцию:
list header_list()
возвращающую все содержащиеся в буфере заголовки в виде:
Header_name: Header_value
Для получения заголовков запроса, переданных сценарию, их необходимо
обработать, соответствующим образом поместив в ассоциативный массив и
вывести его на экран.
Преобразовать список заголовков в массив можно функцией:
array getallheaders().
Давайте преобразуем листинг 38.1 из предыдущего урока с помощью функции
getallheaders()
Листинг 39.1. Вывод заголовков запроса на экран браузера

//Получаем ассоциативный массив заголовков запроса


$head_arr = getallheaders();

1
Лекции курса PHP7 + MySQL с нуля
(краткое содержание)

//Выводим этот массив на экран браузера


foreach($head_arr as $k => $v)
echo "<p><i>{$k}</i>: {$v}</p>";

В результате Вы получите список всех переданных заголовков в явном виде.


При этом стоит заметить, что неявные заголовки не были выведены, т. к. были
переданы в виде переменных окружения и их вывод на экран требует явного вызова
функцией getenv(), рассмотренной в предыдущем уроке 38.