php收罗链接优秀正则

这两天在用PHP写个收罗措施,收罗措施收罗链接是最开始也是最基本的部门。在链接这个正则上还真是花的时间长。主要是花在一些网站的代码不类型,可是这些不类型的代码偏偏欣赏器又能同样理会,好了,不烦琐了,直接说主题。

欣赏器能理会乐成的链接代码有:

 <a href=http://enenba.com/ http:/www.huoyue.org  target=_blank >一</a> 

<a href=http://www.huoyue.org  target=_blank>二</a>  

<a href=http://www.huoyue.org>三</a>

<a href=http://www.huoyue.org  target=_blank >四</a>

<a href=http://enenba.com/’http:/www.huoyue.org’  target=_blank>五</a>

<a href=http://enenba.com/”http:/www.huoyue.org” target=_blank>六</a>

<a href  =http://enenba.com/”http:/www.huoyue.org” target=_blank >七</a>;

理会后就是这样的:。

而我们的正则就是:

<a\s.*?href\s*?=http://enenba.com/\s*([\"\']?)([^\s\>\'\"]+)\1.*?>.*?<\/a>

而PHP测试代码为:

<?php function doCode($str) { if (!is_array($str)) { $str = htmlspecialchars($str); } else { array_walk_recursive($str, "doArrCode"); } return $str; } function doArrCode(&$value) { $value = doCode($value); } function getUrl($str) { $regex = ' /<a\s.*?href\s*?=http://enenba.com/\s*([\"\']?)([^\s\>\'\"]+)\1.*?>.*?<\/a>/i'; preg_match_all($regex,$str,$data,PREG_PATTERN_ORDER); return $data[2]; } //以下为测试内容 $str="<a href= target=_blank >一</a><a href=http://www.huoyue.org target=_blank>二</a><a href=http://www.huoyue.org>三</a><a href=http://www.huoyue.org target=_blank >四</a><a href=http://enenba.com/\'http://www.huoyue.org\' target=_blank>五</a><a href=http://enenba.com/\"http://www.huoyue.org\" target=_blank>六</a><a href =http://enenba.com/\"http://www.huoyue.org\" target=_blank >七</a>"; echo "$str<br/><br/>".doCode($str)."<br/><br/>"; var_dump(doCode(getUrl($str))); ?>

本文来自:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7742.html