欢迎访问web记录!每一步的成长都是一种幸福,聪明的女孩擅长记录幸福!
您现在的位置:web记录 > 网站编程 > php >

PHP中开发自己的 "UBB代码"

更新时间:2013-11-05 浏览次数:
1、什么是UBB代码
 
UBB代码是HTML的一个变种,是Ultimate Bulletin Board (国外一个BBS程序,国内也有不少地方使用这个程序)采用的一种特殊的TAG。UBB代码很简单,虽然功能很少,但基本实现了我们常用的一些功能.
 
优点:
 
   1、相对HTML安全性高;
   2、使用简单,方便记忆;
   3、自定义功能强大,扩展性好;
   4、有效较少数据库存储代码;
 
缺点:
 
   1、排版功能弱
   2、不允许交叉使用
 
UBB例子
 
[url] www.php100.com[/url]
[b] PHP100中文站 [/b]
[swf] ../img/demo.swf [/swf]
 
2、UBB代码运行过程
 
UBB Code----解析转换-----HTML  Code
 
两种使用模式
UBB——DB——解析——输出
UBB——解析——DB——输出
 
3、介绍几种简单的UBB代码

UBB
正则
HTML
[url]  [/url]
/(\[url\])(.*)(\[\/url\])/i
<a href=
[b] [/b]
/(\[b\])(.*)(\[\/b\])/i
<b>
[img] [/img]
/(\[img\])(.*)(\[\/img\])/i
<img src=

$str = preg_replace("/(\[url\])(.*)(\[\/url\])/i", "<a href=\"\\1\">\\2</a>", $str);
 
4、写一个自己的UBB
<?php
function get_ubb($str) {
 
$str = preg_replace("/(\[)em(.*?)(\])/i", "<img src=\"emot/em\\2.gif\" />", $str);
//链接UBB
$str = preg_replace("/(\[url\])(.*)(\[\/url\])/i", "<a href=\\2 target=\"_black\">\\2</a>", $str);
//QQ号码UBB
$str = preg_replace("/\[qq\]([0-9]*)\[\/qq\]/i", "<a target=\"_blank\" href=\"tencent://message/?uin=\${1}&amp;site=www.php100.com&amp;menu=yes\"><img src=\"http://wpa.qq.com/pa?p=1:\${1}:8\" alt=\"QQ\${1}\" height=\"16\" border=\"0\" align=\"top\" /></a>", $str);
 
return $str;
}
 
if($_POST['sub']){
echo get_ubb($_POST[message]);
}
?>
<script>
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>
<hr/>
<font size=2>
<img src="http://www.webjilu.com/images/1.gif" onclick='inserttag("[1","]");' />
<img src="http://www.webjilu.com/images/2.gif" onclick='inserttag("[2","]");' />
<img src="http://www.webjilu.com/images/3.gif" onclick='inserttag("[3","]");' />
<img src="http://www.webjilu.com/images/4.gif" onclick='inserttag("[4","]");' />
<img src="http://www.webjilu.com/images/5.gif" onclick='inserttag("[5","]");' />
<img src="http://www.webjilu.com/images/6.gif" onclick='inserttag("[6","]");' />
<img src="http://www.webjilu.com/images/7.gif" onclick='inserttag("[7","]");' />
<img src="http://www.webjilu.com/images/8.gif" onclick='inserttag("[8","]");' />
<a href="javascript:void(0);" onclick='inserttag("[b]","[/b]");'>加粗</a>
<a href="javascript:void(0);" onclick='inserttag("[qq]","[/qq]");'>QQ号</a>
<a href="javascript:void(0);" onclick='inserttag("[url]","[/url]");'>超链接</a>
<br>
  <form action="" method="post">
  <textarea name="message" id="con" cols="70%" rows="10"></textarea>
  <input type="submit" name="sub" value="提交"/>
  </form>
 
关键词:

    + 相关信息

    前端案例

    返回顶部 欢迎访问web记录!每一步的成长都是一种幸福,聪明的女孩擅长记录幸福!