PHP如何获取http状态码

原创
ithorizon 7个月前 (08-30) 阅读数 139 #PHP

PHP获取HTTP状态码的方法

在PHP开发过程中,我们有时需要获取当前请求的HTTP状态码。这可以用于调试或按照状态码做出相应的处理。下面将介绍几种在PHP中获取HTTP状态码的方法。

方法一:使用$_SERVER['REDIRECT_STATUS']变量

当使用Apache服务器时,可以使用$_SERVER['REDIRECT_STATUS']变量获取HTTP状态码。但是,这种方法并不适用于所有场景,由于它仅在服务器重定向后才会有效。

<?php

$httpStatusCode = $_SERVER['REDIRECT_STATUS'];

echo "HTTP状态码:".$httpStatusCode;

?>

方法二:使用headers_list()和headers_sent()函数

PHP提供了headers_list()headers_sent()函数,可以用来检查和获取已经发送的HTTP头部信息。通过遍历头部信息,我们可以获取HTTP状态码。

<?php

if (!headers_sent()) {

// 尚未发送头部信息,无法获取状态码

echo "HTTP头部信息尚未发送!";

} else {

$headers = headers_list();

foreach ($headers as $header) {

if (strpos($header, 'HTTP/') === 0) {

$parts = explode(' ', $header);

$httpStatusCode = $parts[1];

break;

}

}

echo "HTTP状态码:".$httpStatusCode;

}

?>

方法三:使用curl扩展(适用于发起请求时获取状态码)

当我们使用PHP的curl扩展发起HTTP请求时,可以通过curl句柄获取响应的HTTP状态码。

<?php

$curl = curl_init("http://example.com");

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_HEADER, true);

$response = curl_exec($curl);

$httpStatusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

curl_close($curl);

echo "HTTP状态码:".$httpStatusCode;

?>

总结

在PHP中获取HTTP状态码有多种方法,但需要注意的是,某些方法仅适用于特定场景。在实际开发中,请按照实际需求选择合适的方法。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: PHP


热门