我需要减少脚本的加载时间。这是卷曲和简单的解析dom。 这是我的脚本,我需要帮助:( 它持续约2分钟,我需要分析很多不同的页面!如何减少curl和解析html的加载时间
require_once ("simple_html_dom.php");
function curl ($page){
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "URL");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "POSTFIELDS");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
ob_end_clean();
return $result;
}
$start = microtime(true);
set_time_limit(0);
$text = "here text of last page";
$i = 0;
while(strpos(str_get_html(curl($i)), $text) == null){
$html = str_get_html(curl($i));
foreach($html->find('div#box-container-inner div.box') as $e){
PRINT etc... only for test
}
echo "parsata la pagina ".($i+1)."<br>";
$i++;
}
$time_elapsed_secs = (microtime(true) - $start)/60;
echo $time_elapsed_secs;
所以,一些意见。您似乎在每个循环中运行两次CURL(一次评估while循环条件,一次设置“$ html”)并将结果字符串转换为每个循环的对象。你可以尝试'while(strpos(($ html = str_get_html(curl($ i))),$ text)=== null){'并移除$ html = str_get_html(curl($ i));'line 。 –
脚本运行时有多少页面正在读取,出于好奇? –
@ChrisForrence如果我写while(strpos(($ html = str_get_html(curl($ i))),$ text)=== null){没有第一行while,我只得到echo $ time_elapsed_secs; :( 我必须解析大约17/18页,它是一个动态内容 – Joseph