【问题标题】:PHP get http header response code without cURLPHP获取没有cURL的http头响应代码
【发布时间】:2012-04-01 06:25:20
【问题描述】:

我编写了一个类来检测 cURL 是否可用,如果它使用 cURL 执行 GET、POST、DELETE。在 cURL 版本中,我使用 curl_getinfo($curl, CURLINFO_HTTP_CODE); 来获取 HTTP 代码。如果 cURL 不可用,它使用 fopen() 来读取文件内容。没有cURL如何获取HTTP头代码?

【问题讨论】:

  • 如果您是直接读取 HTTP 响应流,那么您必须解析出标头和响应代码。没什么大不了的,您应该能够通过快速搜索找到示例代码。
  • 我在this answer 中发布了一些示例代码。概述了如何使用 PHP 不使用 curl 函数进行 HTTP 的更一般描述in this answer

标签: php curl http-headers


【解决方案1】:

使用get_headers:

<?php
$url = "http://www.example.com/";

$headers = get_headers($url);

$code = $headers[0];
?>

编辑: get_headers 需要额外调用,不适合这种情况。将$http_response_headers 用作suggested by hakre

【讨论】:

  • 它将自行运行请求。
  • 啊,你是对的。在这种情况下,我的回答可能不是最佳选择。
  • 从技术上讲这并没有错,因为 TS 没有发布太多代码,所以实际上并不清楚她/他到底想知道什么;)
【解决方案2】:

每当您进行一些 HTTP 交互时,同一范围内的特殊变量 $http_response_header 将包含上次 HTTP 交互产生的所有标头(包括状态行标头)。

here for an example how to parse it and obtain the status code

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 2021-08-09
    • 2014-10-12
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多