PHP获取响应时间和http状态代码相同的请求

时间:2016-02-07 12:42:39

标签: php curl

我可以使用Curl获取URL的HTTP状态代码,我可以通过执行以下操作来获取URL的响应时间...

<?php
// check responsetime for a webbserver
function pingDomain($domain){

    $starttime = microtime(true);

    // supress error messages with @
    $file      = @fsockopen($domain, 80, $errno, $errstr, 10);
    $stoptime  = microtime(true);
    $status    = 0;

        if (!$file){
            $status = -1;  // Site is down
        } else {
            fclose($file);
            $status = ($stoptime - $starttime) * 1000;
            $status = floor($status);
        }

    return $status;
}
?>

但是,我正在努力想办法使用相同的请求获取HTTP状态代码响应时间。如果可以通过卷曲来做到这一点很棒。

注意:我不希望/需要来自网址的任何其他信息,因为这会降低我的流程。

1 个答案:

答案 0 :(得分:0)

请使用get_headers()函数返回状态码,参考php文档 - http://php.net/manual/en/function.get-headers.php

<?php 

$url = "http://www.example.com";
$header = get_headers($url);
print_r($header);
$status_code = $header[0];
echo $status_code;
?>

Output -->

Array
(
    [0] => HTTP/1.0 200 OK
    [1] => Cache-Control: max-age=604800
    [2] => Content-Type: text/html
    [3] => Date: Sun, 07 Feb 2016 13:04:11 GMT
    [4] => Etag: "359670651+gzip+ident"
    [5] => Expires: Sun, 14 Feb 2016 13:04:11 GMT
    [6] => Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
    [7] => Server: ECS (cpm/F9D5)
    [8] => Vary: Accept-Encoding
    [9] => X-Cache: HIT
    [10] => x-ec-custom-error: 1
    [11] => Content-Length: 1270
    [12] => Connection: close
)

HTTP/1.0 200 OK