如何将URL文本设为链接?

时间:2010-05-29 15:12:18

标签: php

在Facebook或Twitter上说,当我输入“www.google.com”并提交时,它就会成为一个链接。我如何用PHP编写代码?我是否使用正则表达式来获取www开始和.com结束的位置?

这是他们这样做的吗?

<?PHP 
//some regular expression to get www and .com part
$link="<a href='$url'>$url</a>";
echo $link;
?>

如何编写正则表达式以获取“www”和“.com”部分?

对于Twitter的@obama,奥巴马将成为奥巴马网站的链接。 他们使用什么正则表达式来获取@之后和空格之前的文本?

2 个答案:

答案 0 :(得分:7)

<?php

$str = "Lorem http://myyn.org dolor sit amet, http://google.com adipisicing ..";

$str = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is",
                    "\\1<a href=\"\\2\">\\2</a>", 
                    $str); 

echo $str . "\n";

?>

示例:

$ php 2935574.php 
Lorem <a href="http://myyn.org">http://myyn.org</a> dolor sit amet, \
<a href="http://google.com">http://google.com</a> adipisicing elit.

答案 1 :(得分:3)

对于Twitter,您可以使用类似的东西。

$str = "@obama This is a test";
$str = preg_replace('/@([\w-]+)/', '@<a href="http://twitter.com/\\1">\\1</a>', $str);
echo $str; // @<a href="http://twitter.com/obama">obama</a> this is a test