3

我想以毫秒为单位获取一个 url 的加载时间。它可以是 css、js 或 img url。例如像这样 - http://images.apple.com/global/nav/styles/navigation.css

我想我需要为此使用 curl,这是我目前的方法:

$url1 = 'http://images.apple.com/global/nav/styles/navigation.css';
$curl1 = curl_init();       
curl_setopt($curl1, CURLOPT_URL, $url1); 
curl_setopt($curl1, CURLOPT_RETURNTRANSFER, TRUE); 
curl_exec($curl1); 
$contime1 = curl_getinfo($curl1, CURLINFO_TOTAL_TIME);

我从这种方法获得的值太大(我将它与来自 pingdom 的值进行比较)。有人可以建议我使用适当的 curl 函数,或者另一种计算方式吗?

4

3 回答 3

2

使用microtime()功能

microtime()手册

对于前。

<?php
    $time = microtime(true);
    file('http://images.apple.com/global/nav/styles/navigation.css');
    echo "Time : ".(microtime(true) - $time)." Seconds";
?>

输出

Time : 0.31984090805054 Seconds
于 2013-03-18T05:20:21.497 回答
0
$time = microtime(true); // Gets microseconds
file('http://images.apple.com/global/nav/styles/navigation.css');
echo "Time Elapsed: ".(microtime(true) - $time)."s";
于 2013-03-18T05:22:30.227 回答
0

使用微时间和文件获取内容

<?php

$url = 'http://images.apple.com/global/nav/styles/navigation.css';
$total_time = get_load_time($url) . '';
echo 'Data retrieved in ' . $total_time . ' seconds.';

function get_load_time($url) {
  $time1 = explode(' ', microtime());
  $start = $time1[1] + $time1[0];
  @file_get_contents($url);
  $time2 = explode(' ', microtime());
  $finish = $time2[1] + $time2[0];
  return round(($finish - $start), 4);
}

?>

// 样本输出

Data retrieved in 1.7756 seconds.
于 2013-03-18T05:22:49.673 回答