PHP get_headers()替代方案

new*_*w_b 6 php httpresponse http-headers

我需要一个PHP脚本来读取每个URL请求的HTTP响应代码.

就像是

$headers = get_headers($theURL);
return substr($headers[0], 9, 3);
Run Code Online (Sandbox Code Playgroud)

问题是get_headers()函数在服务器级别被禁用,作为策略.因此它不起作用.

问题是如何获取URL的HTTP响应代码?

Mat*_* G. 11

如果启用了cURL,则可以使用它来获取整个标头或仅获取响应代码.以下代码将响应代码分配给$response_code变量:

$curl = curl_init();
curl_setopt_array( $curl, array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => 'http://stackoverflow.com' ) );
curl_exec( $curl );
$response_code = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
curl_close( $curl );
Run Code Online (Sandbox Code Playgroud)

要获得整个标头,您可以发出HEAD请求,如下所示:

$curl = curl_init();
curl_setopt_array( $curl, array(
    CURLOPT_HEADER => true,
    CURLOPT_NOBODY => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_URL => 'http://stackoverflow.com' ) );
$headers = explode( "\n", curl_exec( $curl ) );
curl_close( $curl );
Run Code Online (Sandbox Code Playgroud)