Laravel 请求:获取请求的标头信息 1 个改进

问题

如何在控制器中获取请求标头的信息,比如如何获得标头中的 RefererUser-Agent信息?

回答

可通过调用 Illuminate\Http\Request 实例的 header 方法获得请求标头的信息:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
    public function index(Request $request)
    {
        $referer = $request->header('Referer');
        $acceptLanguage = $request->header('Accept-Language');
        $userAgent = $request->header('User-Agent');

        return [
            'Referer' => $referer,
            'Accept-Language' => $acceptLanguage,
            'User-Agent' => $userAgent
        ];
    }
}

返回结果类似如下:

{
  "Referer": null,
  "Accept-Language": "zh-CN,zh;q=0.9",
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
}

注意:如果请求标头中不包含指定项,则返回 null。标头项名是大小写不敏感的。

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!