分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

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

发布时间:2023-09-06 01:18责任编辑:蔡小小关键词:HTMLDiscuz

定义文件:\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()

原文地址:http://www.cnblogs.com/chenjian/p/7688861.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved