PHP获取http标题响应代码没有cURL
问题描述:
我写了一个类来检测cURL是否可用,如果它使用cURL执行GET,POST,DELETE。在cURL版本中,我使用curl_getinfo($curl, CURLINFO_HTTP_CODE);
来获取HTTP代码。如果cURL不可用,它使用fopen()读取文件内容。如何在没有cURL的情况下获取HTTP头代码?PHP获取http标题响应代码没有cURL
答
每当您进行一些HTTP交互时,同一范围内的特殊变量$http_response_header
将包含上次HTTP交互所产生的所有标头(包括状态行标头)。
请参阅here for an example how to parse it and obtain the status code。
答
使用get_headers:
<?php
$url = "http://www.example.com/";
$headers = get_headers($url);
$code = $headers[0];
?>
编辑:get_headers
需要额外的呼叫,并且不适合此方案。使用$http_response_headers
作为suggested by hakre。
使用'fsockopen()'。 – 2012-03-15 17:24:18
如果您直接读取HTTP响应流,则必须解析出标题和响应代码。没什么大不了的,你应该能够通过快速搜索找到示例代码。 – 2012-03-15 17:26:56
我已经在[此答案](http://stackoverflow.com/a/7566440/367456)中发布了一些示例代码。有关如何使用PHP执行HTTP而不使用curl函数的更一般的描述,请参见[在此答案中](http://stackoverflow.com/a/9705711/367456)。 – hakre 2012-03-15 17:36:52