Php 匹配特定UL之间的所有内容
我试图匹配这个特定ul之间的所有内容,但我无法让它匹配任何内容。任何帮助都将不胜感激 HTMLPhp 匹配特定UL之间的所有内容,php,html,regex,Php,Html,Regex,我试图匹配这个特定ul之间的所有内容,但我无法让它匹配任何内容。任何帮助都将不胜感激 HTML
PHP
if(preg#u match#u all(“#(**?
#“,$id_html,$matches)){
回声“找到匹配”;
}
否则{
回显“未找到匹配项”;
}
将XML/HTML与Regexp匹配是您不想做的事情。相信我
我建议你尝试使用或
快速猜测:文本中有换行符。这意味着您需要一个标志来使
匹配换行符。它是s
标志
"abc\ndef" =~ /abc.+def/ -> no match
"abc\ndef" =~ /abc.+def/s -> match
看一看
<>但不要考虑使用正则表达式。解析HTML(或XML)应该使用这些格式的解析器来完成。正则表达式应该更像这样
/<ul class='pagination_tabs'.'[^>]*<\/ul>/i`
如果你不打算回答这个问题,你应该用评论来代替。作为一个明确的答案,这是胡说八道。出于性能考虑或仅仅出于方便,我可以想到数千种使用regexp从HTML提取数据的有效案例(一个regexp代替50行嵌套搜索是一个简单的选择)。对于这个具体案例,这是可以理解的建议,但仍然不是答案。我将研究这个解决方案。感谢您想要解析现有的html而不是PHP代码,您可能应该使用客户端javascript。究竟为什么需要jquery呢?更简单的语法。为什么要用PHP解析现有的HTML?我不是在说PHP。我说的是驱动jquery的东西提供的本地DOM API:JavaScript。但是!我甚至在早上用它来煮咖啡,它比咖啡机快,而且更标准。
$doc = new DomDocument();
$doc->load('myfile.html');
$ul = $dom->documentElement->getElementById('pagination');
"abc\ndef" =~ /abc.+def/ -> no match
"abc\ndef" =~ /abc.+def/s -> match
/<ul class='pagination_tabs'.'[^>]*<\/ul>/i`
if($('ul.pagination_tabs li').length > 0){ alert 'Exists'; )