|
php正则实现,自动匹配字符串是否为url地址,是的话自动加上链接,测试可以用.
代码如下:
<?php
function autolink($foo)
{
$foo = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="\1" target=_blank rel=nofollow>\1</a>', $foo);
if( strpos($foo, "http") === FALSE ){
$foo = eregi_replace('(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '<a href="http://\1" target=_blank rel=nofollow >\1</a>', $foo);
}else{
$foo = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\1<a href="http://\2" target=_blank rel=nofollow>\2</a>', $foo);
}
return $foo;
}
?>
调用这个函数来处理字符串如下:
<?php
$str = 'http://www.k686.com';
echo autolink($str);
?>
这里输出来的时候, http://www.k686.com 这个网址就被加上链接了.效果就像 http://www.k686.com 这一样一样的.
注意哦,上面正则匹配里有一句 rel=nofollow ,这个是告诉搜索引擎们,这个链接不要去抓取,它和我们网站没有关系.这在处理广告链接上不失是一个好办法. |
|
|