PHP使用preg_replace创建链接?

时间:2011-09-20 20:43:08

标签: php preg-replace

  

可能重复:
  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>

替换 http://www.buddyweb.me

任何建议都是赞成的,谢谢:)

5 个答案:

答案 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;
}
?>