这两天在用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))); ?>本文来自: