这个功能是逛孟坤博客的时候发现的,所以与孟坤大佬稍微讨论了一下图片正则匹配的问题就搞定了,在这里特别感谢孟坤大佬分享代码。
<?php /** * 评论多功能UBB * @param [type] $comment [description] * @return [type] [description] */ function contentUBB($comment){ return $comment = preg_replace( array( '/\[b\](.*?)\[\/b\]/is', '/\[i\](.*?)\[\/i\]/is', '/\[u\](.*?)\[\/u\]/is', '/\[del\](.*?)\[\/del\]/is', '/\[color=([\w|#]*?)\](.*?)\[\/color\]/is', '/\[url=([^\"\']+)\](.*?)\[\/url\]/is', '/\[img\]([^\"\'\]\[]+)\[\/img\]/is' ), array( '<b class="comment-t-b">$1</b>', '<i class="comment-t-i">$1</i>', '<u class="comment-t-u">$1</u>', '<del class="comment-t-del">$1</del>', '<span style="color: $1" class="comment-t-color">$2</span>', '<a href="go.php?url=$1" target="_blank" class="comment-t-a links" rel="nofollow noopener">$2</a>', '<a href="$1" target="_blank" title="$1" class="comment-img"><i class="fa fa-file-image-o"></i> 查看图片</a>' ), $comment ); } ?>
以上代码加到模版目录/module.php中
然后在该文件中将$comment['content']全部替换成contentUBB($comment['content'])即可。
替换完成后,留言板就可以支持一些简单的UBB代码:比如插入图片、插入链接、字体加粗等等。
有能力的可以自己加入正则表达式,完成更多UBB功能的使用。
温馨提示:由于使用正则表达式进行替换,有可能会出现xss等一些危险漏洞,希望你们注意防范。
ps:你可能查找不到$comment['content']这有可能是模版制作者使用输出留言的变量名不同,可以在评论列表与子评论列表中找到输出留言的变量,套上contentUBB()方法即可。
正文完
发表评论