我正在尝试找到一种方法来检查已由 PHP 设置的标头。示例:
<?php
header('Location: https://www.google.fr');
// Later in the code
$location = get_header('Location');
显然,
get_header
函数不存在,我找不到访问已设置标头的方法。
这可能吗?
评论后编辑:
headers_sent
不是我正在寻找的功能。此函数检查标头是否已发送到客户端。
headers_list()
是此任务的函数,但它返回整个标头。您需要解析标头才能找到您想要的标头:
function get_header($hdr) {
$hFull = headers_list();
$hList = array();
foreach ($hFull as $hEntry) {
$hAt = strpos($hEntry, ':');
if ($hAt === false)
$hList[strtolower(trim($hEntry))] = true;
else
$hList[strtolower(trim(substr($hEntry, 0, $hAt)))] = trim(substr($hEntry, $hAt + 1));
}
$hFind = strtolower(trim($hdr));
if (!array_key_exists($hFind, $hList))
return false;
return $hList[$hFind];
}
如果标头不存在,函数将返回
false
。""
)。headers_list()
应该删除此类标头),该函数将返回 true
。