定义文件:sourcefunctionfunction_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 />|
)(
|
|
)/", ' ', $text);
}
$pregfind = array(
"/<script.*>.*</script>/siU",
'/on(mousewheel|mouseover|click|load|onload|submit|focus|blur)="[^"]*"/i',
"/(
|
|
)/",
"/<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",
"/<as+?name=.+?".">(.+?)</a>/is",
"/<br.*>/siU",
"/<spans+?style="float:s+(left|right);">(.+?)</span>/is",
);
$pregreplace = array(
'',
'',
'',
"tabletag('\1')",
'[table]',
'[tr]',
'[td]',
"tdtag('\1')",
'[/td]',
'[/tr]',
'[/table]',
""[size=".(7 - \1)."]"",
"[/size]
",
"smileycode('\1')",
"imgtag('\1')",
'1',
"
",
"[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("/(?<!
|
|^)[(/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("
[\1]", "\1
", "
", '', '', '', '', "\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]