Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑问] [工具]HTML2UBB转换程序,将帖子内的垃圾html换成干净的UBB标签

[复制链接]
lonestone 发表于 2007-4-5 13:15:26 | 显示全部楼层 |阅读模式
本帖最后由 baxter 于 2014-5-1 06:55 编辑

我想很多DZ的用户是由dvbbs等其他bbs程序转换过来的,转换来的帖子内有大量html代码,而dz默认是关闭html的,况且html也不安全。这样就会在贴子内显示出html代码,严重影响阅读。我写了个html2ubb函数,就可以方便的转换帖子的内容里面的html代码为ubb代码了。然后关闭你的版面的html,一切都清净了。

  1. <?php

  2. // --------------------------------------------------------------------------
  3. // 文件名 :
  4. // 描述 :
  5. // 需求 : PHP4 ([url]http://www.php.net[/url])
  6. //
  7. // Copyright(C), [url]www.cnfdc.com.cn[/url], 2005, All Rights Reserved.
  8. //
  9. // 作者 : lonestone ([email]wangyong.yichang@gmail.com[/email])
  10. //
  11. // --------------------------------------------------------------------------

  12. function html2ubb($html)
  13. {
  14.     $output=$html;
  15.     $output=preg_replace('/\r/i',"",$output);
  16.     $output=preg_replace('/\r/i',"",$output);
  17.     $output=preg_replace('/on(load|click|dbclick|mouseover|mousedown|mouseup)="[^"]+"/i',"",$output);
  18.     $output=preg_replace('/<script[^>]*?>([\w\W]*?)<\/script>/i',"",$output);

  19.     $output=preg_replace('/<a[^>]+href="([^"]+)"[^>]*>(.*?)<\/a>/i',"\n[url=$1]$2[/url]\n",$output);

  20.     $output=preg_replace('/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/i',"[color=$1]$2[/color]",$output);

  21.     $output=preg_replace('/<img[^>]+src="([^"]+)"[^>]*>/i',"\n[img]$1[/img]\n",$output);

  22.     $output=preg_replace('/<([\/]?)b>/i',"[$1b]",$output);
  23.     $output=preg_replace('/<([\/]?)strong>/i',"[$1b]",$output);
  24.     $output=preg_replace('/<([\/]?)u>/i',"[$1u]",$output);
  25.     $output=preg_replace('/<([\/]?)i>/i',"[$1i]",$output);8

  26.     $output=preg_replace('/&nbsp;/i'," ",$output);
  27.     $output=preg_replace('/&amp;/i',"&",$output);
  28.     $output=preg_replace('/&quot;/i',""",$output);
  29.     $output=preg_replace('/&lt;/i',"<",$output);
  30.     $output=preg_replace('/&gt;/i',">",$output);

  31.     $output=preg_replace('/<br>/i',"\n",$output);
  32.     $output=preg_replace('/<[^>]*?>/i',"",$output);
  33.     $output=preg_replace('/\[url=([^\]]+)\]\n(\[img\][^\[]+?\[\/img\])\n\[\/url\]/i',"[url=$1]$2[/url]",$output);
  34.     $output=preg_replace('/\n+/i',"\n",$output);

  35.     return $output;
  36. }
  37. ?>
复制代码


完整的转换程序在附件内,由于采用了adodb库,有点大,转换完了可以全部删除

html2ubb.part1.rar

256 KB, 下载次数: 791

html2ubb.part2.rar

256 KB, 下载次数: 705

html2ubb.part3.rar

62.9 KB, 下载次数: 780

回复

使用道具 举报

crabyan 发表于 2007-6-1 10:42:18 | 显示全部楼层
转换之后会不会出现什么问题的。。。我也是受不了以前那些html代码了
回复

使用道具 举报

网赚辅导员 发表于 2007-6-1 10:57:51 | 显示全部楼层
谢谢
回复

使用道具 举报

joneli1 发表于 2007-8-3 22:38:01 | 显示全部楼层
怎么用呀?教教方法呀

用了显示
html2ubb.php on line 33

[ 本帖最后由 joneli1 于 2007-8-3 23:15 编辑 ]
回复

使用道具 举报

别吹起灰 发表于 2007-8-4 06:24:51 | 显示全部楼层
后台升级 数据库 开启HTML。
回复

使用道具 举报

rpai 发表于 2008-11-29 18:50:31 | 显示全部楼层
非常需要它
回复

使用道具 举报

azamat 发表于 2008-12-7 00:21:29 | 显示全部楼层
怎么用也不说一哈,发个空帖什么用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-17 03:54 , Processed in 0.092786 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表