Wordpress中文包引起数据库备份插件出错问题的解决方案

今天看到又有人困扰于数据库备份的问题。WordPress Database Backup插件设计上没有考虑非英语用户,导致IE浏览器的用户在使用WordPress中文包后无法正常备份。

2个多月前已经写过一篇文章《Wordpress中文包导致数据库备份插件出错》详细说明了这个问题。给出的解决办法是不要自行备份,而是配合WP-Cron插件进行自动备份。今天看到还是有人困扰于此,毕竟用IE浏览器和以IE为核心的浏览器(比如Maxthon)的人非常多,再加上我的PHP水平也比两个月前高了那么一点点,就去仔细看了下wp-db-backup.php文件。改了一下,到IE里测试了一下,解决了 :)

修改方法为,在backup_fragment()函数开头加上一句:

header( 'Content-Type: text/html; charset=utf-8' );

您可以自行修改,不过要注意这个文件的格式是UNIX的,记事本编辑不了。也可以下载我改好的:wp-db-backup.txt

注意:我是在WordPress 2.0.4自带的WordPress Database Backup插件的基础上修改的。做为WP自带的插件,WordPress开发组也会对其进行安全修正,所以不同WP版本带的文件会有一些差别,但是兼容性上应该没问题,推荐使用最新的2.0.4自带的。

在下载地址上点击右键->另存为,把文件下载到电脑上。下载后,要么将扩展名改成php然后上传覆盖,要么上传后,先删除原来的文件再把这个文件的扩展名修改为php。注意扩展名php是小写,不要弄两个同名文件一个扩展名大写一个扩展名小写在服务器上,linux可不象Windows那样不区分大小写。我用UEStudio删除了所有行尾空白字符,所以文件变小了一点。

效果如图:
WordPress db-backup error in IE

Update:看到这篇文章提到一些解决办法,包括:用IE 7.0;用Firefox或者Opera;临时修改wp-config.php文件;使用英文版。IE7没用过,或许IE7修正了bug,在默认的情况下使用UTF-8解码,又或许是因为现在的IE7还在测试,默认使用ASCII方式解码。

Update:我只改动了一行,但是WordPress 2.0.4自带的这个插件还有一个问题,在我的《WordPress 2.0.4中WordPress Database Backup插件的定时备份功能失效》有详细的描述。如果需要在WordPress 2.0.4下使用自动备份功能的朋友请自行修改。我这里就不再改了,因为那个问题不是个bug,而是WordPress开发组加的语句,因为安全问题还没有查清楚。所以,按照那篇文章里的方法进行修改是有风险的。还是等WordPress开发组发布新的版本以彻底解决了这个问题吧。

本文共有 9 条评论Wordpress中文包引起数据库备份插件出错问题的解决方案


  1. 1 ES2004

    看了你的这篇文章才知道wp怎么备份。。。
    见笑
    其实还有很多不懂,累了,休息下
    不知道能否有机会IM上沟通

  2. 2 yskin

    IM么,写到About页面了,点页面上方的About就可以看到了。

    有问题就来问我吧

  3. 3 92

    很好 试试

  4. 4 didadi

    还是备份不了

    提示:

    无法以写入方式打开备份文件!我把文件夹的属性设为777,怎么还是无法写入呢?

  5. 5 zuozi

    完全OK了,谢谢!

  6. 6 p268.com

    多谢,正需要这篇文章。

  7. 7 Jesson

    好象已经OK了,进度条能走完了.

  8. 8 好料365

    我的问题完美的解决了,非常谢谢你提供的方法。

  1. 1 crazy dog’s blog » Wordpress 2.0.4 中文包
    Pingback2006-10-11 2:28 下午

请留下您的评论: