php如何使用BBCode

超级大笨狼 2012-04-28 10:52:12
php如何使用BBCode?
...全文
367 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-05-09
  • 打赏
  • 举报
回复
这个必须用一个栈来实现,array+strchr+substr_replace就足够实现bbcode了。。
up1325 2012-05-09
  • 打赏
  • 举报
回复
个房间风光好
helloDongXiu 2012-04-28
  • 打赏
  • 举报
回复
BBCode是Bulletin Board Code的缩写,有译为「BB代码」者,属于轻量标记语言(Lightweight Markup Language)的一种,如字面上所显示的,它主要是使用在BBS、论坛、Blog等网络应用上。BBcode的语法通常为 [标记] 这种形式,即语法左右用两个中括号包围,以作为与正常文字间的区别。系统解译时遇上中括号便知道该处是BBcode,会在解译结果输出到用户端时转换成最为通用的HTML语法。
BBcode有两个主要目的:
  1. 便利
  最为通用的HTML语法虽然已相当简单易懂,但仍需要一定时间学习后才能上手,因此BBcode采用更为直觉易学的语法,转换为HTML的工作则交由系统来代劳。
  2. 安全
  过去BBS、论坛、Blog也曾经设计开放HTML语法让用户使用,但却衍生出语法输入错误时造成整页排版错乱、有心人利用HTML语法进行XSS式的攻击与破坏等问题。由于BBcode的转换为系统机械式的行为,所以可以有效避免人为输入错误的问题,而BBcode为预先设计好的语法,也就是说意图以BBcode达成所有的HTML语法效果是不可能的,相当于一种语法过滤,如此便可避免所有可能发生的恶意破坏。
  BBcode并没有一个共同的标准,各个BBS、论坛、Blog等网络应用程序可能会有自己独创的BBcode,但基本上仍有一些语法因为被广泛采用而成为共通语法。
如:

<?php
/*
* Prepare the rule set
*/
$arrayBBCode=array(
''=> array('type'=>BBCODE_TYPE_ROOT,
'childs'=>'!i'),
'b'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<b>',
'close_tag'=>'</b>'),
'u'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<u>',
'close_tag'=>'</u>',
'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
'i'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<i>',
'close_tag'=>'</i>',
'childs'=>'b'),
);
/*
* Parsed Text
*/
$text=<<<EOF
No parse Test :)
Parsed, with smiley :(
Parsed, with no smiley :D
EOF;
/*
* Init the parser
*/
$BBHandler=bbcode_create($arrayBBCode);
/*
* Add Smiley rules to parser
*/
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler, ":(", "<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler, ":D", "<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler, ":p", "<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler, ":|", "<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler, ":6:", "<img src=\"six.gif\" alt=\":6:\" />");
/*
* Parse the text
*/
echo bbcode_parse($BBHandler,$text);
?>

以上例程会输出:

<i> No parse Test </i> <img src="smiley.gif" alt=":)" />
<b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b>
<u> Parsed, with no smiley :D </u>
shenopkss 2012-04-28
  • 打赏
  • 举报
回复
bbPress插件BBcode

效果预览:http://bbshowcase.org/forums/topic/new-bbpress-plugin-bbcode-lite/page/2
插件下载地址:http://bbpress.org/plugins/topic/bbcode-lite/bbcode-lite.zip
使用方法:
1.下载文件并解压;
2.将bbcode-lite.php上传到my-plugins文件夹;
3.在后台插件里面激活。
乌镇程序员 2012-04-28
  • 打赏
  • 举报
回复

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧