php怎么获取状态码
-
在PHP中,可以通过以下方法获取状态码:
1. 使用`http_response_code()`函数:
这个函数不仅可以获取当前的状态码,还可以设置状态码。如果不传递参数,它将返回当前页面的状态码。例如:
“`php
$statusCode = http_response_code();
echo $statusCode;
“`
这将输出当前页面的状态码。2. 使用`$_SERVER`全局变量:
`$_SERVER`是一个存储了服务器和请求信息的数组。在其中,`$_SERVER[‘HTTP_RESPONSE_CODE’]`存储了当前页面的状态码。例如:
“`php
$statusCode = $_SERVER[‘HTTP_RESPONSE_CODE’];
echo $statusCode;
“`
这将输出当前页面的状态码。3. 使用`get_headers()`函数:
`get_headers()`函数发送一个HTTP请求到指定的URL,并返回响应的头信息。可以从中提取状态码。例如:
“`php
$headers = get_headers($url);
$statusCode = substr($headers[0], 9, 3);
echo $statusCode;
“`
这将输出指定URL返回的状态码。以上是获取状态码的三种常见方法。根据具体需求选择适合的方法即可。
9个月前 -
在 PHP 中,可以使用以下方法来获取状态码:
1. 使用内置的 `http_response_code()` 函数:该函数返回当前页面的状态码。例如,`http_response_code()` 返回 200 表示成功请求,返回 404 表示页面未找到,返回 500 表示服务器内部错误。可以在需要获取状态码的位置直接调用该函数。
“`php
$status = http_response_code();
echo “当前页面的状态码是:” . $status;
“`2. 使用 `header()` 函数获取状态码:PHP 中的 `header()` 函数可以设置 HTTP 头部信息,包括状态码。通过发送一个特定的字段,可以获取最近一次发送的状态码。
“`php
header(“HTTP/1.1 404 Not Found”);
$status = substr($_SERVER[‘SERVER_PROTOCOL’], 0, strpos($_SERVER[‘SERVER_PROTOCOL’], ‘/’)) . ‘ ‘ . 404;
echo “最近一次发送的状态码是:” . $status;
“`3. 使用 `get_headers()` 函数:`get_headers()` 函数可以获取指定 URL 的所有响应头信息,包括状态码。通过指定 URL,并解析响应头信息,可以获取状态码。
“`php
$headers = get_headers(“https://example.com”);
$status = explode(” “, $headers[0])[1];
echo “https://example.com 的状态码是:” . $status;
“`4. 使用 `curl` 扩展:可以使用 `curl` 扩展来发送 HTTP 请求,并获取响应信息。在获取响应信息后,可以解析响应头部信息,获取状态码。
“`php
$ch = curl_init(“https://example.com”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$headers = curl_getinfo($ch);
$status = $headers[‘http_code’];
echo “https://example.com 的状态码是:” . $status;
“`5. 使用 `file_get_contents()` 函数:可以通过发送 HTTP 请求并获取响应内容,然后通过解析响应头部信息,获取状态码。
“`php
$context = stream_context_create([‘http’ => [‘ignore_errors’ => true]]);
$response = file_get_contents(“https://example.com”, false, $context);
$headers = $http_response_header;
list($protocol, $status, $message) = explode(‘ ‘, $headers[0], 3);
echo “https://example.com 的状态码是:” . $status;
“`这些方法可以在不同的场景中使用,根据具体的需求选择适合的方法来获取状态码。
9个月前 -
获取状态码可以通过以下方式:
1. 使用curl库发送HTTP请求并获取状态码:通过使用php的curl库,可以发送HTTP请求,并通过`curl_getinfo()`函数获取HTTP响应的状态码。具体操作流程如下:
– 使用`curl_init()`函数初始化curl句柄。
– 使用`curl_setopt()`函数设置url地址、设置返回响应头信息等参数。
– 使用`curl_exec()`函数执行请求,并通过`curl_getinfo()`函数获取状态码。“`php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ‘http://example.com’);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
“`2. 使用file_get_contents函数获取状态码:`file_get_contents()`函数可以读取文件内容,也可以通过指定URL来获取网页内容。可以通过`$http_response_header`全局变量获取HTTP响应的状态码。具体操作流程如下:
– 使用`file_get_contents()`函数获取网页内容,并通过将`$http_response_header`赋值给一个变量来获取响应头信息。
– 使用正则表达式或其他方法解析响应头信息,提取出状态码。“`php
$response = file_get_contents(‘http://example.com’);preg_match(‘/HTTP\/\d\.\d (\d+)/’, $http_response_header[0], $matches);
$status_code = $matches[1];
“`3. 使用PHP的Guzzle库获取状态码:Guzzle是一个流行的HTTP客户端库,可以用来发送HTTP请求并处理响应。具体操作流程如下:
– 安装Guzzle库,可以使用Composer进行安装。
– 使用Guzzle发送HTTP请求,并使用`getStatusCode()`方法获取状态码。“`php
require ‘vendor/autoload.php’;
use GuzzleHttp\Client;$client = new Client();
$response = $client->request(‘GET’, ‘http://example.com’);
$status_code = $response->getStatusCode();
“`以上是三种常用的获取HTTP状态码的方法,根据具体需求选择适合的方法即可。
9个月前