我有一个表单,用户可以使用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\"> </a></p><span>\\4</span></div>", $post);
如何将时间转换为preg_replace?在preg_replace中我不能这样做,因为没有设置\ 2的值。
答案 0 :(得分:2)
尝试这样的事情(我在链接中添加了“test”,所以你可以看到链接 - 不确定你想要什么,但是一个不间断的空间不会使链接可见。)我用{ {1}}为了安全,如果“subiect”$ _GET变量(可能你想成为“主题”?)包含标记或引号。当然,您可以根据需要自定义date()字符串的第一个参数。最后,我添加了htmlentities
以允许更灵活的whitespacing。我还将分隔符'/'更改为'@',因此您不需要在正则表达式中转义'/'。
更新了较旧的PHP兼容性:
\s+