php の通常のハイパーリンクをフィルターし、リンク テキストが URL かどうかを判断します preg_replace_callback 関数の使用法
$str = '<a class="style" href="http://www.scutephp.com/" target="_blank">www.scutephp.com</a> <a href="http://www.scutephp.com">cxybl</a> 过滤超链接'; $str = filter_url($str);
関数コードは次のとおりです:
function filter_url($str){ return preg_replace_callback("/<a[^>]+>(.+?)<\/a>/i","filter_url_callback",$str); } function filter_url_callback($matchs){ $str = $matchs[1]; if(!$str) return ''; $arr = array('www.','http://','.com','.cn','.org','.net','.cc'); foreach($arr AS $k=>$v){ if(stripos($str,$v) !==false) return ''; } return $str; }
ハイパーリンクのテキストが www.scutephp.com の URL である場合も除外されますが、純粋なテキストの場合は保持されます。