我正在开发自己的CMS(对于我的客户),我想在文本区域使用WysiBB(http://www.wysibb.com/)。但问题是WysiBB使用[]而不是<来保存html标签。 > (例如[h1]文本[/ h1])然后,网站无法识别[]标签。我该怎么办?
答案 0 :(得分:1)
我要感谢@isherwood给予他的帮助!没有意识到WysiBB是BBcode编辑器,因为我从未听说过BBcode。我做了什么?我已经实现了将BBCode转换为HTML的功能。
//======================== START OF FUNCTION ==========================//
// FUNCTION: bbcode_to_html //
//=====================================================================//
function bbcode_to_html($bbtext){
$bbtags = array(
'[heading1]' => '<h1>','[/heading1]' => '</h1>',
'[heading2]' => '<h2>','[/heading2]' => '</h2>',
'[heading3]' => '<h3>','[/heading3]' => '</h3>',
'[h1]' => '<h1>','[/h1]' => '</h1>',
'[h2]' => '<h2>','[/h2]' => '</h2>',
'[h3]' => '<h3>','[/h3]' => '</h3>',
'[paragraph]' => '<p>','[/paragraph]' => '</p>',
'[para]' => '<p>','[/para]' => '</p>',
'[p]' => '<p>','[/p]' => '</p>',
'[left]' => '<p style="text-align:left;">','[/left]' => '</p>',
'[right]' => '<p style="text-align:right;">','[/right]' => '</p>',
'[center]' => '<p style="text-align:center;">','[/center]' => '</p>',
'[justify]' => '<p style="text-align:justify;">','[/justify]' => '</p>',
'[bold]' => '<span style="font-weight:bold;">','[/bold]' => '</span>',
'[italic]' => '<span style="font-weight:bold;">','[/italic]' => '</span>',
'[underline]' => '<span style="text-decoration:underline;">','[/underline]' => '</span>',
'[b]' => '<span style="font-weight:bold;">','[/b]' => '</span>',
'[i]' => '<span style="font-weight:bold;">','[/i]' => '</span>',
'[u]' => '<span style="text-decoration:underline;">','[/u]' => '</span>',
'[break]' => '<br>',
'[br]' => '<br>',
'[newline]' => '<br>',
'[nl]' => '<br>',
'[unordered_list]' => '<ul>','[/unordered_list]' => '</ul>',
'[list]' => '<ul>','[/list]' => '</ul>',
'[ul]' => '<ul>','[/ul]' => '</ul>',
'[ordered_list]' => '<ol>','[/ordered_list]' => '</ol>',
'[ol]' => '<ol>','[/ol]' => '</ol>',
'[list_item]' => '<li>','[/list_item]' => '</li>',
'[li]' => '<li>','[/li]' => '</li>',
'[*]' => '<li>','[/*]' => '</li>',
'[code]' => '<code>','[/code]' => '</code>',
'[preformatted]' => '<pre>','[/preformatted]' => '</pre>',
'[pre]' => '<pre>','[/pre]' => '</pre>',
);
$bbtext = str_ireplace(array_keys($bbtags), array_values($bbtags), $bbtext);
$bbextended = array(
"/\[url](.*?)\[\/url]/i" => "<a href=\"http://$1\" title=\"$1\">$1</a>",
"/\[url=(.*?)\](.*?)\[\/url\]/i" => "<a href=\"$1\" title=\"$1\">$2</a>",
"/\[email=(.*?)\](.*?)\[\/email\]/i" => "<a href=\"mailto:$1\">$2</a>",
"/\[mail=(.*?)\](.*?)\[\/mail\]/i" => "<a href=\"mailto:$1\">$2</a>",
"/\[img\]([^[]*)\[\/img\]/i" => "<img src=\"$1\" alt=\" \" />",
"/\[image\]([^[]*)\[\/image\]/i" => "<img src=\"$1\" alt=\" \" />",
"/\[image_left\]([^[]*)\[\/image_left\]/i" => "<img src=\"$1\" alt=\" \" class=\"img_left\" />",
"/\[image_right\]([^[]*)\[\/image_right\]/i" => "<img src=\"$1\" alt=\" \" class=\"img_right\" />",
);
foreach($bbextended as $match=>$replacement){
$bbtext = preg_replace($match, $replacement, $bbtext);
}
return $bbtext;
}
//=====================================================================//
// FUNCTION: bbcode_to_html //
//========================= END OF FUNCTION ===========================//
并将其用作上述例子:
$bbtext = '[b]Text[/b]';
$html = bbcode_to_html($bbtext);
echo $html;
答案 1 :(得分:1)
API有两种方法可以处理HTML代码。
获取HTML内容
$("#editor").htmlcode();
设置HTML内容
$("#editor").htmlcode(htmlcode);
http://www.wysibb.com/docs/p9.html
我希望这可以帮助你和其他人寻找答案