admin 管理员组文章数量: 1184232
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
写一个自己的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>
本文标签: php 正则替换 ubb PHP中开发自己的UBB代码
版权声明:本文标题:php 正则替换 ubb,PHP中开发自己的UBB代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/b/1693755045a240919.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论