获取访问页面的HTTP状态码可以使用PHP内置的函数或者第三方库。下面分别介绍这两种方案的实现方式。
方案一:使用PHP内置的函数
PHP内置了获取HTTP状态码的函数http_response_code($code = null)
,使用该函数可以获取当前页面的HTTP状态码。
示例一
<?php
$url = 'https://www.baidu.com';
$ch = curl_init($url);
// 设置curl参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 获取返回结果
$response = curl_exec($ch);
// 获取状态码
$status_code = http_response_code();
echo 'HTTP状态码:' . $status_code;
curl_close($ch);
?>
示例二
<?php
$url = "http://www.example.com";
$status = "";
$headers = "";
// 发送请求
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true); // 设置返回头信息
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设置返回结果为字符串
$result = curl_exec($ch);
// 分离状态码和头信息
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
list($headers, $content) = explode("\r\n\r\n", $result, 2);
echo "状态码:" . $status;
?>
方案二:使用第三方库
另一种获取HTTP状态码的方式是使用第三方库,比如Guzzle
,该库需要在项目中引入。
示例三
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://www.baidu.com',
]);
$response = $client->request('GET');
$status_code = $response->getStatusCode();
echo 'HTTP状态码:' . $status_code;
?>
示例四
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'http://www.example.com',
]);
$response = $client->request('GET', '/');
$status_code = $response->getStatusCode();
echo 'HTTP状态码:' . $status_code;
?>
以上四个示例均可以获取指定页面的HTTP状态码,不过使用第三方库可以更简洁地实现这个功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP获取访问页面HTTP状态码的实现代码 - Python技术站