让Emlog评论支持UBB代码

Posted pz2134

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让Emlog评论支持UBB代码相关的知识,希望对你有一定的参考价值。

前言:这个功能是逛孟坤博客的时候发现的,所以与孟坤大佬稍微讨论了一下图片正则匹配的问题就搞定了,在这里特别感谢孟坤大佬分享代码。
最近都会忙IDC分销系统的制作,让各位友友就等了,新年的第一篇教程都是今天才发的,抱歉。
教程:前端UI由于本站使用的是layui,所以这里就不发布前端上传图片以及插入图片地址的代码了,你们可以参考本站的前端代码。

<?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()方法即可。

以上是关于让Emlog评论支持UBB代码的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码审计理解---EMLOG某插件文件写入

EMLOG首页调用评论发布框和评论列表

让Emlog5.3.1兼容PHP7环境一些处理方法分享

UBB 代码 [textarea] - 不要在标签 [textarea][/textarea] 中将 \n 替换为 <br>

EMLOG去除伪静态分类网址中的sort方法

Emlog实现全文加标题搜索方法教程