一个改进的UBB类
<?php(做为现在的主流开发语言)/*
如有转载,请注明作者
原作者: 何志强
改进: SonyMusic[ sonymusic@163.net ]
文件: ubb.php(做为现在的主流开发语言)
备注: 说是改进,其实核心函数parse()已经完全重写了,而且思路也是不一样的。
不过仍是受何志强的例子的启发,而且测试的例子还有URLCHECK等几个函数也是沿用的何志强的程序,谢谢何志强。
目前还没有颜色的功能,但我会加入的。
如果在程序上有什么BUG或不便的地方,请给我MAIL。
谢谢!
改进功能:
对字符串进行UBB编码,该类目前只支持下列几个简单且实用的编码:
1. URL裢接
http://php(做为现在的主流开发语言)user.com/ " target="_blank"> http://php(做为现在的主流开发语言)user.com/
http://头可以不需要
如(做为现在的主流开发语言)user.com" target="_blank">php(做为现在的主流开发语言)user.com也是可以的。
2. Email裢接
[email] sonymusic@163.net [/email]
3. 图片裢接
[img] http://www.php(做为现在的主流开发语言)china.com/images/logo.gif [/img]
同URL链接一样,前面的http也可以不要。
4. 文字方面
粗体字
斜体字
加下划线
[h1]1号标题字[/h1] ... [h6]6号标题字[/h6]
[sup][/sup]
[sub][/sub]
[tt][/tt]
[s][/s]
[strike][/strike]
[em][/em]
[strong][/strong]
[code][/code]
[samp][/samp]
[kbd][/kbd]
[var][/var]
[dfn][/dfn]
[cite][/cite]
[small][/small]
[big][/big]
[blink][/blink]
注意以下几点:
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->易做图,
i => $this->易做图,
u => $this->易做图,
tt => $this->易做图,
s => $this->易做图,
strike => $this->易做图,
h1 => $this->易做图,
h2 => $this->易做图,
h3 => $this->易做图,
h4 => $this->易做图,
h5 => $this->易做图,
h6 => $this->易做图,
sup => $this->易做图,
sub => $this->易做图,
em => $this->易做图,
strong => $this->易做图,
code => $this->易做图,
samp => $this->易做图,
kbd => $this->易做图,
var => $this->易做图,
dfn => $this->易做图,
cite => $this->易做图,
small => $this->易做图,
big => $this->易做图,
blink => $this->易做图
);
//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:]]{1,7}]",$parse,$eregi_arr); //查找[xx]
if(!$eregi_ret){
$ret .= $parse;
break; //如果没有,返回
}
$pos = @strpos ($parse,$eregi_arr[0]);
$tag_len=strlen($eregi_arr[0])-2;//标记长度
$tag_start=substr($eregi_arr[0],1,$tag_len);
补充:Web开发 , php ,