PHP-这是获取HTML内容的最快,最好的方法

时间:2018-11-17 13:31:53

标签: php html fopen fgets

我必须阅读大约1 MB的URL html内容,确切地说是926 KB。 我已经创建了两个函数。

文件大小约为1 MB的URL内容:

https://example.com/html_1MB_Content.html

这是我创建的2个函数:

function getContent1 ($url) {
    $file_handle = fopen($url, "r");
    while (!feof($file_handle)) {
       $line = fgets($file_handle);
            echo $line;
    }
    fclose($file_handle);
}

function getContent2 ($url) {
    $handle = curl_init($url);
    curl_setopt_array($handle, array(
        CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'],
        CURLOPT_ENCODING => '', 
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_FOLLOWLOCATION => 1
    ));
    $curl_response = curl_exec($handle);
    curl_close($handle);
    return $curl_response;
}

$testUrl = 'https://example.com/html_1MB_Content.html';

$result1 = getContent1 ($testUrl);

$result2 = getContent2 ($testUrl);

我想要的是最快更少的内存。在这种情况下哪个最好?

还有一个问题是,如果找到的数据停止读取,则从下至上读取页面内容?

1 个答案:

答案 0 :(得分:3)

如果您想知道执行代码需要多长时间,可以使用以下几对代码。

//put this to the start of your code..
$time_start = microtime(true); 

//here goes your code...

//and put this to the end of your code...
echo 'Total execution time in seconds: ' . (microtime(true) - $time_start).'. memory used in kb : '.echo memory_get_usage();

这将以秒为单位显示性能时间,以KB为单位显示已用内存的大小...