当前位置: 首页 > 图文教程 > 网络编程 > PHP > 一个用PHP实现的UBB类!

PHP
URL Rewrite的设置方法
php和js交互一例-PHP教程,PHP应用
推荐个功能齐全的发送PHP邮件类
推荐php模板技术[转]
菜鸟学PHP之Smarty入门
Smarty模板快速入门
笑谈配置,使用Smarty技术
SMARTY学习手记
如何隐藏你的.php文件
phpfans留言版用到的数据操作类和分页类
phpfans留言版用到的install.php
用php实现像JSP,ASP里Application那样的全局变量
自动分页的不完整解决方案
FCKeditor的安装(PHP)
mysql5详细安装教程
isset和empty的区别
php5.2时间相差8小时
安装APACHE
PHP has encountered an Access Violation
MYSQL环境变量

一个用PHP实现的UBB类!


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 130 ::
收藏到网摘: n/a

       <?php
  /*
  如有转载,请注明作者
  
  作者: 何志强
  文件: ubb.php
  备注: 说是改进,其实核心函数parse()已经完全重写了,而且思路也是不一样的。
  不过仍是受何志强的例子的启发,而且测试的例子还有URLCHECK等几个函数也是沿用的何志强的程序,谢谢何志强。
  目前还没有颜色的功能,但我会加入的。
  如果在程序上有什么BUG或不便的地方,请给我MAIL。
  谢谢!
  改进功能:
  对字符串进行UBB编码,该类目前只支持下列几个简单且实用的编码:
  1. URL裢接
  http://www.phpexe.com/
  http://头可以不需要
  如phpexe.com也是可以的。
  2. Email裢接
  [email protected]
  3. 图片裢接
  
  同URL链接一样,前面的http也可以不要。
  4. 文字方面
  粗体字
  斜体字
  加下划线
  
  1号标题字
  ...
  6号标题字
  
  
  
  [tt][/tt]
  [s][/s]
  
  [em][/em]
  [strong][/strong]
  [code][/code]
  [samp][/samp]
  [kbd][/kbd]
  [var][/var]
  [dfn][/dfn]
  [cite][/cite]
  
  
  
  注意以下几点:
  1. url,email,img等标签是不分大小写的.
  2. 在标签中不允许有TAB键出现,但空格允许。
  3. 该类要调用htmlencode,htmlencode4textarea,emailcheck函数和urlcheck类.
  4. 修改后支持嵌套,但url,email,img这三个标签不是允许嵌套的。
  技术资料:
  Ultimate Bulletin Board
  http://www.ultimatebb.com/
  What is UBB Code
  http://www.scriptkeeper.com/ubb/ubbcode.html
  */
  
  include("urlcheck.php");
  include("otherfunc.php"); //这两个文件的内容,附在最后。
  
  //ubbcode类
  class ubbcode{
  var $call_time=0;
  //可处理标签及处理函数对应表
  var $tags = array( //小写的标签 => 对应的处理函数
  'url' => '$this->url',
  'email' => '$this->email',
  'img' => '$this->img',
  'b' => '$this->simple',
  'i' => '$this->simple',
  'u' => '$this->simple',
  'tt' => '$this->simple',
  's' => '$this->simple',
  'strike' => '$this->simple',
  'h1' => '$this->simple',
  'h2' => '$this->simple',
  'h3' => '$this->simple',
  'h4' => '$this->simple',
  'h5' => '$this->simple',
  'h6' => '$this->simple',
  'sup' => '$this->simple',
  'sub' => '$this->simple',
  'em' => '$this->simple',
  'strong' => '$this->simple',
  'code' => '$this->simple',
  'samp' => '$this->simple',
  'kbd' => '$this->simple',
  'var' => '$this->simple',
  'dfn' => '$this->simple',
  'cite' => '$this->simple',
  'small' => '$this->simple',
  'big' => '$this->simple',
  'blink' => '$this->simple'
  );
  //url裢接属性
  var $attr_url;
  //url合法性检查对象
  var $urlcheck;
  
  function ubbcode($attr_url){
  $this->attr_url = ''.$attr_url;
  $this->urlcheck = new urlcheck();
  }
  
  //对$str进行UBB编码解析
  function parse($str){
  $this->call_time++;
  $parse = ''.htmlencode($str);
  
  $ret = '';
  while(true){
  $eregi_ret=eregi("\[[#]{0,1}[[:alnum:]]{