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