2

我将 simple_html_dom 用于我的社交书签网站,例如 reddit,其中每页显示 15 个链接。每次我加载页面,都需要很长时间。例如,我使用类似下面的代码从新闻网站中提取数据。

$html = file_get_html('http://www.nytimes.com');
$img= $html->find('img',6);
echo'<img src="'.$img->src.'"style="height:100px;width:100px;float:left;margin-right:5px"/>';
$title = array_shift($html->find('title'))->innertext;
echo '<p style="font-size:13px"><strong>'.$title.'</strong></p>';
foreach($html->find('div') as $element)
 if($element->class=='article_txt'){
   echo $element->find('p',0);
   } 

是不是因为我使用了这段代码,导致我的网站提取数据和显示的时间太长了?如果是,那么如何减少数据提取和显示的时间?

4

1 回答 1

2

每个新请求都会导致 file_get_html 函数获取远程数据,显然,您必须等待它完成。您应该使用 memcached http://php.net/manual/en/book.memcache.php 之类的东西缓存这些结果。设置 memcached 和 Memcache 后,您可以执行以下操作:

// You'd have to set it up before usage
$cache = new Memcache();
$key = md5('the-url-goes-here');

if (!($html = $cache->get($key)))
{
    $html = file_get_html('http://www.nytimes.com');
    $cache->set($key, $html);
}

// other code that uses $html
于 2012-12-23T03:58:39.287 回答