我必须阅读大约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);
我想要的是最快和更少的内存。在这种情况下哪个最好?
还有一个问题是,如果找到的数据停止读取,则从下至上读取页面内容?
答案 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为单位显示已用内存的大小...