dtt5830659 2017-04-09 10:08
浏览 69
已采纳

PHP DOM解析多个页面使用while循环多次加载单页语句

I m trying to parse a post related statement from a forum site using PHP dom parser. It works when we insert individual url's of the page, but when we try to apply a while loop logic it kinda prints only one page multiple times..

my code as goes::

<?php
    set_time_limit(3600);
      $i = 1;
      $e = 839304-$i;
     while(true){
    require_once('dom/simple_html_dom.php'); 
$html =file_get_html('http://www.usmleforum.com/files/forum/2017/1/'.$e.'.php');
    foreach ($html->find("tr") as $row) {
    $element = $row->find('td.Text2',0);
    if ($element == null) { continue; }
    $textNode = array_filter($element->nodes, function ($n) {
    return $n->nodetype == 3;        //Text node type, like in jQuery     
});
    if (!empty($textNode)) {
    $text = current($textNode);
    echo $text."<br>"; 
}
}
    $i++;
}
?>

as the result indicates, it only prints the statement from page 839303, but it prints it multiple times and still loads on.. so its clear that this code is skipping the $i++ line somehow and runs again...

Any help is appreciated...

  • 写回答

1条回答 默认 最新

  • duannaxin9975 2017-04-09 10:13
    关注

    Insert $e inside while loop will fix the problem. but it is an infine loop. so try to give an exit condition for while loop like: while($i < 100) or something else.

     <?php
        set_time_limit(3600);
          $i = 0;
    
         while($i < 10){
         $e = 839303 + $i;
        require_once('dom/simple_html_dom.php'); 
    $html =file_get_html('http://www.usmleforum.com/files/forum/2017/1/'.$e.'.php');
        foreach ($html->find("tr") as $row) {
        $element = $row->find('td.Text2',0);
        if ($element == null) { continue; }
        $textNode = array_filter($element->nodes, function ($n) {
        return $n->nodetype == 3;        //Text node type, like in jQuery     
    });
        if (!empty($textNode)) {
        $text = current($textNode);
        echo $text."<br>"; 
    }
    }
        $i++;
    }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘