新手PHP代码问题,求解关于simple_html_dom

入门PHP中,不知道为什么循环读取数据无法实现,始终是重复读取同一个页面的数据,高手给指点一下,始终没招到代码的问题。


<?php
header("Content-type: text/html; charset=utf-8"); 
include('simple_html_dom.php');
echo '<ul class="postlist">';
for($page = 1;$page < 5;$page++){
    $url = 'http://www.chinaz.com/game/lol/'.$page.'.shtml';
    $html = file_get_html($url);
    $i = 0;
    foreach($html->find('.lolcatlist li') as $e){
        $item['url'] = $e->find('a',0)->href;
        $item['title'] = $e->find('h3',0)->plaintext;
        @$item['img'] = $e->find('img',0)->src;
        $articles[] = $item;
            if(!empty($articles[$i]['img'])){
            echo '<li><a href="'.$articles[$i]['url'].'"><img width="180" height="135" src="'.$articles[$i]['img'].'" alt="'.$articles[$i]['title'].'"></a></li>';
            }
        $i++;
    }
}
echo '</ul>';
?>
<style>
.postlist{
    list-style:none;
}
.postlist li{padding:20px;border:1px solid #ddd;float:left;}
</style>
 
阅读 3.5k
3 个回答

你用querylist吧,simplehtmldom太耗内存了

$articles在foreach前重新声明一下

    $articles=array();
    foreach($html->find('.lolcatlist li') as $e){
        $item['url'] = $e->find('a',0)->href;
        $item['title'] = $e->find('h3',0)->plaintext;
        @$item['img'] = $e->find('img',0)->src;
        $articles[] = $item;
        if(!empty($articles[$i]['img'])){
            echo '<li><a href="'.$articles[$i]['url'].'"><img width="180" height="135" src="'.$articles[$i]['img'].'" alt="'.$articles[$i]['title'].'"></a></li>';
        }
        $i++;
    }

你把$html = file_get_html($url);打印出来就晓得了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题