php 正则字符串中外部链接代码函数

  1. function deleteemptyarray( $val )
  2. {
  3. $links ='';
  4. if( is_array( $val ) )
  5. {
  6. foreach( $val as $v =>$_v)
  7. {
  8. if( !emptyempty( $_v[0] ) )
  9. {
  10. $links .=$_v[0].'|';
  11. }
  12. }
  13. return substr($links,0,-1);
  14. }
  15. else
  16. {
  17. return false;
  18. }
  19. }
  20. function getoutlink($body)
  21. {
  22. $tempcontent = $body;
  23. preg_match_all("/<a(.*?)href=(.*?)</a>/i",$tempcontent,$tempurl);
  24. $urls =array();
  25. foreach($tempurl[0] as $value)
  26. {
  27. if(strstr($value,'http') )
  28. {
  29. if(stristr($value ,$localurl))
  30. {
  31. continue;
  32. }
  33. else
  34. {
  35. preg_match_all("/hrefs*=s*(['"]?)(.*?)\1/is", $value, $vlink);
  36. $urls[] = $vlink[2];
  37. }
  38. }
  39. }
  40. //print_r($urls);phpfensi.com
  41. $strurl = explode('|',deleteemptyarray( $urls));
  42. $tempcount = array_unique($strurl);
  43. echo '&nbsp;外链'.count($tempcount)-1;
  44. }

调用方法,代码如下:

  1. $body ="<a href=/ab.htm>aaa</a><a href=http://www.phpfensi.com>我是外部连接</a>";
  2. echo getoutlink($body);