php怎么获取状态码

飞飞 其他 133

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在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个月前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在 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个月前 0条评论
  • 飞飞的头像
    飞飞
    Worktile&PingCode市场小伙伴
    评论

    获取状态码可以通过以下方式:

    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个月前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部