如何在php中获取外部网页大小和加载时间

如何在php中获取外部网页大小和加载时间,php,curl,http-headers,Php,Curl,Http Headers,如何在php中获得加载时间和页面大小。 我使用以下技术来获得加载时间,但我们是否有更好的选择来计算加载时间。(任何从标题或其他技术获得加载时间的技术) 我只需要确认这是否是正确的技术,或者我们有更好的选择,以及如何用php计算网页大小 获取页面大小的代码 $url = 'http://xAppsol.com/'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOP

如何在php中获得加载时间和页面大小。 我使用以下技术来获得加载时间,但我们是否有更好的选择来计算加载时间。(任何从标题或其他技术获得加载时间的技术)

我只需要确认这是否是正确的技术,或者我们有更好的选择,以及如何用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);

这段代码提供了以Kb为单位的标题大小,但如何检查网页上图像和视频的大小。如何计算网页上所有内容的确切大小,以MB为单位。

据我所知,您需要解析页面并获得每个元素的大小

$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>');
}
$url='1!'http://google.com/';
$curl=curl\u init($url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
$subject=curl\u exec($curl);
//获取页面的下载大小
打印(“下载大小:.curl\u getinfo($curl,CURLINFO\u size\u Download)。”
); preg_match_all('/(?:src=)“([^”]*)”/m',$subject,$matchesrc); preg_match_all('/link.*\s*(?:href=)”([^“]*)“/m',$subject,$matcheslink); $matches=array_merge($matchesrc[1],$matcheslink[1]); $domain=parse_url($url,PHP_url_SCHEME)。“:/”。解析url($url,PHP\uURL\uHost); $path=parse_url($url,PHP_url_path); $checked=array(); foreach(匹配为$m) { 如果($m[0]=='/')) $m=$domain.$m; elseif(substr($m,0,5)!='http:'和substr($m,0,6)!='https:') $m=$domain.'/'.$path.'/'.$m; if(在数组中($m,$checked)) 继续; $checked[]=$m; $curl=curl_init($m); curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE); $subject=curl\u exec($curl); //获取元素的下载大小 打印(“下载大小:.curl\u getinfo($curl,CURLINFO\u size\u Download)。”
); }

这将搜索表单src元素(通常是图像和脚本)和
中的href(通常是css)。

据我所知,您需要解析页面并获取每个元素的大小

$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>');
}
$url='1!'http://google.com/';
$curl=curl\u init($url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
$subject=curl\u exec($curl);
//获取页面的下载大小
打印(“下载大小:.curl\u getinfo($curl,CURLINFO\u size\u Download)。”
); preg_match_all('/(?:src=)“([^”]*)”/m',$subject,$matchesrc); preg_match_all('/link.*\s*(?:href=)”([^“]*)“/m',$subject,$matcheslink); $matches=array_merge($matchesrc[1],$matcheslink[1]); $domain=parse_url($url,PHP_url_SCHEME)。“:/”。解析url($url,PHP\uURL\uHost); $path=parse_url($url,PHP_url_path); $checked=array(); foreach(匹配为$m) { 如果($m[0]=='/')) $m=$domain.$m; elseif(substr($m,0,5)!='http:'和substr($m,0,6)!='https:') $m=$domain.'/'.$path.'/'.$m; if(在数组中($m,$checked)) 继续; $checked[]=$m; $curl=curl_init($m); curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE); $subject=curl\u exec($curl); //获取元素的下载大小 打印(“下载大小:.curl\u getinfo($curl,CURLINFO\u size\u Download)。”
); }
这将搜索表单src元素(通常是图像和脚本)和
中的href(通常是css)