判斷一個字串是否含有超級連結
代碼如下 |
|
$str="ssdsf<a target='_blank' href='http://www.45it.net/' >sdf</a>sdfss"; if(preg_match("/<a/s+href=[^>]*>|<//[^a]*a[^>]*>/i",$str)) { echo "該字串有超連結"; } else { echo "該字串沒有超連結標記"; } ?> |
下面我們只要過濾串連部份。
代碼如下 |
|
<?php echo preg_replace("/(?<=href=)([^>]*)(?=>)/i","#", "<a href='www.45it.net'>你好,點這裡看看</a><a href='www.45it.net'>你好,點這裡看看</a>"); ?> |
正則:/(?<=href=)([^>]*)(?=>)/
(?<=exp) 匹配exp後面的位置
(?=exp) 匹配exp前面的位置
此正則 匹配 在 href= 之後 “>” 之前 的 非 “>” 的所有字元
例子:<a href='www.45it.net '>
找到這些字元(url)用 # 替換,就可以去掉html裡的所有連結。
現在分享一個提取超級串連的執行個體
代碼如下 |
|
function match_links($document) { preg_match_all("'<s*as.*?hrefs*=s*(["'])?(?(1)(.*?)1|([^s>]+))[^>]*>?(.*?)</a>'isx",$document,$links); while(list($key,$val) = each($links[2])) { if(!empty($val)) $match['link'][] = $val; } while(list($key,$val) = each($links[3])) { if(!empty($val)) $match['link'][] = $val; } while(list($key,$val) = each($links[4])) { if(!empty($val)) $match['content'][] = $val; } while(list($key,$val) = each($links[0])) { if(!empty($val)) $match['all'][] = $val; } return $match; } |