正确的twitter主题标签没有正确链接?

时间:2012-09-18 20:42:56

标签: php regex twitter

我有一个基本的正则表达式函数,可以将hastags转换为链接,但我遇到的问题是它只将实际的单词转换为链接而单独留下#。我希望#成为链接的一部分......在标签内。

它产生了什么:

#<a href="">hastag</a>

我想要的是什么:

<a href="">#hastag</a>

我的PHP代码:

public function link_hashtags($text)
{
    $text = preg_replace('/(^|\s)#(\w*[a-zA-Z_]+\w*)/', '\1#<a href="http://search.twitter.com/search?q=%23\2">\2</a>', $text);
    return $text;

}

它确实正确传递了这个词,因为我不希望将标签传递给url,有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

#符号放在<a>标记内,但也取出标记之前的那个...

答案 1 :(得分:0)

如果要匹配前缀为哈希标记的单词,可以使用以下正则表达式:

/#([^\s]+)/

<a href="http://search.twitter.com/search?q=%23\1">#\1</a>

在锚点内使用\ 1的后引用。