到目前为止,这是我必须要做的事情:
<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 <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_body_link匹配并显示它的”toplist_votes“
你知道我怎么能这样做吗?
我试过了:
<?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";
?>
你知道什么是错的,为什么它不起作用?
答案 0 :(得分:3)
使用PHP库进行DOM操作,而不是正则表达式。我相信我之前使用过这个:http://simplehtmldom.sourceforge.net/。使用非常简单。因为这不是XML,PHP DOM可能不适合你。
答案 1 :(得分:0)
如果它是xHTML,那么我建议使用PHP XML解析器解析它,然后使用节点而不是正则表达式访问数据。通常正则表达式是解析html / xhmtl的坏主意。
http://php.net/manual/en/book.xml.php
上面的SimpleCode是正确的,使用DOM解析器:http://simplehtmldom.sourceforge.net/
答案 2 :(得分:0)
这个问题以及有关使用正则表达式解析HTML的所有问题都以RegEx match open tags except XHTML self-contained tags的最佳答案以史诗般的方式得到了回答。必读。
另见无畏领袖的blog。
不要使用regexp,请使用真正的解析解决方案。如果您的HTML是有效的XML / XHTML,请使用DOM或XSLTProcessor。如果您不能依赖它是有效的XHTML,请使用Beautiful Soup或@SimpleCoder引用的SimpleHtmlDom包。