代码之家  ›  专栏  ›  技术社区  ›  Kyle

在PHP中从表中获取数据

  •  1
  • Kyle  · 技术社区  · 16 年前

    到目前为止,这就是我要处理的问题:

       <div class="toplist">
                    <div class="toplist_left"></div>
                    <div class-"toplist_body">
                    <div class="toplist_right"></div>
                     <div class="toplist_body_rank">9</div>
                     <div class="toplist_body_link"><a href="?support=details&id=204">
    
    
    Gunz Reloaded &nbsp;&nbsp;&nbsp;<font size=1 color=#d4d2cf>Online</font></small>
    
    </a></div>
                     <div class="toplist_desc">27 7 || DDoS Protection || Hacks</div>
                     <div class="toplist_votes">5665</div>
                 </div>
                 </div>
    

    我试图找到“TopList”链接匹配的表,并显示“TopList”投票。

    你知道我怎么做吗?

    我试过这个:

    <?php
    $topsite = file_get_contents('[removed link]');
    
    preg_match(('#<div class=\"toplist_body_votes\">(.*)#', $topsite, $match) && preg_match('#<a href=\"?support=details&id=204\">#'));
    $votes = $match[1];
    
    echo "Current Votes: $votes \n";
    ?>
    

    你知道怎么了吗,为什么不行?

    3 回复  |  直到 9 年前
        1
  •  3
  •   Chris Laplante    16 年前

    不要使用正则表达式,而是使用PHP库进行DOM操作。我相信我以前用过这个: http://simplehtmldom.sourceforge.net/ . 使用非常简单。因为这不是XML,所以php dom可能对您不起作用。

        2
  •  0
  •   user201788    16 年前

    如果它是XHTML,那么我建议使用php xml解析器解析它,然后使用节点而不是regex访问数据。通常,解析html/xhmtl时,regex是一个坏主意。

    http://php.net/manual/en/book.xml.php

    上面的simplecode是正确的,使用dom解析器: http://simplehtmldom.sourceforge.net/

        3
  •  0
  •   mcintyre321    9 年前

    这个问题以及所有关于用正则表达式解析HTML的问题都以史诗般的方式回答了。 RegEx match open tags except XHTML self-contained tags . 需要阅读。

    也看到 blog 无畏的领袖。

    不要使用regexp,使用真正的解析解决方案。如果您的HTML是有效的XML/XHTML,请使用 DOM 或 XSLTProcessor . 如果您不能依赖于它是有效的XHTML,请使用 Beautiful Soup 或@simplecoder引用的simplehtmldom包。

    推荐文章