可能重复:
replace any url's within a string of text, to clickable links with php
只是一个简单的问题,当我发布像http://www.buddyweb.me这样的链接时,它会显示出来但是,但是并没有自动链接。那么我如何用<a href = "http://www.buddyweb.me">Google</a>
任何建议都是赞成的,谢谢:)
答案 0 :(得分:1)
就像here
一样function clickable($url){
$url = str_replace("\\r","\r",$url);
$url = str_replace("\\n","\n<BR>",$url);
$url = str_replace("\\n\\r","\n\r",$url);
$in=array(
'`((?:https?|ftp)://\S+[[:alnum:]]/?)`si',
'`((?<!//)(www\.\S+[[:alnum:]]/?))`si'
);
$out=array(
'<a href="$1" rel=nofollow>$1</a> ',
'<a href="http://$1" rel=\'nofollow\'>$1</a>'
);
return preg_replace($in,$out,$url);
}
答案 1 :(得分:1)
$replaced = preg_replace('/(http[s]?:\/\/[^\s]*)/i', '<a href="$1">$1</a>', $url);
答案 2 :(得分:0)
不需要preg-replace,只需在链接周围连接变量。
<?
$yourlink = "http://www.buddyweb.me";
$yourDescriptor = "Google";
$linkedlink = "<a href=\"".$yourlink.">$yourDescriptor</a>";
echo $linkedlink;
?>
答案 3 :(得分:0)
echo preg_replace("#(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)#is", "\\1<a href=\"\\2\" title=\"\\2\" rel=\"nofollow\">\\2</a>", $string);
我认为这是一个复杂的正则表达式。但是,如果您有兴趣了解更多内容,我真的很喜欢开始使用此视频http://www.youtube.com/watch?v=DRR9fOXkfRE
答案 4 :(得分:0)
根据自己的喜好调用可以返回的内容。
<?php
$link = "http://stackoverflow.com";
$name = "Stack Overflow";
echo href($link, $name);
function href($link, $name){
$link = "<a href=\"".$link.">$name</a>";
return $link;
}
?>