定义文件:\source\function\function_editor.php
函数定义:

function html2bbcode($text) {$text = strip_tags($text, '<table><tr><td><b><strong><i><em><u><a><div><span><p><strike><blockquote><ol><ul><li><font><img><br><br/><h1><h2><h3><h4><h5><h6><script>');if(ismozilla()) {$text = preg_replace("/(?<!<br>|<br \/>|\r)(\r\n|\n|\r)/", ' ', $text);}$pregfind = array("/<script.*>.*<\/script>/siU",'/on(mousewheel|mouseover|click|load|onload|submit|focus|blur)="[^"]*"/i',"/(\r\n|\n|\r)/","/<table([^>]*(width|background|background-color|bgcolor)[^>]*)>/siUe","/<table.*>/siU","/<tr.*>/siU","/<td>/i","/<td(.+)>/siUe","/<\/td>/i","/<\/tr>/i","/<\/table>/i",'/<h([0-9]+)[^>]*>/siUe','/<\/h([0-9]+)>/siU',"/<img[^>]+smilieid=\"(\d+)\".*>/esiU","/<img([^>]*src[^>]*)>/eiU","/<a\s+?name=.+?\".\">(.+?)<\/a>/is","/<br.*>/siU","/<span\s+?style=\"float:\s+(left|right);\">(.+?)<\/span>/is",);$pregreplace = array('','','',"tabletag('\\1')",'[table]','[tr]','[td]',"tdtag('\\1')",'[/td]','[/tr]','[/table]',"\"[size=\".(7 - \\1).\"]\"","[/size]\n\n","smileycode('\\1')","imgtag('\\1')",'\1',"\n","[float=\\1]\\2[/float]",);$text = preg_replace($pregfind, $pregreplace, $text);$text = recursion('b', $text, 'simpletag', 'b');$text = recursion('strong', $text, 'simpletag', 'b');$text = recursion('i', $text, 'simpletag', 'i');$text = recursion('em', $text, 'simpletag', 'i');$text = recursion('u', $text, 'simpletag', 'u');$text = recursion('a', $text, 'atag');$text = recursion('font', $text, 'fonttag');$text = recursion('blockquote', $text, 'simpletag', 'indent');$text = recursion('ol', $text, 'listtag');$text = recursion('ul', $text, 'listtag');$text = recursion('div', $text, 'divtag');$text = recursion('span', $text, 'spantag');$text = recursion('p', $text, 'ptag');$pregfind = array("/(?<!\r|\n|^)\[(\/list|list|\*)\]/", "/<li>(.*)((?=<li>)|<\/li>)/iU", "/<p.*>/iU", "/<p><\/p>/i", "/(<a>|<\/a>|<\/li>)/is", "/<\/?(A|LI|FONT|DIV|SPAN)>/siU", "/\[url[^\]]*\]\[\/url\]/i", "/\[url=javascript:[^\]]*\](.+?)\[\/url\]/is");$pregreplace = array("\n[\\1]", "\\1\n", "\n", '', '', '', '', "\\1");$text = preg_replace($pregfind, $pregreplace, $text);$strfind = array(' ', '<', '>', '&');$strreplace = array(' ', '<', '>', '&');$text = str_replace($strfind, $strreplace, $text);return dhtmlspecialchars(trim($text));
}

使用举例:

require_once libfile('function/editor');
$html='<strong>这里是加粗文本</strong>';
$bbcode = html2bbcode($html);
echo $bbcode;
//输出:[b]这里是加粗文本[/b]

Discuz!开发之HTML转Discuz代码(bbcode)函数html2bbcode()相关推荐

  1. Discuz开发之HTML转Discuz代码(bbcode)函数html2bbcode()

    定义文件:\source\function\function_editor.php 函数定义: function html2bbcode($text) { $text = strip_tags($te ...

  2. Discuz!开发之DB、CT类解析

    DB类 函数 功能 DB::table($tablename) 获取正确带前缀的表名,转换数据库句柄 DB::delete($tablename, 条件,条数限制) 删除表中的数据 DB::inser ...

  3. Webservice开发之xsd文件示例代码

    场景 SpringBoot整合spring-ws开发webservice接口(全流程详细教程)参照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  4. 安卓开发之apk自动安装代码

    1.在清单文件里(AndroidManifest.xml)添加权限 <uses-permission android:name="android.permission.REQUEST_ ...

  5. 微信公众号开发之 “`高级接口`” 总结

    微信公众号开发之 "高级接口" 总结 代码如下: <?php// $weixin = new class_weixin("", "") ...

  6. 二、Unity编辑器开发之ContextMenu

    ContextMenu属性,允许我们在Inspect检视面板对Component组件添加菜单功能. public ContextMenu (string itemName); public Conte ...

  7. 调用discuz编辑器发布帖子显示html代码的解决办法

    在discuz二次开发中调用discuz的编辑器是一件在所难免的事情,然而discuz的开发文档少得可怜:因此在二次开发的时候查看源码和各种莫名其妙的问题着实令人摸不着头脑.前面讲解了一下调用disc ...

  8. 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...

    本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...

  9. ios html清除缓存,iOS开发之1行代码实现缓存计算及清除缓存

    话不多说,直接撸代码 // // gzhCache.h // cache // // Created by 郭志贺 on 2020/5/27. // Copyright © 2020 郭志贺. All ...

  10. tableview插入刷新_iOS开发之UITableView与UISearchController实现搜索及上拉加载,下拉刷新实例代码...

    废话不多说了,直接给大家贴代码了. 具体代码如下所示: #import "ViewController.h" #import "TuanGouModel.h" ...

最新文章

  1. java单循环 比较得分_java – 为什么两个单独的循环比一个快?
  2. Javascript基础知识篇(5): 面向对象之链式调用
  3. .NET开发的一些积累
  4. 数据结构栈队列链表数组
  5. Linux中的大于号 双大于号 大于号:覆盖 追加 正确与错误都输出至指定文件
  6. 9i DB_FILE_MULTIBLOCK_READ_COUNT参数和extent大小的设置
  7. Dapr微服务应用开发系列4:状态管理构件块
  8. b 树查找时间复杂度_心里没点 B 树。。。
  9. python脚本去除文件名里的空格
  10. DeFi 借贷协议 NAOS Finance 完成种子轮融资
  11. 云原生生态周报 Vol. 3 | Java 8 ❤️ Docker
  12. Drozer的安装与使用 | Android逆向工具
  13. 计算机音乐名词解释,音乐常见名词解释
  14. 如何通过校园招聘,进入互联网大厂?
  15. php 开源cms 族谱,bloofoxCMS
  16. Ipad软件paper破解方法
  17. php和html关于读取文件的小项目
  18. 【Vue项目实战】vue.js2.5 饿了么APP(1)概述+项目准备
  19. Java 微信支付接口(统一下单,异步回调,订单退款,取消订单)
  20. 使用barrier共享键鼠

热门文章

  1. python数据分析入门到实战知了课堂_价值699元知了课堂零基础学Python 21天搞定Python分布爬虫...
  2. 前言-小迪web安全渗透培训视频笔记
  3. 倍福---绝对值编码器位置保存
  4. 毕业设计 基于STM32停车管理系统 - 物联网
  5. 通过python实现txt中,字母概率的计算,以及信源熵的计算,并且输出
  6. 2021蓝桥杯省赛c++A
  7. Arcgis数据集如何以线性单位做投影
  8. matlab+dds正弦表,FPGA模拟DDS正弦波信号源1
  9. SiamFC论文解读及代码实现
  10. 如何使用使用PS批量制作字幕