1、如图,我想要获取 红框框中的html内容,但是普通的正则一直获取不到:
2、原因剖析:因为html换行了,所以直接 /<h3 class="s_name"(.+?)<span>/ 是获取不到的,必须要进行换行匹配
3、换行之后,退而求其次,干脆把整个 h3里面的内容都拿来
4、代码:
preg_match_all('/<h3 class="s_name">([sS]+?)</h3>/',$content,$matches); //var_dump($matches);die; if($matches){ echo "景点名称 = ".$matches[1][0]."<br>"; }
5、我们知道(.+?)这是个很强大的匹配式,嘿嘿,其实 [sS]比它还强大,几乎包含了一切。
6、如果想隔两行,取值 那怎么办呢? 别慌,照样使用这个[sS],它很强大的。
假设 我们想要获取 上面的 【井下探幽 来一场地下探索之旅】 文字,并且是以 【<div class="intro-info=i"】为开始匹配点,那怎么办
解决代码:
preg_match_all('/<div class="intro-info-i">[sS]+?<p>([sS]+?)</p>/',$content,$matches3); 打印 $matches3 看看即可。