PHP使用正则表达式清除超链接文本

  可以用$str = preg_replace("/<a[^>]*href=[^>]*>|<\/[^a]*a[^>]*>/i","",$strhtml); 这段来实现需求,如果想要更多解决方法,可以参看以下的。

  1、删除内容中的超链接

  

复制代码 代码如下:

  ereg_replace('<a([^>]*)>([^<]*)</a>','<font color="red">\\2</font>',$content);

  ereg_replace("<a [^>]*>|<\/a>","",$content);

  2、消除包含特定词的超链接

  

复制代码 代码如下:

  $find="this string is my find";

  $string='<font color="red">替换掉了</font>';//将超链接替换成的内容

  echo ereg_replace('<a([^>]*)>([^<]*'.$find.'[^>]*)</a>','<font color="red">\\2</font>',$content);

  3、获取超链接文本内容

  

复制代码 代码如下:

  //方法一

  preg_match_all('/<(a|a)[s]{0,1}[w=":()]*>[nrn]*(check user)[nrn]*</(a|a)>/i',$string,$matches);

  //方法二

  preg_match_all('/<a[dd]*>check user</a>/i',$string,$matches);

  print_r($matches);

  //方法三

  preg_match_all('/<a[^>]*>[^<]*</a>/i',$string,$matches);

  print_r($matches);

  //方法四

  preg_match_all('/<a.+?>check user</a>/is',$str,$arr);

  print_r($arr);

  //方法五

  preg_match_all('/<a.+?>check user</a>/is',$str,$arr);

  print_r($arr);

  我用了这句 $year = preg_replace("/<a[^>]*href=[^>]*>|<\/[^a]*a[^>]*>/i","",$yearstr);