向提及url的文本添加HREF链接(使用preg_replace)


Adding HREF links to text mentioning URLs (using preg_replace)

我知道这个问题以前已经问过很多次了,但我就是不能让我的特定实现工作,所以想知道是否有人可以启发我的错误方式?

我在我的网站上有一个Twitter提要,并且(使用PHP)想用相关的HTML锚点和HREF替换Twitter中提到的任何url。

一个例子可以是…

No BlackBerry 10 smartphones till Q4 2012: A bad day for BlackBerry fans today after it was revealed that due to... http://t.co/lNEdUUef

我正在使用下面的preg_replace来尝试改变这个…

$tweet2 = preg_replace('#http://'S+#i', '<a href="$0">$0</a>', $tweet);

不幸的是,这并没有产生任何差异,文本保持不变。

谁能指出我做错了什么并提出相应的建议?

尝试如下:

$tweet2 = preg_replace('#http://('S+)#i', '<a href="$0">$0</a>', $tweet);

试试这个

$tweet2 = preg_replace( '#(http:'/'/[^ ]+)#i', '<a href="$1">$1</a>', $tweet );

应该能正常工作