发现 PHP 5.0.3 的 BUG
文章信息
关键字:
本文版本:1
最后修改于 2005-03-14 08:09:53
上次更新了这台服务器上的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
一切正常。 :)
后来使用 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
一切正常。 :)
日历
| 年 月 | ||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
| 29 | 30 | 31 | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 1 | 2 |
日志分类
搜索日志
订阅我的日志
友情链接
[做人要厚道,看帖要回帖,点击发表评论]
显示评论
隐藏评论
评论列表
发布于 2005-03-14 08:09:53 |



