vBulletin HACK----关于排版的两个HACK


Posted in PHP onOctober 09, 2006

《以vB代码实现的简单文字排版》
原因:1.1.4版本中没有这些,而国内的比较著名的UBB HACK之家就增加了很多对于文字排版的UBB代码(vB代码)。
优点:只需要几行,就可以实现,很简单。
缺点:因为需要嵌套,所以如果用户写得不好的话,会影响帖子其它内容的样式,甚至殃及整个话题。
自评:其实,这只是将更多的HTML代码以vB代码的形式来实现,为的让人从另一个角度去学习如何进行Web的文字排版而不用去学HTML,也为了安全。

步骤:打开 global.php ,查找“
function bbcodeparse2($bbcode,$forumid=0,$allowsmilie=1) {
”,在[code]和其它HACK之前的适当位置,例如“
      // 执行引用回复
      $bbcode=eregi_replace("quote\]","quote]",$bbcode);  // 小写化
      $bbcode=str_replace("[quote]rn","<blockquote><smallfont>引用:</smallfont><hr>",$bbcode);
      $bbcode=str_replace("[quote]","<blockquote><smallfont>引用:</smallfont><hr>",$bbcode);
      $bbcode=str_replace("[/quote]rn","<hr></blockquote>",$bbcode);
      $bbcode=str_replace("[/quote]","<hr></blockquote>",$bbcode);
”,在后面加入“
      // Hack color,font,size,style,center
      $bbcode=eregi_replace("\[color=["]{0,1}(#[a-z0-9-]{6})["]{0,1}\]","<font color=\1>",$bbcode);  // [color=]
      $bbcode=eregi_replace("\[/color\]","</font>",$bbcode);  // [/color];
      $bbcode=eregi_replace("\[size=["]{0,1}([0-9]{1})["]{0,1}\]","<font size=\1>",$bbcode);  // [size=]
      $bbcode=eregi_replace("\[/size\]","</font>",$bbcode);  //  [/size]
      $bbcode=eregi_replace("\[font=["]{0,1}([^\[]*)["]{0,1}\]","<font face="\1">",$bbcode);  // [font=]
      $bbcode=eregi_replace("\[/font\]","</font>",$bbcode);  //  // [/font]
      $bbcode=eregi_replace("\[style=["]{0,1}([^\[]*)["]{0,1}\]","<span style="\1">",$bbcode);  // [style=]
      $bbcode=eregi_replace("\[/style\]","</span>",$bbcode);  //  [/style]
      $bbcode=eregi_replace("\[center\]","<p align=center>",$bbcode);  // [center=]
      $bbcode=eregi_replace("\[/center\]","</p>",$bbcode);  //  [/center]
      // End Hack color size style
”,完成。
范例可以参考:

《禁止JavaScript》
原因:vBulletin没有对Javascript脚本做任何的特别对待处理,所以如果论坛开放了HTML代码的话,就有可能受到alert或window.open的袭击而沦陷。

步骤:打开 global.php ,查找“
    if ($dohtml==0) {
      // 删除HTML代码
      $bbcode=str_replace("&","&",$bbcode);
      $bbcode=str_replace("<","<",$bbcode);
      $bbcode=str_replace(">",">",$bbcode);
    }
”,在最后一个花括号前,加入“
    } else {
      $bbcode=eregi_replace("<([/]{0,1}script[^<]*)>","<\1>",$bbcode);
”,完成!

【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    

PHP 相关文章推荐
PHP模板引擎SMARTY
Oct 09 PHP
PHP初学者头疼问题总结
Oct 09 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 PHP
PHP+APACHE实现用户论证的方法
Oct 09 #PHP
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 #PHP
PHP实现图片简单上传
Oct 09 #PHP
在线增减.htpasswd内的用户
Oct 09 #PHP
将OICQ数据转成MYSQL数据
Oct 09 #PHP
PHP中一个控制字符串输出的函数
Oct 09 #PHP
PHP用户指南-cookies部分
Oct 09 #PHP
You might like
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
vue.js实现只弹一次弹框
2018/01/29 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
浅谈Angular 观察者模式理解
2018/11/01 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
vue实现图片上传功能
2020/05/28 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
python生成随机图形验证码详解
2017/11/08 Python
Python简易版图书管理系统
2019/08/12 Python
python动态文本进度条的实例代码
2020/01/22 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
最好的商品表达自己:Cafepress
2019/09/04 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
一些Solaris面试题
2015/12/22 面试题
大学生求职自荐信
2013/12/12 职场文书
创业大赛策划书
2014/03/01 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
2015年见习期工作总结
2014/12/12 职场文书
师德承诺书
2015/01/20 职场文书
5道关于python基础 while循环练习题
2021/11/27 Python
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Mysql中mvcc各场景理解应用
2022/08/05 MySQL