2017-02-09 4 views
0

как получить время загрузки и размер страницы в php. Я использую следующий метод, чтобы получить время загрузки, но у нас есть лучший вариант, чтобы вычислить время загрузки. (Любой метод, чтобы получить время загрузки из заголовка или другой техники)Как получить внешний размер веб-страницы и время загрузки в php

$t = microtime(TRUE); 
$file = file_get_contents("http://google.com/"); 
print_r($file); 
$t = microtime(TRUE) - $t; 
print "It took $t seconds!"; 

мне просто нужно, чтобы подтвердить, если это правильная техника или у нас есть лучший выбор и как рассчитать размер веб-страницы в php.

код, чтобы получить размер страницы

$url = 'http://xAppsol.com/'; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 

$response = curl_exec($ch); 

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); 
print_r($header_size); 

Этот код обеспечивает с размером заголовка, который находится в килобайт, но как проверить размер изображения и видео на веб-странице. как рассчитать точный размер всего материала на веб-странице, который будет в MB.

ответ

0

Насколько я знаю, вам нужно разобрать страницу и получить размер для каждого элемента.

$url = 'http://google.com/'; 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
$subject = curl_exec($curl); 
//get the download size of page 
print("Download size: " . curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD) .'<br>'); 

preg_match_all('/(?:src=)"([^"]*)"/m', $subject, $matchessrc); 

preg_match_all('/link.*\s*(?:href=)"([^"]*)"/m', $subject, $matcheslink); 

$matches = array_merge($matchessrc[1], $matcheslink[1]); 

$domain = parse_url($url, PHP_URL_SCHEME). '://'.parse_url($url, PHP_URL_HOST); 
$path = parse_url($url, PHP_URL_PATH); 

$checked = array(); 
foreach($matches as $m) 
{ 
    if($m[0] == '/') 
     $m = $domain.$m; 
    elseif(substr($m, 0, 5) != 'http:' and substr($m, 0, 6) != 'https:') 
     $m = $domain.'/'.$path.'/'.$m; 

    if(in_array($m, $checked)) 
     continue; 

    $checked[] = $m; 

    $curl = curl_init($m); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
    $subject = curl_exec($curl); 
    //get the download size of element 
    print("Download size: " . curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD) .'<br>'); 
} 

Это будет искать элементы формы в исходные тексты (обычно изображения и скрипты), и HREF в <link> (обычно CSS).