匹配网址 URL 的正则表达式:
代码如下 | 复制代码 |
(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+) |
示例:PHP 正则表达式自动匹配字符串是否为 url 地址,是的话自动加上链接。
代码如下 | 复制代码 |
<?php function autolink($rurl){ $rurl = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_ \+.~#?&//=]+)', '<a href="\1" target=_blank rel=nofollow>\1 </a>', $rurl); // rel=nofollow 是告诉搜索引擎不要去抓取这个链接 if( strpos($rurl "http") === FALSE ){ $rurl = eregi_replace('(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+ )', '<a href="http://\1" target=_blank rel=nofollow >\1</a>', $rurl); }else{ $rurl = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@ :%_\+.~#?&//=]+)', '\1<a href="http://\2" target=_blank rel=nofol low>\2</a>', $rurl); } return $rurl; } ?> |
调用 autolink() 函数
代码如下 | 复制代码 |
<?php $str = 'http://www.111cn.net'; echo autolink($str); ?> |
例子1 获得https开头的例子
代码如下 | 复制代码 |
//https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)? //PHP Example: Automatically link URL's inside text. $text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text); |
例子2 直接提取页面中<a 中的url地址
代码如下 | 复制代码 |
function match_links($document) { preg_match_all("'<\s*a\s.*?href\s*=\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; } |
好了到此关于正则获得url地址也就介绍完了,上面的几个例子各有所长了,大家可以根据自己的需求来选择更合适自己的匹配验证提取网址URL正则。
时间: 2024-12-30 18:28:37