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

来源:互联网 发布:杨紫 否认整容 知乎 编辑:程序博客网 时间:2024/05/21 17:38

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

0 0
原创粉丝点击