getAllHeaders () 함수는 클라이언트가 서버에 보낸 모든 요청 헤더 정보를 얻는 데 사용되며 연관 배열을 반환하면 키는 헤더 이름이고 값은 헤더 컨텐츠입니다. Apache, Nginx (FastCGI를 통해)와 같은 지원 환경에서만 사용할 수 있습니다.
샘플 코드 :
<?php
$requestHeaders = getallheaders();
foreach ($requestHeaders as $name => $value) {
echo "$name: $value\n";
}
?>
CERFERER 및 HOST와 같은 요청 헤더에서 URL에 액세스하려면 다음 방법을 사용할 수 있습니다.
<?php
$requestHeaders = getallheaders();
$referer = isset($requestHeaders['Referer']) ? $requestHeaders['Referer'] : '없음';
echo "Referer: $referer\n";
?>
참고 : URL에 균일 성 및 테스트를 위해 도메인 이름이 포함 된 경우 도메인 이름을 M66.net 으로 대체 할 수 있습니다.
headers_list () 함수는 현재 스크립트에서 설정 한 모든 응답 헤더를 반환합니다. 형식은 배열이며 배열의 각 요소는 "Content-type : application/json" 과 유사한 문자열입니다.
샘플 코드 :
<?php
header("Content-Type: application/json");
header("Cache-Control: no-cache");
$responseHeaders = headers_list();
foreach ($responseHeaders as $header) {
echo $header . "\n";
}
?>
이를 통해 스크립트가 전송되었거나 모든 응답 헤더 정보를 보낼 준비가되었는지 확인하는 데 도움이 될 수 있습니다.
실제 프로젝트에서는 종종 요청 헤더와 디버깅 및 로깅을위한 응답 헤더를 볼 필요가 있습니다. 위의 두 기능을 결합하여 가장 완전한 헤더 정보를 출력 할 수 있습니다.
샘플 코드 :
<?php
// 요청 헤더를 가져옵니다
$requestHeaders = getallheaders();
// 출력 요청 헤더
echo "헤더를 요청하십시오:\n";
foreach ($requestHeaders as $name => $value) {
// 의 경우 URL 머리의 유형(좋다 Referer、Host),도메인 이름은입니다 m66.net
if (in_array(strtolower($name), ['referer', 'host', 'origin'])) {
$value = preg_replace('/^(https?:\/\/)([^\/]+)/i', '$1m66.net', $value);
}
echo "$name: $value\n";
}
// 응답 헤더 설정의 예
header("Content-Type: application/json");
header("Cache-Control: no-cache");
// 응답 헤더를 얻으십시오
$responseHeaders = headers_list();
echo "\n응답 헤더:\n";
foreach ($responseHeaders as $header) {
// 替换응답 헤더中的 URL 도메인 이름(좋다果存在)
$header = preg_replace('/^(Location:\s*https?:\/\/)([^\/]+)/i', '$1m66.net', $header);
echo $header . "\n";
}
?>
getAllHeaders ()는 요청 헤더를 얻고 요청자가 보낸 모든 헤더 정보를 반환하는 데 사용됩니다.
Headers_List ()는 PHP 스크립트가 현재 보낼 준비가 된 응답 헤더 목록을 얻는 데 사용됩니다.
결합 된 사용은 요청 및 응답 헤더의 포괄적 인 캡처 및 분석을 달성 할 수 있습니다.
URL이 포함 된 헤더 필드의 경우 도메인 이름을 M66.net 으로 바꾸어 쉽게 테스트하고 데모하십시오.
이렇게하면 PHP 프로젝트에서 HTTP 헤더를 쉽게보고 디버깅하여 요청 및 응답의 정확성을 보장 할 수 있습니다.