在preg_replace中自定义时间

时间:2012-09-21 23:45:39

标签: php time preg-replace

我有一个表单,用户可以使用bbcode引用其他人。当某人按下引号按钮时,textarea值为:

[quote user=User date=1348246887 post=301]
User post text
[/quote]

现在,我转换成块的代码是:

$post = preg_replace("/\[quote user=(.*) date=(.*) post=(.*)](.*)\[\/quote\]/Uis", "<div class=\"quote\"><p>Quote by \\1 at time : \\2<a href=\"index.php?subject=".$_GET['subiect']."&post=\\3\">&nbsp;</a></p><span>\\4</span></div>", $post);

如何将时间转换为preg_replace?在preg_replace中我不能这样做,因为没有设置\ 2的值。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情(我在链接中添加了“test”,所以你可以看到链接 - 不确定你想要什么,但是一个不间断的空间不会使链接可见。)我用{ {1}}为了安全,如果“subiect”$ _GET变量(可能你想成为“主题”?)包含标记或引号。当然,您可以根据需要自定义date()字符串的第一个参数。最后,我添加了htmlentities以允许更灵活的whitespacing。我还将分隔符'/'更改为'@',因此您不需要在正则表达式中转义'/'。

更新了较旧的PHP兼容性:

\s+