php中简单ubb案例,PHP中开发自己的UBB代码

什么是UBB代码

UBB代码是HTML的一个变种,是Ultimate Bulletin Board (国外一个BBS程序,国内也有不少地方使用这个程序)采用的一种特殊的TAG。UBB代码很简单,虽然功能很少,但基本实现了我们常用的一些功能.就是在PHP文件中可以自己定义的一些代码,然后可以根据这些代码实行相应的在HTML中也能实现的功能。

优点

相对HTML安全性高

使用简单,方便记忆

自定义功能强大,扩展性好(可以根据自己的需求定义,但一般最好使用一个通用的标准,如url,img)

有效减少数据库存储代码

缺点

排版功能弱

不允许交叉使用

UBB代码运行过程

UBB代码->解析转换->HTML code

实际上是通过PHP的正则表达式的替换函数进行替换,最后得到UBB代码

UBB->DB->解析->输出

UBB->解析->DB->输出

介绍几种简单的UBB代码

UBB                                   正则                                   HTML

[url]  [/url]                /(

url

)(.*)(

\/url

)/i               

[b] [/b]                    /(

b

)(.*)(

\/b

)/i                    

[img] [/img]               /(

img

)(.*)(

\/img

)/i          p

写一个自己的UBB

function get_ubb($str) {

      $str = preg_replace( "/(\[)em(.*?)(\])/i" , "", $str);

//链接UBB

$str = preg_replace( "/(\[url\])(.*)(\[\/url\])/i" , "", $str);

//QQ号码UBB

      $str = preg_replace( "/\[qq\]([0-9]*)\[\/qq\]/i" , "" , $str);

//链接

$str = preg_replace( "/(\[b\])(.*)(\[\/b\])/i" , "\\2" ,$str);

//加粗

return $str;

}

if ($_POST['sub' ]){

echo get_ubb($_POST[message]);

}

?>

function inserttag(topen,tclose){

var themess = document.getElementById('con' );//编辑对象

themess.focus();

if (document.selection) {//如果是否ie浏览器

var theSelection = document.selection.createRange().text; //获取选区文字

//alert(theSelection);

if(theSelection){

document.selection.createRange().text = theSelection = topen+theSelection+tclose;//替换

} else{

document.selection.createRange().text = topen+tclose;

}

theSelection= '';

} else{ //其他浏览器

var scrollPos = themess.scrollTop;

var selLength = themess.textLength;

var selStart = themess.selectionStart; //选区起始点索引,未选择为0

var selEnd = themess.selectionEnd; //选区终点点索引

if (selEnd <= 2)

selEnd = selLength;

var s1 = (themess.value).substring(0,selStart); //截取起始点前部分字符

var s2 = (themess.value).substring(selStart, selEnd) //截取选择部分字符

var s3 = (themess.value).substring(selEnd, selLength); //截取终点后部分字符

themess.value = s1 + topen + s2 + tclose + s3; //替换

themess.focus();

themess.selectionStart = newStart;

themess.selectionEnd = newStart;

themess.scrollTop = scrollPos;

return;

}

}

 script>

加粗  a>

QQ号  a>

超链接  a>

 font>

 textarea>

 form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值