要使用getallheaders函數,您只需要向其傳遞一個空參數。下面是一個基本示例:
$headers = getallheaders(); print_r($headers);
該代碼將使用getallheaders函數獲取所有HTTP請求頭信息,并使用print_r函數將該信息打印到屏幕上。假設請求的HTTP頭信息如下:
GET /index.php HTTP/1.1 Host: www.example.com Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 Referer: https://www.example.com/index.php
運行上述代碼將輸出以下結果:
Array ( [Host] =>www.example.com [Accept] =>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [User-Agent] =>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 [Referer] =>https://www.example.com/index.php )
可以看到,getallheaders函數將請求頭中的每個鍵值對作為數組元素返回,使您可以方便地獲取客戶端傳遞給服務器的任何特定信息。
使用getallheaders函數特別方便的地方在于,它允許您獲取客戶端傳遞給服務器的自定義HTTP頭信息,而不僅僅限于標準HTTP頭信息。例如,如果您希望客戶端傳遞特定的信息,以便您的應用程序執行某項操作,那么您可以將該信息作為自定義HTTP頭信息發送。以下是一個示例:
假設您希望在客戶端提交表單時,向服務器發送一個名為“X-Requested-With”的自定義HTTP頭信息,以便您的應用程序知道是通過ajax異步提交還是普通的表單提交。您可以使用以下代碼:
xhr = new XMLHttpRequest(); xhr.open('POST', 'example.php', true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.send(data);
然后,在您的PHP代碼中,您可以使用getallheaders函數來獲取該信息,并相應地執行操作。以下是一個示例:
$headers = getallheaders(); if (isset($headers['X-Requested-With']) && $headers['X-Requested-With'] == 'XMLHttpRequest') { //This is an ajax request } else { //This is a normal form submission }
通過使用getallheaders函數,您可以輕松地獲取并使用客戶端傳遞給服務器的任何自定義HTTP頭信息,以實現更靈活的Web應用程序。
總之,getallheaders函數是一項非常有用的PHP功能,可以方便地獲取客戶端傳遞給服務器的HTTP頭信息以及自定義HTTP頭信息,從而使您的Web應用程序更加靈活和功能強大。當您需要處理特定的HTTP頭信息并根據它們執行操作時,使用getallheaders函數將非常方便。