熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php匹配字符中鏈接地址程序代碼

2013-11-15 12:24:52  來源: PHP編程 

  判斷一個字符串是否含有超級鏈接

 代碼如下  

  $str="ssdsf<a target=_blank >sdf</a>sdfss";
if(preg_match("/<a/s+href=[^>]*>|<//[^a]*a[^>]*>/i"$str))
{
echo "該字符串有超鏈接";
}
else
{
echo "該字符串沒有超鏈接標記";
}
?>

  
下面我們只要過濾連接部份

 代碼如下  

  <?php
echo preg_replace("/(?<=href=)([^>]*)(?=>)/i""#" "<a >你好點這裡看看</a><a >你好點這裡看看</a>");
?>

  正則/(?<=href=)([^>]*)(?=>)/

  (?<=exp) 匹配exp後面的位置
(?=exp) 匹配exp前面的位置
此正則 匹配 在 href= 之後 “>” 之前 的 非 “>” 的所有字符

  例子<a >

  找到這些字符(url)用 # 替換就可以去掉html裡的所有鏈接

  現在分享一個提取超級連接的實例

 代碼如下  

  function match_links($document) {   

  preg_match_all("<s*as*?hrefs*=s*(["])?(?()(*?)|([^s>]+))[^>]*>?(*?)</a>isx"$document$links);                       

  while(list($key$val) = each($links[])) {

  if(!empty($val))

  $match[link][] = $val;

  }

  while(list($key$val) = each($links[])) {

  if(!empty($val))

  $match[link][] = $val;

  }       

  while(list($key$val) = each($links[])) {

  if(!empty($val))

  $match[content][] = $val;

  }

  while(list($key$val) = each($links[])) {

  if(!empty($val))

  $match[all][] = $val;

  }               

  return $match;

  }


From:http://tw.wingwit.com/Article/program/PHP/201311/20902.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.