我想从html文件中获取具有相同类的所有标签, 我试过了:
$html = file_get_contents('http://10tv.nana10.co.il/Category/?CategoryID=400008');
preg_match_all('/<a\s+class="FooterNavigationItemValue">(.*)<\/a>/', $html, $div_array);
return var_dump($div_array);
但是我得到一个空数组,帮忙?
答案 0 :(得分:3)
正如Marc B评论的那样,使用DOM将是您最好的选择。但既然你正在寻找正则表达式:
'#<a.*?class="FooterNavigationItemValue".*?>(.*?)</a>#s'
P.S。我查看了代码中提到的网站,这段正则表达式完美地完成了它的工作。
现在解释:
.*?
之前和之后的两个class="FooterNavigationItemValue"
是为了确保字符串在class="FooterNavigationItemValue"
之前和之后的某些内容仍然匹配。
我使用(.*?)
代替(.*)
来防止正则表达式贪婪。更多信息可以在这里找到:What do lazy and greedy mean in the context of regular expressions?