当前位置: 网学 > 编程文档 > PHP > 正文

一个用PHP实现的UBB类

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
<?php
/*
如有转载,请注明作者

作者: 何志强
文件: ubb.php
备注: 说是改进,其实核心函数parse()已经完全重写了,而且思路也是不一样的。
不过仍是受何志强的例子的启发,而且测试的例子还有URLCHECK等几个函数也是沿用的何志强的程序,谢谢何志强。
目前还没有颜色的功能,但我会加入的。
如果在程序上有什么BUG或不便的地方,请给我MAIL。
谢谢!
改进功能:
对字符串进行UBB编码,该类目前只支持下列几个简单且实用的编码:
1. URL裢接
http://www.phpexe.com/
http://头可以不需要
如phpexe.com也是可以的。
2. Email裢接
demo@163.net
3. 图片裢接

同URL链接一样,前面的http也可以不要。
4. 文字方面
粗体字
斜体字
加下划线

1号标题字

6号标题字



[tt][/tt]
[s][/s]

[em][/em]
[strong][/strong]



[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:}{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);
$tag=strtolower($tag_start);

if((($tag=="url") or ($tag=="email") or ($tag=="
  • 下一篇资讯: 用php实现广告轮播
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号