РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
212 of 1361 menu

Атрибут headers

Атрибут headers принадлежит классу Request и возвращает все HTTP-заголовки текущего запроса. Значением атрибута является объект HeaderBag, который ведёт себя как массив: к заголовкам можно обращаться по имени и получать их значения. Имена заголовков нечувствительны к регистру.

Получить объект Request можно через аргумент метода контроллера, через RequestStack или через глобальную переменную $_SERVER. Чаще всего атрибут headers используется для чтения таких заголовков, как User-Agent, Accept, Authorization, Content-Type.

Синтаксис

$request->headers->get('Header-Name'); $request->headers->all();

Пример

Давайте получим значение заголовка User-Agent в методе контроллера:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class RequestController extends AbstractController { #[Route('/request/headers', name: 'request_headers')] public function headers(Request $request): Response { $userAgent = $request->headers->get('User-Agent'); return new Response($userAgent); } } ?>

Результат выполнения кода:

"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

Пример

Давайте получим значение заголовка с значением по умолчанию, если заголовок отсутствует:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class RequestController extends AbstractController { #[Route('/request/accept', name: 'request_accept')] public function accept(Request $request): Response { $accept = $request->headers->get('Accept', 'text/html'); return new Response($accept); } } ?>

Результат выполнения кода:

"text/html,application/xhtml+xml,application/xml;q=0.9"

Пример

Давайте проверим наличие заголовка Authorization с помощью метода has:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class RequestController extends AbstractController { #[Route('/request/auth', name: 'request_auth')] public function auth(Request $request): Response { if ($request->headers->has('Authorization')) { return new Response('auth header present'); } return new Response('auth header missing'); } } ?>

Результат выполнения кода:

"auth header present"

Пример

Давайте получим все заголовки запроса в виде массива:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class RequestController extends AbstractController { #[Route('/request/all-headers', name: 'request_all_headers')] public function allHeaders(Request $request): Response { $headers = $request->headers->all(); return new Response(json_encode($headers)); } } ?>

Результат выполнения кода:

{"host":["localhost"],"user-agent":["Mozilla/5.0"],"accept":["text/html"]}

Смотрите также

  • класс Request,
    который представляет HTTP-запрос
  • атрибут query,
    который хранит GET-параметры запроса
  • атрибут request,
    который хранит POST-параметры запроса
  • атрибут cookies,
    который хранит cookies запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить