实际上,在php中,ubb代码是html的一种变种,它的全称是Ultimate Bullrtin Board.例子如下:

[url]www.51cto.com[/url]

[b]php学习[/b]

[swf]../image/demo.swf[/swf]

它的优点是,实现一些我们基本常用的一些功能,使用起来也更加便利,而且相对html安全性更高一些,同时呢,也有效的减少了数据库存储代码,它的缺点是排版功能比较弱,同时也不允许标签之间的交叉嵌套使用。

它的运行过程有两种模式,ubb->db->解析->输出;ubb->解析->db->输出,其中前者更为规范一些。

下面就是实例。

新建一个test工程 ,新建一个ubb.php:

function get_ubb($str) {

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

//链接UBB

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

//QQ号码UBB

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

$str = preg_replace("/(\[b\])(.*)(\[\/b\])/", "\\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;

}

}


加粗

QQ号

超链接

php匹配ubb,php创建属于自己的UBB代码相关推荐

  1. oracle创建带参数视图6,Oracle创建带有参数的视图代码介绍

    在Oracle里,视图不像存储过程和函数一样,可以定义输入参数,但我们可以变个方式,使用程序包来实现 首先定义程序包: /* 按个人需要定义,我定义三个参数 ,因我项目程序需要,所以三个参数都是num ...

  2. Spring中Bean创建完成后执行指定代码的几种实现方式

    Spring中Bean创建完成后执行指定代码的几种实现方式 1. 实现ApplicationListener接口 2. 实现InitializingBean接口 3. 使用@PostConstruct ...

  3. GitLab创建项目 命令上传代码

    注册哪里要验证点击图片  这里需要外网 有可能 右键gitbash 首次将本地创建项目推送远程代码仓库 touch readme.md  创建readme文件 git init   初始化git gi ...

  4. 安卓应用安全指南 4.2.1 创建/使用广播接收器 示例代码

    4.2.1 创建/使用广播接收器 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC ...

  5. 操作系统实验二进程的创建控制实验(含代码及实验心得)

    实现工具:PC机 实现环境:Linux 实习内容(功能.目标): 实验目的:  创建进程,体会进程间的并发特征. 实验内容:  编写一段程序,使用系统调用 fork() 创建两个子进程 p1 和 p2 ...

  6. 关于用OC创建的项目调用swift代码

    关于用OC创建的项目调用swift代码 之前用的都是swift的项目去混编OC去调用,最近公司在开发新项目,主体还是用的OC,但是我希望用swift来开发,所以就只能混编,但是遇到了OC的项目如何调用 ...

  7. WordPress网站创建和添加Google数据分析代码完整指南(2022年8月最新)

    本文介绍WordPress网站创建和添加Google数据分析代码如何操作和实现.包含了Google Analytics实时数据流量(转化分析设置)和Google Search Console自然搜索流 ...

  8. java 创建topic,RocketMQ在Java代码之中手动创建Topic

    Rocketmq在Java代码之中手动创建Topic [原创,转载请注明出处] 我的 [博客园主页] [CSDN主页] [简书主页] 加V进Java交流群,备注Java交流:w1129574379 * ...

  9. 创建bean的JAVA源文件_创建 JavaBean要经过编写代码、编译源文件、配置JavaBean这样一个过程。_学小易找答案...

    [多选题]网络广告效果测定指标包括(). [单选题]"文皆是从道中流出"是谁的观点() [填空题]创建 JavaBean的过程和编写Java类的过程基本相似,可以在任何Java的编 ...

  10. html生成无序列表,CSS无序列表创建的标准菜单效果代码

    本文实例讲述了CSS无序列表创建的标准菜单效果代码.分享给大家供大家参考.具体如下: 这是一款用LI无序列表创建的标准CSS菜单,这是国外一个网站的CSS制作教程,这里重新整理了一下,去除了广告代码, ...

最新文章

  1. JavaScript调用Applet的函数
  2. 有开电商的集合了,了解Water Pamola通过恶意订单对电商发起攻击
  3. 精选 GitHub 值得收藏的100个前端项目
  4. PHP中文简繁互转代码 完美支持大陆、香港、台湾及新加坡
  5. 表贴电阻尺寸与什么有关_电路板上为什么会有0欧电阻这种东西?
  6. MySQL之性能优化解说
  7. 多个数据文件 mysql_mysql多实例(多个配置文件方式)
  8. MathType 换行后无法对齐,怎么都对不齐!!!强迫症晚期(见图)
  9. 在CentOS安装PHP5.6
  10. 键盘上ALT键的妙用
  11. cocos2d-x常用工具-沈大海cocos2d-x教程23
  12. mongodb find_MongoDB find()
  13. bzoj2260: 商店购物4349: 最小树形图
  14. 开发人员必学!java工程师个人简历模板下载
  15. 高频电子线路资料强力推荐!
  16. 真爱一个人,何妨赌一生
  17. 开源的视频编解码器介绍
  18. 百度竞价账户能否多少词?
  19. Android音视频开发学习
  20. 文件(夹)批量重命名数字、字母、日期、中文数字大写小写

热门文章

  1. visio2003 反向工程链接 mssql2005
  2. Phpmyadmin的一次渗透测试
  3. C++实现 电子邮件客户端程序(简易版)
  4. SpringSecurity初步理解
  5. 为RecyclerView打造通用Adapter
  6. ASP.NET Page执行顺序如:OnPreInit()、OnInit()(转)
  7. [C++ Quiz] Intermediate level
  8. [ZT]如何实现打印输出到Adobe PDF格式文件
  9. C# 2.0中泛型编程初级入门
  10. 深度学习图像分类(四): GoogLeNet(V1,V2,V3,V4)