现在的位置: 首页Other>正文
DZ用户暂时不要升级PHP5.4.0,升级有问题
2012年03月12日 Other 评论数 1 ⁄ 被围观 8,604 次+

php 5.4.0 发布之后,很多人会想着要升级尝试一下,我也是尝鲜者之一,不过在尝鲜之后,我被困扰了。
php 5.4.0 的改变有一些,但其中困扰我的是 它内置编码自 ISO-8859-1 改成了 UTF-8。
初看起来,这并没有什么,但是,htmlspecialcharshtmlentities函数,默认会使用utf-8来处理字符串。
如果输入的字符串是GBK编码,那么很抱歉, 返回的结果是空的, 输入的字符串被吃了。
在DZ里面,大量使用到了htmlspecialchars函数,升级php 5.4所面临的问题将是极具挑战性的。 你会发现哪儿哪儿都不正常。
痛定思痛,我在这里友情提醒大家,在这个问题没有解决之前,不要贸然升级。
目前官方没有解决方法,我们自己找到的解决方法有两个:
1、 改写我们自己的程序,将原来的 htmlspecialchars方法改写为
htmlspecialchars($string, NULL, 'GB2312');
2、 修改PHP 5.4的源码 ,打开ext/standard/html.c,转到 373行。
将 return cs_utf_8;
改为 return cs_gb2312;
重新编译php 5.4
改过之后,我们其实是把 php 5.4的默认编码改成了 gb2312
我提交给PHP的BUG反馈地址:https://bugs.php.net/bug.php?id=61354
官方的讨论:http://news.php.net/php.internals/58853

本文地址:http://www.92csz.com/31/1092.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 1 条留言 其中:访客:1 条, 博主:0 条

  1. wwek : 2012年07月16日11:40:43  1楼

    生产环境肯定不能贸然升级。必须测试妥当·