BLOG > 开源 > 发现 PHP 5.0.3 的 BUG

发现 PHP 5.0.3 的 BUG

上次更新了这台服务器上的PHP到5.0.3版后,一直没有发现Blog的RSS功能失效。

后来使用 Thunderbird 的时候,发现无法订阅自己的BLOG。没道理呀,我的 BLOG 的 RSS 是 RSS2.0 规范的呀。Thunderbird应该支持。仔细一看,原来是 iconv() 函数报错了。 faint,居然说iconv() 函数未定义?!

iconv() 函数是我用来转换编码的,把字符集从 GB2312 转换到 UTF-8,事实上,在 PHP5.0中,这个extension应该是built-in的。但是很奇怪,在我的服务器上居然会报 undefined function ……

试着重新编译PHP,强制加入 --with-iconv-dir 参数(在PHP 5中要使用 --with-iconv-dir来指定iconv库的路径,而不是PHP4的--with-iconv参数)。 编译后,还是出错…… 奇怪的是,php -i 命令显示:

iconv
iconv support => enabled
iconv implementation => unknown
iconv library version => unknown

为什么既显示 iconv support 是enabled的,下面的库版本却又是unknown?而且,iconv()函数还是未定义……

再用这个脚本测试:
<?php
var_dump(get_extension_funcs("iconv"));
?>

得到这样的结果:

array(11) { [0]=>string(8) "libiconv" [1]=>string(16)
"ob_iconv_handler" [2]=>string(18) "iconv_get_encoding" [3]=>
string(18) "iconv_set_encoding" [4]=>string(12) "iconv_strlen" [5]=>
string(12) "iconv_substr" [6]=>string(12) "iconv_strpos" [7]=>
string(13) "iconv_strrpos" [8]=>string(17) "iconv_mime_encode" [9]=>
string(17) "iconv_mime_decode" [10]=>string(25)
"iconv_mime_decode_headers" }


我咧……

居然整个iconv扩展库中,就是只有 iconv()函数是未定义的,其它的函数都OK…… 寒一个~

应该是PHP 5.0.3在FreeBSD 5.3(FreeBSD 5.3这个平台上)上的BUG吧。去 http://bugs.php.net 报告一下吧。

BUG 报告如下:

http://bugs.php.net/bug.php?id=32244

最后,确认为的确是PHP 5.0.3的BUG,我重新更新为从CVS上抓的最新的开发中的 PHP 5.1.0 后重编译就解决了这个问题。

编译新的PHP 5.1.0-dev后,phpinfo() 显示:

PHP Version 5.1.0-dev
=====================
iconv
iconv support enabled
iconv implementation libiconv
iconv library version 1.9

一切正常。 :)
如果您喜欢这篇文章,您可以点击下列链接收藏
Del.icio.us Yahoo书签 365Key网摘 天极网摘 我摘 POCO网摘 YouNote网摘 和讯网摘 博啦网
发布时间 发布于 2005-03-14 08:09:53 | 阅读次数 阅读过2987次 | 分类 开源 | 评论 没有评论