带有简单dom的搜索网站需要很长时间,需要帮助或其他解决方案

时间:2018-06-26 18:19:05

标签: php dom

我想从某个网站中获取一些日期,以供以下页面参考:Roskilde Festival Wiki 我正在使用简单的dom解析器,并具有以下php页面:

<?php
require "HtmlDomParser.php";
use Sunra\PhpSimple\HtmlDomParser;
$html = HtmlDomParser::file_get_html('https://en.wikipedia.org/wiki/Roskilde_Festival');
$table = $html->find('.wikitable',1);
$rowData = array();

foreach($table->find('tr') as $row) {
$data= array();
foreach($row->find('td') as $columnNumber => $cell) {
    $columnNumbers = [ 1, 2 ];
    // push the cell's text to the array
    if ( in_array( $columnNumber, $columnNumbers ) ) {
        $text = $cell->plaintext;
        $data[] = explode("[",$text)[0];
    }
}
$rowData[] = $data;
}

echo '<table>';
foreach ($rowData as $row => $tr) {
echo '<tr>'; 
foreach ($tr as $td)
    echo '<td>' . $td .'</td>';
echo '</tr>';
}
echo '</table>';
?>

它给了我我所需要的: 2013年6月29日至7月7日 2014年6月29日至7月6日 2015年6月27日– 7月4日 2016年6月25日– 7月3日 2017年6月24日至7月1日 2018年6月30日-7月7日

但是我也得到这个错误: 致命错误:在第140行的C:\ sample \ simplehtmldom_1_5 \ simple_html_dom.php中,超过30秒的最大执行时间

我可以做些什么来使其更快,并且我希望能最多2秒。 我是否需要运行可保存数据的cron作业,还是有更快的方法?

1 个答案:

答案 0 :(得分:0)

我已经复制了您的代码,并从github存储库中使用了该HtmlParser的最新版本。对我来说,您的代码将在两秒钟内运行。

我想,您已启用xdebug。这通常会导致这种性能缺陷。尝试不使用xdebug。

如果您已经禁用了xdebug,那么您正在运行哪个PHP版本?