php匹配ubb,php创建属于自己的UBB代码
实际上,在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代码相关推荐
- oracle创建带参数视图6,Oracle创建带有参数的视图代码介绍
在Oracle里,视图不像存储过程和函数一样,可以定义输入参数,但我们可以变个方式,使用程序包来实现 首先定义程序包: /* 按个人需要定义,我定义三个参数 ,因我项目程序需要,所以三个参数都是num ...
- Spring中Bean创建完成后执行指定代码的几种实现方式
Spring中Bean创建完成后执行指定代码的几种实现方式 1. 实现ApplicationListener接口 2. 实现InitializingBean接口 3. 使用@PostConstruct ...
- GitLab创建项目 命令上传代码
注册哪里要验证点击图片 这里需要外网 有可能 右键gitbash 首次将本地创建项目推送远程代码仓库 touch readme.md 创建readme文件 git init 初始化git gi ...
- 安卓应用安全指南 4.2.1 创建/使用广播接收器 示例代码
4.2.1 创建/使用广播接收器 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC ...
- 操作系统实验二进程的创建控制实验(含代码及实验心得)
实现工具:PC机 实现环境:Linux 实习内容(功能.目标): 实验目的: 创建进程,体会进程间的并发特征. 实验内容: 编写一段程序,使用系统调用 fork() 创建两个子进程 p1 和 p2 ...
- 关于用OC创建的项目调用swift代码
关于用OC创建的项目调用swift代码 之前用的都是swift的项目去混编OC去调用,最近公司在开发新项目,主体还是用的OC,但是我希望用swift来开发,所以就只能混编,但是遇到了OC的项目如何调用 ...
- WordPress网站创建和添加Google数据分析代码完整指南(2022年8月最新)
本文介绍WordPress网站创建和添加Google数据分析代码如何操作和实现.包含了Google Analytics实时数据流量(转化分析设置)和Google Search Console自然搜索流 ...
- java 创建topic,RocketMQ在Java代码之中手动创建Topic
Rocketmq在Java代码之中手动创建Topic [原创,转载请注明出处] 我的 [博客园主页] [CSDN主页] [简书主页] 加V进Java交流群,备注Java交流:w1129574379 * ...
- 创建bean的JAVA源文件_创建 JavaBean要经过编写代码、编译源文件、配置JavaBean这样一个过程。_学小易找答案...
[多选题]网络广告效果测定指标包括(). [单选题]"文皆是从道中流出"是谁的观点() [填空题]创建 JavaBean的过程和编写Java类的过程基本相似,可以在任何Java的编 ...
- html生成无序列表,CSS无序列表创建的标准菜单效果代码
本文实例讲述了CSS无序列表创建的标准菜单效果代码.分享给大家供大家参考.具体如下: 这是一款用LI无序列表创建的标准CSS菜单,这是国外一个网站的CSS制作教程,这里重新整理了一下,去除了广告代码, ...
最新文章
- JavaScript调用Applet的函数
- 有开电商的集合了,了解Water Pamola通过恶意订单对电商发起攻击
- 精选 GitHub 值得收藏的100个前端项目
- PHP中文简繁互转代码 完美支持大陆、香港、台湾及新加坡
- 表贴电阻尺寸与什么有关_电路板上为什么会有0欧电阻这种东西?
- MySQL之性能优化解说
- 多个数据文件 mysql_mysql多实例(多个配置文件方式)
- MathType 换行后无法对齐,怎么都对不齐!!!强迫症晚期(见图)
- 在CentOS安装PHP5.6
- 键盘上ALT键的妙用
- cocos2d-x常用工具-沈大海cocos2d-x教程23
- mongodb find_MongoDB find()
- bzoj2260: 商店购物4349: 最小树形图
- 开发人员必学!java工程师个人简历模板下载
- 高频电子线路资料强力推荐!
- 真爱一个人,何妨赌一生
- 开源的视频编解码器介绍
- 百度竞价账户能否多少词?
- Android音视频开发学习
- 文件(夹)批量重命名数字、字母、日期、中文数字大写小写
热门文章
- visio2003 反向工程链接 mssql2005
- Phpmyadmin的一次渗透测试
- C++实现 电子邮件客户端程序(简易版)
- SpringSecurity初步理解
- 为RecyclerView打造通用Adapter
- ASP.NET Page执行顺序如:OnPreInit()、OnInit()(转)
- [C++ Quiz] Intermediate level
- [ZT]如何实现打印输出到Adobe PDF格式文件
- C# 2.0中泛型编程初级入门
- 深度学习图像分类(四): GoogLeNet(V1,V2,V3,V4)