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中将数组存到文件里的实现代码
Jan 19 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
PHP编码规范的深入探讨
Jun 06 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
php表单敏感字符过滤类
Dec 08 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
PHP数据库操作三:redis用法分析
Aug 16 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
计数器详细设计
2006/10/09 PHP
打造计数器DIY三步曲(上)
2006/10/09 PHP
php中的观察者模式
2010/03/24 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的包和模块实例
2014/11/22 Python
Python计算三角函数之asin()方法的使用
2015/05/15 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python中argparse模块用法实例详解
2015/06/03 Python
python numpy格式化打印的实例
2018/05/14 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
什么是方法的重载
2013/06/24 面试题
2014信息公开实施方案
2014/02/22 职场文书
浪费资源的建议书
2014/03/12 职场文书
文秘求职信范文
2014/04/10 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
Go语言 详解net的tcp服务
2022/04/14 Golang