只是尝试preg_match
第二场比赛。
<?php
$url = "http://domain.com";
preg_match('~<table([^>]*)(class\\s*=\\s*["\']ladder-table["\'])([^>]*)>(.*?)</table>~i', file_get_contents($url), $match);
print $match[0];
?>
以下是我要找的表格:
<table class="ladder-table">Content</table>
<table class="ladder-table">Content</table> <-- [This one]
<table class="ladder-table">Content</table>
最后两个表由java脚本代码隐藏。它会影响模式吗?
答案 0 :(得分:3)
如果您想继续使用正则表达式,请使用preg_match_all:
$url = "http://domain.com";
preg_match_all('~<table([^>]*)(class\\s*=\\s*["\']ladder-table["\'])([^>]*)>(.*?)</table>~i', file_get_contents($url), $match);
print_r($match[0][1]);
这可能足以满足您的要求。但是,很难使代码足够强大以处理HTML的更改;例如,如果Content
有任何新行,则上述内容不匹配,因为您在没有.*?
修饰符的情况下检查PCRE_DOTALL
。