今天一个客户的网站,在内容中输入了网址,需要自动对这个网址加上超链接,下面的函数能实现:
<?php
function URLtolink($str){
preg_match_all('/((http|ftp|https):\/\/)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\
[email protected]?^=%&\/~+#-])?/',$str,$arr);
if(!$arr[0]){
return $str;
}
$replaceOnce = function($needle,$replace,$haystack){
$pos = strpos($haystack, $needle);
if($pos===false){return $haystack;}
return substr_replace($haystack,$replace,$pos,strlen($needle));
};
$_tmp = [];
foreach($arr[0] as $v){
$tmp = explode($v,$str);
$_tmp[]=$tmp[0];
$_tmp[]="<a href='{$v}' target='_blank'>{$v}</a>";
$str = $replaceOnce($tmp[0].$v,'',$str);
}
return join($_tmp,' ');
}
$str = "你好http://www.weixuecn.cn免备案空间www.idc-gz.com南雄论坛http://bbs.nxmyhome.cn";
echo URLtolink($str);
?>
本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。
本文地址:http://www.xlkjgs.com/notes/html/521.html