- UID
- 2
- 帖子
- 5081
- 精华
- 3
- 贡献
- 30
- 推广
- 0
- 有效BUG
- 0
- 注册时间
- 2005-2-20
|
TheWorld2.0的HTML过滤功能是基于TCP/IP协议层实现的过滤功能,比起1.x的基于IE内核接口的过滤方式,功能更强大,效率也更高,并且支持使用正则表达式.
由于是在网络通信层进行的过滤,所以只能过滤从服务器发来的数据,而有些页面从临时文件中直接读取,则不会被过滤,同理,从服务器发来的数据被过滤后的结果会被TW的IE内核保存到临时文件,这时如果关闭过滤或者使用其他浏览器,会发现过滤效果依然存在,刷新一下才会更新
过滤功能支持白名单,过滤项以@@开头即为白名单,例如: @@*ad*
过滤功能支持正则表达式过滤url,过滤项前后各加一个/,例如/\wad.*/
使用通配符方式的黑名单过滤功能
TheWorld2.0的HTML过滤功能兼容1.x的设置方式,黑名单在高级选项中可以设置,黑名单支持*号和?号的通配符匹配,在ini中的表现为
例如
[filter]
url0=*ad*
url1=*icast*
url2=@@*adm*
url3=/\wad.*/
过滤内容替换可以在ini中指定(正式版中会提供设置入口)
例如:
[options]
HTMLReplace=<span style='font-size:9pt'>Filtered Ad%s_url</span>
其中%s_url为被过滤的标签的src
下面是介绍的重点,建议不了解正则表达式使用方法的朋友无视
基于正则表达式的HTML内容过滤功能
通过对HTML内容的过滤,可以过滤掉网页上一些比较特殊的广告,也可以实现一些比较特殊的功能(比如图片的防盗链)
过滤项的添加和黑名单类似,在ini的filter节中,从ex0-ex23,上限暂定为24个,每一个过滤项可以单独指定被替换的内容,从re0-re23,详见下面的例子
[filter]
ex0=<table.*?width="25%.*?>(?:.|\n)*?http://ma.baidu.com/ma/rcv/click.php(?:.|\n)*?<\/table>
re0=<span style='font-size:9pt'>Filtered Ad</span>
ex1=(?:<br>)*<img\ src="images/common/sigline.gif(?:.|\n)*?</div>
re1=
第一个过滤的内容是baidu搜索页面右侧的广告
第二个过滤的内容是Discuz论坛帖子中的每个人的签名
过滤功能还可以实现对HTTP协议头的过滤,过滤项是在ini的filter节中,从exh0-exh23,替换内容为reh0-reh23,过滤方法和上面的例子中一样
过滤功能由于刚刚推出,所以重点暂时还在于功能的稳定性.在以后的版本,还会不断加强过滤功能,欢迎大家多提宝贵意见 |
|