首页 » 51日记 » Wp离线发布软件被过滤HTML的解决方法

Wp离线发布软件被过滤HTML的解决方法

使用windows live writer 等离线发布软件写博客的同学。
可能会在换了服务器之后发现使用这些软件发布文章。<.>会被自动过滤掉。
我前天遇到这个问题。
查了好多国外网站。发现。这个问题。是由于,php的组件,libxml2的漏洞引起。
xml_parse函数。会过滤< > 这些字符。。
现在完美解决这个问题。

——————–
在调用xml_parse之前。增加判断。
如果libxml2组件是2.7.*版本的。那么会自动。把<>.的html代码值换成<这样的代码。
这样就规避了xml_parse函数的过滤。
———————
涉及修改的文件如下:
wp-includes目录下:
rss.php
class-IXR.php

wp-admin/import目录下
blogger.php
———————-
在调用xml_parse函数前增加
代码:
if(LIBXML_DOTTED_VERSION == ’2.7.0′ ||
LIBXML_DOTTED_VERSION == ’2.7.1′ ||
LIBXML_DOTTED_VERSION == ’2.7.2′) {
值 =str_replace(“<”,”<”,值);
值 =str_replace(“>”,”>”,值 );
值 =str_replace(“&”,”&”,值);
}

注意:以上代码被wp自动转换过了。。是错的。。但是思路是对的。把HTML代码替换成&#**形式的代码。
———————-
我修改的是WordPress2.7版本的。
现在放出。如果有人用的不是这个版本。请按照上面的说明自己修改。
实在不行。请联系我:QQ474743629
支持网站:http://www.helloauto.cn
直接覆盖根目录。。
http://www.helloauto.cn/wp-content/uploads/WordPress.rar

Comment