检测哈希标记并获取#shine for clean url

时间:2013-11-19 11:24:04

标签: hashtag clean-urls

考虑字符串

$tring = "e.g. i want to #sleep."

能够使用

检查哈希标签

echo preg_replace('/(#\w+)/','<a href="tag.php?tag=\1">\1</a>',$tring']);

我想要做的是发送没有前面的哈希值的标记,即<a href="tag.php?tag=sleep">#sleep</a> instead of <a href="tag.php?tag=#sleep">#sleep</a>

1 个答案:

答案 0 :(得分:1)

您可以稍微修改正则表达式,以使其正常工作。

echo preg_replace('/(#)(\w+)/i', '<a href="tag.php?tag=\2">\1\2</a>', $tring);

这会创建两个分组,而不是您拥有的分组。 URL链接中仅使用第二个组(单词)。两者都用于显示测试。

这将如何运作的例子

e.g. i want to #sleep.   =>  e.g. i want to <a href="tag.php?tag=sleep">#sleep</a>.
this is a #cow           =>  this is a <a href="tag.php?tag=cow">#cow</a>
the #duck is #sleeping   =>  the <a href="tag.php?tag=duck">#duck</a> is <a href="tag.php?tag=sleeping">#sleeping</a>
#regex are @awesome #fun =>  <a href="tag.php?tag=regex">#regex</a> are @awesome <a href="tag.php?tag=fun">#fun</a>

如您所见,这也会处理字符串中的多个标记。