如何让Emlog支持UBB代码?

2019-04-20 23:40:28      站长图库      320     

本段代码可以让Emlog支持UBB代码。

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


TAGEmlogUBBUBB代码