2024 年 PHP 日本大会

PHP 4 变更日志

4.4 | 4.3 | 4.2 | 4.1 | 4.0

4.4.9 版

  • 将 PCRE 更新到 7.7 版。
  • 修复了 memnstr() 中的溢出。
  • 修复了提供无效字体时 imageloadfont 中的崩溃。
  • 修复了 curl 扩展中 open_basedir 处理问题。
  • 修复了 bug #27421(在 .htaccess 中设置的 mbstring.func_overload 成为全局变量)。

4.4.8 版

  • 改进了对 MOPB-02-2007 的修复。
  • 修复了 chunk_split() 内部的整数溢出。由 Gerhard Wagner 发现。
  • 修复了 str[c]spn() 中的整数溢出。
  • 修复了 #41655 修复程序引入的 open_basedir 启用时 glob 中的回归。
  • 修复了 money_format() 不接受多个 %i 或 %n 令牌。
  • 添加了“max_input_nesting_level” php.ini 选项以限制输入变量的嵌套级别。对 MOPB-03-2007 的修复。
  • 修复了使用 MySQL 时 INFILE LOCAL 选项的处理 - 现在在 open_basedir 或 safe_mode 处于活动状态时不允许。
  • 修复了 session.save_path 和 error_log 值以针对 open_basedir 和 safe_mode 进行检查 (CVE-2007-3378)。
  • 修复了 bug #43010(修复了 imagearc 中使用两个等效角度的回归)。
  • 修复了 bug #41765(Recode 在 amd64 上崩溃/无法工作)。
  • 修复了 bug #41630(图像数据中存在无效颜色索引时出现段错误)。
  • 修复了 bug #41628(Apache 1.3 中虚拟主机之间的 PHP 设置泄漏)。
  • 修复了 bug #38798(在 php5 中已更正 OpenSSL init,但在 php4 中未更正)。

4.4.7 版

  • 修复了 MOPB-33-2007(PHP mail() 消息 ASCIIZ 字节截断)。
  • 修复了 MOPB-32-2007(session_decode() 内部双重释放)。
  • 修复了 MOPB-26-2007(mb_parse_str() 可用于激活 register_globals)。
  • 修复了 MOPB-24-2007(修复了 array_user_key_compare() 中的未分配内存访问/双重释放)。
  • 修复了 MOPB-22-2007(PHP session_regenerate_id() 双重释放漏洞)。
  • 修复了 MOPB-21-2007(compress.bzip2 封装器内部的 open_basedir/safe_mode 绕过)。
  • 修复了 MOPB-8-2007(phpinfo() 中的 XSS)。
  • 修复了 CVE-2007-1001(使用无效图像大小的 GD wbmp)。
  • 修复了 CVE-2007-0455(gdImageStringFTEx 中的缓冲区溢出,imagettf 函数使用)。
  • 修复了 bug #41252(在首先调用 mcrypt_generic_init 之前调用 mcrypt_generic 会导致崩溃)。
  • 修复了 bug #40998(长会话数组键被截断)。
  • 修复了 bug #40915(addcslashes 对二进制输入的意外行为)。
  • 修复了 bug #40831(cURL 扩展没有清除重用句柄的缓冲区)。
  • 修复了 bug #40747(save_path 位于 open_basedir 之外时会话中可能发生的崩溃)。
  • 修复了 bug #38236(二进制数据在 multipart/formdata POST 中损坏)。
  • 修复了使用大角度时 imagearc 中巨大的 CPU 使用率(libgd bug #74)。
  • 修复了 ftp_putcmd() 内部的 CRLF 注入。

4.4.6 版

  • 将 PCRE 更新到 7.0 版。
  • 修复了 register_globals=On 时 ext/session 中的段错误。
  • 修复了 bug #40635(cURL 扩展中的段错误)。
  • 修复了 bug #40611(可能的 cURL 内存错误)。
  • 修复了 bug #40578(imagettftext() 多线程问题)。
  • 修复了 bug #40502(ext/interbase 编译失败)。
  • 修复了 bug #40286(具有 PHP_FCGI_CHILDREN 的 PHP fastcgi 在父进程被杀死时不会杀死子进程)。

4.4.5 版

  • 将 PEAR 升级到 1.5.0。
  • 将 PCRE 更新到 6.7 版。
  • 将扩展移至 PECL:ext/ovrimos
  • 向 phpinfo() 输出添加了一个元标记,以防止搜索引擎索引该页面。
  • 在配置测试中回退了一个修复程序,以检测“舍入模糊”。
  • 回退了对使用最新 c-client 版本时 ext/imap 编译失败的修复。
  • 修复了 chdir() 函数内部缺少的 open_basedir 检查。
  • 修复了 bug #40335(使用 GCC 4.1.1/binutils 2.17 时编译失败)。
  • 修复了 bug #39971(pg_insert/pg_update 不允许使用 now() 来使用时间戳字段)。
  • 修复了 bug #39890(使用 autoconf 2.6x 和 --with-layout=GNU 会破坏 PEAR 安装路径)。
  • 修复了 bug #39819(在对象上下文之外使用 $this 会导致段错误)。
  • 修复了 bug #39653(启用 db4 支持时,ext/dba 不会检查 db-4.5 和 db-4.4)。
  • 修复了 bug #39583(ftp_put() 不会将传输模式更改为 ASCII)。
  • 修复了 bug #39458(ftp_nlist() 在空目录中返回 false)。
  • 修复了 bug #39354(允许针对 libcurl 7.16.0 构建 curl 扩展)。
  • 修复了 bug #39034(带有返回传输的 curl_exec() 在空文件中返回 TRUE)。
  • 修复了 bug #38963(修复了 tempnam() 中可能的 open_basedir 绕过)。
  • 修复了 bug #38882(使用较新版本的 OpenLDAP 时,ldap_connect 会导致段错误)。
  • 修复了 bug #38859(如果在 passwd 中传递“@”,则 parse_url() 失败)。
  • 修复了 bug #38722(调用未定义的方法会打印不足的错误消息)。
  • 修复了 bug #38534(在用户空间会话处理程序中调用 setlocale() 时出现段错误)。
  • 修复了 bug #38450(不会为用户空间流封装器中使用的类调用构造函数)。
  • 修复了 bug #38378(wddx_serialize_value() 不会生成格式良好的 xml)。
  • 修复了 bug #37812(aggregate_methods_by_list 无法获取某些方法)。
  • 修复了 bug #36975(natcasesort() 会导致 array_pop() 行为异常)。
  • 修复了 bug #36248(CURLOPT_HEADERFUNCTION,无法在类中设置函数)。
  • 修复了 bug #34066(递归 array_walk 会导致段错误)。
此版本有 单独的公告

4.4.4 版

  • 修复了 64 位系统上的 memory_limit。
  • 修复了 64 位系统上 str_repeat() 和 wordwrap() 中的溢出。
  • 启用 open_basedir 或 safe_mode 时,在 curl 中禁用 CURLOPT_FOLLOWLOCATION。
  • 修复了使用无效 foreach() 调用时的内存损坏错误。
  • 修复了 bug #38431(xmlrpc_get_type() 在对象上使 PHP 崩溃)。
  • 修复了 bug #38377(session_regenerate_id() 之后,session_destroy() 会发出警告)。
  • 修复了 bug #38322(在 sscanf() 中读取数组之外会导致任意代码执行)。
  • 修复了 bug #38278(session_cache_expire() 的值与 phpinfo 的 session.cache_expire 不匹配)。
  • 修复了 bug #38251(socket_select() 和无效参数)。
  • 修复了 bug #38183(disable_classes=Foobar 会导致禁用的类被调用为 Foo)。
  • 修复了 bug #38112(损坏的 gif 会导致段错误)。
  • 修复了 bug #37265(向 imap_body() 添加了缺少的 safe_mode 和 open_basedir 检查)。
  • 修复了 bug #29538(number_format 和 0 的问题)。
此版本有 单独的公告

4.4.3 版

  • 为 cURL 扩展的 open_basedir/safe_mode 检查添加了控制字符检查。
  • 向 wordwrap() 函数添加了溢出检查。
  • 添加了对会话名称中特殊字符的检查。
  • 改进了 error_log() 函数的 safe_mode 检查。
  • 将 PCRE 更新到 6.6 版。
  • 修复了 tempnam() 函数内部极长路径的处理。
  • 修复了使用长输入时 phpinfo() 内部的 XSS。
  • 修复了 libmysql.c 中 Win32 系统的 create_named_pipe() 内部可能的缓冲区溢出。
  • 修复了 bug #37720(merge_php_config 会打乱值)。
  • 修复了 bug #37569(WDDX 不正确地编码高 ASCII 字符)。
  • 修复了 bug #37510(session_regenerate_id 即使失败也会更改 session_id())。
  • 修复了 bug #37360(使用损坏的 GIF 文件时的内存错误)。
  • 修复了 bug #37348(使 PEAR 安装忽略 open_basedir)。
  • 修复了 bug #37346(使用无效颜色映射格式时崩溃)。
  • 修复了 bug #37162(wddx 无法作为共享扩展构建)。
  • 修复了 bug #37046(foreach 会破坏静态作用域)。
  • 修复了 bug #37045(修复了对 http 重定向的特殊字符的检查)。
  • 修复了 bug #36857(向 HTTP 流封装器添加了对部分内容获取的支持)。
  • 修复了 bug #36776(node_list_wrapper_dtor 段错误)。
  • 修复了 bug #36459(不正确地将 PHPSESSID 添加到包含 \r\n 的链接中)。
  • 修复了 bug #36458(sleep() 接受负值)。
  • 修复了 bug #36242(stream_select() 中可能的内存损坏)。
  • 修复了 bug #36223(curl 会绕过 open_basedir 限制)。
  • 修复了 bug #36205(重复 Cookie 时的内存泄漏)。
  • 修复了 bug #36148(unpack("H*hex", $data) 会在字符串末尾添加额外的字符)。
  • 修复了 bug #36017(打开 URL 时,fopen() 会使 PHP 崩溃)。
此版本另有单独公告

版本 4.4.2

  • 在cURL扩展中添加了缺失的safe_mode/open_basedir检查。
  • 从PHP 5.x回退了缺失的imap_mailcompose()修复。
  • 通过将每个头限制为单行来防止头注入。
  • 修复了错误报告功能中可能的XSS漏洞。
  • 修复了非Linux系统上子请求处理中Apache 2的回归问题。
  • 修复了bug #35817(unpack()无法解码奇数个十六进制值)。
  • 修复了bug #35735(在configure中未定义$EGREP)。
  • 修复了bug #35669(imap_mail_compose()在处理multipart-multiboundary-email时崩溃)。
  • 修复了bug #35655(heredoc结尾后的空格丢失)。
  • 修复了bug #35646(%{mod_php_memory_usage}n在退出后未重置)。
  • 修复了bug #35594(多次调用getopt()可能导致崩溃)。
  • 修复了bug #35571(修复了Apache 2 SAPI中,当通过SSI include加载多个php脚本时发生的崩溃)。
  • 修复了bug #35536(mysql_field_type()无法处理NEWDECIMAL)。
  • 修复了bug #35410(wddx_deserialize()无法正确处理大整数作为键)。
  • 修复了bug #35341(修复bug #33760 导致使用旧版curl时构建中断)。
  • 修复了bug #35278(多次调用virtual()会导致Apache 2 php模块崩溃)。
  • 修复了bug #35257(在创建ob回调后调用ob_flush会导致段错误)。
  • 修复了bug #35079(stream_set_blocking(true)切换阻塞状态,而非启用阻塞)。
  • 修复了bug #35078(configure找不到ldap_start_tls_s)。
  • 修复了bug #35071(GD安全模式检查中使用了错误的fopen模式)。
  • 修复了bug #35067,修复了bug #35063(key(),current()需要通过引用工作)。
  • 修复了bug #35062(socket_read()在非阻塞套接字上产生警告)。
  • 修复了bug #35059(Apache2与mod_rewrite一起崩溃)。
  • 修复了bug #35009(ZTS:当扩展编译为共享时,持久资源析构会崩溃)。
  • 修复了bug #34996(当ncolors为零时,ImageTrueColorToPalette()崩溃)。
  • 修复了bug #34851(SO_RECVTIMEO和SO_SNDTIMEO套接字选项在Windows上需要整数参数)。
  • 修复了bug #34830(mb_send_mail的第五个参数无效)。
  • 修复了bug #34359(fopen http包装器内部可能崩溃)。
  • 修复了bug #33963(mssql_bind()在输入参数上失败)。
  • 修复了bug #33760(cURL需要CRYPTO_callback函数来防止锁定)。
  • 修复了bug #33720(mb_encode_mimeheader不适用于多字节字符)。
  • 修复了bug #33523(xmlrpc_encode_request()中的内存泄漏)。
  • 修复了bug #33201(获取某些数据类型时崩溃)。
  • 修复了bug #33153(mssql_next result中崩溃)。
  • 修复了bug #32009(多次调用mssql_bind()时崩溃)。
  • 修复了bug #31971(ftp_login在某些SSL服务器上失败)。
  • 修复了bug #30760(如果display_startup_error关闭,则删除win32上E_CORE错误的MessageBox)。
  • 修复了bug #27678(number_format()在大数字时崩溃)。
此版本另有单独公告

版本 4.4.1

  • 为image*函数和cURL添加了缺失的safe_mode检查。
  • 为文件上传添加了缺失的safe_mode/open_basedir检查。
  • 修复了与包含文件相关的内存损坏错误。
  • 修复了Apache 2 sapi中通过virtual()可能发生的INI设置泄漏。
  • 修复了import_request_variables()中可能的崩溃和/或内存损坏。
  • 修复了通过import_request_variables()可能发生的GLOBALS覆盖。
  • 修复了当register_globals开启时可能发生的GLOBALS变量覆盖。
  • 修复了通过parse_str()可能发生的register_globals切换。
  • 为mssql_connect()添加了“new_link”参数。Bug #34369
  • 修复了bug #34850(手册页名称中未包含--program-suffix和--program-prefix)。
  • 修复了bug #34790(preg_match_all(),命名捕获组,变量赋值/返回=>崩溃)。
  • 修复了bug #34742(由分段命令传输导致的ftp包装器故障)。
  • 修复了bug #34704(由于JPEG损坏导致的无限递归)。
  • 修复了bug #34645(ctype在验证大数字时损坏内存)。
  • 修复了bug #34565(mb_send_mail不获取mail.force_extra_parameters)。
  • 修复了bug #34557(php -m以“error”1退出)。
  • 修复了bug #34456(pspell扩展内部可能崩溃)。
  • 修复了bug #34311(unserialize()在191十进制以上的字符时崩溃)。
  • 修复了bug #34307(如果从php.ini设置无效,则不调用on_modify处理程序来设置默认值)。
  • 修复了bug #34302(date('W')不为第1到9周返回前导零)。
  • 修复了bug #34277(array_filter()在引用和对象时崩溃)。
  • 修复了bug #34191(ob_gzhandler不强制尾随\0)。
  • 修复了bug #34156(达到内存限制后内存使用率仍然很高)。
  • 修复了bug #34148(不支持+,-和.作为方案的一部分)。
  • 修复了bug #34137(通过引用赋值数组元素会导致二进制混乱)。
  • 修复了bug #34068(数字字符串作为数组键在wddx_deserialize()中不会转换为整数)。
  • 修复了bug #34064(arr[]作为函数参数仅在函数通过引用接收参数时才允许)。
  • 修复了bug #33989(extract($GLOBALS,EXTR_REFS)导致PHP崩溃)。
  • 修复了bug #33987(php脚本作为ErrorDocument导致Apache 2崩溃)。
  • 修复了bug #33940(array_map()在递归调用时无法通过引用传递)。
  • 修复了bug #33690(在httpd.conf中设置某些ini指令时崩溃)。
  • 修复了bug #33673(添加了对部分上传文件的检测)。
  • 修复了bug #33648(使用--with-regex=system导致编译失败)。
  • 修复了bug #33558(嵌套调用返回引用的函数时出现警告)。
  • 修复了bug #33383(检索空LOB时崩溃)。
  • 修复了bug #33156(setitimer的cygwin版本不接受ITIMER_PROF)。
  • 修复了bug #32937(open_basedir在限制器中丢失尾随/)。
  • 修复了bug #32589(imap_mail_compose()函数内部可能崩溃)。
  • 修复了bug #32179(xmlrpc_encode()在递归引用时出现段错误)。
  • 修复了bug #32160(将文件复制到自身会导致数据丢失)。
  • 修复了bug #31158(对$GLOBALS的array_splice导致崩溃)。
  • 修复了bug #29983(PHP没有显式设置mime类型和字符集)。
  • 修复了bug #29253(使用$GLOBALS参数的array_diff失败)。
  • 修复了bug #21306(ext/sesssion:在RSHUTDOWN期间捕获写入处理程序的失败)。
此版本另有单独公告

版本 4.4.0

  • 为“phpize”和“php-config”脚本添加了手册页。
  • 添加了对扩展中.cc文件的支持。
  • 为sort()函数添加了排序标志SORT_LOCALE_STRING,使其能够根据当前区域设置进行排序。
  • 更改了sha1_file()和md5_file()函数,使其使用流而不是低级IO。
  • 修复了以错误方式使用引用时发生的内存损坏。
  • 修复了在传递as_null参数时pg_copy_from()中的内存损坏。
  • 修复了stristr()中的内存损坏。
  • 修复了bug #32685,修复了bug #29423(在函数内使用按引用赋值时出现段错误)。
  • 修复了bug #33242(流失败时出现错误消息混乱)。
  • 修复了bug #33222(在回调中关闭CURL句柄时出现段错误)。
  • 修复了bug #33214(odbc_next_result在使用两语句SQL批处理时不发出SQL错误信号)。
  • 修复了bug #33210(放宽jpeg递归循环保护)。
  • 修复了bug #33200(preg_replace(): magic_quotes_sybase=On使'e'修饰符行为异常)。
  • 修复了bug #33150(shtool:不安全的临时文件创建)。
  • 修复了bug #33072(为运行时save_path更改添加了safemode/open_basedir检查)。
  • 修复了bug #33070(将bzdecompress()的性能提高了好几个数量级)。
  • 修复了bug #33057(根据RFC 2616第10.3.5节,不要在304上发送多余的实体头)。
  • 修复了bug #33019(套接字错误导致php_strerror()中出现内存泄漏)。
  • 修复了bug #33017(“make distclean”在VPATH构建中给出错误)。
  • 修复了bug #33013(解析日期时“下个月”处理错误)。
  • 修复了bug #32974(pcntl从信号处理程序调用malloc())。
  • 修复了bug #32944(禁用session.use_cookies不会阻止读取会话cookie)。
  • 修复了bug #32936(http重定向URL未检查控制字符)。
  • 修复了bug #32932(Oracle LDAP:ldap_get_entries无效指针)。
  • 修复了bug #32904(pg_get_notify()忽略result_type参数)。
  • 修复了bug #32813(parse_url()无法正确处理仅包含方案的url)。
  • 修复了bug #32810(临时文件不使用普通文件包装器)。
  • 修复了bug #32802(常规cookie会覆盖更具体的cookie)。
  • 修复了bug #32800,修复了bug #32830(ext/odbc:64位系统的问题)。
  • 修复了bug #32773(当第二个参数为0时,GMP函数中断)。
  • 修复了bug #32742(使用包装器的流未关闭时出现分段错误)。
  • 修复了bug #32730(ext/crack.c无法使用cracklib-2.8.3编译)。
  • 修复了bug #32670(foreach()在未设置的数组参数上不发出警告)。
  • 修复了bug #32699(在不可用时定义了pg_affected_rows())。
  • 修复了bug #32682(ext/mssql:从activescript调用时,模块关闭时出错)。
  • 修复了bug #32647(使用具有无效回调的register_shutdown_function()可能导致PHP崩溃)。
  • 修复了bug #32591(ext/mysql:使用HP-UX时,未满足的符号:ntohs)。
  • 修复了bug #32589(imap_mail_compose内部可能崩溃,字符集)。
  • 修复了bug #32587(Apache2:发送到error_log的错误不包含时间戳)。
  • 修复了bug #32567(ext/gmp无法在线程安全模式下编译)。
  • 修复了bug #32538(ext/swf/swf.c无法使用gcc-3.4.x或更高版本编译)。
  • 修复了bug #32530(如果chunklen长于原始字符串,chunk_split()不会附加endstr)。
  • 修复了bug #32491(文件上传错误 - 无法创建临时文件)。
  • 修复了bug #32311(mb_encode_mimeheader()无法正确转义字符)。
  • 修复了bug #32245(分配给xml解析器的函数中的xml_parser_free()导致段错误)。
  • 修复了 bug #32116(在 Windows 下,MySQL 压缩连接无法正常工作)。
  • 修复了 bug #31887(ISAPI:自定义 5xx 错误未返回正确的 HTTP 响应消息)。
  • 修复了 bug #31583(在非 y2k_compliance 模式下,php_std_date() 使用简短的星期名)。
  • 修复了 bug #31213(修复 bug #29493 引起的副作用)。
  • 修复了 bug #30052(odbc_pconnect() 后,关闭时崩溃)。
  • 修复了 bug #29975(在错误处理程序内使用 set_error_handler() 时出现内存泄漏)。
  • 修复了 bug #29944(在 switch 中定义的函数崩溃)。
  • 修复了 bug #29338(某些标签后未编码的空格被忽略)。
  • 修复了 bug #28605(Alpha CPU 需要使用 -[m]ieee 选项)。
  • 修复了 bug #28377(debug_backtrace 偶尔传递参数)。
此版本的 单独公告 可供查看。

版本 4.3.11

  • 添加了 Oracle Instant Client 支持
  • 为 gmp_sqrt()、gmp_powm()、gmp_sqrtrem() 和 gmp_fact() 添加了对负值的检查,以防止 SIGFPE
  • 更改 phpize 不再需要 libtool
  • 更新了捆绑的 libmbfl 库(用于多字节函数)
  • 修复了 ext/browscap 和 sapi/embed 中的多个内存泄漏
  • 修复了 ext/filepro 中的多个内存泄漏
  • 修复了构建系统,使其始终使用捆绑的 libtool 文件
  • 修复了 MacOSX 共享扩展在 Apache 启动时崩溃的问题
  • 修复了 bug #32373(如果提供的路径指向不存在的文件,bzopen() 中出现段错误)。
  • 修复了 bug #32340(insert_before($node,NULL) 没有返回)。
  • 修复了 bug #32200(防止同时使用 --with-apxs2 和 --with-apxs2filter)。
  • 修复了 bug #32114(将属性添加到文档时,DOM 崩溃)。
  • 修复了 bug #32063(mb_convert_encoding 忽略了命名实体“alpha”)。
  • 修复了 bug #31960(msql_fetch_row() 和 msql_fetch_array() 删除了具有 NULL 值的列)。
  • 修复了 bug #31936(set_h_errno() 被不兼容地重新定义)。
  • 修复了 bug #31911(mb_decode_mimeheader() 对十六进制转义大小写敏感)。
  • 修复了 bug #31858(--disable-cli 不会强制 --without-pear)。
  • 修复了 bug #31842(*date('r') 未返回符合 RFC2822 的日期字符串)。
  • 修复了 bug #31797(exif_read_data() 使用的嵌套限制太低)。
  • 修复了 bug #31796(readline 完成处理程序未处理空返回值)。
  • 修复了 bug #31792(getrusage() 未提供 ru_nswap 值)。
  • 修复了 bug #31754(dbase_open() 在 mode = 1 时失败)。
  • 修复了 bug #31705(parse_url() 无法识别 http://foo.com#bar)。
  • 修复了 bug #31684(dio_tcsetattr():termios 设置配置错误)。
  • 修复了 bug #31699(非英语语言环境下 unserialize() 浮点数问题)。
  • 修复了 bug #31623(OCILogin 不支持密码宽限期)。
  • 修复了 bug #31580(fgetcsv() 在 "" 转义序列中存在问题)。
  • 修复了 bug #31527(在未经序列化的非字符串存储时,msg_send() 崩溃)。
  • 修复了 bug #31514(open_basedir 使用 path_translated 而不是 cwd 进行 . 转换)。
  • 修复了 bug #31480(imap_mail_compose() 中可能出现无限循环)。
  • 修复了 bug #31479(当 chunklen > strlen 时,chunk_split() 崩溃)。
  • 修复了 bug #31465(unpack() 在使用 * 时出现错误警告)。
  • 修复了 bug #31454(提供不存在的对象引用时,session_set_save_handler 导致 PHP 崩溃)。
  • 修复了 bug #31444(zend_language_scanner.c 中的内存泄漏)。
  • 修复了 bug #31442(64 位系统上的 unserialize 损坏)。
  • 修复了 bug #31440(启用 register_globals 时,可以通过 GPC 覆盖 $GLOBALS)。
  • 修复了 bug #31413(64 位平台上的 curl POSTFIELDS 崩溃)。
  • 修复了 bug #31396(没有 freetype 时,gd 2.0.33 编译失败)。
  • 修复了 bug #31371(highlight_file() 在 heredoc 后修剪换行符)。
  • 修复了 bug #31270(swf_openfile() 中缺少 safe_mode/open_basedir 检查)。
  • 修复了 bug #31174(url.c 中的编译警告)。
  • 修复了 bug #31159(COM 对象访问无法正常工作)。
  • 修复了 bug #31142(imap_mail_compose() 无法生成正确的输出)。
  • 修复了 bug #31398(启用 magic_guotes_gpc 时,包含 ' 的文件名会被截断)。
  • 修复了 bug #31288(如果之前没有调用 mysql_list_fields(),则 mysql_fetch_field() 可能崩溃)。
  • 修复了 bug #31120(mssql_query 在成功插入和存储过程时返回 false)。
  • 修复了 bug #31107,修复了 bug #31110,修复了 bug #31111,修复了 bug #31249(zend_strtod.c 编译失败)。
  • 修复了 bug #31106(修复了重载对象中的崩溃)。
  • 修复了 bug #31103(找不到 c-client 时,显示更好的错误消息)。
  • 修复了 bug #31101(使用 --with-openssl 时缺少 kerberos 头文件路径)。
  • 修复了 bug #31072(var_export() 未输出键为空字符串的数组元素)。
  • 修复了 bug #31060(imageftbbox() 未使用 linespacing 参数)。
  • 修复了 bug #31056(如果 y2k_compliance 为 On,则 php_std_date() 返回格式错误的日期)。
  • 修复了 bug #31055(apache2filter:按请求泄漏与请求 URI 的完整路径成比例)。
  • 修复了 bug #30726(-.1 之类的数字处理不正确)。
  • 修复了 bug #30609(cURL 函数绕过 open_basedir)。
  • 修复了 bug #30573(libmbfl 中由于无效类型转换导致的编译器警告)。
  • 修复了 bug #30549(某些 ISO8859 字符集的字符转换不正确)。
  • 修复了 bug #30446(apache2handler:virtual() 按顺序包含文件)。
  • 修复了 bug #30430(odbc_next_result() 不绑定值,导致段错误)。
  • 修复了 bug #30120(imagettftext() 和 imagettfbbox() 接受了太多参数)。
  • 修复了 bug #29733(printf() 处理重复占位符错误)。
  • 修复了 bug #29424(JPEG2000 文件的宽度和高度颠倒)。
  • 修复了 bug #28976(mail():如果 sendmail_from 为空,则使用标头中的“From:”)。
  • 修复了 bug #28930(PHP 源代码选择了 bison 生成的错误头文件)。
  • 修复了 bug #28804(ini 文件节段解析模式有错误)。
  • 修复了 bug #28803(由于对已关闭的文件描述符调用了 fflush(),启用调试会在 AIX 上导致 CLI 出现终止错误)。
  • 修复了 bug #28451(损坏的 EXIF 头具有无限递归 IFD 目录条目)。
  • 修复了 bug #28220(mb_strwidth() 对某些少量字符返回错误的宽度值)。
  • 修复了 bug #28086(overload() 函数内部崩溃)。
  • 修复了 bug #28074(FastCGI:应在 FCGI stderr 流中写入 stderr)。
  • 修复了 bug #28067(utf8 到 htmlentities 映射部分不正确)。
  • 修复了 bug #27633(Win32 上 ASCII 模式下 ftp_get 中的双 \r 问题)。
  • 修复了 bug #18613(x509 证书中的多个 OU 未正确处理)。
  • 修复了 bug #7782(无法与 php isapi 完全使用 PATH_INFO)。
此版本的 单独公告 可供查看。

版本 4.3.10

  • 为 *printf 添加了 %F 修饰符,以使用 . 作为小数分隔符呈现浮点数的非区域感知表示形式。
  • 修复了 addslashes() 处理 '\0' 字符的 bug。
  • 从 PHP 5.x 反向移植了 Marcus 的 foreach() 加速补丁。
  • 修复了反序列化无效序列化数据时的潜在问题。
  • 修复了 bug #31034(不存在的 iconv 头文件问题)。
  • 修复了 bug #31024(fgetcsv() 在长度为负时崩溃)。
  • 修复了 bug #31019(mssql 库检查中的逻辑错误)。
  • 修复了 bug #30995(snmp 扩展无法与 net-snmp 5.2 构建)。
  • 修复了 bug #30990(允许 *NIX 上的 popen() 接受 'b' 标志)。
  • 修复了 bug #30826(某些引用关系无法正确反序列化)。
  • 修复了 bug #30750(上传目录不可访问时显示有意义的错误消息)。
  • 修复了 bug #30739(imagefill 未设置回 alphablending 模式)。
  • 修复了 bug #30672(处理 jpeg 图片中不寻常位置的 exif 数据时出现问题)。
  • 修复了 bug #30658(确保删除 GD 创建的临时文件)。
  • 修复了 bug #30654(如果使用相同凭据进行独占连接,则 oci8 持久连接将从哈希中删除)。
  • 修复了 bug #30613(防止 URL 重定向中的无限递归)。
  • 修复了 bug #30587(array_multisort 在更改 zval 之前未分离它们)。
  • 修复了 bug #30475(curl_getinfo() 在某些情况下可能崩溃)。
  • 修复了 bug #30442(解析 ?getvariable[][ 时出现段错误)。
  • 修复了 bug #30388(跨文件系统重命名会丢失所有权和权限信息)。
  • 修复了 bug #30282(使用未知/不支持的 session.save_handler 和/或 session.serialize_handler 时出现段错误)。
  • 修复了 bug #30281(防止将非 wbmp 图片检测为 wbmp 图片)。
  • 修复了 bug #30276(ctype_digit 在大数字上可能崩溃)。
  • 修复了 bug #30229(imagerectangle 和 imagefilledrectangle 在 alpha 通道中工作不正常,角被绘制两次)。
  • 修复了 bug #30224(Sybase 日期字符串有时未以 null 结尾)。
  • 修复了 bug #30133(get_current_user() 在 Windows 上崩溃)。
  • 修复了 bug #30057(未在 FreeBSD 4.1 上检测到 IPV6)。
  • 修复了 bug #30027(ftp_get() 内部可能崩溃)。
  • 修复了 bug #29805(HTTP 身份验证问题)。
  • 修复了 bug #29418(openssl_csr_new 失败时出现双重释放)。
  • 修复了 bug #28598(丢失了对 MS 符号字体的支持)。
  • 修复了 bug #28325(循环引用未正确序列化)。
  • 修复了 bug #28228(未正确处理 NULL 小数分隔符)。
  • 修复了 bug #27469(序列化不完整类的对象)。
此版本的 单独公告 可供查看。

版本 4.3.9

  • GPC 输入处理修复。
  • 实现了周期性的 PCRE 编译正则表达式缓存清理,以避免内存耗尽。
  • 修复了 raw_post_data 未设置的 bug。
  • 修复了 phpinfo() 和其他“特殊”URL 的文件描述符泄漏。
  • 重写了 UNIX 和 Windows 安装帮助文件。
  • 更新了 PCRE,以在某些情况下提供更好的错误处理。
  • NSAPI:为 php4_execute 的非 php.ini 密钥列表添加了“bucket”参数,用于在服务器日志中无需警告即可进行性能统计。
  • 修复了 idate() 中的闰年检查。
  • 修复了 `strip_tags()` 函数处理 '\0' 字符的错误。
  • 修复了当未设置 `PHP_FCGI_CHILDREN` 时 FastCGI 中出现的异常分叉效果。
  • 修复了 bug #30050(`php_shutdown_config()` 中可能发生的崩溃)。
  • 修复了 bug #29882(`isset()` 在数组上崩溃)。
  • 修复了 bug #29753(`mcal_fetch_event()` 允许第二个参数可选)。
  • 修复了 bug #29727(添加了缺失的 CURL 身份验证指令)。
  • 修复了 bug #29719(`fgetcsv()` 在解析以转义的围闭符结尾的字符串时出现问题)。
  • 修复了 bug #29607(使用 HEREDOC 高亮显示代码会产生无效的输出)。
  • 修复了 bug #29599(`domxml_error` 使另一个 apache 模块出现段错误)。
  • 修复了 bug #29594(使用 PHP 自身的 `tmpfile()` 实现)。
  • 修复了 bug #29581(`php.ini` 中 `mysql.trace_mode` 注释的错别字)。
  • 修复了 bug #29493(`extract(array, EXTR_REFS)` 在多次引用元素时行为异常)。
  • 修复了 bug #29443(对 wbmp 检测的完整性检查)。
  • 修复了 bug #29369(名称中包含 ' 或 " 的上传文件,其名称会被截断到这些字符处)。
  • 修复了 bug #29349(`imagecreatefromstring()` 使用外部 GD 库时崩溃)。
  • 修复了 bug #29333(`output_buffering` + `trans_sess_id` 可能损坏输出)。
  • 修复了 bug #29226(`ctype_*` 函数缺少对数字字符串表示的验证)。
  • 修复了 bug #29209(`imap_fetchbody()` 不检查消息索引)。
  • 修复了 bug #29116(Zend 常量警告在释放后使用内存)。
  • 修复了 bug #29114(`php_stat` 中潜在的双重释放)。
  • 修复了 bug #29075(`strnatcmp()` 错误地处理空格)。
  • 修复了 bug #29049(通过用户函数/方法进行数组排序不进行验证)。
  • 修复了 bug #29038(`extract()` 使用 `EXTR_PREFIX_SAME` 前缀空字符串)。
  • 修复了 bug #29034(`wordwrap()` 传递空字符串时返回布尔值)。
  • 修复了 bug #28974(`array_slice()`、`array_splice()`、`substr`、`substr_replace()`、`strspn()`、`strcspn()` 中的溢出)。
  • 修复了 bug #28897(ibase:64 位缩放整数返回 -1 为 -0.000)。
  • 修复了 bug #28879(使用资源、数组或对象作为索引时的隐式/显式数组创建不一致)。
  • 修复了 bug #28878(在 obj.conf 中设置 inikey 失败)。
  • 修复了 bug #28868(内部包装器注册表不是线程安全的)。
  • 修复了 bug #28818(Apache 2 sapis 不导出 st_dev)。
  • 修复了 bug #28800(以 "inf" 开头的字符串转换不正确)。
  • 修复了 bug #28723(修复了 mbstring config.m4,使其在测试命令不支持 -e 参数的操作系统上工作)。
  • 修复了 bug #28692(通过 safe_mode 传递的 Authenticate 头部中的 \0)。
  • 修复了 bug #28670(在 safe_mode 中使用 PCRE 会使 WWW-Authentication 头部混乱,并添加额外的空格)。
  • 修复了 bug #28668(`glob()` 在 Windows 上不适用于相对路径)。
  • 修复了 bug #28649(在 Linux 上没有匹配项时,`glob()` 的正确返回值)。
  • 修复了 bug #28633(`sprintf` 错误地向浮点数添加填充)。
  • 修复了 bug #28627(使用多个 MySQL 连接时,默认连接会泄漏)。
  • 修复了 bug #28525(`gmp_powm()` 不适用于以十六进制字符串表示的模数)。
  • 修复了 bug #28512(分配足够的内存来存储 MSSQL 数据)。
  • 修复了 bug #28466(`mbstring_convert_variables()` 数组分隔问题)。
  • 修复了 bug #28175(允许捆绑的 GD 针对 freetype 2.1.2 编译)。
此版本的单独公告可用。

版本 4.3.8

  • 修复了 `strip_tags()` 函数处理 '\0' 字符的错误。(Stefan)
  • 使用 `memory_limit` 时提高了启动期间的稳定性。(Stefan)
  • 用 `emalloc()` 替换 `alloca()` 以获得更好的堆栈保护。(Ilia)
  • 在 `ftok` 和 `itpc` 中添加了缺失的 `safe_mode` 检查。(Ilia)
  • 修复了 bug #28963 修复了 IMAP 扩展中的地址分配例程。(Ilia)
  • 修复了 bug #28632 防止通过 MySQL 的 `LOAD DATA LOCAL`绕过 `open_basedir`。(Ilia)
此版本的单独公告可用。

版本 4.3.7

  • 将捆绑的 GD 库升级到 2.0.23。(Ilia)
  • 更改用户错误处理程序机制,如果返回 false,则中继到内置错误处理程序。(Andrei)
  • 修复了 win32 的命令行转义例程。(Ilia)
  • 修复了 `*printf()` 函数和 `'%f'` 格式化的问题。(Marcus)
  • 修复了 `pg_copy_(to|from)` 函数中如果分隔符超过 1 个字符长的可能崩溃。(Ilia)
  • 修复了处理真彩色图像时 `cpdf_place_inline_image()` 中的崩溃。(Ilia)
  • 修复了 `mssql_execute()` 中存储过程返回值的处理,其中返回多个结果集。(Frank)
  • 修复了 `session_register()` 中的逻辑错误,该错误允许注册 `_SESSION` 和/或 `HTTP_SESSION_VARS`。(Sara)
  • 修复了 bug #28597(`xmlrpc_encode_request()` 错误地编码了 200-210 范围内的字符)。(fernando dot nemec at folha dot com dot br, Ilia)
  • 修复了 bug #28569(Informix 连接 ID 不是线程安全的)。(novicky at aarongroup dot cz, Ard)
  • 修复了 bug #28564(构建 Informix 作为共享扩展的问题)。(roques at mti dot ag, Ilia)
  • 修复了 bug #28508(如果 libc 不支持,则不提供 `hypot()`)。(Ilia)
  • 修复了 bug #28506(允许 `imagearc` 和 `imagefilledarc` 中使用负起始角度)。(Pierre)
  • 修复了 bug #28456(上传文件中包含的 / 问题)。(Antony)
  • 修复了 bug #28386(`wordwrap()` 将行换行过早)。(Ilia)
  • 修复了 bug #28374(`_php_pgsql_trim_message()` 中可能存在的未终止循环)。(Ilia)
  • 修复了 bug #28355(`glob()` 在 Linux 上没有权限打开目录时不返回错误)。(Ilia)
  • 修复了 bug #28289(`glob()` 在 Windows 中错误地解析相对路径)。(Ilia)
  • 修复了 bug #28229(`run-tests` 被名称中的空格所中断)。(Marcus)
  • 修复了 bug #28228(`number_format()` 不允许使用空的小数分隔符)。(Ilia)
  • 修复了 bug #28196(cURL 扩展中缺少错误常量)。(Ilia)
  • 修复了 bug #28187(`parse_url()` 不处理 URL 中嵌入的 IPv6)。(Sara)
  • 修复了 bug #28175(使用 FreeType 2.1.0-2.1.2 的人员的构建问题)。(Ilia)
  • 修复了 bug #28147(绘制抗锯齿线时崩溃)。(Derick)
  • 修复了 bug #28122(`dba_open db3:` 权限被拒绝)。(Marcus)
  • 修复了 bug #28112(`sqlite_query()` 在格式错误的查询上使 apache 崩溃)。(Ilia, Marcus)
  • 修复了 bug #28055(`feof()/pfsockopen()` 活动检查中的超时时间过长)。(Wez)
  • 修复了 bug #28087(不要在每次请求时强制 `mysql.trace_mode` 为 0)。(Ilia)
  • 修复了 bug #28042(html 中的希腊字母到实体映射不正确)。(Derick)
  • 修复了 bug #28007(使用旧版本的 FreeTDS 编译 mssql 扩展失败)。(Frank)
  • 修复了 bug #27995(`imagefilltoborder()` 过早停止填充过程)。(Ilia)
  • 修复了 bug #27810(不要在 ext/pcre 中使用 php 的 pemalloc)。(Joe Orton)
  • 修复了 bug #23220(SSL:与 IIS 通信时出现致命协议错误)。(Wez)
此版本的单独公告可用。

版本 4.3.6

  • 在 Windows 发行版中将捆绑的 PDFLib 库更新到 5.0.3p1 版本。(Edin)
  • 将捆绑的 GD 库与 GD 2.0.22 同步。(Ilia)
  • 修复了在多线程环境中,当 web 服务器关闭线程时发生的崩溃。(Stas)
  • 修复了一个阻止针对外部 GD 库 1.X 构建 GD 扩展的错误。(Ilia, Edin, Nick Talbott)
  • 修复了 bug #27963(会话生命周期设置可能在请求之间泄漏)。(Ilia)
  • 修复了 bug #27849(配置在简单的语法错误上崩溃)。(Derick)
  • 修复了 bug #27822(`is_resource()` 对已关闭的资源返回 TRUE)。(Derick)
  • 修复了 bug #27819(返回对引用参数的引用的问题)。(Ilia)
  • 修复了 bug #27809(`ftp_systype` 在某些 ftp 服务器上返回 null)。(Ilia)
  • 修复了 bug #27802(当未定义 `PHP_FCGI_CHILDREN` 时,子进程的默认数量为 8)。(Ilia)
  • 修复了 bug #27780(`strtotime(+1 xxx)` 返回错误的日期/时间)。(Derick)
  • 修复了 bug #27769(`domxml_xmltree` 崩溃)。(Rob)
  • 修复了 bug #27764(获取不返回任何结果集的存储过程的返回值)。(Frank)
  • 修复了 bug #27762(SCO Openserver 没有 S_ISSOCK)。(Wez)
  • 修复了 bug #27743(确保正确转换和返回货币类型)。(Frank)
  • 修复了 bug #27732(`php_sab_info.h` 中的编译错误)。(Ilia)
  • 修复了 bug #27731(`@` 块内的 `error_reporting()` 无法设置 `error_reporting` 级别)。(Ilia)
  • 修复了 bug #27719(`mktime` 在 DST 转换前后存在问题)。(Rasmus)
  • 修复了 bug #27717(在 64 位模式下编译时的测试失败)。(Ard, Derick)
  • 修复了 bug #27687(向 'text/*' Content-Type 头部添加默认字符集的错误)。(Marcus)
  • 修复了 bug #27663(与 cURL 7.11.1 编译失败)。(Ilia)
  • 修复了 bug #27646(无法序列化/反序列化非有限数值)。(Marcus)
  • 修复了 bug #26757(win32 的 `session.save_path` 默认值无效)。(Wez)
  • 修复了 bug #26589(选择许多货币类型列时,mssql 扩展内部崩溃)。(Frank)
  • 修复了 bug #25547(`error_handler` 和带有函数调用的数组索引)。cschneid at cschneid dot com)
此版本的单独公告可用。

版本 4.3.5

  • 修复了在 `imagecolortransparent` 中使用调色板图像的无效颜色索引时可能发生的崩溃 (Pierre)
  • 修复了 php-cgi 在 Web 环境中运行时忽略命令行开关的问题。这修复了我们的测试用例,允许使用包含 GET 部分的 INI 文件 (Rasmus)
  • 修复了 getopt() 函数在没有 $_SERVER 变量时也能正常工作的问题 (Rasmus, bfrance)
  • 修复了 php_ini_scanned_files() 函数在实际上没有解析任何附加 INI 文件时发生的崩溃问题 (Jon)
  • 修复了套接字扩展中由于分配函数中缺少检查而可能发生的崩溃问题 (Ilia)
  • 修复了在 --with-config-file-scan-dir 指定的目录中未找到额外的 ini 文件时发生的零字节内存分配问题 (Eric Colinet, Derick)
  • 将 "allow_url_fopen" php.ini 选项更改为 PHP_INI_SYSTEM (Sara)
  • 改进了 sybase_ct 模块:(Timm)
    • 增加了不仅可以全局定义,还可以为每个连接定义消息处理程序的功能。
    • 添加了 "sybct.packet_size" php.ini 选项。
    • 更改了 "sybct.login_timeout" php.ini 选项,使其可以在运行时更改。
    • 修复了 sybase_set_message_handler() 函数中的内存泄漏问题。
  • 将捆绑的 GD 库与 GD 2.0.17 版本同步
  • 将 PCRE 库升级到 4.5 版本 (Andrei)
  • 在 Windows 发行版中将捆绑的 PostgreSQL 库更新到 7.4 版本 (Edin)
  • 添加了对 --program-prefix 和 --program-suffix 配置选项的支持 (Jani)
  • 在 ftp_(n)list() 函数使用临时流失败时添加了警告 (Sara)
  • 修复了 NSAPI SAPI 模块中的 header 处理程序 (header->replace 被忽略,send_default_content_type 现在发送 php.ini 中的值) (Uwe Schindler)
  • 修复了 Bug #27633 (ftp_get() 函数在 ASCII 模式下进行不正确的 EOL 转换) (Ilia)
  • 修复了 Bug #27600 (GCC 3.0.4 不支持 __attribute__ 指令) (Sascha)
  • 修复了 Bug #27590 (在 ZTS 模式下释放持久性资源时,在关闭过程中发生崩溃) (Ilia)
  • 修复了 Bug #27582 (imagefilltoborder() 函数中可能发生的崩溃) (Pierre)
  • 修复了 Bug #27580 (ap2 处理程序中的预初始化错误未写入 vhost 错误日志) (Ilia)
  • 修复了 Bug #27559 (修正了 open_basedir 解析逻辑) (Ilia)
  • 修复了 Bug #27530 (当 safe_mode 启用且 PCRE 禁用时,HTTP 身份验证出现故障) (Ilia)
  • 修复了 Bug #27509 (getaddrinfo() 函数出现故障导致 fsockopen() 函数出错) (Sara)
  • 修复了 Bug #27505 (htmlentities() 函数不能正确处理 BIG5 编码) (Ilia, ywliu at hotmail dot com)
  • 修复了 Bug #27498 (对于 chdir() 和 opendir() 函数,在不存在的目录上出现错误的 safe_mode 错误) (Ilia)
  • 修复了 Bug #27460 (base64_decode() 函数不能处理额外的填充) (Ilia, naish at klanen dot net)
  • 修复了 Bug #27443 (defined() 函数返回错误的类型) (Derick)
  • 修复了 Bug #27437 (GD 库中错误的 freetype 包含) (Ilia)
  • 修复了 Bug #27424 (在 Apache 2 SAPI 中,flush() 函数缺少头部信息) (Ilia)
  • 修复了 Bug #27421 (mbstring.func_overload 应为系统 INI 设置) (Ilia)
  • 修复了 Bug #27384 (unpack() 函数对 1 字符串的行为异常) (GeorgeS)
  • 修复了 Bug #27383 (解析响应代码时,fopen_wrapper 内部可能发生崩溃) (Ilia)
  • 修复了 Bug #27354 (模运算符导致 PHP 崩溃) (Derick)
  • 修复了 Bug #27341 (HEAD 请求无法返回数据) (Ilia)
  • 修复了 Bug #27337 (sapi/isapi 中缺少 sapi_shutdown() 函数导致内存泄漏) (Jani, msisolak at yahoo dot com)
  • 修复了 Bug #27328 (ftp 扩展依赖于 32 位长整数) (Sara)
  • 修复了 Bug #27300 (改进了 pg_convert() 函数的正则表达式) (benjcarson at digitaljunkies dot ca, Ilia)
  • 修复了 Bug #27295 (sscanf() 函数内部的内存泄漏) (Ilia)
  • 修复了 Bug #27293 (image2wbmp() 函数内部的两次崩溃) (Ilia)
  • 修复了 Bug #27291 (get_browser 函数不正确地匹配 browscap.ini 模式) (Jay)
  • 修复了 Bug #27278 (*printf() 函数将参数视为按引用传递) (Ilia)
  • 修复了 Bug #27238 (iptcparse() 函数遗漏了一些字段) (Pierre)
  • 修复了 Bug #27235 (Interbase NUMERIC x.0 字段在 0 时返回空字符串) (Ard)
  • 修复了 Bug #27196 (Apache 2 SAPI 中缺少 content_length 初始化) (Ilia, pdoru at kappa dot ro)
  • 修复了 Bug #27183 (用户空间流包装器在 stream_write 时发生段错误) (Moriyoshi)
  • 修复了 Bug #27175 (PHP 在启动时没有调用 tzset() 函数) (Ilia, sagawa at sohgoh dot net)
  • 修复了 Bug #27172 (gmp_powm() 函数中可能发生的浮点异常) (Ilia)
  • 修复了 Bug #27171 (gmp_hamdist() 函数内部发生崩溃) (Jani)
  • 修复了 Bug #27157 (Solaris 8 上编译失败) (Timm)
  • 修复了 Bug #27149 (oci8 扩展中 CLOB 支持出现故障) (Antony)
  • 修复了 Bug #27135 (mb_strlen() 函数内部可能发生崩溃) (Moriyoshi)
  • 修复了 Bug #27104 (CLI/CGI SAPI 模块变量名冲突) (Marcus)
  • 修复了 Bug #27058 (sybase_connect() 函数使用 2 个参数时发生崩溃) (Ilia)
  • 修复了 Bug #27056 (一些 GD 函数中使用了整数而不是长整数) (Ilia)
  • 修复了 Bug #27040 (将表单字段数组传递给 CURLOPT_POSTFIELDS 不起作用) (Ilia, Jani)
  • 修复了 Bug #27037 (修复了 apache2handler 输出代码中可能发生的崩溃) (Ilia)
  • 修复了 Bug #27026 (添加了 "cgi.nph" php.ini 选项,允许强制使用通常不需要的 'Status: 200' 头部信息) (Ilia)
  • 修复了 Bug #27011 (preg_match*() 函数中 64 位整数/长整数混淆) (Ilia)
  • 修复了 Bug #27007 (在 pgsql 中连接失败时缺少连接关闭) (Ilia)
  • 修复了 Bug #26974 (rename() 函数不检查目标文件是否符合 safe_mode/open_basedir) (Ilia)
  • 修复了 Bug #26973 (*printf() 函数 '+' 修饰符损坏) (Jani)
  • 修复了 Bug #26969 (--with-openssl=shared 构建失败) (Jani)
  • 修复了 Bug #26968 (以共享方式构建 Interbase 模块时发生段错误) (Ard)
  • 修复了 Bug #26949 (启用 ZTS 时,rand(min,max) 始终返回 min) (Jani)
  • 修复了 Bug #26937 (xml.c 中的警告) (Jani)
  • 修复了 Bug #26927 (preg_quote() 函数不转义 \0) (Ilia)
  • 修复了 Bug #26923 (ext/imap: 以共享扩展方式构建时缺少 pam 和 crypt 库) (Jani)
  • 修复了 Bug #26909 (imap_mime_header_decode() 函数在未使用编码时发生崩溃) (Ilia)
  • 修复了 Bug #26896 (ext/ftp 无法作为共享扩展工作) (Jani)
  • 修复了 Bug #26892 (ocinewcollection() 调用中出现 ORA-21301 错误) (Antony)
  • 修复了 Bug #26878 (使用不同类型引用同一变量的问题) (Ilia)
  • 修复了 Bug #26864 (pg_(update|delete) 忽略 PGSQL_DML_EXEC 选项) (Ilia)
  • 修复了 Bug #26862 (ob_flush() 后跟 output_reset_rewrite_vars() 可能导致数据丢失) (Ilia, scottmacvicar at ntlworld dot com)
  • 修复了 Bug #26847 (当收件人/主题仅包含空格时,mail() 函数中的内存泄漏) (Ilia)
  • 修复了 Bug #26814 (如果包含的文件有解析错误,则终止脚本执行) (Ilia)
  • 修复了 Bug #26777 (ext/interbase: 让数据库处理 NULL 参数) (Ard)
  • 修复了 Bug #26772, #26967 (文件操作返回 NULL 而不是 FALSE) (Wez, Ilia)
  • 修复了 Bug #26758 (FastCGI 立即以状态 255 退出) (Ilia, tcarter at noggin dot com dot au)
  • 修复了 Bug #26755 (CLI 现在覆盖 php.ini 设置并关闭输出缓冲) (Edin)
  • 修复了 Bug #26753 (zend_fetch_list_dtor_id() 函数不检查 NULL 字符串) (Jani, Markus dot Lidel at shadowconnect dot com)
  • 修复了 Bug #26752 (当 fgets()、fread() 和 fgetss() 函数的长度参数为 0 时,出现静默的未终止循环) (Ilia)
  • 修复了 Bug #26751 (PHP 在区分大小写的文件系统上找不到 MySQL 套接字) (Derick)
  • 修复了 Bug #26703 (字符串中的某些字符被错误地视为关键字) (vrana [at] php [dot] net, Ilia)
  • 修复了 Bug #26699 (mbstring 无法识别 "binary" 为有效的编码) (nirva-php at ishiboo dot com, Moriyoshi)
  • 修复了 Bug #26667 (为 ip2long() 函数添加了安全检查) (Ilia)
  • 修复了 Bug #26653 (win32 上 open_basedir 解析错误) (Ilia, scottmacvicar at ntlworld dot com)
  • 修复了 Bug #26639 (mb_convert_variables() 函数将变量弄乱到引用之外) (Moriyoshi)
  • 修复了 Bug #26635 (修复了在当前目录中查找字体的问题,使用了 ZTS) (Ilia)
  • 修复了 Bug #26625 (pg_convert 函数为字符数据类型错误地设置 NULL) (Ilia)
  • 修复了 Bug #26604 (Apache2 SAPI 隐式禁用 Keep-Alive) (Ilia)
  • 修复了 Bug #26595 (ext/domxml: XSLT_NAMESPACE 未声明) (Christian)
  • 修复了 Bug #26565 (strtotime("this month") 解析到错误的月份) (Jani)
  • 修复了 Bug #26564 (ncurses5 的头文件位于 PREFIX/include/ncurses/) (Jani)
  • 修复了 Bug #26548 (ext/session: 格式错误的 HTTP 日期头部信息) (Derick)
  • 修复了 Bug #26531 (ext/domxml: get_elements_by_tag_name() 通配符失败) (Rob Richards)
  • 修复了 Bug #26488 (ext/dio/dio.c 中缺少 CRTSCTS 的声明) (Jani)
  • 修复了 Bug #26467 (flock() 函数不强制将 "wouldblock" 参数按引用传递) (Wez)
  • 修复了 Bug #26463 (heredoc 后分号的处理不正确) (Ilia)
  • 修复了 Bug #26462 (phpize + ext/bcmath -> 编译错误) (Jani)
  • 修复了 Bug #26461 (LIBS 中缺少 -lssl) (Jani)
  • 修复了 Bug #26458 (var_dump()、var_export()、debug_zval_dump() 对数组键不安全) (Ilia)
  • 修复了 Bug #26447 (--with-openssl=shared 导致编译错误) (Jani)
  • 修复了 Bug #26446 (domxml_open_file() 函数返回空错误数组) (Rob)
  • 修复了 Bug #26440 (MFH 缺少上下文选项) (Ilia)
  • 修复了 Bug #26438 (thttpd SAPI 安装错误) (Jani)
  • 修复了 Bug #26415 (将 Windows 发行版中捆绑的 OpenSSL DLL 更新到 0.9.7c) (Edin)
  • 修复了 Bug #26407 (事务周围的结果集获取出现故障) (Timm)
  • 修复了 Bug #26391 (parse_url() 函数破坏包含 \x80-\xff 范围字符的字符串) (Moriyoshi)
  • 修复了 Bug #26384 (domxslt->process() 函数发生崩溃) (Christian)
  • 修复了 Bug #26381 (不使用 srand() 时,rand() 函数在某些 php.ini 下不起作用) (Jani)
  • 修复了 Bug #26376 (ext/odbc/config.m4 中的错别字:DBMaker 测试失败) (Jani)
  • 修复了 Bug #26355 (flock() 函数不初始化 wouldblock 参数) (Ilia)
  • 修复了 Bug #26309 (修复了 imageftbbox() 函数的参数解析) (Ilia)
  • 修复了 Bug #26304 (打开 dba 文件时出现意外的数据丢失) (Marcus)
  • 修复了 Bug #26285 (escapeshellarg() 函数在 Windows 上使用错误的引号) (Ilia)
  • 修复了 Bug #26267 (gmp_random() 函数发生内存泄漏且不产生随机数) (Jani)
  • 修复了bug #26253 (ext/tokenizer: 作为共享扩展构建失败)。(Jani)
  • 修复了bug #26235 (yp_first/yp_next 未指定正确的键长度)。(Ilia)
  • 修复了bug #26216 (使用远程文件时,“getimagesize(): 流不支持查找”)。(Marcus)
  • 修复了bug #26201 (ibase_trans() 在无效链接句柄上崩溃)。(Ilia)
  • 修复了bug #26198 (strtotime() 处理 M/F Y 日期格式)。(Ilia)
  • 修复了bug #26194 (iconv() 未正确定义 libiconv)。(Steph, Frank, Moriyoshi)
  • 修复了bug #26176 (修复了 INI 文件中数字键的处理)。(Ilia)
  • 修复了bug #26168 (phpize 中的 shtool 可用性检查)。(robbat2 at gentoo dot org, Ilia)
  • 修复了bug #26148 (在类型不匹配时,先打印通知再修改变量)。(morten-bugs dot php dot net at afdelingp dot dk, Ilia)
  • 修复了bug #26128 (mbstring 在 phpinfo() 中输出错误信息)。(Moriyoshi)
  • 修复了bug #26113 (ftp_get/ftp_nb_get 失败时删除残留的本地文件)。(Ilia)
  • 修复了bug #26105 (GCC 3.0.X 版本编译失败)。(Ilia)
  • 修复了bug #26103 (ext/mime_magic 导致 ext/mssql 编译失败)。(Jani)
  • 修复了bug #26097 (gdImageColorClosestAlpha() 返回不正确的结果)。(sprice at wisc dot edu, Ilia)
  • 修复了bug #26042 (如果每次 mcrypt_generic_init() 调用后没有调用 mcrypt_generic_deinit(),则会发生内存泄漏)。(Ilia)
  • 修复了bug #26025 (*BSD 平台下,在没有 GLOB_NOCHECK 或 GLOB_NOMAGIC 的情况下,glob() 会出现段错误)。(Moriyoshi)
  • 修复了bug #26005 (随机出现“无法更改会话 ini 设置”错误)。(Jani, jsnajdr at kerio dot com)
  • 修复了bug #26003 (使 fgetcsv() 支持二进制)。(Ilia, Moriyoshi)
  • 修复了bug #25963 (PostgreSQL 错误消息包含 \n 字符)。(Marcus, Ilia)
  • 修复了bug #25939 (feof() 对套接字不起作用)。(Wez)
  • 修复了bug #25916 (get_browser() -> PHP 严重错误:嵌套级别过深 - 递归依赖?)。(Uwe Schindler)
  • 修复了bug #25794 (无法使用写入打开现有的 hash db3 文件) ext/dba。(Marcus)
  • 修复了bug #25753 (php.ini 设置从 vhosts/.htaccess 文件“泄漏”)。(补丁作者:rover at tob dot ru)
  • 修复了bug #25694 (round() 和 number_format() 给出不一致的结果)。(Ilia)
  • 修复了bug #25664 (使用无效参数调用 ITypeInfo::Invoke)。(Wez)
  • 修复了bug #25581 (getimagesize() 对位图 (os2) 文件返回不正确的值)。(Marcus)
  • 修复了bug #25329 (sqlite_create_function 使用方法和对 $this 的引用)。(Marcus)
  • 修复了bug #24773 (取消设置字符串作为数组会导致崩溃)。(Sara)
  • 修复了bug #24773 (取消设置字符串偏移量会导致 PHP 崩溃)。(Moriyoshi, Sara)
  • 修复了bug #24582 (Solaris/iPlanet 中无法动态加载扩展)。(Jani)
  • 修复了bug #23467 (date('T') 输出不正确的时区)。(Jani, scottmacvicar at ntlworld dot com)
  • 修复了bug #22403 (执行没有参数的 sql 过程时,PHP 崩溃)。(Timm)
  • 修复了bug #22127 (强制 cgi 重定向安全机制触发时,响应代码无效)。(Ilia, scottmacvicar at ntlworld dot com)
  • 修复了bug #21760 (php_read() 内部使用未初始化的指针)。(Ilia, uce at ftc dot gov)
  • 修复了bug #21513 (超时时未执行关闭函数)。(Zeev)
  • 修复了bug #21070 (ftp_genlist/ANSI-tmpfile() 在某些平台上失败)。(Sara)
此版本的单独公告可用。

4.3.4 版本

  • 使 MCVE 扩展在 win32 上可用。(Jani)
  • 升级捆绑的 libfcgi 并使 FastCGI 支持在 Win32 上可用。(Sascha)
  • 添加了 apache_get_version() 函数。(Ilia)
  • 修复了 FreeBSD 下的 disk_total_space() 和 disk_free_space()。(Jon Parise)
  • 修复了使用不存在的保存/序列化处理程序时的崩溃错误。(Jani)
  • 修复了 gethostbynamel() 在发生错误时的内存泄漏。(Sara)
  • 修复了 FastCGI 无法绑定到特定 IP 的问题。(Sascha)
  • 修复了多字节正则表达式引擎在 POSIX 兼容模式下正确处理“.*”模式的问题。(K.Kosako <kosako at sofnec.co.jp>, Moriyoshi)
  • 修复了bug #25955 (MacOSX 10.3 Panther 编译失败)。(Marko, Dan)
  • 修复了bug #25923 (mail() 修改了收件人和主题参数)。(Ilia)
  • 修复了bug #25922 (当修改第五个参数时,错误处理程序崩溃)。(Ilia)
  • 修复了bug #25918 (mime_content_type() 可能崩溃)。(Ilia)
  • 修复了bug #25900 (document->get_elements_by_tag_name 使用默认 xmlns)。(Rob)
  • 修复了bug #25895 (安全模式限制的 ini 选项检测不正确)。(Ilia)
  • 修复了bug #25888 (xpath_eval 命名空间时,php.exe 崩溃)。(Rob)
  • 修复了bug #25836 (通过 GPC 传递的多维数组的最后一个键在 magic_quotes_gpc 打开时未转义)。(Ilia)
  • 修复了bug #25825 (在请求关闭时未调用 tzset() 来重置 libc 环境)。(Wez)
  • 修复了bug #25814 (当使用第三个参数时,flock() 返回正确的值)。(Ilia)
  • 修复了bug #25800 (parse_url() 无法解析端口为空的 url)。(Ilia)
  • 修复了bug #25780 (ext/session: 无效的“session.cookie_lifetime”使 session_start() 在 win32 中崩溃)。(Jani)
  • 修复了bug #25777 (不要从 mssql 获取的文本字段进行 rtrim())。(Ilia)
  • 修复了bug #25770 (PHP 和 bison 1.875 出现段错误)。([email protected], Marcus)
  • 修复了bug #25764 (ldap_get_option() 使用未绑定的 ldap 链接时崩溃)。(Jani)
  • 修复了bug #25758 (var_export 未转义数组键中的 ' & \)。(Ilia)
  • 修复了bug #25752 (ext/ncurses: 使用 BSD 时使用 ncurses.h 代替 curses.h)。(Jani)
  • 修复了bug #25746 (在具有损坏的 getcwd() 的系统上,无法 chdir 到原始目录时,不要退出)。(Ilia)
  • 修复了bug #25745 (ctype 函数对非 ASCII 字符失败)。(Moriyoshi)
  • 修复了bug #25744 (使 ext/sybase 的 ZTS 版本编译)。(Ilia)
  • 修复了bug #25738 (Darwin 平台上的 alloca() 相关问题)。(Moriyoshi)
  • 修复了bug #25708 (extract($GLOBALS, EXTR_REFS) 损坏 $GLOBALS)。(Moriyoshi)
  • 修复了bug #25707 (html_entity_decode() 过度解码 <)。(Moriyoshi)
  • 修复了bug #25703 (openssl 配置检查失败)。(Jani)
  • 修复了bug #25701 (在 flush() 中设置 apache2handler 中的 headers_sent)。(Ilia)
  • 修复了bug #25671 (str_replace() 损坏子数组)。(Sara)
  • 修复了bug #25669 (eregi() 使用非 ASCII 字符)。(Moriyoshi)
  • 修复了bug #25665 (var_dump() 在 Nan 和 INF 上挂起)。(Ilia)
  • 修复了bug #25648 (xslt_set_encoding() 未正确检测)。(Jani)
  • 修复了bug #25636 (SNMP 会话在成功时未关闭)。(Ilia, 补丁作者:nesslage at mwsc dot edu)
  • 修复了bug #25635 (由于 include_path 无效,“make tests”失败)。(Ilia)
  • 修复了bug #25604 (使用 phpize 构建时,HAVE_SNMP_PARSE_OID 未定义)。(Jani)
  • 修复了bug #25583 (glob() 函数在 win32 内部不正确地处理以“/”开头的路径)。(Ilia)
  • 修复了bug #25570 (在 zend_try {} 块之外调用 zend_bailout 时,apache2handler 可能崩溃)。(Ilia)
  • 修复了bug #25558 (ext/dbase: 回滚了 bug #23463 的修复)。(Vlad)
  • 修复了bug #25530 (checkdate() 不正确地处理浮点数)。(Ilia)
  • 修复了bug #25525 (传递无效 dn 时,ldap_explode_dn() 崩溃)。(Sara, 补丁作者:mikael dot suvi at trigger dot ee)
  • 修复了bug #25504 (仅传递两个参数时,pcre_match_all() 崩溃)。(Jani)
  • 修复了bug #25483 (ext/informix: ifx_query() 返回错误的 -469 错误)。(Jani, 补丁作者:denisov at kubsu dot ru)
  • 修复了bug #25463 (ext/cpdf: 使用捆绑的 GD 编译失败)
  • 修复了bug #25429 (修复使用 copy() 函数复制 stdin)。(Ilia)
  • 修复了bug #25424 (ext/informix: win32 中不支持 lvarchar)。(Jani)
  • 修复了bug #25404 (ext/pgsql: 脚本结束时未关闭打开的事务)。(Marcus)
  • 修复了bug #25385 (ob_gzhandler(): sapi_add_header_ex() 调用中的错字)。(Jani)
  • 修复了bug #25378 (unserialize() 使用无效数据时崩溃)。(Jani)
  • 修复了bug #25372 (sscanf() 不适用于 %X)。(Jani)
  • 修复了bug #25348 (使用 --enable-short-tags 时,“make install”失败)。(Jani)
  • 修复了bug #25343 (is_dir() 在 FreeBSD 上给出警告)。(Jani)
  • 修复了bug #25333 (win32 mail() 中可能出现正文损坏和崩溃)。(Ilia)
  • 修复了bug #25316 (_php_stream_write() 内部可能出现无限循环)。(Ilia)
  • 修复了bug #25314 (FTP_ASCII 模式从 Win->Unix 的行为像二进制)。(Sara)
  • 修复了bug #25308 (加载 Zend 扩展时,php -m 崩溃)。(Stas)
  • 修复了bug #25307 (WDDX 序列化程序崩溃)。(Sascha, Jani)
  • 修复了bug #25295 (QNX6: php_ini.c:414: 'alphasort' 未声明)。(Jani)
  • 修复了bug #25294 (ext/ftp: NLST 失败导致退出时崩溃)。(Sara, Rob)
  • 修复了bug #25293(向error_log输出正确的EOL)。(Ilia)
  • 修复了bug #25239(ftp_fopen_wrapper不符合RFC规范)。(Sara)
  • 修复了bug #25218(“deflate”压缩页面带有gzip头)。(Stefan)
  • 修复了bug #25211(image.c在AIX系统下编译失败)。(Marcus)
  • 修复了bug #25166(win32系统缺少WDDX序列化处理器)。(Jani)
  • 修复了bug #25109(在pgsql中获取字段名时可能发生崩溃)。(Ilia)
  • 修复了bug #25106(对bzopen()模式添加了更严格的检查)。(Ilia)
  • 修复了bug #25070(在win32系统下关闭会话文件前先解锁)。(Ilia)
  • 修复了bug #24402(gettext 0.12.x编译失败)。(Jani)
  • 修复了bug #23488(zlib.output_compression覆盖Vary头)。(Stefan)
  • 修复了bug #23326(ext/domxml:不支持通过append_child添加属性)。(Melvyn)
  • 修复了bug #21220(phpinfo()输出显示错误的Apache版本)。(Jani)
  • 修复了bug #18534(ifx_close()留下打开的会话)。([email protected]
  • 修复了bug #14049(realpath()对不存在的路径返回无效结果)。(Ilia)
此版本的单独公告可用。

版本 4.3.3

  • 将捆绑的GD库与GD 2.0.15同步。(Ilia)
  • 将捆绑的Expat库升级到1.95.6版本。(Jani)
  • 将捆绑的PCRE库升级到4.3版本。(Andrei)
  • 改进引擎,在可行的情况下使用POSIX/socket IO。(Sascha)
  • 改进了NSAPI SAPI模块(Uwe Schindler)
    • php4_init (magnus.conf):新的参数用于设置php.ini的备用路径。(php_ini="/path/to/php.ini")
    • php4_execute (obj.conf):支持额外的php.ini值。允许每个虚拟服务器使用不同的设置。(更多信息请参见sapi/nsapi/nsapi-readme.txt)
    • 添加了对virtual()的支持。
    • 添加了nsapi_request_headers()和nsapi_response_headers(),并带有与Apache兼容的别名。
    • 添加了“nsapi.read_timeout” php.ini选项。
    • 同步$_SERVER变量,使其与Apache变量类似。
    • 添加了使用PHP生成HTTP错误页面(404 Not Found…)的功能。
    • 添加了使用PHP为没有index.html的目录生成目录列表的功能。
  • 改进了IMAP扩展(Ilia)
    • 添加了imap_timeout()函数。(bug #24161
    • 为imap_search()和imap_sort()添加了可选的'charset'参数。(bug #22505
  • 改进了InterBase扩展(Daniela)
    • 添加了事务常量:IBASE_REC_VERSION、IBASE_REC_NO_VERSION、IBASE_WRITE、IBASE_WAIT和IBASE_CONCURRENCY。(bugs #8797#23887
    • 使数字/十进制数据类型处理可在任何平台上工作。
  • 添加了DBA处理程序'inifile'以支持ini文件。(Marcus)
  • 使用--enable-debug时,在'php -v'输出中添加了“DEBUG”注释。(Derick)
  • 在CLI和CGI中添加了长选项(例如--version)。(Marcus)
  • 为preg_match*()添加了一个新参数,可用于指定要从中匹配的主题字符串的起始偏移量。(Andrei)
  • 修复了可能的整数溢出问题在
    • base64_encode()中。(Moriyoshi)
    • 捆绑的GD库中。(Ilia)
  • 修复了“mysql.connect_timeout” php.ini选项,使其可通过ini_set()设置。(Rasmus)
  • 修复了ext/yaz,如果未设置“yaz.log_file” php.ini选项,则不会记录日志。(Adam)
  • 修复了捆绑的libmysql中的一个bug(mysql bug 564)。(Georg)
  • 修复了ext/exif,使其遵循“magic_quotes_runtime” php.ini选项。(Marcus)
  • 修复了FastCGI IIS文档根目录问题。(Shane)
  • 修复了multipart/form-data中包含0x5c作为第二个字节的多字节字符损坏问题。(Rui)
  • 修复了imagerotate()在使用无效颜色索引作为背景颜色时可能发生的崩溃问题。(Pierre-Alain Joye)
  • 修复了一个在某些情况下可能使safe_mode失效的bug。(Ilia)
  • 修复了证书版本,并允许设置openssl_csr_sign()中的序列号。(Stefan Roehrich)
  • 修复了each(),使其对键进行二进制安全处理。(Zeev)
  • 修复了bug #25093(由于未释放查询导致的各种内存泄漏)。(Ilia)
  • 修复了bug #25084(使引用检查不依赖于register_globals)。(Ilia)
  • 修复了bug #25081(odbc_fetch_array()可能会损坏数字字段)。(Ilia)
  • 修复了bug #25044(header("Location:")更改HTTP状态)。(Marcus)
  • 修复了bug #25037(SendText()内部可能出现无限循环)。(Ilia)
  • 修复了bug #25007(rand()和mt_rand()每次调用都播种RNG)。(Jani)
  • 修复了bug #24989(外部libexpat与捆绑的libexpat冲突)。(Jani)
  • 修复了bug #24980(array_reduce()使用第一个元素作为默认运行总计)。(Ilia)
  • 修复了bug #24977(回滚mysql_select_db优化)。(Ilia)
  • 修复了bug #24958(404错误处理不正确)。(Ilia,Justin)
  • 修复了bug #24951(ob_flush()不必要地破坏输出处理程序)。(Ilia)
  • 修复了bug #24936(ext/fdf未正确链接为共享扩展)。(Jani)
  • 修复了bug #24909(Solaris上的ZTS构建中随机数错误)。(Ilia)
  • 修复了bug #24897(shuffle()和array_multisort()的行为不一致)。(Ilia,Jani)
  • 修复了bug #24883(忽略variables_order和gpc_order)。(Ilia)
  • 修复了bug #24873(open_basedir内“/”的处理不正确)。(Ilia)
  • 修复了bug #24871(方法被误认为是构造函数)。(Ilia)
  • 修复了bug #24827(ob_gzhandler覆盖Vary头)。(Ilia)
  • 修复了bug #24792(--enable-zend-multibyte在ZTS下导致随机段错误)。(fujimoto)
  • 修复了bug #24783(foreach($ar as $key => $val),$key不是二进制安全的)。(Zeev)
  • 修复了bug #24760(非默认SNMP端口号不起作用)。(Jani)
  • 修复了bug #24752(未处理的“uniqueidentifier”字段类型)。(Ilia,s.sonnenberg[at]coolspot.de)
  • 修复了bug #24710(使用$obj->{0}时发生崩溃)。(Zeev)
  • 修复了bug #24663(\n. 序列未被转义)。(Ilia)
  • 修复了bug #24640(var_export()和var_dump()无法输出大型浮点数)。(Marcus)
  • 修复了bug #24629(FreeBSD select()不喜欢大型微秒值)。(Mirco Bauer)。
  • 修复了bug #24609(ext/domxml:在不同文档之间使用替换节点时发生段错误)。(Rob Richards)
  • 修复了bug #24594(imagefill()函数的重写)。(Pierre-Alain Joye)
  • 修复了bug #24592(会话扩展中与NULL相关的崩溃)。(Sascha)
  • 修复了bug #24573(如果$this设置为null,debug_backtrace()会崩溃)。(Jani)
  • 修复了bug #24560(parse_url()处理某些基于file://的模式不正确)。(Ilia)
  • 修复了bug #24557(使fclose()尊重资源上的引用计数)。(Wez,Ilia)
  • 修复了bug #24537(apache2编译缺少一些包含目录)。(Jani)
  • 修复了bug #24535(ext/mysql:在原始连接更改后从非缓冲结果检索数据时发生崩溃)。(Ilia)
  • 修复了bug #24519(aggregate_methods_by_list()不增加引用计数)。
  • 修复了bug #24313(使用open_basedir时,不存在的文件上file_exists()警告)。(Ilia)
  • 修复了bug #24312(base64_decode()不跳过0xF0-0xFF字符)。(gereon.steffens[at]onvista.de,Ilia)
  • 修复了bug #24284(修复了pg_ping()内部的内存泄漏)。(Ilia)
  • 修复了bug #24249(fdf_add_doc_javascript()在Windows上不可用)。(Edin)
  • 修复了bug #24224(ibase_blob_get()溢出)。(Ard)
  • 修复了bug #24223(捆绑的gd中缺少变量初始化)。(Ilia)
  • 修复了bug #24220(range()没有正确处理数字字符串)。(Ilia)
  • 修复了bug #24210(未检测到assume_default_colors - 拼写错误)。(Sara)
  • 修复了bug #24198(array_merge_recurcive()中无效的递归检测)。(Ilia)
  • 修复了bug #24177(在Apache 2中,flush()之后状态未正确设置)。(Ilia)
  • 修复了bug #24155(gdImageRotate270错误地将x参数用于y轴)。([email protected],Ilia)
  • 修复了bug #24150(imap_fetch_overview()和imap_rfc822_write_address()崩溃)。(Ilia)
  • 修复了bug #24142(针对影响round()的gcc bug的解决方法)。(Marcus,Ilia)
  • 修复了bug #24063(serialize()在科学计数法中.之后缺少0)。(Marcus,Ilia)
  • 修复了bug #24063(*printf()中科学计数法损坏)。(Ilia)
  • 修复了bug #24060(ncurses_del_panel()导致段错误)。(Georg)
  • 修复了bug #24054(GCC/x86的整数溢出错误*=)。(Sascha)
  • 修复了bug #24028(php://input读取原始post消息失败)。(Jani)
  • 修复了bug #24009(FastCGI处理文件未找到)。(Shane)
  • 修复了bug #24007(register_globals和数组的问题)。(Ilia)
  • 修复了bug #23951(静态初始化程序中的常量被继承覆盖)。(Wez,Zend Engine)
  • 修复了bug #23936(ext/interbase:无法选择和获取)。(Ard)
  • 修复了bug #23913(使rename()在*nix上的分区之间工作)。(Ilia)
  • 修复了bug #23912(phpinfo()输出中的无效CSS)。(Ilia)
  • 修复了bug #23902(CGI头输出中的NULL)。(Shane)
  • 修复了bug #23898(odbc_result、odbc_fetch_into和odbc_result_all中NULL的正确处理)。(Ilia)
  • 修复了bug #23897(修复了对mbfilter_ru.h的检查)。([email protected],Ilia)
  • 修复了bug #23894(sprintf()十进制说明符问题)。(Moriyoshi)
  • 修复了bug #23888(缺少对flags参数的输入验证)。(Ilia)
  • 修复了bug #23808(损坏的imagecopymerge())。(Pierre-Alain Joye)
  • 修复了bug #23798(Bcc头中未去除空格)。(Ilia)
  • 修复了bug #23792(imagerotate()在调色板受限时的出现的问题,该函数现在将始终返回真彩色图像)。(Pierre-Alain Joye)
  • 修复了bug #23779(mysql_connect():如果设置了php.ini选项“open_basedir”,则禁用local infile选项)。(Georg)
  • 修复了bug #23769(在FreeBSD中,glob()在模式未找到时给出错误结果)。(Hartmut)
  • 修复了bug #23733(使用Oracle 9+时启动时核心转储)。(Edin)
  • 修复了bug #23685(当OID值为空字符串时返回伪值)。(Jani)
  • 修复了bug #23664(FastCGI套接字监听)。(Shane)
  • 修复了bug #23509(从register_shutdown_function()调用exit()时丢失退出代码)。(Ilia)
  • 修复了bug #23463(添加了Dbase2版本检查)。(Vlad Krupin)
  • 修复了bug #23285(zendlex中潜在的堆栈溢出)。(Wez)
  • 修复了bug #23104(静态数组的哈希位置未重置)。(Ilia)
  • 修复了bug #23038#23574(aggregate()相关的内存泄漏和崩溃)。(Andrei)
  • 修复了bug #22947(在某些情况下,win32/sendmail.c中的Ack()可能会卡住)。(Ilia)
  • 修复了bug #22690(ob_start()无法与create_function()回调函数一起使用)。(Marcus)
  • 修复了bug #22592(使用花括号对字符串进行级联赋值出现问题)。(Stas)
  • 修复了bug #22245($_SESSION内部的引用未被处理)。(Ilia)
  • 修复了bug #22154(达到memory_limit限制且同时使用输出缓冲和session.use_trans_sid时可能发生崩溃)。(Ilia)
  • 修复了bug #22072(Apache2 SAPI无法检测到中断的连接)。(Ilia)
  • 修复了bug #21958(针对AIX和Tru64上realpath()异常行为的解决方法)。(Ilia)
  • 修复了bug #21957(serialize()破坏了带有__sleep方法的对象)。(Ilia)
  • 修复了bug #21918(数组键中混合类型数据的异常行为)。(Marcus)
  • 修复了bug #21855(HP-UX上的线程问题)。(Roshan Naik, Andi, Moriyoshi)
  • 修复了bug #21611(version_compare()不支持“p”作为后缀)。(Stefan Walk)
  • 修复了bug #21074(Apache2:“ErrorDocument xxx /error.php”失效)。(Jani)
  • 修复了bug #20896(php-cli使用-s -w模式导致php挂起)。(Ilia)
  • 修复了bug #19613(putenv("VAR=")在win32上无法清空VAR)。(Zeev)
  • 修复了bug #18744(blob_add()的最大限制为64k)。(Ard)
  • 修复了bug #18291(escapeshellcmd()现在可以处理带引号的参数)。(Ilia)
  • 修复了bug #17414(pthreads错误的解决方法)。(timo.teras[at]iki.fi)
  • 修复了bug #13142(strtotime无法处理“M d H:i:s Y”格式)。(Ilia)
  • 修复了bug #11924(ibase_query(),ibase_execute()破坏了传递的参数)。(Jani)
  • 修复了bug #7014(请求关闭后_php_ibase_error()崩溃)。(Ard)
更多关于此版本的发布信息请访问我们的发布页面

4.3.2版本

  • 将捆绑的GD库与GD 2.0.12同步。(Ilia)
  • 删除了对Windows上GDLIB 1.x.x版本(php_gd.dll)的支持。(Edin)
  • 在Windows上捆绑的GDLIB (php_gd2.dll)中启用了只读GIF支持。(Sebastian, Edin)
  • 改进了dba扩展 (Marcus)
    • 增加了对Berkeley db库内部错误处理的支持。
    • 由于锁定问题,禁止使用Berkeley db 4.1.0到4.1.24版本。
    • 禁止将Berkeley db子模块与具有不同主版本的库链接。
    • 禁止配置多个Berkeley db处理器。
    • 使用新的持久性STDIO流重新启用了dba_popen()。
  • 基于旧版本(sapi/apache2filter)添加了一个新的Apache 2.0 SAPI模块(sapi/apache2handler)。(Ian Holsman, Justin Erenkrantz)
  • 添加了“disable_classes” php.ini选项,允许管理员出于安全原因禁用某些类。(Harald)
  • 为PHP的CLI版本添加了手册页。(Marcus)
  • 在phpize中添加了--clean选项。(Jani)
  • 在php-config中添加了--ldflags选项。(Jani)
  • 添加了imagesavealpha()和imageistruecolor()函数。(Pierre)
  • 为捆绑的GD库添加了XBM支持。(Marcus)
  • 添加了session_regenerate_id()函数。(Sascha)
  • 添加了zlib_get_coding_type()函数,该函数返回用于输出压缩的编码类型。(Moriyoshi)
  • 添加了OCIPasswordChange(),允许更新过期的Oracle用户密码。(Maxim)
  • 添加了memory_get_usage()。仅当PHP使用--enable-memory-limit配置时才可用。(Andrey)
  • 为getimagesize()添加了改进的JPEG 2000支持。(Marcus, Adam Wright)
  • 为getimagesize()添加了XBM和WBMP支持。(Marcus)
  • 为htmlentities()添加了KOI8-R、CP866和CP1251支持。(Antony Dovgal, Moriyoshi)
  • 添加了domdocument->free()以释放内存中的XML文档。(Rob Richards)
  • 修复了CLI启动错误的错误报告中的一个bug。(Derick)
  • 修复了套接字通信期间冗余的fsync调用。(Sascha)
  • 修复了thttpd中可能存在的虚拟主机问题。(Sascha, [email protected])
  • 修复了从HTTP URL包含文件的问题。(Sascha)
  • 修复了domxml中大量的内存泄漏。(Rob Richards, Chregu)
  • 修复了GD的真彩色TTF处理中的一个bug。(Derick)
  • 修复了几个64位问题。(Dave)
  • 修复了hwapi扩展中的几个错误。对象没有被正确处理。(Uwe)
  • 修复了bug #23788(str|preg_replace()破坏了数组元素)。(Ilia)
  • 修复了bug #23765(由于大小写敏感导致文件上传被忽略)。(Sara)
  • 修复了bug #23738(ifx_copy_blob()崩溃)。(Jani)
  • 修复了bug #23661(mysql_fetch_array()在将无效参数作为result_type传递时不给出警告)。(Derick)
  • 修复了bug #23619(为对象实例注册的set_error_handler()处理程序未被调用)。(Jani, [email protected])
  • 修复了bug #23606(无法使用--with-db4 (db4.1.25)构建)。(Marcus)
  • 修复了bug #23567(pfsockopen()返回无效连接)。(Wez)
  • 修复了bug #23539(curl_exec()产生异常结果)。([email protected])
  • 修复了bug #23527(PostScript Type 1字体无法正确渲染)。([email protected], Ilia)
  • 修复了bug #23402(错误使用mssql_bind()导致崩溃)。(Frank)
  • 修复了bug #23371(configure错误地检测到使用SSL的c-client)。(Jani)
  • 修复了bug #23340(对多个URL使用fopen导致内存损坏)。(Wez)
  • 修复了bug #23298(serialize截断浮点数和双精度数)。(Ilia, Marcus)
  • 修复了bug #23232(safe_mode在apache2中不尊重PHP_AUTH_*)。(Ilia)
  • 修复了bug #23225(money_format()无法处理strfmon的错误返回值)。(Ilia, [email protected])
  • 修复了bug #23201(set_file_buffer()与stdio流一起使用时崩溃)。(Ilia)
  • 修复了bug #23188(使用'c'模式创建的CDB数据库无法工作)。(Marcus)
  • 修复了bug #23187(sybase_connect/sybase_pconnect中的内存泄漏)。(Ilia)
  • 修复了bug #23162(如果错误消息> 1024字节,user_error()崩溃)。(Jay, Marcus, Moriyoshi)
  • 修复了bug #23152(无效URL上的$http_response_header为空)。(Ilia)
  • 修复了bug #23102(exif_iif_add_value()中的整数溢出)。(Ilia)
  • 修复了bug #23099(ext/interbase: libgds.so: 未定义对'crypt'的引用)。(Jani)
  • 修复了bug #23093(highlight_string()与__FUNCTION__一起使用时崩溃)。(Jani)
  • 修复了bug #23080(socket_strerror()在win32上崩溃)。(Moriyoshi)
  • 修复了bug #23071(当启用DST时,date("T")导致PHP崩溃)。(Scott MacVicar, Jani)
  • 修复了bug #23069(tempnam创建只读文件[win32])。(Wez)
  • 修复了bug #23009(使用时间戳的pg_select)。(Marcus, Jay)
  • 修复了bug #23008(ldap_start_tls()在Windows上不可用)。(Edin)
  • 修复了bug #23004(调用ftp_close()时,向ftp服务器发送QUIT)。(Ilia)
  • 修复了bug #22989(configure找不到sendmail)。([email protected])
  • 修复了bug #22987(configure中缺少perror()检查)。(Jani)
  • 修复了bug #22965(gd库的ImageFillToBorder()崩溃)。(Ilia)
  • 修复了bug #22939(imap_header_info()崩溃)。(Ilia)
  • 修复了bug #22844(通过-d或ini_set()更改bool值,On会变成Off)。(Ilia)
  • 修复了bug #22786(尝试调用DomAttribute的set_namespace方法时崩溃)。(Chregu)
  • 修复了bug #22775(CGI/CLI的致命错误以状态0退出)。(Jani)
  • 修复了bug #22774(退出时PHP崩溃(长的XML文档))。(Rob Richards)
  • 修复了bug #22751(使用外部libgd时gdcache.c中的编译错误)。(Jani)
  • 修复了bug #22721(在没有mmap的系统上file()性能低下)。(Wez)
  • 修复了bug #22709(数据库不可用时interbase崩溃)。(Vladimir Michl)
  • 修复了bug #22681(从无效文件指针读取时崩溃)。(Ilia)
  • 修复了bug #22672(Apache2下用户未登录)。(Ian)
  • 修复了bug #22616(IMAP的-lssl和-lcrypto顺序错误)。(Jani)
  • 修复了bug #22613(imagettfbox()没有将字距调整距离添加到运行位置)。(Ilia)
  • 修复了bug #22585(不要在轻微错误时终止脚本)。(Ilia)
  • 修复了bug #22550(upload_max_filesize ini选项的溢出保护)。(Ilia)
  • 修复了bug #22544(向真彩色png图像写入透明度)。(Ilia)
  • 修复了bug #22538(stdio/stdin/stderr流上的stat失败)。(Wez, Ilia)
  • 修复了bug #22530(append_child不取消链接节点)。(Chregu)
  • 修复了bug #22520(mcrypt_generic_deinit()在Windows上不可用)。(Edin)
  • 修复了bug #22508(增加了对循环HTML重定向的保护)。(Ilia)
  • 修复了bug #22473(ISAPI安全服务器变量不可用)。(Christian Swoboda)
  • 修复了bug #22402(由于无效的返回代码处理,读/写ftp的打开可能会失败)。(Ilia)
  • 修复了bug #22384(FNM_CASEFOLD不可用)。(Hartmut)
  • 修复了bug #22382(fgetcsv()无法正确处理\")。(Ilia)
  • 修复了bug #22376(使用INSTALL_ROOT时修改了错误的httpd.conf)。(Jani)
  • 修复了bug #22363(`fwrite()`、`fread()`和`fseek()`组合使用产生意外结果)。(Wez)
  • 修复了bug #22355(PHP 会移除主题和收件人字段的折叠)。(Ilia)
  • 修复了bug #22330(重载的`strrpos()`返回错误结果)。([email protected], Moriyoshi)
  • 修复了bug #22312(调用`curl_getinfo()`时连接失败导致崩溃)。(Phil Oleson <[email protected]>)
  • 修复了bug #22308(优化了`passthru`,代码速度提升约40倍)。(Ilia)
  • 修复了bug #22306(`pg_lo_seek($h, 0, PGSQL_SEEK_SET)`成功但返回false)。(Jani)
  • 修复了bug #22301(`htmlspecialchars()`在Tru64上导致Apache崩溃)。(Ilia)
  • 修复了bug #22299(`gethostbyname()`使用不存在的域名在MacOSX上导致崩溃)。(Jani)
  • 修复了bug #22283(打开相对URL时可能崩溃)。(Ilia)
  • 修复了bug #22238(`stream_select()`在Win9x下破坏FIFO)。(Wez)
  • 修复了bug #22234(源文件长度为0时,`copy()`失败)。(Moriyoshi)
  • 修复了bug #22227(`printf()`字段分隔符在4.2.3和4.3.0之间出现问题)。(Moriyoshi)
  • 修复了bug #22224(`implode()`更改数组中的对象引用)。(Moriyoshi)
  • 修复了bug #22221(PostgreSQL结果对象中的行数错误)。(Marc)
  • 修复了bug #22207(`*printf`中的e表示法在没有指数时会缺少一个0)。(Ilia)
  • 修复了bug #22220(`"php_admin_value open_basedir none"`不起作用)。(Jani)
  • 修复了bug #22191(使用旧版本Frontbase时Frontbase构建中断)。(Ilia)
  • 修复了bug #22187(`spprintf`函数没有正确处理浮点数)。(Ilia)
  • 修复了bug #22149(使用制表符分隔标签元素时,会话ID插入不正确)。(Ilia)
  • 修复了bug #22141(删除了未记录的Boyer `str_replace()`方法)。(Sara)
  • 修复了bug #22103(添加了`gdImageEllipse`,并用更好的实现替换了旧的`gdImageFilledEllipse`)。(Pierre)
  • 修复了bug #22088(`array_shift()`将下一个索引留在了过多的+1)。(Jani)
  • 修复了bug #22083(Windows上的MySQL字符集目录问题)。(Edin)
  • 修复了bug #22059(`ftp_chdir()`导致段错误)。(Sara)
  • 修复了bug #22048(电子邮件包含异常大量的特殊字符时,`imap_header()`崩溃)。(Ilia)
  • 修复了bug #22042(`pg_result_seek()`由于总是跳转到请求行后面的行,因此永远不会跳转到结果中的第一行)。(Ilia)
  • 修复了bug #22031(使`curl_write()`和`curl_write_header()`支持二进制安全)。(Ilia)
  • 修复了bug #22022(如果正文为空数组,`imap_mail_compose()`崩溃)。(Ilia)
  • 修复了bug #22017(`date()`在Win32上不支持负时间戳)。(Ilia)
  • 修复了bug #22008(`strip_tags()`删除了过多的内容)。(Moriyoshi)
  • 修复了bug #22004(重载扩展和`_call()`破坏了类)。(Shane)
  • 修复了bug #21998(`array_pop()`没有重置当前数组位置)。(Jani)
  • 修复了bug #21978#21036(Win32 `mail()`,`bcc:`被解释为`cc:`)。(Sara)
  • 修复了bug #21885(`move_uploaded_file()`不忽略`open_basedir`)。(Wez)
  • 修复了bug #21820(`$arr['foo']`生成错误的E_NOTICE,应该是E_PARSE)。(Jani)
  • 修复了bug #21815(`fpassthru()`忽略了缓冲数据,但仍然报错)。(Wez)
  • 修复了bug #21809(套接字关闭期间,`select`不会始终超时)。(Wez)
  • 修复了bug #21751(默认输出缓冲区无法删除)。(Marcus)
  • 修复了bug #21725(`include`和`require`之间的返回行为不同)。(Zeev)
  • 修复了bug #21713(包含远程文件在Solaris上泄漏描述符)。(Wez)
  • 修复了bug #21708(`ucwords()`再次出现问题)。(Moriyoshi)
  • 修复了bug #21689(`fgetcsv()`在分隔符之前抑制某些字符)。(Masahiro, Moriyoshi)
  • 修复了bug #21912#21676(`getimagesize()`对于远程文件失败)。(Wez)
  • 修复了bug #21597(使`glob()`理解Windows路径)。(Edin)
  • 修复了bug #21549(Ingres II持久连接问题)。(Jani)
  • 修复了bug #21544(扩展了对FreeTDS安装位置的检查)。(Frank)
  • 修复了bug #21534(`gmp_gcdext()`中的错别字导致结果不正确)。(Sara)
  • 修复了bug #21531(请求的文件/目录不存在时,`file_exists()`和其他文件状态函数报告错误)。(Sara)
  • 修复了bug #21529(`fsockopen()`导致内存损坏)。(Ilia)
  • 修复了bug #21525(`bind_textdomain_codeset()`现在可在Windows上使用)。(Edin)
  • 修复了bug #21523(`number_format()`在主机系统的`sprintf`实现生成的十进制位数少于请求的十进制位数的情况下,可能会导致为负内存大小分配内存)。(Wez)
  • 修复了bug #21518(`imagecreatefromstring()`在无效图像文件时崩溃)。(Ilia)
  • 修复了bug #21511(`config.status`警告)。(Jani)
  • 修复了bug #21498(`mysql_pconnect`连接问题)。(Georg)
  • 修复了bug #21453(`strip_tags()`对未终止的`<`处理不当)。(Ilia)
  • 修复了bug #21445(gd无法打开字体)。(Ilia)
  • 修复了bug #21443(`get_browser()`对`?`周围有空格的处理不当)。(Ilia)
  • 修复了bug #21442(第一个参数为空时,`mail()`在Windows上崩溃)。(Edin)
  • 修复了bug #21410(修复了Win32上对NULL或""文件的处理)。(Ilia)
  • 修复了bug #21378(从4.2.1更新到4.3.0后,COM代码崩溃)。(Harald)
  • 修复了bug #21338(传递""时,`html_entity_decode()`崩溃)。(Ilia)
  • 修复了bug #21310(Solaris在使用`getcwd()`时存在问题,需要目录的读取权限而不是仅仅执行权限)。(Wez, jflemer)
  • 修复了bug #21297(在CLI/CGI的`#!`中,当代码遇到`\r\n`时会留下`\n`)。(Ilia)
  • 修复了bug #21268(`session_decode()`在成功时返回FALSE)。(Ilia)
  • 修复了bug #21267(打开导致重定向到相对路径的URL失败)。(Ilia)
  • 修复了bug #21229(缺少`php_module_startup`的第三个参数)。(Ilia)
  • 修复了bug #21228(`ob_gzhandler`的检查损坏,并使`ob_start()`返回正确的值)。(Ilia)
  • 修复了bug #21226(`parse_url`处理没有路径的url)。(Ilia)
  • 修复了bug #21224(使用`--enable-versioning`时,apache配置失败)。(Jani)
  • 修复了bug #21169(UnixWare上的编译失败和大量警告)。(Derick)
  • 修复了bug #21131(使用模式'a+'和`rewind()`的`fopen()`不起作用)。(Wez)
  • 修复了bug #21007(`html_errors`关闭时,`phpinfo()`的纯文本输出)。(Marcus)
  • 修复了bug #20857(`snmpset()`总是失败,补丁由:[email protected]提供)。(Jani)
  • 修复了bug #20802(达到内存限制时,PHP会静默死亡)。(Ilia)
  • 修复了bug #20715(odbc无法编译为共享扩展)。(Jani)
  • 修复了bug #20641(Win32上ext/interbase中的数值/十进制数据类型溢出)。(Daniela)
  • 修复了bug #20503(Windows上`imagesetbrush()`不可用)。(Edin)
  • 修复了bug #20282(COM内存泄漏)。(Harald)
  • 修复了bug #20256(某些系统上未定义`snprintf()`)。(Jani)
  • 修复了bug #19919(在高负载下,`sapi_apache_header_handler`崩溃)。(George)
  • 修复了bug #19795(`strnatcmp()` / `strnatcasecmp()`的问题)。(Moriyoshi)
  • 修复了bug #17868(使用多个`<--include-->`包含PHP文件会导致崩溃)。(Ilia)
  • 修复了bug #17448(返回OCI_SUCCESS_WITH_INFO时打印消息)。(Maxim)
  • 修复了bug #17098(使Apache2知道不应该缓存PHP脚本)。(Ilia)
  • 修复了bug #16798(Oracle版本小于8.1时,LOB支持编译失败)。(Maxim)
  • 修复了bug #14532(修复了`connection_status()`以对超时返回2)。(Jani)
  • 修复了bug #14245(使用`--with-apxs`时,AIX上的'make install'失败)。(Jani)
  • 修复了bug #13757(CGI:在命令行上传递查询字符串已损坏)。(Shane)
  • 修复了bug #13561(`--without-pear`禁用了`phpize`/`php-config`安装)。(Jani)
  • 修复了bug #13551(`bcmath`函数不正确地应用比例)。(Sara)
有关此版本的更多信息,请访问我们的发行页面

4.3.1版本

  • 修复了CGI SAPI中的严重安全漏洞。(Shane)
有关此版本的更多信息,请访问我们的发行页面

4.3.0版本

  • 如果不指定构建任何其他SAPI,“make install”会将CGI SAPI二进制文件安装到{PREFIX}/bin/php。如果要将CLI SAPI安装到该位置,请在“make install”之后使用“make install-cli”,或在配置选项中添加`--disable-cgi`。在Windows发行版中,CLI SAPI包含在“cli”文件夹中。(Edin)
  • 已移除扩展:(Jan, Jani, Sebastian)
    • ext/aspell
    • ext/ccvs
    • ext/cybercash
    • ext/icap
    • sapi/fastcgi
    • sapi/fhttpd
  • 已将扩展移至PECL (http://pear.php.net/): (James, Derick)
    • ext/vpopmail
    • ext/cybermut
  • 在使用外部基本身份验证机制时,使PHP_AUTH_*变量在Apache的安全模式下不可用。(Philip)
  • 添加了`sha1()`和`sha1_file()`用于美国安全哈希算法1。(Stefan Esser)
  • 将`dba_popen()`别名为`dba_open()`,直到4.3.2版本引入持久STDIO流。(Andrei)
  • 修复了捆绑的MySQL库中的安全漏洞。(Georg, Stefan)
  • ZLIB扩展现在已内置到Windows发行版中。外部扩展(php_zlib.dll)已被删除。(Edin)
  • 修复了ISO-8601星期计算中的一个bug
  • 修复了使用无效颜色索引与`imagecolortransparent()`一起使用时发生的崩溃 (Pierre-Alain Joye)。
  • 修复了bug #20987(没有处理客户端证书)。(Ilia)
  • 修复了bug #21039(不向`mcrypt_generic_init`提供IV时崩溃)。(Derick)
  • 修复了bug #20936 (openssl_pkey_get 函数存在问题)。([email protected], Wez)
  • 修复了bug #20927 (wordwrap 函数崩溃)。(Ilia)
  • 修复了bug #20796 (当 register_globals 启用且通过 GET/POST/COOKIE 传递具有相同名称的数组时,$_GET/$_POST/$_COOKIE 内的数据可能会损坏)。(Ilia)
  • 修复了bug #20725 (如果无法写入上传目录,则上传文件后的 POST 数据将会丢失)。(Ilia)
  • 修复了bug #20865 (array_key_exists() 函数无法找到 NULL 键)。(Ilia)
  • 修复了bug #20812 (ftp_get 函数成功时返回 NULL,而不是 TRUE)。(Ilia)
  • 修复了bug #20785 (使用 pdf_open_memory_image() 加载真彩色图像时崩溃)。(Ilia)
  • 修复了真彩色图像 (png/jpeg) 与 gd1/gd2 图像格式之间转换时的崩溃问题,png/jpeg -> gd1/gd2 -> png/jpeg 转换现在可以正常工作。(Ilia, Pierre-Alain Joye)
  • 修复了捆绑的 GD 库中 gdImageTrueColorToPalette() 函数的内存泄漏问题。(Ilia)
  • 修复了bug #12776 (array_walk 函数崩溃)。(Moriyoshi)
  • 修复了bug #20934 (htmlspecialchars 函数从 UTF-8 返回 latin1)。(Moriyoshi)
  • 修复了bug #20270#15702#18600 (ext/java 中的段错误)。(Tony J. White)
  • 使 bcmath 扩展支持线程安全。(Sander)
  • 修复了bug #19566 (get_declared_classes() 函数导致段错误)。(Moriyoshi, Marcus, Andi)
  • 修复了bug #20381 (array_merge_recursive 函数破坏输入数组)。(Moriyoshi)
  • 为 CLI 和 CGI 版本添加了 -n 命令行开关,允许跳过启动时 php.ini 的解析。(Marcus, Wez)
  • 修复了bug #19689 (绝对路径如 /test/dir/ 不能正常工作)。(Ilia)
  • 为 mbstring 规范添加了“中性”语言条目。(Moriyoshi)
  • 更改捆绑的 GD 库以考虑 php.ini 中的 memory_limit 选项。(Marcus)
  • 修改 log() 函数以接受多个底数。(Jason)
  • 修复了bug #16190/#18746 (ext/db: Windows 下的 flatfile 支持)。(Marcus)
  • 添加了 gd_info() 函数,该函数返回一个包含 GD 支持信息的数组。(Marcus)
  • 实现了 bug #16960 中请求的功能/更改 (Timm)
    • 添加了新函数 sybase_unbuffered_query()
    • 添加了新函数 sybase_fetch_assoc()
    • 添加了 sybase_set_message_handler() 函数,允许用户在回调函数中处理服务器消息
    • 添加了一个用于死锁重试的 ini 条目 - 重试死锁可能会导致事务状态中断 (sybct.deadlock_retry_count,默认为 -1 "永远")。
    • 修复了 sybase_fetch_object() 函数不返回具有数字成员的对象的问题
    • 修复了相同的字段名问题
    • 使 sybase_fetch_*() 函数返回正确的 数据类型
    • 使 phpinfo() 部分信息更详细
    • 使 sybase_query() 函数的错误消息更详细
  • 修复了bug #19935 (使 OpenSSL 文件系统操作遵守 safe_mode 和 open_basedir 限制)。(Ilia)
  • 修复了bug #18868 (改进了对 realpath() 函数可用性的检查)。(Ilia)
  • 修复了在大端系统上使用 getimagesize() 函数检测 bmp 图像的宽度/高度的问题,并添加了检索 bmp 位深的代码。(Ilia)
  • 修复了bug #20035 (脚本以 #! 开头时在 cgi/cli/fastcgi sapi 中的行计数错误)。(Ilia)
  • 修复了bug #20235 (在 ZTS 版本中对符号链接的处理不正确)。(Ilia)
  • 为 headers_sent() 和 image_type_to_mime_type() 函数添加了健全性检查。(Ilia)
  • 为 jdtojewish() 函数添加了一个额外的参数,使该函数返回希伯来语符号名称。(Moshe Doron, Derick)
  • 修复了bug #20169 (implode() 函数覆盖第一个参数)。(Moriyoshi)
  • 改进了dba扩展 (Marcus)
    • 添加了 dba_handlers() 函数,该函数返回已安装的处理程序数组;以及 dba_list() 函数,该函数返回打开的数据库文件的关联数组。
    • 添加了捆绑的 cdb 支持,可以通过 --with-cdb(无需路径)激活。捆绑的版本支持 cdb_make,允许写入 cdb 文件。
    • 为 dba_fetch() 函数添加了可选的 skip 参数,以支持 cdb 处理程序中具有相同键的多个键值对。
    • 为那些没有自身锁定的处理程序添加了锁定功能。
    • 添加了对 magic_quotes_runtime php.ini 选项的支持。
    • 添加了 flatfile 支持,最终使 ext/db 成为废弃扩展。
  • 添加了 imagerotate() 函数,仅当使用捆绑的 libgd 时才可用。(Pierre-Alain Joye, Ilia)
  • 修复了bug #17497 (如果 magic_quotes_runtime 启用,则 mssql 扩展会崩溃)。(Sterling)
  • 从 $_REQUEST 中删除 $_FILES (import_request_variables 未修改),此功能最初无法正常工作,并造成了混淆。(Sterling)
  • 修复了 win32 上的 socket_read() 函数,使其在正常模式(读取到行尾)和二进制模式下都能正常工作。(Sterling)
  • 修复了bug #20110 (添加了健全性检查,以防止 include/require 函数尝试包含目录)。(Ilia)
  • 修复了bug #20108 (printf("%1.1s", "string") 导致段错误)。(Ilia)
  • 为 dbx 模块添加了 dbx_escape_string() 函数。(Marc)
  • 为 dbx 模块添加了 Oracle (oci8) 支持。(Marc)
  • 更新了 FDF 扩展,使其与 Adode fdftk 5.0 兼容。(Hartmut)
  • 添加了 mb_strtolower() 和 mb_strtoupper() 函数。(Moriyoshi)
  • 修复了当仅传递无效的区域设置名称到数组时 setlocale() 函数中的无限循环问题。(由 Pal Loberg 修复,pallo[at]initio.no)
  • 修复了bug #19156#19544 (COM 扩展内存泄漏并保留对组件的引用)。(Harald)
  • 添加了 fribidi_get_charsets() 和 fribidi_charset_info() 函数。(Tal)
  • 为 oci8 扩展添加了 Oracle TIMESTAMP 类型。(Thies)
  • 修复了当未设置 length 参数时 fgets($fp) 函数读取到行尾的问题。(Wez)
  • 更改了 "HKLM\SOFTWARE\PHP\Per Directory Values" 下的注册表项,使其也能与安全模式、open_basedir 等管理指令一起使用。(Claudio Felber)
  • 添加了 str_word_count() 函数,该函数计算字符串中的单词数。(Ilia)
  • 为 pg_connect() 函数添加了 PGSQL_CONNECT_FORCE_NEW 选项 (Yasuo)
  • 为 iconv 扩展添加了 ICONV_IMPL 和 ICONV_VERSION 常量,以指示使用了哪个 iconv 实现。(Moriyoshi)
  • 修复了bug #4232 (为 printf/sprintf 函数添加了 %e 和 %E 支持)。(Ilia)
  • 修复了bug #17580 (允许 ini 解析器解析大于 16K 的文件)。(Ilia)
  • 修复了bug #19649 (对 browscap.ini 解析器的健全性检查)。(Ilia)
  • 添加了实验性补丁以解决各种区域设置下浮点数的问题。(bug #17079 )。(Ilia)
  • 修复了bug #19280 (imap_header 函数在存在多个 To: 地址时失败)。(Ilia)
  • 添加了 mb_regex_set_options() 函数。各种 mbregex 函数的 Options 参数现在已弃用。(Moriyoshi)
  • 修复了bug #19482 (PCRE 和区域设置导致段错误)。(Andrei)
  • 使捆绑的 GD2 库中的 ImageTruecolorToPalette() 函数真正起作用。(Rasmus)
  • 修复了捆绑的 GD2 库中的 ImageCopy() 函数,使其能够处理从真彩色到基于调色板的复制。(Wez, Rasmus)
  • 为捆绑的 GD2 库添加了只读 GIF 支持。(Rasmus)
  • 对 xslt 扩展进行了一些调整 (David Viner, Lehnar, Melvyn)
    • 添加了 xslt_set_object 和 xslt_setopt 函数
    • 更改了与 Sablotron 库的后端交互方式
    • 修复了 error_print 的内存泄漏问题
    • 使 xslt_make_array() 函数始终在最后一个索引上设置 NULL 以指示数组结束。
  • 更改了 implode() 函数中的 glue 参数为可选参数。如果未指定,则默认为 ""。(Sterling)
  • 修复了 xslt_set_error_handler() 函数的 fields 参数,使其包含正确的信息。(由 Lenar Lohmus 修复)
  • 添加了 --with-config-file-scan-dir 编译时开关,该开关指定一个将被扫描以查找 *.ini 文件的目录。(Rasmus)
  • 添加了 ob_get_clean() 和 ob_get_flush() 函数。(Yasuo)
  • 为 ext/ftp 添加了 ftp_ssl_connect() 函数,以支持通过 SSL 进行 FTP 连接。(Stefan Esser)
  • 对 Apache 2 sapi 进行了一些添加和更改。(Ilia)
    • 添加了 apache_response_headers()、apache_note()、apache_getenv() 和 apache_setenv() 函数。
    • 为 apache_lookup_uri() 和 virtual() 函数添加了更详细的错误报告。
    • 将 getallheaders() 函数重命名为 apache_request_headers() 并为向后兼容性创建了一个别名。
    • 添加了 php_apache_sapi_getenv() 和 php_apache_sapi_get_stat() 函数。
    • 添加了语法高亮处理 (.phps)
  • 修复了 strstr()、strchr() 和 strrchr() 函数,使其支持二进制安全。(Andrey)
  • 添加了 array_diff_assoc() 和 array_intersect_assoc() 函数。(Andrey)
  • 修复了bug #17825 (ob_start() 函数的 chunk size 选项工作不正常)。(Yasuo)
  • 修复了当 buffer_size 变为 0 时输出缓冲区的无限循环问题。(Marcus, Wez)
  • 添加了 getopt() 函数,用于解析命令行选项和参数。(Jon)
  • 添加了 pg_fetch_assoc()、pg_fetch_all()、pg_ping()、pg_meta_data()、pg_convert()、pg_insert()、pg_select()、pg_update()、pg_delete()、pg_result_seek()、pg_unescape_bytea()、pg_get_notify() 和 pg_get_pid() 函数。(Yasuo)
  • 修复了bug #17281 (对编码会话的健全性检查)。(Ilia)
  • 修复了bug #16995#19392 (如果 $HTTP_SESSION_VARS 不是数组则防止崩溃)。(Ilia)
  • 修复了bug #19292 (open_basedir 限制问题)。(Rasmus)
  • 修复了bug #19366 (当 x 和 y 超出图像边界时 gdImageFill 函数崩溃)。(Ilia)
  • 修复了bug #13936 (__FILE__ 常量不包含完整路径)。(Ilia)
  • PHP 现在拥有一个新的流系统,允许它使用 fopen() 和 fsockopen() 函数执行一些巧妙的操作。因此
    • 如果已将 OpenSSL 支持编译到 PHP 中(共享扩展不支持此功能),则 URL 包装器将原生支持 https:// URL。
    • 添加了对 fopen("ftps://...", ...) 的支持,允许通过 SSL 连接到 FTP 服务器。(Stefan Esser)
    • fsockopen() 函数添加了对通过 TCP/IP 进行 ssl:// 和 tls:// 连接的支持
    • copy($srcfilename, $destfilename) 函数现在可以与 URL 包装器一起使用
    • 即使在没有 fopencookie() 函数的系统上,也可以使用 zlib 包装器/流
    • 将 'zlib:' fopen 包装器更改为 'compress.zlib://' 并弃用 'zlib:' 以避免文件名包含 ':' 字符时的歧义。(Wez)
    • 添加了 'compress.bzip2://' 流和包装器支持。
    • 添加了用户空间流 - 现在可以在 PHP 代码中定义一个类并将其注册为 URL 包装器。(stream_register_wrapper)
    • 大多数扩展现在在传递文件时都支持流,这意味着这些扩展现在也支持 URL 包装器。(Wez)
    • 为 exif 扩展添加了 URL 包装器支持。(Marcus)
    • 添加了内存流支持。(Marcus)
    • 重命名了
      • socket_set_timeout() -> stream_set_timeout()
      • socket_set_blocking() -> stream_set_blocking()
      • set_file_buffer() -> stream_set_write_buffer()
      • socket_get_status() -> stream_get_meta_data()
      因为这些函数(理论上)可以用于任何类型的流。(Wez)
    • 原始 POST 数据现在可作为 "php://input" 流访问。(Hartmut)
    • fopen("php://output", "wb") 函数返回一个写入输出缓冲区的流(如 echo 和 print 函数)。(Wez)
    • 添加了 stream_context_create()、stream_context_set_params() 和 stream_context_set_option 函数,并在 fopen() 函数中添加了一个可选的第四个参数,该参数接受一个流上下文。上下文允许在流之间共享信息(一种“会话”)并设置通知回调。(Wez)
    • 使 http:// 和 https:// 包装器发送的 "User-Agent" 头可以在 php.ini 中或通过流上下文进行配置。(Sterling)
    • 添加了 stream_filter_prepend() 和 stream_filter_append() 函数,它们将过滤器应用到流过滤器堆栈的顶部或底部。实现了 "string.rot13" 过滤器作为示例;预计在以后的版本和其他扩展中将有更多过滤器。(Wez)
    • 添加了 stream_select() 函数,该函数类似于 socket_select() 函数,但它作用于由 fopen()、fsockopen() 和 pfsockopen() 函数返回的流。(Wez)
    • 为 CLI sapi 添加了 STDIN、STDOUT 和 STDERR 常量,反映了已打开的流与其各自的标准 I/O 对应项。(Edin)
    • 添加了 php.ini 选项 "auto_detect_line_endings",该选项使 PHP 能够在 fgets() 和 file() 函数中检测 Macintosh、Unix 和 Dos 换行符。修复了bug #16521#16708。(Wez)
    • 修复了 include()、require() 和 GD 函数,使其在 win32 下可以与远程文件一起使用。
    • 修复了bug #18609 (ImageCreateFromJPEG 函数无法从 URL 获取图像)。(Wez)
  • 修复了bug #18022 (fopen 在 Solaris 上不再支持 php://stdin)。(Wez)
  • 添加了 php.ini 选项 "default_socket_timeout" 用于设置 PHP 网络流的超时限制。(kalowsky, [email protected], Wez)
  • 添加了 file_get_contents() 函数,该函数将文件内容作为字符串返回。此函数也支持 URL 封装器。(Wez)
  • 修复了bug #19595 (缺少 GD2 格式处理函数)。(Edin)
  • 修复了bug #19633 (ext/ldap/config.m4 中的目录错误)。(Derick)
  • 修复了bug #17274#19627 (sem_remove 中的段错误)。(Wez)
  • 向 mbstring 扩展添加了 mb_convert_case() 函数,该函数可以使用 Unicode 映射在大小写和标题大小写之间转换字符串。修复了bug #19257 (strtolower & strtoupper 不适用于 UTF-8 字符串)。(Wez)
  • 修复了bug #18521 (htmlentities 没有警告不支持的字符集)。(Wez)
  • 修复了bug #11643 (与会话相关,修复了 SID 重定义)。(Ilia)
  • 修复了bug #18556 (脚本引擎,tr_TR 等语言环境存在问题)。(Ilia)
  • 将 y2k_compliance 的默认值更改为 1。(Sascha)
  • 添加了平台无关的套接字错误常量,以便更好地进行错误处理。(Jason)
  • 更新了 phpinfo() 的输出,使用更多 CSS 来减小文件大小,进行正确的 HTML 转义,并使其符合 XHTML 标准。(Colin)
  • 修复了 FriBidi 扩展中的编译错误 (Bug #16414)。(Tal)
  • 修复了bug #7472#12120#12989 以及 strip_tags() 函数的其他潜在问题。(Ilia)
  • 修复了bug #17570#17957 (与正则表达式相关)。(Andrei, Ilia)
  • 修复了bug #18167#16859 (session_decode 中的 SEGV)。(Ilia)
  • 修复了bug #19573#13472 (会话、XHTML 兼容性和 trans_sid)。(Sascha)
  • 修复了bug #19570 (get_html_translation_table 中缺少最后一个字符)。(Wez)
  • 将 PCRE 升级到 3.9 版本。(Wez)
  • 修复了 OCIResult() 中的 bug,该 bug 在调用空结果集时返回垃圾数据。(Thies)
  • 添加了在 preg_replace() 的替换字符串中使用 Perl 风格的 ${n} 子模式引用的功能 (bug #18442)。(Andrei)
  • 修复了 array_merge_recursive() 以避免合并循环数组的问题 (bug #16064)。(Andrei)
  • 使 function_exists() 能够正确处理禁用的函数。(Andrei)
  • 添加了通过可或运算的 EXTR_REFS 标志以引用方式提取变量的功能。(Andrei)
  • 修复了 Tru64 上 OCI8 扩展的构建失败。(补丁由 Michael Mauch 提供,[email protected])
  • 添加了 --disable-all 配置选项。(Jani)
  • 从 ZendEngine2 反向移植了 debug_backtrace()。(Thies)
  • 为 CLI 添加了无 HTML 的 phpinfo() 输出。(Jan)
  • 修复了 socket_recvfrom() 以使其支持二进制安全。(Jason)
  • 更改了 mail() 以使用 escape_shell_cmd(),允许向邮件程序的调用添加多个额外参数,如第五个参数所示。(Derick)
  • 更改了 cURL 扩展,需要 cURL 7.9.8 版本。(Derick)
  • 添加了 zend_execute_internal,其调用方式与 zend_execute 相同,但用于内部函数。(Thies)
  • 更改了 pg_connection_status()、pg_connection_reset()、pg_connection_busy()、pg_result_status() 和 pg_result_error(),当没有传递资源时,它们会静默地返回 FALSE。(Yasuo)
  • 修复了 64 位操作系统上的一些 mysql 编译错误。(Georg)
  • 为已弃用的 mysql 函数添加了警告
    • mysql_create_db()
    • mysql_drop_db()
    • mysql_escape_string()
  • 添加了 XsltObject-<result_dump_mem($result) 用于将 xslt 结果直接返回到字符串中,以及 XsltObject-<result_dump_file($result,$file[,$compression]) 用于将其转储到文件中。([email protected], chregu)
  • 使 mime_magic 和 ZIP 扩展在 Windows 上可用。(Edin)
  • 添加了 xslt_backend_version() 和 xslt_backend_name() 用于获取有关处理器后端的信息。(chregu)
  • 添加了 ImageColorMatch() 和 ImageLayerEffect() 函数,这些函数仅在使用捆绑的 GD 库时才可用。(ttoohey)
  • 对 pcntl 扩展进行了重大改进。(Jason)
    • 大大提高了性能(信号回调机制使用 ticks)
    • 通过使用 array($obj, $method) 实现了对象信号回调功能
    • 向 pcntl_signal 添加了重启参数,允许您禁用系统调用重启的默认设置
  • 更改了 DomNode->next_sibling() 和 DomNode->previous_sibling() 以返回 NULL 而不是 false (W3C 规范)。(chregu)
  • 更改了 DomNode->insert_before() 和 DomNode->append_child() 以符合 W3C 规范(移动而不是复制节点,接受 NULL 作为第二个参数)。(chregu)
  • 添加了 DomNode->set_namespace(uri[,prefix]) (chregu)
  • 修复了 shuffle() 以正确生成所有可能性。(补丁由 Adam <[email protected]> 提供)
  • 修复了 DomNode->insert_before() 以符合 W3C 规范,即移动新子节点,而不是复制。(chregu)
  • 使用 DomNode->add_namespace(uri, prefix) 和 DomDocument->create_element_ns(uri, nodename) 添加了一些命名空间支持。(chregu)
  • 添加了 DomElement->node_name() 的可选参数,用于检索完全限定的名称(即命名空间前缀)。(chregu)
  • 更改了 DomNode->child_nodes(),如果未找到子节点,则返回空数组而不是 false。(chregu)
  • 修复了处理 Expect 标头的错误。(补丁由 [email protected] 提供)
  • 修复了 ODBC 中的一个错误,该错误会导致在关闭模块时 Windows 可执行文件崩溃。(kalowsky)
  • 修复了 pack() 和 unpack() 中的内存泄漏。(补丁由 [email protected] 提供)
  • 向错误消息添加了 URL,这些 URL 指向描述错误或相关函数的页面。(Derick, Wez, Marcus)
  • 添加了 odbc_data_source() 功能,用于识别数据库服务器名称及其从 DSN 收集的描述。(kalowsky)
  • 修复了 copy() 以使其在 0 字节文件的情况下返回 TRUE。(补丁由 [email protected] 提供)
  • 添加了 ob_list_handlers(),该函数返回所有活动输出处理程序的数组。(Marcus)
  • 添加了 mbstring 编码/解码 "HTML-ENTITIES"。(Marcus)
  • 为 mb_http_input() 添加了参数 'L',以逗号分隔的字符串形式检索输入编码。(Marcus)
  • 添加了对 declare() 编译器修改的功能,可以通过使用空语句使其全局生效。(Jason, Zend Engine) 例如:
            //Globally enables the ticks modifier for the whole program
            declare (ticks=1);
    
            //Enables the ticks modifier for just the lexical block containing
            //"statement".
            declare (ticks=1) {
               statement;
            }
      
  • 使 strtotime() 的 "next" 关键字处理与文档及其 glibc 版本一致。(Rasmus)
  • 修复了 str_rot13() 以避免损坏源字符串。(Rasmus)
  • 修复了 imap_get_quota() 以使其根据 RFC 2087 和 bug #14673 处理多个返回的资源。(kalowsky, Sander Steffann)
  • 为多个相机添加了对 exif_read_data() 的 MarkerNote 解码。(Marcus)
  • 禁用了 "image/" 内容类型标头的 zlib.output_compression,这些标头可以在脚本执行期间更改。(Stefan)
  • 添加了新的异步 FTP 函数。(Stefan)
  • 添加了 FTP 函数的可选第五个参数以支持续传。(Stefan)
  • 添加了 print_r() 的可选第二个参数,使其返回变量表示而不是将其回显。(Derick)
  • 添加了 mysql_ping()、mysql_real_escape_string()、mysql_character_set_name()、mysql_thread_id()、mysql_stat() 和 mysql_list_processes()。(Zak, Georg)
  • 为 pg_lo_export() 添加了 safe_mode & open_basedir 检查。(Yasuo)
  • 为 pg_lo_import() 添加了 open_basedir 检查。(Yasuo)
  • 修复了 ticks 中的无限递归崩溃错误。(Jason)
  • 添加了 php.ini 选项 "mysql.connect_timeout" 用于设置 mysql_connect() 和 mysql_pconnect() 的超时限制。(Georg)
  • 向 mysql_connect() 和 mysql_pconnect() 添加了可选参数 "flags",可用于设置空闲超时和不同的协议、SSL 和压缩的使用。(Georg)
  • 为 ext/mysql 中未提交的事务添加了自动回滚。(Georg)
  • 修复了 preg_split() 在最终元素包含空字节时错误终止的情况。(Andrei)
  • 为 thttpd 添加了持久连接/流水线。(Sascha)
  • 修复了 thttpd 中的两个潜在阻塞问题。(Sascha)
  • 修复了 Solaris 上损坏的头文件检测。(Sascha)
  • 改进了 nss/socket 相关的符号/库检测。(Jani, Sascha)
  • 使 iconv() 能够很好地与 libiconv 和 libgconv 配合使用。(Moriyoshi, Yasuo)
  • 修复了 win32 上的 socket_set_timeout()。(Jason, Edin, Jani)
  • 添加了 domxml_node_namespace_uri()。(Rui Lopes)
  • 修复了 /ext/sockets 中 win32 内存泄漏,该泄漏会在任何错误情况下发生。还修复了 win32 上的主机解析错误消息。(Jason)
  • 添加了 ftp_rawlist() 的可选第三个参数 'recursive',它将执行 'LIST -R' 而不是 'LIST'。(Jani)
  • 更改了 getimagesize() 以始终将未知字段设置为 0,并添加了对 iff 图像类型的支持。(Marcus)
  • 添加了运行时 Apache2 线程检查,以确保我们不会在带线程的 Apache2 MPM 中运行非线程化的 PHP。(Rasmus)
  • 使 getimagesize() 和 exif_read_data() 也返回 mime 类型,exif_thumbnail() 也返回图像类型。(Marcus)
  • 添加了 image_type_to_mime_type(),该函数将图像类型转换为 mime 类型。(Marcus)
  • 使 GD 函数仅在 libgd 中可用时才存在。现在可以使用 function_exists() 测试可用性。(Derick)
  • 向 header() 函数添加了一个可选参数,用于覆盖 HTTP 响应代码。(Derick)
  • 更改了模块卸载的顺序,使其与加载顺序相反。(Derick, Zend Engine)
  • 添加了初步的 SAX 输入支持。现在可以使用 SAX 事件构建 DomDocument。(chregu)
  • 将 GD 库 2.0.1 与 php 捆绑在一起 (ext/gd/libgd) (Rasmus, Jani, Markus, Edin)
  • 修复了线程安全模式下的 bzopen() 崩溃。(Andrei)
  • 为 domxml_open_mem() 和 domxml_open_file() 添加了更好的错误消息(第三个参数)和 DTD 的验证(第二个参数)。(Christian)
  • 添加了 domxml_doc_validate() 用于使用 DTD 验证现有的 DomDocuments。(Christian)
  • 添加了在 preg_match_*() 结果中捕获字符串偏移量的能力。(David Brown, Andrei)
  • 修复了 set_error_handler() 以接受方法作为回调,并报告无效的回调。(Andrei)
  • 修复了 overload 扩展中的内存损坏错误。(Andrei)
  • 修复了 win32 上 fsockopen() 中的错误处理。(Jason)
  • 添加了对 fsockopen() 的超时参数的 win32 支持。(Jason)
  • 修复了 shuffle() 以提供值的均匀分布。(Andrei)
  • 添加了 --with-mysql-sock 配置选项,可用于覆盖 Unix 套接字位置。(例如 NFS 编译等)(James Cox)
  • 修复了 is_a() 以使其能够正确处理扩展注册的类。(Andrei)
  • 添加了新的常量:PHP_PREFIX 和 PHP_SHLIB_SUFFIX。(Stig)
  • 添加了 pctnl_alarm() 函数。(Edin)
  • 如果启用了 zlib.output_compression 并压缩了页面,现在会添加 "Vary: Accept-Encoding" 标头。(Stefan)
  • 将 getallheaders() 重命名为 apache_request_headers(),并将 getallheaders() 保留为其别名。还添加了 apache_response_headers(),该函数返回 Apache 中当前的响应标头。(Rasmus)
  • 在COM扩展中添加了缺失的AddRef()调用。这应该可以修复奇怪的行为(特别是与ADODB相关的)。(Harald)
  • 修复了version_compare()中的段错误。(Stig)
  • 为getimagesize()添加了压缩的Flash MX文件支持。(Derick)
  • 添加了在preg_split()结果中捕获字符串偏移量的能力。(David Brown,Andrei)
  • 修复了token_get_all()中的崩溃错误。(Andrei)
  • 为Unix/Win32实现了glob()。(Hartmut,Edin,Markus)
  • 添加了domxml_doc_set_root()来更改根节点。(Lukas Schroeder)
  • 修复了在Sybase模式下使用stripslashes()时的崩溃错误。(Rasmus)
  • 在mbstring中添加了对简体中文、繁体中文和韩文编码的实验性支持。(Rui)
  • Win32 mail()的杂项增强:支持'From:'标头 ([email protected])、支持Bcc标头、不区分大小写的标头、增强的错误报告、自动正确的行尾转换、修复了Cc相关的崩溃问题,修复了$header的缓冲区溢出。(Markus)
  • 改进了IMAP扩展的性能。([email protected][email protected],Jon)
  • 为domxml_xslt_process()添加了可选的第五个参数。设置后,性能分析信息将保存到指定的文件。(chregu)
  • 为Windows上的crypt()添加了MD5支持。(Edin)
  • 修复了LDAP扩展中的资源错误。(Stig Venaas)
  • 修复了在回调中缓冲区被覆盖时输出缓冲中的崩溃问题。(Yasuo)
  • 添加了output_add_rewrite_var()和output_remove_rewrite_var()来注入和删除URL重写器中的变量。(Thies)
  • 现在可以更方便地配置Windows构建,例如处理内置扩展时。(Sebastian)
  • 为pg_lo_import()、pg_lo_unlink()、pg_lo_open()和pg_lo_export()添加了对大OID值(2^31到2^32)的支持。(Yasuo)
  • 修复了混合使用OCIPlogon()和OCINLogon()导致Oracle会话泄漏的问题。(Thies)
  • 为EXIF扩展添加了php.ini选项,用于编码和解码Unicode/JIS用户注释。(Marcus)
  • 更改了“-c” CLI/CGI选项,使其同时允许“文件名”和“php.ini路径”。(Yasuo)
  • 为在Windows下创建的.dll和.exe文件添加了版本信息。(jtate)
  • 添加了__FUNCTION__和__CLASS__常量。(Jani,Zend引擎)
  • 为pg_result_status()添加了可选的第二个参数,用于指定返回类型。(Yasuo)
  • 添加了“log_errors_max_len” php.ini选项,用于控制错误消息的最大长度。(Marcus)
  • 添加了“ignore_repeated_errors”和“ignore_repeated_source” php.ini选项,用于禁用重复错误消息的记录。(Marcus)
  • 使pg_last_notice()正常工作。(Yasuo)
  • 添加了“pgsql.ignore_notice”和“pgsql.log_notice” php.ini选项。(Yasuo)
  • 添加了“zlib.output_compression_level” php.ini选项。(Stig)
  • 添加了对Mac OS X/Darwin上--with-apxs构建的支持。(markonen)
  • 添加了对OS X/Darwin上动态加载扩展的支持。注意:这需要Apache 1.3.25或更高版本。(kalowsky,markonen)
  • 修复了Win32上quoted_printable_decode()中的CR/LF处理。(kir)
  • 使crack扩展可在Win32上使用。Win32的Cracklib库可在http://www.jtatesoftware.com/cracklib/获得。(jtate)
  • 添加了mysql_info()函数。(Jan)
  • 添加了mysql_list_processes()和mysql_stat()函数。(Georg)
  • 修复了在具有libc中iconv()支持的系统上的内存分配问题。(Yasuo)
  • 使var_dump()更好地处理递归结构。(Yasuo,Derick)
  • 添加了exif_imagetype()函数。(Marcus)
  • 新的改进的构建系统。除其他改进外,用一个全局Makefile替换了缓慢的递归make,并简化了适当依赖项的集成。Automake仅需要其aclocal工具。构建过程现在更易于移植且更省资源。(Sascha)
有关此版本的更多信息,请访问我们的发行说明页面

版本 4.2.3

  • 为Win32上的PCRE启用UTF8修饰符支持。(Wez,Edin)
  • 在Win32上启用了strcoll()。(Markus)
  • 修复了mail()中可能的ASCII控制字符注入。(Stefan Esser)
  • 修复了import_request_variables()中的潜在崩溃错误。(Zeev)
  • 修复了Windows上目录函数的几个问题。(Steph)
  • 修复了Apache模块中的xbithack错误。(Rasmus)
  • 修复了一个阻止touch()在各种平台上工作的错误。(Steph)
  • 修复了ob_gzhandler()对具有Accept-Encoding标头但不允许压缩的请求的处理。(Zeev)
  • 修复了多线程版本中可能导致随机解析错误的几个错误,尤其是在具有多个CPU的机器上。(Zeev,Zend引擎)
  • 修复了bcmath中的构建问题。(Alan)
  • 修复了几个bzip2问题。(Andrei,kalowsky)
  • 修复了几个COM问题。(Harald)
  • 各种exif修复。(Marcus)
  • 修复了domxml_xslt_process()和domxml_get_element_by_id()以及DOMXML中的其他几个问题。(Christian)
  • 修复了删除先前创建的属性时DOMXML崩溃的问题。(Christian)
  • 修复了将$GLOBALS转换为对象时的崩溃问题。(Zeev,Zend引擎)
  • 修复了ImageCreateFromGD2Part()。(Jani)
  • 修复了IRIX下IMAP扩展中的构建问题。(kalowsky)
  • 修复了imap_last_error()中的错误。(Jani)
  • 各种mbstring修复。(Yasuo,Rui)
  • 修复了mcal扩展中的构建问题。(Jani)
  • 在请求结束时使MySQL回滚打开的事务。(Georg)
  • 修复了ODBC模块关闭顺序中的崩溃问题。(kalowsky)
  • 修复了PCRE构建问题。([email protected]
  • 修复了pg_lo_write()中的崩溃问题。(Yasuo)
  • 修复了posix_isatty()和posix_ttyname()。(Markus)
  • 修复了意外的pg_lo_import() API更改。(Yasuo)
  • 修复了当反向引用号大于捕获的子模式数时ereg_replace()崩溃的问题。([email protected]
  • 修复了在Windows等线程安全平台上的array_rand()。(Edin)
  • 在调用exit()后报告正确的退出代码。(Edin)
有关此版本的更多信息,请访问我们的发行说明页面

版本 4.2.2

  • 修复了严重的安全性漏洞。(Stefan Esser)
有关此版本的更多信息,请访问我们的发行说明页面

版本 4.2.1

  • 为show_source()、parse_ini_file()和rmdir()添加了安全模式检查。还修复了safe_mode_include_dir指令的安全问题。(Rasmus)
  • 更改了HTTP上传代码以接受0字节的文件上传。(Zeev)
  • domxml的主要更新。新的函数,更好的DOM兼容性和错误修复
    • 将旧的$node->append_child()更改为$node->append_sibling(),因为新的append_child()行为正确(= W3C标准)。
    • 添加了domxml函数
      • domxml_elem_get_elements_by_tagname()
      • domxml_doc_get_elements_by_tagname()
      • domxml_doc_get_element_by_id()
      • domxml_elem_remove_attribute()
      • domxml_elem_get_attribute_node()
    • 修复了domxml_unlink()中的段错误。
    • 为domxml_dump_mem()添加了格式化选项。
    (Uwe,jtate,Chregu)
  • 修复了socket_select()中的一个错误,该错误在使用类似$w = $e = array($sock);的语句时可能导致意外行为。此更改不幸地阻止了对套接字数组参数使用常量值(例如NULL)。请改用临时变量或最左成员为临时变量的表达式。例如:socket_select($w, $r, $e = NULL, 10);(Jason)
  • 修复了会话序列化程序中的崩溃问题。(Stas)
  • 修复了touch()中格式错误的atime/mtime。(Yasuo)
  • 修复了array_sum()和array_merge()中的几个错误。(Andrei)
  • 修复了Windows下SJIS目录名称的处理。(Rui)
  • 修复了指定Content-Type时mb_output_handler()输出为空的问题。(Yasuo)
  • 修复了ext/session中的错误逻辑,该逻辑使得在禁用cookie时SID常量未定义。(Sascha)
  • 修复了HTTP上传中可能的崩溃错误。(补丁:Lucas Schroeder)
  • 修复了COM扩展中的一个错误,该错误导致在各种地方出现'Error in php_OLECHAR_to_char()'警告,并导致php崩溃。还修改了API,以便在发生错误时始终返回NULL。(Alan,Harald)
  • 修复了COM扩展中的一个错误,该错误导致outproc服务器由于缺少Release()调用而“挂起”。(Alan,Harald)
有关此版本的更多信息,请访问我们的发行说明页面

版本 4.2.0

  • 注意!!register_globals现在默认为'off'!!!
  • 注意:Apache2支持为实验性功能。
  • 将ext/mailparse移至PECL。有关更多信息和下载扩展,请访问http://thebrainroom.com/opensource/php/。(Wez/Jim)
  • 修复了pg_last_notice()崩溃的问题。(Yasuo)
  • 修改了mysql扩展,以便在启用安全模式时禁用'LOAD LOCAL'。(Jason)
  • 修复了HTTP文件上传支持,以更好地处理大文件。(Jani)
  • 对套接字扩展及其API进行了重大修改(Jason)
    • 修复了许多错误。
    • 为所有接受addr的函数添加了自动主机查找功能。例如:socket_connect($sock, 'www.yahoo.com', 80);
    • 更正并标准化了主机查找错误
    • 修改了socket_recv()的行为。[$r=socket_recv($sock, $buf, $len, $flags)]
    • 添加了socket_set_block(),它将套接字更改为阻塞IO模式
    • 修改了socket_last_error(),使其不清除上次错误
    • 添加了socket_clear_error(),它清除套接字上的上次错误
    • 删除了与fd_sets相关的所有代码 (socket_fd_*)
    • 修改/改进了socket_select(),使其接受资源数组而不是fd_sets。示例
          <?php
      $wfds=$rfds=array($sock1, $sock2, $sock3, $sock7);
      $r=socket_select($rfds, $wfds, NULL, 1);
      print "Ready to read:\n"; var_dump($rfds);
      ?>
  • 如果用户没有释放结果集,则修复了ibase_close()中的段错误。错误 #15419#15992。(daniela)
  • 修复了pg_last_notice()崩溃的问题。(Yasuo)
  • 为gzencode()添加了可选的第三个参数“int encoding_mode”,并修复了参数以符合文档。(Stefan)
  • 将read_exif_data()更改为exif_read_data()的别名。(Marcus)
  • 添加了exif_tagname()函数,用于返回标签的名称,以及exif_thumbnail()函数,用于提取嵌入式缩略图。(Marcus)
  • 修复了FreeBSD的iconv支持。(kalowsky)
  • 清理了posix扩展:(Markus)
    • 删除了不需要的警告消息
    • 添加了posix_errno()和posix_strerror()用于获取错误消息
    • 更改了posix_getgrnam()和posix_getgrgid()返回其值的方式(破坏了BC,但更有意义)
    • 不将主机系统不支持的函数包含在符号表中。
  • 为getimagesize()和read_exif_data()添加了TIFF支持。(Marcus)
  • 将Velocis扩展命名空间更改为Birdstep以反映新的产品名称。为BC添加了别名。(James)
  • 为opendir()添加了安全模式检查。(jflemer)
  • 改进了pgsql_fetch_*()函数中的第二个参数,如果提供了所有三个参数,但不想提供行号,则支持NULL。(Derick)
  • 改进了使用libc的iconv时的iconv()。(Yasuo)
  • 添加了PHP_SAPI常量,其中包含正在运行的SAPI的名称。(Edin)
  • 添加了ob_get_status(),它返回一个包含其状态的缓冲区数组。(Yasuo)
  • 修复了ob_end_*()函数中的崩溃错误。ob_end_*()不会删除可能无法删除的缓冲区。(Yasuo)
  • 为ob_start()添加了第三个参数“bool erase”。如果为FALSE,则缓冲区可能不会在脚本完成之前删除。(Yasuo)
  • 将ob_*()函数更改为成功返回TRUE,失败返回FALSE。(Yasuo)
  • 将sybase_ct支持添加到dbx模块。(Marc)
  • 修复了PostgreSQL 7.2的错误消息处理。(Rui)
  • 添加了对象聚合能力,请参见aggregation_*()函数。(Andrei)
  • 添加了debug_zval_dump(),其工作方式类似于var_dump,但显示了额外的内部信息,例如引用计数和真实类型名称。(Jason)
  • 添加了Andrei的标记器扩展。(Stig)
  • 修复了COM扩展中的一个错误,该错误导致php在php_COM_get_ids_of_names()中崩溃。(Paul,Harald)
  • 删除了ext/satellite。它现在是PEAR的一部分。(eriksson)
  • 更改了php.ini指令'safe_mode_include_dir'以接受用(分号)分隔的路径(如'include_path'),而不是单个目录。(jflemer)
  • 添加了is_a()函数,可用于测试对象是否属于特定类或从中派生。(Andrei,Zend引擎)
  • 为highlight_string()和highlight_file()添加了可选参数,使这些函数返回高亮显示的字符串而不是将其转储到标准输出。(Derick)
  • 为extract()添加了EXTR_IF_EXISTS和EXTR_PREFIX_IF_EXISTS标志。(Rasmus)
  • 修复了pg_pconnect()中的段错误。如果PostgreSQL服务器重新启动,则检测到断开的连接并重新连接。(Yasuo)
  • 修复了 --enable-safe-mode 配置选项。(Yasuo)
  • 添加了函数 domxml_dump_node($doc,$node)。将节点及其所有子节点转储到字符串中。(chregu)
  • 添加了函数 domxml_node_get_content()。(chregu)
  • 添加了函数 domxml_dump_file($filename,[$compression])。将XML转储到文件,如果指定则使用压缩。(chregu)
  • 将exslt集成到domxml扩展中(http://exslt.org/ 详情)。使用 --with-dom-exslt[=DIR] (和 --with-dom-xslt) 进行配置。(chregu,jaroslaw)
  • 修复了session_unset(),如果register_globals关闭,则不会触及任何全局变量。(Thies)
  • 为OCIFetchStatement()添加了3个新的可选参数。它们控制在游标开头跳过的行数、应获取的最大行数以及返回数组的格式。(Thies)
  • 更新了XSLT扩展以支持Sablotron 0.8。(Petr Cimprich)
  • 修复了preg_match()和preg_match_all()在匹配包含空字节的字符串时的错误。(Andrei)
  • 添加了xpath_register_ns()函数。这使得可以使用命名空间发出XPath查询成为可能,例如:"//namespace:sampletag"。(Chris Jarecki)
  • 添加了支持多字节的正则表达式函数。(Rui)
  • 为count()添加了可选的第二个参数,可用于指定普通计数或递归计数。(由Vlad Bosinceanu <[email protected]> 提供补丁)
  • 添加了mb_get_info()以获取mbstring的内部设置。(Rui)
  • 为PostgreSQL模块添加了异步查询函数。(Yasuo)
  • 为PostgreSQL模块添加了pg_copy_to()/pg_copy_from()。(Youichi, Yasuo)
  • 为FTP扩展添加了IPv6支持。(Stig Venaas)
  • 显著提高了wordwrap()的速度。(Jim)
  • 修复了pow()在处理0的幂时出现的错误行为。(Jim)
  • 添加了is_finite(),is_infinite()和is_nan()。(Jim)
  • 修复了wordwrap()在换行宽度为零且使用多字符换行符或尝试强制剪切时的段错误(错误 #12768 )。(Jim)
  • 修复了dbase扩展中的几个错误(dbase_pack()将文件截断为正确的大小,修复 #6852 #1和#2)。(Vlad)
  • 修复了krsort()中的一个错误,该错误导致比较了额外的字符。(Andi)
  • 修复了一个错误,该错误导致pspell从错误位置包含pspell.h。(Vlad)
  • 在mbstring中添加了函数重载,以添加对字符串和邮件函数的多字节支持。(Rui)
  • 为preg_grep()添加了flags参数。当前唯一的标志是PREG_GREP_INVERT,它将使函数返回不匹配的条目。(Andrei)
  • 修复了xslt扩展中的几个崩溃错误。(Markus, Derick)
  • 修复了dbase无法正确返回非常大(大于long)整数的问题。(Vlad)
  • 向IRCG添加了概念:琐碎问题时的放弃、将输出写入文件、连接结束时获取资源。(Sascha)
  • 修复了thttpd中与POST相关的错误,添加了QUERY_STRING、HTTP_HOST、HTTP_ACCEPT_LANGUAGE到脚本环境中,改进了发送正确MIME类型的补丁,并添加了对/nocache/的支持。(Sascha)
  • 修复了domxml扩展中的几个错误和内存泄漏。(Markus)
  • 添加了var_export(),它以可重用的PHP代码的形式输出变量的表示。(Derick)
  • 为CGI版本添加了-w选项,以从脚本中去除所有注释和空格。(Thies)
  • 为ext/sockets添加了对SO_RCVTIMEO和SO_SNDTIMEO的支持。(Jason)
  • 添加了ob_get_level(),它返回输出缓冲机制的嵌套级别。(Yasuo, Derick)
  • 添加了ob_flush()和ob_clean()函数,它们可以刷新和清除输出缓冲区,而不会破坏缓冲区。(Derick)
  • 为mysql_connect()添加了新的可选参数,该参数强制创建新的数据库链接。(Markus, Derick)
  • 添加了ldap_sort()函数。(Stig Venaas)
  • 添加了md5_file()函数,它计算文件的MD5校验和。由Alessandro Astarita <[email protected]> 提供补丁 (Derick)
  • 添加了对解析WDDX数据包中包含的记录集的支持。(Andrei)
  • 将key_exists()重命名为array_key_exists()。(Derick)
  • 修复了ImageColorsForIndex()和ImageColorAt(),使其能够处理TrueColor图像。(Rasmus)
  • 添加了对bind_textdomain_codeset()的支持。<[email protected]>
  • 添加了通用的Win 32 API扩展。(jmoore)
  • 当服务器的默认字符集!=latin1时,从mysql_connect()中删除了关于不存在的字符集的警告消息。(MySQL团队)
  • 添加了直接I/O扩展,用于对POSIX层进行低级访问。(Sterling)
  • 为RISC OS上的WebJames服务器添加了SAPI模块。(Alex Waugh)
  • 修复了ldap_add()和ldap_modify()函数,使其在使用非法值数组时抛出警告。以前会发生段错误或添加错误的值。(Stig Venaas)
  • 将udm_check_charset()函数添加到mnoGoSearch扩展中。(gluke)
  • 修复了mnoGoSearch扩展以支持mnogosearch-3.2.x。(gluke)
  • 使fbsql_num_rows()在所有select语句中返回正确的值。(Frank)
  • 添加了array_chunk()函数,它将数组拆分为指定大小的块。(Andrei)
  • 修复了在缺少content-type时,如果always_populate_raw_post_data打开,则填充$HTTP_RAW_POST_DATA的问题。(Rasmus)
  • 添加了session_cache_expire()函数。(由<[email protected]>提供的补丁)(Andrei)
  • 添加了array_fill()函数。(Rasmus)
  • 在安全模式下,使Authorization标头从phpinfo()输出中隐藏。(Rasmus)
  • 恢复了安全模式的区域篡改。(Rasmus)
  • 修复了preg_replace()中的一个错误,该错误会将替换数组条目的类型更改为字符串。(Andrei)
  • 添加了用户空间对象重载扩展。(Andrei)
  • 添加了ldap_start_tls()函数。(Stig Venaas, 由<[email protected]>提供的补丁)
  • 更改了rand()和mt_rand(),如果srand()或mt_srand()未被调用,则会自动设置种子。(Sterling)
  • 更改了srand()和mt_srand()的种子选项,使其成为可选的。如果未指定种子,则会生成尽可能随机的种子。(Sterling)
  • 添加了array_change_key_case()函数,它返回一个数组,其中所有字符串键都转换为小写或大写。(Edin)
  • 为ircg_pconnect添加了一个参数,以抑制将非致命错误视为致命错误,并添加了将Windows引号转换为&quot;。(Sascha)
  • 添加了pcntl_exec()函数,其行为类似于系统execve。(Jason)
  • 修复了ImageColorAt()中的段错误并检查了TrueColor图像。(Rasmus)
  • 修复了nl2br(),使其能够在一个字符串中处理所有样式的行尾。(Boian, Derick)
  • 添加了mcrypt_generic_deinit()以替换mcrypt_generic_end()。(Derick)
  • 添加了apache_setenv()函数,用于将变量注入Apache的subprocess_env表中。(Rasmus)
  • 在settype()中添加了对'int'、'bool'、'float'和'null'的支持。(Jeroen)
  • 为gethostbyaddr()添加了IPv6支持。(由Matthias Wimmer <[email protected]> 和venaas提供的补丁)
  • 更改了ODBC扩展中LONG_VARCHAR类型导致崩溃的问题。由Walter Franzini提供的补丁。(kalowsky)
  • 更改了in_array()和search_array(),使其允许needle本身就是一个数组。(Andrei)
  • 添加了ini_get_all()函数,它返回所有已注册的ini条目或指定扩展的条目。(Jani)
  • 在htmlentities()和htmlspecialchars()中添加了对中文编码的支持。(由Alan Knowles <[email protected]> 和Wez提供的补丁)
  • 改进了对autoconf-2.50+/libtool 1.4b+的支持。(Jan Kneschke, Sascha)
更多关于此版本的资料请访问 我们的发行页面

版本 4.1.2

  • 修复了使用mm保存处理程序且多个SAPI同时工作时的启动失败问题。(Yasuo)
  • 修复了Roxen SAPI。(Yasuo)
  • 修复了RFC-1867文件上传代码中的缓冲区溢出。(Stefan)
  • 修复了会话模块中的崩溃。(Yasuo)
  • 修复了pspell模块中的崩溃。(Yasuo)
  • 更改了mbstring的默认输出编码'pass'以修复初始化问题。(Rui)
更多关于此版本的资料请访问 我们的发行页面

版本 4.1.1

  • 修复了与Windows .NET/IIS 6的不兼容性——可能会提高在其他版本的IIS下的稳定性。(Zeev)
  • 修复了在关闭线程平台时导致崩溃或错误通知的错误。(Zeev)
  • 修复了xslt扩展中的几个崩溃错误。(Markus, Derick)
  • 修复了dbase无法正确返回非常大(大于long)整数的问题。(Vlad)
  • 修复了domxml扩展中的几个错误和内存泄漏。(Markus)
  • 修复了gmmktime()中的一个错误,该错误在标准时间中会相差一小时——错误 #9878。由[email protected]提供的补丁。(jmoore)
  • 修复了Windows上gmdate()时区处理中的错误——错误 #13885。(jmoore)
  • 修复了mcrypt扩展中的几个崩溃错误。(Derick)
  • 使mcrypt扩展能够再次与libmcrypt 2.2系列一起编译。(Sterling)
  • 修复了一个错误,该错误会导致is_file()系列函数在传递不存在的文件名时错误地给出错误。(Sterling)
  • 修复了strtotime()函数中的一个错误,该错误导致它错误地识别GMT +0100和GMT -0100。(Derick)
更多关于此版本的资料请访问 我们的发行页面

版本 4.1.0

  • 解决了MySQL客户端库中的一个错误,该错误可能会导致PHP在使用非缓冲查询时挂起。(Zeev)
  • 修复了一个错误,该错误会导致set_time_limit()影响所有后续对正在运行的Apache子进程的请求。(Zeev)
  • 删除了sablotron扩展,改用新的XSLT扩展。(Sterling)
  • 修复了WDDX反序列化中的一个错误,该错误有时会在根元素为标量时损坏根元素。(Andrei)
  • 使ImageColorAt()和ImageColorsForIndex()能够处理TrueColor图像。(Rasmus)
  • 修复了preg_match_all()中的一个错误,该错误会在某些情况下返回错误索引下的结果。(Andrei)
  • 修复了str_replace()中的一个崩溃错误,该错误会在搜索参数为数组且其中一个替换导致主题字符串为空时发生。(Andrei)
  • 修复了MySQL扩展以使其能够与MySQL 4.0一起工作。(Jani)
  • 修复了Cobalt系统中的一个崩溃错误。由[email protected]提供的补丁。(Jani)
  • 捆绑了Dan Libby的xmlrpc-epi扩展。
  • 引入了扩展版本号。(Stig)
  • 添加了version_compare()函数。(Stig)
  • 修复了pg_last_notice()(可能会导致PostgreSQL应用程序出现随机崩溃,即使它们没有使用pg_last_notice())。(Zeev)
  • 修复了DOM-XML的错误报告,因此会给出E_WARNING错误而不是E_ERROR错误,这允许你捕获DOMXML函数抛出的错误。(Sterling)
  • 修复了 mcrypt 扩展中的一个 bug,该 bug 导致列表析构函数未正确分配。(Sterling)
  • 改进了 Interbase 的 blob、null 和错误处理。(Jeremy Bettis 提供的补丁)
  • 修复了 `array_map()` 在输入数组具有字符串键或非连续键时发生的崩溃 bug。还对其进行了修改,以便如果只传递一个数组,则其键将保留在结果数组中。(Andrei)
  • 修复了 `dbase_replace_record` 中的崩溃问题。([email protected] 提供的补丁)
  • 修复了 `msql_result()` 中的崩溃问题。(Zeev)
  • 增加了对一维 SafeArrays 和枚举的支持。添加了 `com_isenum()` 函数来检查组件是否实现了枚举。(Alan,Harald)
  • 修复了 `dbase_get_record()` 和 `dbase_get_record_with_names()` 中的 bug。布尔字段现在可以正确返回。补丁由 Lawrence E. Widman 提供 (Jani)
  • 为 php-config 添加了 --version 选项。(Stig)
  • 通过合并所有已知 bug 的补丁,改进了对 thttpd-2.21b 的支持。(Sascha)
  • 添加了 `ircg_get_username`,`ircg_join` 的 roomkey 参数,错误获取基础结构,一个用于加快消息处理速度的标记器,并修复了 IRCG 扩展中的许多 bug。(Sascha)
  • 提高了序列化/反序列化的速度。(Thies,Sascha)
  • 从字符串转换时,可以更好地检测浮点数。(Zeev,Zend 引擎)
  • 将 php.ini-optimized 替换为 php.ini-recommended。顾名思义,强烈建议使用此文件作为 PHP 配置的基础,而不是 php.ini-dist。(Zeev)
  • 为 4.0.7 恢复了 `xpath_eval()` 和 `php_xpathptr_eval()`。仍然存在一些已知的内存泄漏。(Joey)
  • 添加了 `import_request_variables()`,允许用户安全地将表单变量导入全局作用域(Zeev)
  • 引入了一个新的 `$_REQUEST` 数组,其中包含任何 GET、POST 或 COOKIE 变量。与其他新变量一样,此变量也无论上下文如何都可用。(Andi & Zeev)
  • 引入了 `$_GET`、`$_POST`、`$_COOKIE`、`$_SERVER` 和 `$_ENV` 变量,这些变量弃用了旧的 `$HTTP_*_VARS` 数组。除了键入更短之外,这些变量也无论作用域如何都可用,并且无需使用 `global` 语句导入它们。(Andi & Zeev)
  • 添加了 `vprintf()` 和 `vsprintf()` 函数,允许将格式后的所有参数作为数组传递。(Andrei)
  • 为 `ImageCreateFromString()` 添加了对 GD2 图片类型的支持 (Jani)
  • 添加了 `ImageCreateFromGD()`、`ImageCreateFromGD2()`、`ImageCreateFromGD2part()`、`ImageGD()` 和 `ImageGD2()` 函数 (Jani)
  • 当 `charlist` 无效时,`addcslashes` 现在会发出警告。返回的字符串保持不变 (Jeroen)
  • 为 `gmp_init()` 添加了可选的额外参数。额外参数指示 gmp 在将字符串转换为 gmp 数字时应使用哪个数字基数。(Troels)
  • 添加了 Cyrus-IMAP 扩展,允许直接访问 Cyrus 的更高级功能。(Sterling)
  • 增强了 `read_exif_data()` 以支持多个注释标签 (Rasmus)
  • 修复了当传递 NULL 回调时 `array_map()` 中的崩溃 bug。(Andrei)
  • 将 exif 扩展中的错误级别从 E_ERROR 更改为 E_WARNING (Rasmus)
  • 新的 `pow()` 实现,在可能的情况下返回整数,并在输入错误时发出警告 (jeroen)
  • 为 `trim`、`chop` 和 `ltrim` 添加了可选的第二个参数。现在可以指定要修剪的字符 (jeroen)
  • 极大地提高了 PHP 线程安全版本的性能,尤其是在 Windows 下(Andi & Zeev)
  • 显着提高了请求关闭性能(Andi & Zeev,Zend 引擎)
  • 添加了一些新的数学函数。(Jesus)
  • 将捆绑的 expat 更新到 1.95.2 (Thies)
  • 提高了数据库重启后 `OCIPlogon()` 的稳定性。(Thies)
  • 修复了在 CGI 和 Java servlet 模式下在主脚本中使用 `__FILE__` 的问题。在此修复之前,它仅在包含文件中才能正常工作 (Andi)
  • 改进了 Zend 哈希表实现,使其速度更快 (Andi,Zend 引擎)
  • 更新了 PHP 的文件打开函数(由 `include()` 使用),以便在找不到 include_path 中的文件时,检查调用脚本的目录 (Andi)
  • 修复了一个可能导致常量损坏的损坏 bug,并可能阻止在请求结束时正确清理资源 (Zeev)
  • 为 `str_replace()` 添加了可选的 Boyer-Moore 算法使用 (Sascha)
  • 修复并改进了共享内存会话存储模块 (Sascha)
  • 添加了配置选项 (always_populate_raw_post_data),启用后将始终填充 `$HTTP_RAW_POST_DATA`,而不管 post mime 类型如何 (Rasmus)
  • 为 `ftp_fput` 添加了对 socket 和 popen 文件类型的支持 (Jason)
  • 修复了 LDAP 扩展中的各种内存泄漏 (Stig Venaas)
  • 改进了交互模式 - 现在可以在所有 PHP 版本中使用,而不会出现明显的减速 (Zeev,Zend 引擎)
  • 修复了当提供的数据无效时 `iptcparse()` 中的崩溃问题。(Thies)
  • 修复了 `snmpset()` 失败的返回值 - 现在返回 false (Rasmus)
  • 为 snmp 函数添加了 hostname:port 支持 ([email protected], Rasmus)
  • 添加了 `fdf_set_encoding()` 函数 (Masaki YATSU, Rasmus)
  • 反转了资源的销毁顺序。这修复了报告的 OCI8“无法回滚未完成的事务!”消息 (Thies,Zend 引擎)
  • 添加了返回 XMLRPC 错误包的选项。(Matt Allen,Sascha Schumann)
  • 改进了 `range()` 函数以支持 `range('a','z')` 和 `range(9,0)` 类型的范围。(Rasmus)
  • 添加了 `getmygid()` 和 `safe_mode_gid` ini 指令,允许安全模式执行 gid 检查而不是 uid 检查。(James E. Flemer,Rasmus)
  • 使 `assert()` 接受 `array(&$obj, 'methodname')` 语法。(Thies)
  • 确保 OCI8 输出变量始终以零结尾。(Thies)
  • 修复了一个允许用户在使用 `mail()` 的第 5 个参数时产生进程的 bug。(Derick)
  • 添加了 `nl_langinfo()`(当操作系统提供时),它返回区域设置。
  • 修复了线程安全版本中的一个主要的内存损坏 bug。(Zeev)
  • 修复了使用 CURLOPT_WRITEHEADER 选项时发生的崩溃问题。(Sterling)
  • 为 `basename()` 添加了可选的后缀删除参数。(Hartmut)
  • 在 `Udm_Set_Agent_Param()` 函数中添加了新的参数 UDM_PARAM_VARDIR ha,以支持替代搜索数据目录。这需要 mnogoSearch 3.1.13 或更高版本。
  • 修复了会话中的引用。当使用 WDDX 会话序列化器时,这不起作用。还提高了会话速度。(Thies)
  • 添加了新的实验性模块 pcntl(进程控制)。(Jason)
  • 修复了 `com.allow_dcom` 设置为 false 时的 bug。(phanto)
  • 在构造函数中添加了另一个参数,以便在实例化组件时(例如,没有本地注册的 DCOM 组件)从文件加载 typelibs。(phanto)
  • 添加了在 typelib 文件中通过全名指定 typelibs 的可能性 (Alan Brown)
  • 将 ZZiplib 扩展重命名为 Zip 扩展,函数名称也相应更改,功能保持不变。(Sterling)
  • 使 `pg_loread()` 的长度参数(参数 2)可选,如果未指定,则将以 1kb 块读取数据。(Sterling)
  • 为 `pg_lowrite()` 添加了第三个参数,即要写入的数据的长度。(Sterling)
  • 添加了 `CONNECTION_ABORTED`、`CONNECTION_TIMEOUT` 和 `CONNECTION_NORMAL` 常量。(Zak)
  • 将赋值给字符串偏移量超出了字符串结尾,现在会自动通过用空格填充来增加字符串长度,并执行赋值。(Zeev,Zend 引擎)
  • 添加了在读取未初始化的字符串偏移量时的警告。(Zeev,Zend 引擎)
  • 修复了在非常大的负整数情况下出现的一些溢出 bug。(Zeev,Zend 引擎)
  • 修复了字符串偏移量实现中的崩溃 bug (Zeev,Zend 引擎)
  • 改进了使用运行时继承的类的 `parent::method_name()` 的实现。(Zeev,Zend 引擎)
  • 为 `date()` 函数添加了 'W' 标志,以使用 ISO 8601 标准返回一年中的周数。(Colin)
  • 使 PostgreSQL 驱动程序在迭代结果集时进行内部行计数。([email protected]
  • 将 ext/mysql/libmysql 更新到版本 3.23.39;可移植性修复,次要错误修复。([email protected]
  • 添加了 `get_defined_constants()` 函数,以返回一个关联数组,其中常量映射到它们的值。(Sean)
  • 新的 mailparse 扩展,用于解析和操作 MIME 邮件。(Wez)
  • 在构建独立 DSO 扩展时定义 HAVE_CONFIG_H。(Stig)
  • 为 `printf/sprintf` 添加了 'u' 修饰符,用于打印无符号长整数。(Derick)
  • 改进了 IRIX 兼容性。(Sascha)
  • 修复了指定无效文件时 `bzopen()` 中的崩溃 bug。(Andi)
  • 修复了 mcrypt 扩展中导致崩溃的 bug。(Derick)
  • 为 `ImageFilledArc()` 函数添加了 `IMG_ARC_ROUNDED` 选项,该选项指定绘制的曲线应为圆形。(Sterling)
  • 更新了套接字扩展,以便为套接字描述符使用资源而不是长整数。套接字函数已重命名为符合 PHP 标准,而不是它们的 C 对应物。套接字扩展现在可以在 Win32 下使用。(Daniel)
  • 添加了 `disk_total_space()` 以返回文件系统的总大小。(来自 Steven Bower 的补丁)
  • 将 `diskfreespace()` 重命名为 `disk_free_space()` 以符合已建立的命名约定。(Jon)
  • 修复了 #2181。现在为 7 位编码和纯文本正文类型返回零而不是未设置的值。(Vlad)
  • 修复了 `call_user_*()` 函数中的一个 bug,该 bug 不允许调用按引用接受参数的函数/方法。(Andrei)
  • 添加了 `com_release($obj)` 和 `com_addref($obj)` 函数以及相关的类成员 `$obj->Release()` 和 `$obj->AddRef()` 以更好地控制使用的 COM 组件。(phanto)
  • 为 `dotnet_load` 添加了一个附加参数以指定代码页 (phanto)
  • 添加了峰值内存日志记录。使用 --enable-memory-limit 创建一个新的 Apache 1.x 日志指令“{mod_php_memory_usage}n”,它将记录脚本使用的峰值内存量。(Thies)
  • 通过返回一个数字和字符串索引的数组,使 `fstat()` 和 `stat()` 提供相同的输出。(Jason)
  • 修复了重新注册常量时的内存泄漏。(Sascha,Zend 引擎)
有关此版本的更多信息,请访问 我们的发行页面

版本 4.0.6

  • 修复了内存碎片问题,该问题可能导致 Web 服务器进程增长远超预期。(Andi,Zend 引擎)
  • 当 register_globals 打开时,使 `$HTTP_SESSION_VARS['foo']` 和 `$foo` 成为同一值的引用。(Andrei)
  • 修复了 FreeBSD 下的 `disk_free_space()` 和 `disk_total_space()`。(Jon)
  • 修复了在连接中断期间 `readfile/passthru` 丢失资源的问题 (Sascha)
  • 修复了 mcrypt 扩展中的 bug,该 bug 在使用对于所用算法过大的密钥时会导致段错误,以及导致 `mcrypt_generic()` 使 PHP 段错误的 bug (Derick)
  • 修复了 `getopt`,使其接受 `-` 和 `- ` 形式的命令行参数。(Jmoore)
  • 修复了写入会话文件的竞争条件 (Sascha)
  • 修复了在未指定输入文件时 PHP CGI 可能发生的崩溃问题 (Zeev)
  • 添加了 `is_callable()` 函数,可用于确定其参数是否为有效的可调用构造。(Andrei)
  • 修复了生成扩展信息时可能发生的罕见崩溃问题。(Dmitri Dmitrienko,Zend 引擎)
  • 改进了 `virtual()` 以支持启用 PHP 的 URI。(Zeev)
  • 修复了在 `array()` 表达式中使用浮点键时的未定义行为。(Zeev,Zend 引擎)
  • 修复了在包含文件或 `eval` 语句中出现解析错误时可能发生的崩溃问题。(Zeev,Zend 引擎)
  • 添加了 --with-layout 配置选项。(Stig)
  • 改进了交互模式 - 支持函数调用,并在多线程版本中工作。(Zeev,Zend 引擎)
  • 修复了交互模式中的崩溃 bug。(Zeev,Zend 引擎)
  • 添加了 `pg_last_notice()` 函数。(根据 [email protected] 的建议,Rasmus 提供)
  • 修复了 `preg_split()` 中的一个 bug,该 bug 在与 PREG_SPLIT_NO_EMPTY 标志一起使用时会错误地限制结果数量。(Andrei)
  • 为 `mysql_error()` 和 `mysql_errno()` 添加了连接错误支持。(Jason)
  • 增加了对 `getimagesize` 的支持,以返回 BMP 和 PSD 文件的尺寸。(Derick)
  • 为 IRCG 添加了启发式方法以终止陈旧的 IRC 连接、消息扫描器缓存和昵称转义、`ircg_msg()` 的抑制选项以及 IRCG phpinfo() 输出的统计信息。(Sascha)
  • 添加了日语多字节字符串函数支持。(Rui)
  • 添加了 Mac OS X "\r" 行尾支持。(Andi,Zend 引擎)
  • 修复了未启用 force-cgi-redirect 时 `$PHP_SELF` 注册不正确的 bug。(Sterling)
  • pfpro 扩展现在支持 Verisign SDK 的版本 3。(John Donagher)
  • 添加了 `Udm_Cat_List` 和 `Udm_Cat_Path` 函数。
  • 添加了 `key_exists()` 来检查给定的键或索引是否存在于数组或对象中。(David Croft)
  • 修改cURL扩展,使其仅与最新的cURL版本编译。扩展API的后向兼容性未被破坏。(Sterling)
  • 添加了使用用户定义回调函数与cURL交互的功能。(Sterling)
  • 在curl_setopt()中添加了SSL_VERIFYPEER、CAINFO、MAXREDIRS、FILETIME、RANDOM_FILE、EGDSOCKET和CONNECTTIMEOUT选项。(Sterling)
  • 添加了对cURL持久连接的支持。(Sterling)
  • 修复了cURL中文件描述符被分配但从未关闭的问题。(Sterling)
  • 修复了交互模式(-a)。它可以再次工作,并保留其一直以来的限制。(Andi, Zend引擎)
  • 改进了内存管理器,以减少内存使用并提高调试模式下的内存溢出检测能力。(Andi, Zend引擎)
  • 修复了资源转换为数字时发生的资源泄漏。(Zeev, Zend引擎)
  • 修复了foreach()在收到无效参数时不会崩溃的问题。(Andi, Zend引擎)
  • 修复了Windows下opendir()在尝试打开不存在的目录时的问题。(Andi)
  • 修复了Win32下的popen()和exec系列函数(无法fork的问题)。(Daniel)
  • 使printf系列函数具有二进制安全性。(Rasmus)
  • 修复了WDDX序列化,使其对键/变量名进行HTML转义,以免破坏XML包。(Andrei)
  • 默认启用WDDX扩展。(Andrei)
  • 添加了-C命令行选项,以避免chdir到脚本的目录。(Stig)
  • 修复了preg_replace()中/e修饰符的一个bug,该bug在前面存在一位数引用时无法正确替换两位数引用。此修复解决了bug #10218。(Andrei)
  • 在OCI8中添加了临时LOB支持。(David Benson提供的补丁)
  • 修复了pathinfo()中的崩溃问题。
  • OCI8现在支持集合的绑定。(Andy Sautins <[email protected]>提供的补丁)
  • 添加了对GD 2.0.1的支持,包括真彩色和alpha通道,以及其他一些gd函数,包括旧的和新的——更多信息请参见文档。(Wez)
  • 在openssl扩展中添加了S/MIME签名/验证加密/解密函数,以及其他一些证书操作和查询函数。更多信息请参见文档。(Wez)
  • printf参数数量(参数交换)支持。(Morten Poulsen, Rasmus)
  • 添加了DIRECTORY_SEPARATOR常量(UNIX上为'/',Windows上为'\')。(Stig)
  • 对php_odbc模块进行了一些小的修改,用于检查失败的SQLDisconnects,并在调用失败时关闭任何未完成的事务,然后再次断开连接。(lurcher)
  • 修改了get_parent_class()和get_class_methods(),使其既可以接受类名,也可以接受类实例。(Andrei, Zend引擎)
  • 添加了对UNC样式路径的支持。(\\server\share\file, //server/share/file)。(Daniel, TSRM)
  • 将dbx模块(数据库抽象)添加到存储库。(Marc)
  • 尽可能使用ITypeInfo代替IDispatch。这使得DCOM调用甚至COM调用速度更快。所有ini设置现在都以'com.'为前缀。现在您无需提供包含typelib的文件的路径,您还可以提供TypeLib的GUID - 条目或IID来预加载类型信息。(phanto)
  • 重写了domxml。它现在大部分符合DOM 2级。(Uwe)
  • 添加了array_map()函数,该函数将回调函数应用于给定数组的元素并返回结果。它也可以与空回调函数一起使用来转置数组。(Andrei)
  • 添加了array_filter(),它允许通过指定的回调函数过滤数组元素。(Andrei)
  • 修复了所有相关的数组函数,以避免在操作期间移动内部数组指针。(Andrei)
  • 添加了mysql_unbuffered_query(),这对于非常大的结果集很有用。(Zeev)
更多关于此版本的发布信息,请访问 我们的发布页面

版本 4.0.5

  • 重要:从preg_replace()中删除了/F修饰符的处理。应该使用新的preg_replace_callback()函数。(Andrei)
  • 添加了新的php.ini指令:arg_separator.input,用于告诉PHP哪些字符被视为URL中的参数分隔符。重命名php.ini指令:arg_separator -> arg_separator.output (Jani)
  • 添加了FastCGI SAPI模块。(Ben Mansell)
  • 添加了array_reduce(),它允许通过回调函数将数组迭代地简化为单个值。(Andrei)
  • 此修复后,gd扩展的imageloadfont函数不应再依赖于平台。([email protected])
  • 修复了一些文件函数(fgets, fputs, fread, fwrite)中的兼容性问题。ANSI标准规定,如果文件以读/写模式打开,则在从读取切换到写入或反过来之前,应调用fseek()。([email protected])
  • 修复了call_user_func*函数的参数检查,并允许为call_user_func_array指定array($obj, 'method')语法。(Andrei)
  • 修复了parent::method(),使其也能与运行时绑定一起使用。(Zeev, Zend引擎)
  • 实现了基于zlib的高性能输出压缩——参见zlib.output_compression INI指令。(Zeev)
  • 改进了ob_gzhandler()以支持分块输出缓冲——建议使用4KB块。(Zeev)
  • 修复了分块输出缓冲。(Zeev)
  • 强制call_user_method()和call_user_method_array()按引用获取对象参数。(Andrei)
  • 修复了OCI8中ROWID的绑定。(Thies)
  • 添加了PEAR/Cache作为通用的缓存系统。(Sebastian, PEAR/Cache)
  • 添加了IMAP配额支持(imap_set_quota, imap_get_quota),通过c-client2000启用/添加。(kalowsky)
  • 将PCRE升级到3.4版本。(Andrei)
  • 添加了array_search,其功能类似于in_array,但返回键而不是布尔值。([email protected])
  • 修复了pgsql事务支持。(Stig, PEAR/DB)
  • 添加了新的对象VARIANT(),用于封装用于COM和DOTNET模块的值。因此,现在可以按引用传递值,将php值转换为扩展变体类型(货币、日期、idispatch、iunknown……),并定义应用于unicode转换的代码页。
  • 改进了IRCG的整体速度,为消息扫描程序添加了URL处理。(Sascha)
  • 修复了一些模块,以允许使用输出缓冲。(Thies)
  • 添加了chroot()函数。(Derick)
  • PostgreSQL现在在每个持久连接的请求结束时进行回滚。这是通过在连接上执行“空”事务来完成的。这是PostgreSQL核心团队的某位成员建议的。(Thies)
  • 修复了PostgeSQL pg_connect()的bug。我们有时会意外地关闭默认链接。(补丁提供者:[email protected])
  • 改进了OCI8死会话检测。(补丁提供者:George Schlossnagle)
  • 修复了get_meta_tags()的多行bug #4556。(Sean)
  • 优先使用random()而不是*rand48()。(JimJag)
  • 将WDDX序列化的速度提高了2倍。(Andrei)
  • 向mail()添加了一个新参数,该参数将附加的命令行参数追加到邮件程序。(Derick)
  • 添加了Udm_Clear_Search_Limits mnoGoSearch扩展函数。(gluke)
  • 修复了mnogosearch协议。修复了mnogosearch函数的返回值。修复了大写字母导致搜索中断的bug。(gluke)
  • 现在可以通过call_user_method_*函数调用静态方法,例如call_user_method('method', 'class'),以及array('class', 'method')结构(例如,对于array_walk())。(Andrei, Zend引擎)
  • Windows下的microtime()现在返回准确的值。(James)
  • 向preg_split()添加了PREG_SPLIT_DELIM_CAPTURE标志,允许捕获括号内的分隔符表达式,实现类似Perl的功能。(Andrei)
  • 修复了strip_tags()不会去除单个>字符的问题。(Rasmus)
  • 使用ob_gzhandler()时,PHP现在会自动正确设置Content-Length,这使得浏览器可以使用HTTP Keep-Alive功能。(Thies)
  • 改进了preg_replace() /F修饰符的处理,以便可以指定array($obj, 'method')结构作为替换函数。(Andrei)
  • 添加了mysql_get_client_info()、mysql_get_server_info()、mysql_get_proto_info()和mysql_get_host_info()函数。(Sean)
  • 对php pdf api进行了重大更改。尽管尝试保持向后兼容性,但这可能会破坏某些函数。还添加了一些仍然缺失的函数。(Uwe)
  • 添加了mnoGoSearch扩展 - http://search.mnogo.ru。(Sergey K)
  • 允许在数据库用户名和密码中进行URL编码。(Stig, PEAR)
  • 向PEAR类添加了raiseError和setErrorHandling方法。(Stig, PEAR)
  • 添加了对使用GD扩展即时转换JPG/PNG图像的支持,这对于创建动态WAP站点很有用。(Derick)
  • 将ext/mysql/libmysql更新到3.23.32版本;错误修复。([email protected])
  • 修复了所有(非pcre)正则表达式函数中可能发生的崩溃。(Thies)
  • 改进了str_replace(),使其可以为任何参数接受数组——类似于preg_replace()。(Andrei)
  • 修复了extract()在使用EXTR_PREFIX_ALL时正确添加数字键名前缀的问题。(Andrei)
  • 向extract()添加了EXTR_PREFIX_INVALID标志,以自动为不构成有效变量名的字符串键添加前缀。(Andrei)
  • 来自[email protected]的BeOS补丁,由Rasmus略微修改。
  • 修复了Apache模块,使其仅在PATH_TRANSLATED之前未设置的情况下才用SCRIPT_FILENAME覆盖PATH_TRANSLATED。(Zeev)
  • 修复了highlight_string()中的崩溃错误。(Rasmus)
  • 为getimagesize()函数添加了URL支持。(Jani)
  • 添加了xslt_set_scheme_handler()函数。([email protected])
  • 添加了pg_lolseek和pg_lotell函数。(Derick)
  • 修复了wordwrap函数的错误换行问题。(Derick)
  • 修复了date()的'O'和'r'标志,使其具有时区偏移的正确符号。(Andrei)
  • 将'Z'标志更改为date(),如果它位于UTC以西,则始终返回带有负号的时区偏移量。(Andrei)
  • 添加了HTML_Processor类,该类提供了用于处理HTML的常用函数。(Sterling)
  • 添加了localeconv()和strcoll()函数用于本地化。(Sean)
  • 添加了xslt_set_base函数。(Sterling)
  • 添加了对Zeus 3.3.8的支持。
  • 添加了odbc_error()和odbc_errormsg()函数。(Stig)
  • 用于vpopmail的新扩展 - http://www.inter7.com/vpopmail,试一试,但请记住它尚未准备好用于生产环境。(David Croft, Boian Bonev)
  • 向Sybase CT模块添加了sybase_get_last_message()。(Jan Fedak)
  • 当第一个参数是链接标识符数组时,使ldap_list()、ldap_read()和ldap_search()进行并行搜索。(Stig Venaas)
  • 使HTTP URL的fopen()跟随重定向,$http_response_header将包含所有标头,并以空字符串作为分隔符。(Stig Venaas)
  • 添加了Console_Getopt类用于解析命令行参数。(Andrei, PEAR)
  • 添加了ZZipLib扩展的实验版本,该版本提供了读取zip文件的功能。(Sterling)
  • 允许在safe_mode下访问上传的文件。请注意,您只能读取文件。如果您将其复制到新位置,则副本将没有正确的UID,并且您的脚本将无法访问该副本。(Thies)
  • 更改了extract()以检查添加前缀后的名称是否有效。(Andrei)
  • 更改了extract()以返回提取的变量数量。(Andrei)
  • 添加了ldap_rename()函数。(Stig Venaas)
  • 使ldap_set_option()支持控件。(Stig Venaas)
  • 修改了 `ldap_search()` 函数,并添加了 `ldap_parse_result()`、`ldap_first_reference()`、`ldap_next_reference()` 和 `ldap_parse_reference()` 函数,以应对 LDAPv3 中的引用和跳转等内容。(Stig Venaas)
  • 修复了 `date('r')` 函数的溢出错误。
  • 使 `phpinfo()` 中报告的 `php.ini` 路径始终指向已打开的绝对路径。(Zeev)
  • 使 INI 机制支持线程安全。(Zeev, Zend 引擎)
  • 更改 `setlocale()` 函数以使用 LC_* 常量。(Jani)
  • ctype 函数现在遵循扩展命名约定。(Hartmut)
  • 添加了 `iconv()` 函数(使用 libc 或 libiconv)。(Stig)
  • 添加了 ODBC_TYPE 常量。(Stig)
  • 添加了 `call_user_method_array` 函数,允许使用任意数量的参数调用方法。(Sterling)
  • ext/odbc: Walter Franzini 提供的 IBM DB2 补丁。([email protected])
  • 添加了 cracklib 库的扩展。(Alexander Feldman)
更多关于此版本的详细信息,请访问 我们的发行页面

4.0.4 版本

  • 允许通过引用赋值新创建的对象。只有当构造函数使其他数据结构引用 `$this` 对象时才需要此功能(例如,`$GLOBALS["foobar"] =& $this;`)。新的语法是 `$obj =& new MyClass();` (Andi, Zend 引擎)
  • Allow for three expression types to be sent to functions which are requesting
      the function argument to be passed by reference (only c. was previously
      supported):
      a. func(new myclass());
      b. func(func2()); where func2() returns a reference, i.e. is defined as
         function &func2(...)
         {
          ...
         }
      c. func($var); where func() is defined as function func(&$var) {...}
      You CAN'T count on any other expressions to be passable by reference.
      (Andi, Zend Engine)
  • 即使搜索结果中没有条目,`ldap_get_entries()` 函数也会返回一个数组。(Jani)
  • 修复了与 mod_perl 的交互错误,该错误在使用 LFS 时会导致段错误 (Sascha)
  • 现在可以识别 `const CONSTNAME`。在打补丁之前,只识别 `@const CONSTNAME description`。
  • 添加了 `is_null()` 函数,如果变量类型为 null,则返回 true。(Sterling)
  • 修复了一个错误,该错误使 `readdir()` 函数在某些系统上无法使用。(Jani)
  • 添加了 `get_defined_functions()` 函数,该函数返回当前定义的所有函数的列表。(Sterling)
  • 添加了 `get_defined_vars()` 函数,该函数返回当前作用域中定义的所有变量及其值的关联数组。(Sterling)
  • 添加了 `call_user_func_array()` 函数,允许通过传递参数数组作为第二个参数来调用用户函数。(Sterling)
  • 添加了 `constant()` 函数,该函数返回给定常量名称的常量的值。(Sterling)
  • 在 PCRE 中实现了对 Perl 风格的匹配正则表达式分隔符的支持。现在可以使用 <{[( 和 )]}> 来分隔表达式。(Andrei)
  • 在 PCRE 中引入了新的 'F' 修饰符,允许在 `preg_replace()` 的替换参数中指定一个函数名,该函数将在运行时被调用以提供替换字符串。它会接收一个匹配模式和子模式的数组。(Andrei)
  • 修复了 Bug #4615 (kalowsky & Eric Veldhuyzen)
  • 修复了虚拟目录模式下的 `realpath()` 函数。(Daniel)
  • 集成了 Phil Nelson 的 bc 数学库例程到 PHP 中,现在许可证允许这样做 (Phil Nelson)
  • 为 Sablotron 扩展添加了 `xslt_set_error_handler()` 函数。(Sterling)
  • 改进了 Sablotron 的错误处理系统,允许在错误输出到屏幕之前捕获所有错误。(Sterling)
  • 添加了 OpenSSL 扩展。(Stig Venaas)
  • 修复/创建了对 Solid 3.0 数据库的支持。(kalowsky)
  • 修复了对 Solid 2.3 数据库的支持。(kalowsky)
  • 使 `quoted_printable_decode()` 函数符合 RFC-2045 规范。(Kir)
  • 修改了 `preg_grep()` 函数,使其始终使用原始数组的键返回结果。(Andrei)
  • 修改了 `preg_replace()` 函数,使其除了 `\\n` 之外还可以接受 Perl 风格的 `$n` 反向引用。(Andrei)
  • 修改了 `preg_replace()` 函数,使其忽略引用不存在的子模式的反向引用。(Andrei)
  • 修复了 `OCIFetchStatement()` 函数中的列标题缓冲区溢出错误。(Thies)
  • 添加了 'output_handler' INI 指令。(Zeev)
  • 修复了输出缓冲机制中的一些小错误。(Zeev)
  • 添加了透明 gzip 压缩支持。(Jade Nicoletti, Zeev)
  • 对 domxml 进行了重大改进。还添加了基本的 XPath 支持。(Uwe)
  • 为 `date()` 函数添加了 'r' 标志,该标志生成 RFC822 格式的日期,例如 "Thu, 9 Nov 2000 16:33:01 -0500" (Colin)
  • 在 CGI 模式下,`$HTTP_SERVER_VARS` 现在也包含所有环境变量。(Zeev)
  • 允许用户在 mysql 查询中使用 `mysql_use_result`。(Stas)
  • 修复了频繁重启 Apache 时会发生的内存泄漏。([email protected])
  • 修复了一个错误,该错误阻止在 PHP 命令行版本中定义 `$argv` 和 `$argc`。(Stas)
  • 修复了一个错误,该错误阻止更改的编译时 `extension_dir` 影响通过 `php.ini` 加载的模块。(Zeev)
  • 修复了在 ftp 服务器上使用 `ftp_mkdir()` 函数时,服务器不返回完整路径的错误。(Jani)
  • 添加了 `ImageCreateFromString()` 函数,该函数可以根据例如 MySQL blob 创建图像流。(Mathieu)
  • 修复了 `imagewbmp()` 函数中的崩溃错误。(Jani)
  • 更改了 sablot 配置文件,以便如果使用低于 0.44 的任何版本的 Sablotron,则必须使用 Sablotron 自带的 Expat 库。(Sterling)
  • 为 thttpd 添加了基本身份验证支持。(Sascha)
  • 添加了对 Caudium web 服务器的支持 (http://caudium.net/)。它基于 Roxen SAPI 模块。许多错误已被识别和修复。(David)
  • 修复了 `mysql_close()`、`pg_close()`、`msql_close()` 和 `sybase_close()` 函数 - 它们没有正确关闭 SQL 连接。(Zeev)
  • 修复了 `crypt()` 函数,如果未提供随机种子则提供随机种子。(Andi)
  • 使 `print_r()` 函数支持递归数据结构,例如 `$GLOBALS`。(Zeev)
  • 修复了一个错误,该错误导致 PHP 在使用多个输出缓冲区时无法正确刷新其输出缓冲区。(Zeev)
  • 修复了一个错误,该错误在某些情况下可能导致 PHP Apache 模块的关闭序列进入无限循环。它可能导致 Solaris 下的 Apache 进程卡住,尤其是在使用输出缓冲区时。(Zeev)
  • 添加了对序列化引用的支持。(Stas)
  • 修复了与 OpenLDAP 和 Oracle 8.1.x 的冲突。(Jani)
  • `parse_ini_file()` 函数支持一个新的可选第二个参数,该参数指示它根据指令所在的节将指令划分到数组中。(Zeev)
  • `parse_ini_file()` 函数现在支持线程安全,并且支持 Windows 系统。(Zeev)
  • 统一了所有 SAPI 模块的中断连接语义。(Sascha)
  • 通过 URL 打开的文件现在将 HTTP 响应头存储在 `$http_response_header` 中。(Zeev)
  • 修复了 `array_rand()` 函数,使其在请求的元素数量与数组中的元素数量相同时可以打乱结果。(Andrei)
  • 为 `header()` 函数添加了替换参数。(Sascha)
  • 修复了透明 session-id 模式下单引号的处理。(Sascha)
  • 修复了 "php://*" `fopen` 处理程序。(Sascha)
  • 使 `rename` 函数在线程安全环境中工作。(Daniel)
  • 使 `session_destroy()` 函数在取消链接之前关闭文件。(Daniel)
  • 添加了 `array_sum()` 函数。(Andrei)
  • 修复了 `session.c` 中的一个错误。`php_session_save_current_state` 函数没有检查 `mod_data` 是否为 NULL,如果用户使用参数调用 `session_module_name` 函数,则这种情况是可能的。([email protected])
  • 添加了 IIS 管理扩展。(Frank)
  • `OCIBindByName()` 函数现在可以更好地进行参数检查。(Thies)
  • 使 `read()` 函数在 `sockets.c` 中支持二进制安全。(Chris Vandomelen)
  • 使 `array_intersect()` 和 `array_diff()` 函数不改变顺序。(Stig Venaas)
  • 在使用 OpenLDAP 2.x 时,使 `ldap_connect()` 函数能够在主机参数中接受 URL。要使用 SSL,请使用 `ldaps://host/` 作为 URL。(Stig Venaas)
  • 使资源类型名称可见,例如 `var_dump()` 和 `get_resource_type()` 函数会为文件资源显示 "file"。(Andrei)
  • 添加了 `curl_getinfo()` 函数,用于查找有关 CURL 传输的信息。此函数需要 cURL 7.4.0 或更高版本。(Sterling)
  • 添加了 CURLOPT_KRB4、CURLOPT_INTERFACE、CURLOPT_QUOTE、CURLOPT_POSTQUOTE、CURLOPT_QUOTE 和 CURLOPT_HTTPPROXYTUNNELL 选项。(Sterling)
  • 将 `shm_*` 函数重命名为 `shmop_*`。(Derick)
  • 将 ext/mysql/libmysql 更新到 3.23 版本 ([email protected])
  • 添加了 `ldap_get_option()` 和 `ldap_set_option()` 函数。(Stig Venaas)
  • 修复了 CGI 模式下未提供文件时的崩溃错误。(Daniel Beulshausen & Zeev)
  • 修复了 `imap_fetchstructure()` 函数中可能的崩溃错误。(Jani)
  • 修复了 `imap_open()` 函数中可能的崩溃错误。(Jani & Mark Musone)
  • 添加了 `url_rewriter.tags` 配置指令。(Sascha)
  • 添加了 CORBA 客户端扩展,可以使用。([email protected])
  • 修复了 x-httpd-source 模式下的内存泄漏。(Jason Greene)
  • 更改 ext/gd 扩展,使其默认不启用。(Jani)
  • 使空字符串 ("") 的增量行为与 PHP 3 中相同,结果为 "1" (Andi, Zend 引擎)
  • 添加了对 Adobe FDF 格式的 POST 处理程序。(Hartmut)
  • 在基于 glibc 的系统上,使用 'zlib:' `fopen` 包装器添加了透明读取和写入 .gz 文件的功能。(Hartmut)
  • 修复了配置解析器中的一个问题(为每个封装的 TC_STRING 添加了两个空字节)([email protected])
  • 在 mhash 模块中添加了 HMAC 支持。([email protected])
  • 添加了 Ovrimos sql 服务器模块。([email protected])
更多关于此版本的详细信息,请访问 我们的发行页面

4.0.3 版本

  • 修复了 -a 交互模式中可能的崩溃错误。(Zeev, Zend 引擎)
  • 添加了 `mysql_escape_string()` 函数。(Peter A. Savitch and & Brian Wang)
  • 修复了 `printf()` 函数族的不正确使用导致的许多可能的崩溃错误。(Andi)
  • 修复了一个允许用户覆盖 `admin_value` 和 `admin_flag` 的问题。(Zeev)
  • 修复了省略链接句柄时 PostgreSQL 模块的工作问题。(Zeev)
  • 修复了 OCI8 中返回空 LOB 字段的问题。(Thies)
  • 为默认的 Win32 版本添加了日历模块。(Andi)
  • 为默认的 Win32 版本添加了 FTP 模块。(Andi)
  • 修复了 POSIX `getrlimit()` 函数中的崩溃错误。([email protected])
  • 修复了某些条件下的 `dirname()` 函数。(Andi)
  • 添加了 `--with-imap-ssl` 选项,以支持 RH7 等系统中的 SSL 加密 imap 库。(Rasmus)
  • 修复了 `parse_url()` 函数中可能的崩溃错误。(Andi)
  • 添加了对 Win32 系统下 trans sid 的支持。(Daniel)
  • 在 `fopen` 函数中添加了 IPv6 支持。(Stig Venaas)
  • 添加了 shmop 扩展。它允许更通用的共享内存访问方式。(感谢 Ilia Alshanestky <[email protected]> 和 Slava Poliakov <[email protected]> (Derick)
  • 添加了 `CURLOPT_POSTFIELDS` 选项,使其能够接受 HTTP POST 变量和值的关联数组。(Sterling)
  • 为 `curl_setopt()` 函数添加了 `CURLOPT_HTTPHEADER` 选项。(Sterling)
  • 添加了 `curl_error()` 和 `curl_errno()` 函数。(Sterling)
  • 更改 ext/db 扩展,使其默认不启用。(Jani)
  • 修复了在 SCO UnixWare 上构建 Apache SAPI 模块的问题。(Sascha)
  • 修复了将空 session 集写入共享内存的问题。([email protected])
  • 添加了对 BSD/OS make 的支持。(Sascha)
  • 添加了改进的 URL 重写器。(Sascha)
  • 修复了在 Solaris 上使用 `readdir_r()` 函数的问题。(Sascha)
  • 改进了私有缓存的 HTTP 头。([email protected], Sascha)
  • 添加了新的函数 `session_cache_limiter`。([email protected], Sascha)
  • 为 ftp 函数添加了 `ftp_exec` 函数。(感谢 <[email protected]>)(Derick)
  • PEAR:在数据库错误中添加最后执行的查询作为调试信息。(Stig)
  • PEAR:允许 PEAR_Error 中使用多种模式。(Stig)
  • 使 Sybase CT 模块支持线程安全。(Zeev)
  • 为 `array_reverse()` 函数添加了第二个参数,用于指示是否应保留原始数组的键。(Andrei)
  • 清理了 `htmlspecialchars`/`htmlentities` 函数的不一致之处。(Rasmus)
  • PEAR:将 DB_GETMODE_* 重命名为 DB_FETCHMODE_*,在 DB_common 中添加了 `setFetchMode()` 函数以设置默认模式,添加了一些 MySQL 测试。(Stig)
  • 使 `eval()` 函数和几个其他运行时求值代码部分更准确地报告错误的性质和位置。(Stas)
  • 为 `wordwrap()` 函数添加了一个可选参数,如果单词长度超过最大允许长度,则会截断字符串。(Derick)
  • 添加了 `pg_put_line` 和 `pg_end_copy` 函数。(Dirk Elmendorf)
  • 为 `parse_str` 函数添加了第二个参数以保存结果。(John Bafford)
  • 修复了 curl 在输出中添加额外数据的错误。([email protected])
  • 添加了 `pathinfo()` 函数。(Sterling)
  • 更新了 sybase_ct 模块及其 `sybase_query` 函数以使用高性能 API。(Joey)
  • 为数据库添加了更可配置的错误报告接口。(Stig)
  • 添加了 `is_uploaded_file()` 和 `move_uploaded_file()` 函数。(Zeev)
  • 添加了几个 php.ini 指令 - post_max_size, file_uploads, display_startup_errors - 详情请参考 php.ini-dist (Zeev)
  • 解决了 libc5 实现的 readdir() 函数中的一个 bug (Stas)
  • 修复了打开文件时一些潜在的 OpenBSD 和 NetBSD 崩溃错误。(Andi)
  • 添加了 EscapeShellArg() 函数 (Rasmus)
  • 添加了 php.ini 选项 session.use_trans_sid 用于启用/禁用 trans-sid。(Sterling)
  • 添加了用于 XSL 解析的 Sablotron 扩展。(Sterling)
  • 修复了 checkdate() 函数中的一个 bug,该 bug 导致小于 1 年的数值也被认为有效 (Jani)
  • 添加了对输出缓冲的可选输出处理函数的支持。这使得能够透明地通过 XSL 呈现 XML、透明压缩等。(Zeev)
  • 添加了对用户定义的“tick”回调函数的支持。这有助于模拟后台处理。(Andrei)
  • 修复了将 $this 作为 XML 解析器对象的问题。(Andrei)
  • 内部变量 opened_path 现在使用 Zend 内存管理器,以便在不干净的关闭时不会泄漏文件的完整路径 (Andi)
  • 移除了自动调用 __string_value() 方法的 print $obj 支持。请自行定义一个方法,例如 toString(),并使用 print $obj->toString() (Andi, Zend Engine)
更多关于此版本的相关信息请访问 我们的发行页面

版本 4.0.2

  • 添加了用于 Zend tick 的 PHP API。(Stig)
  • PHP 3 回归测试框架重生 (Stig)
  • 添加了 php_uname() 函数 (Stig)
  • 进行了一项小的改动,允许使用 OpenLDAP 2.0 编译 (Stig Venaas)
  • 修复了 preg_replace() 中的一个 bug,该 bug 会在第一个参数为空数组时截断主题字符串。(Andrei)
  • 添加了 ob_get_length 函数 (Stig)
  • 修复了一个 bug,该 bug 在使用 /e 修饰符时没有遵守 preg_replace() 中的 limit 参数。(Andrei)
  • 添加了每个 xml_set_*_handler() 函数的能力,使其能够接受 array($obj, 'method') 语法作为处理程序参数,以及正常的函数名。(Andrei)
  • 更新了 array_walk(),使其能够接受 array($obj, 'method') 语法作为遍历函数。(Andrei)
  • 修复了使用负长度参数调用 fgets()、fgetcsv()、fgetss() 和 fread() 时发生的段错误。(Torben)
  • 修复了 xml_ 函数和 scanf 函数的按引用参数传递问题 (Stas)
  • 添加了实验性的 Oracle LDAP SDK 支持。需要 8.1.6 或更高版本。使用类似 --with-ldap=/usr/local/oracle/product/8.1.6 的命令进行配置 (Stig Venaas)
  • 修复了 eval() 中的内存泄漏;大量使用 eval() 的脚本最终可能会在执行期间消耗大量内存 (Zeev, Zend Engine)
  • 修复了 memory_limit 功能,该功能在之前的版本中无法正常工作 (Zeev, Zend Engine)
  • 修复了 swf 扩展中的 stdout 支持。(Sterling)
  • 修复了 ip2long 和 long2ip 的字节序问题 (Stas)
  • 修复了 dbase_add_record。(Sterling)
  • 添加了对 libmcrypt 2.4.4 的支持 (Derick)
  • 添加了 strncasecmp 函数 (Andi, Zend Engine)
  • 修复了 FTP 模块以接受多行服务器回复 (Jani)
  • 修复了只有一个默认规则的 switch 语句。(Andi, Zend Engine)
  • 修复了嵌套 foreach() 的问题。(Andi, Zend Engine)
  • CCVS 模块现在稳定并且可以编译。它可以作为 CGI 编译,也可以干净地编译到 Apache 中而不会出现警告。(Brendan W. McAdams)
  • 修复了 mSQL_close()。([email protected])
  • 使 require() 文件中的 return() 函数的行为类似于 include() 文件中的 return() 函数 (Andi & Zeev, Zend Engine)
  • 更改了 require_once() 函数,使其使用与 include_once() 函数相同的表 (Andi & Zeev, Zend Engine)
  • 修复了省略链接句柄时 PostgreSQL 模块的工作问题。(Zeev)
  • 修复了 Sybase 模块与 PHP 4.0 协同工作的问题 (Zeev)
  • 修复了在使用可变宽度字符集时 OCI8 驱动程序中的 CLOB 处理问题。(Thies)
  • 向 sybase_[p]connect 添加了第四个可选参数,用于指定连接的字符集 ([email protected])
  • 修复了对当前 thttpd 版本的支持。(Sascha)
  • 添加了使用 --with-kerberos 的 Kerberized IMAP 库支持 (Rasmus, Sascha)
  • 虚拟化 realpath、chmod、chown 和 utime (Stas)
  • 支持文件上传 MIME 部分中的 content-encoding 头 (Ragnar Kjørstad)
  • 修复了关闭 OCINLogon() 连接时的警告。(Thies)
  • 修复了 Win32 上会话变量中 \n 的 bug (Stas)
  • OCIError() 有时无法报告连接失败。(Thies)
  • 修复了 Apache ErrorDocument 重定向中的 HEAD 请求错误,并在重定向过程中保留状态代码。(Rasmus)
  • 添加了 Olympus 特定的标签到 read_exif_data() (Rasmus)
  • 修复了 imap_fetchheader() 中的一个 bug,该 bug 在使用 FT_PREFETCHTEXT 时不返回正文。Bug #4447。(Jani)
  • 修复了 exec() 在输出为空时返回 "\0" 的问题
  • 在 PEAR 中添加了 XML_Parser 类 (Stig)
  • 在 pear/ 中添加了“make test”目标,并添加了一些回归测试 (Stig)
  • 修复了 strip_tags 函数中的 bug,如 bug #5857 所述 (Rasmus)
  • 修复了某些 JPEG 文件通过 GetImageInfo() 读取 IPTC 的问题。(Thies)
  • 改进了输出缓冲函数,使其可重入 (Zeev)
  • 使 ldap_add()、ldap_modify()、ldap_mod_add()、ldap_mod_replace() 成为二进制安全的。原始补丁:Terrence Miao <[email protected]> (Jani)
  • CGI 即命令行版本现在有一个“-l”选项,用于在不执行的情况下进行语法检查 (Hartmut)
  • 修复了 ldap_get_values_len() 中的一个 bug,使其成为 NULL 安全的。(Jani)
  • Michel Alexeline <[email protected]> 提交的错误报告和修复
  • 使 ext_skel 创建一个 Makefile.in,该文件设置为自动处理共享扩展支持 (Rasmus)
  • 修复了 php_realpath,使其不会在不存在的文件上终止 (touch() 需要)(Stas 和 [email protected])
  • 修复了 get_browser() 函数 (Stas)
  • 修复了导致 OpenBSD 上出现 DSO 问题的符号冲突 (Rob Black 和 [email protected])
  • 添加了新函数:ldap_compare()。(Jani)
  • 修复了 ldap_get_entries() 和 ldap_get_attributes() 中的一个 bug。(Jani)
  • 将 DB 移植到 PEAR 中新的错误报告方案。(Stig)
  • 在 PEAR 中添加了 sybase 和 ibase 数据库后端。(Sterling)
  • 新的 PEAR 包 Payment_Verisign 用于与 Payflow Pro (pfpro) 扩展一起使用。(David Croft)
  • 添加了 CURL 支持。(Sterling)
  • 捕获用户尝试在 PDF 中设置“compatibility”参数的情况,该参数不受用户端支持。(Joey)
  • 修复了 dbase_add_record。(Sterling)
  • 添加了新函数 wordwrap(),用于将长字符串换行,来自 Chris Russel <[email protected]> (David Croft)
  • 添加了四个附加参数:attrsonly、sizelimit、timelimit、deref,这些参数在 ldap_search()、ldap_list() 和 ldap_read() 函数中缺失 (Jani)
  • 修复了 ldap_search/list/read() 中的一个 bug,该 bug 阻止了在发生“Sizelimit exceeded”错误时返回部分结果。(Jani Taskinen)
  • 修复了 preg_replace(),使其在使用 /e 修饰符时自动转义匹配字符串中的引号。(Andrei)
  • Itanium 补丁 (Steve Robb)
  • 设置默认 include_path,以便可以访问 PEAR 文件 (Stig)
  • 添加了“pear”可执行文件,需要安装 CGI 版本 (Stig)
  • 添加了 ii 扩展,用于 Ingres II 原生支持。请参阅 ext/ingres_ii 目录中的 README。(David H)
  • 为 Interbase 模块添加了 Win32 项目 (Zeev)
  • 添加了在不显式指定其名称的情况下调用父类的方法的能力,使用 parent::func_name(...) (Zeev, Zend Engine)
  • 现在可以不带参数调用 Ora_Error() 来获取连接尝试失败的原因。(Kirill Maximov)
  • 新的扩展“pfpro”,用于与 Verisign Payflow Pro 接口 (David Croft)
  • 添加了 IMG_GIF、IMG_JPG、IMG_JPEG、IMG_PNG 和 IMG_WBMP 常量用于 imagetypes() 函数 (Rasmus)
  • 添加了 ImageTypes() 函数,该函数返回一个包含支持的图像格式的位字段。1=gif,2=jpeg,4=png 和 8=wbmp (Rasmus)
  • 允许在 number_format() 中指定空字符串作为千位分隔符 (Rasmus)
  • LDAP 扩展的共享模块支持 (Troels Arvin)
  • 修复了 imap_mail 中的一个 bug,该 bug 会在指定 rpath 参数时导致 apache 出现段错误。
  • 在 Cookie 中使用短划线和简短的星期几名称,因为某些浏览器对此似乎很挑剔 (Rasmus)
  • 添加了 pspell 模块。(Vlad)
  • 向用户定义的错误处理程序添加了 3 个附加参数 - 发生错误的文件名和行号,以及发生错误的代码的上下文(局部变量)(Zeev, Zend Engine)
  • 改进了错误处理代码,以处理用户定义的错误处理函数中的错误 (Zeev, Zend Engine)
  • 修复了在 array() 构造中使用字符串偏移量时的泄漏问题。(Andi, Zend Engine)
  • 修复了更改对象中深度嵌套的值时可能出现的损坏问题。(Andi & Zeev, Zend Engine)
  • 改进了 array_multisort(),使其能够指定排序类型以及排序顺序。顺便说一句,它也可以用来对多维数组进行排序。(Andrei)
  • 修复了在大量中止请求的情况下可能出现的数据损坏问题 (Zeev)
  • Apache 模块有时会关闭错误的文件描述符。(Sascha)
  • 修复了会话模块中使用替代存储处理程序的问题。(Sascha)
  • 更新了 str_pad(),使其能够在左侧/右侧/两侧进行填充。(Andrei)
  • 修复了 gzopen() 中的崩溃问题。(Thies)
  • gdttf.c 中的多字符集支持 (Rob Goodwin)
  • 当从 PHP 使用 HTTP 身份验证时,填写 %u 自定义日志字段,以便在 Apache access_log 中记录已验证的用户 ID (Rasmus)
  • 支持 pdflib 3.01。(Uwe)
  • FDF 数据得到正确处理,可以通过读取 HTTP_RAW_POST_DATA 来访问。(Uwe)
  • 添加了新的“O”格式修饰符,它将输出 GMT 偏移量为“[+-]HHMM”(例如:太平洋时间为 -0700)。这对于 Date: 邮件头等非常有用。(Mike W)
  • 修复了 OCI?Logon() 失败时的崩溃问题。(Thies)
  • 使特殊的 Header("http/...") 响应像 3.0 版本一样不区分大小写 (Rasmus)
  • 允许 cybercash 作为 DL 模块编译。(Sterling)
  • 修复了 dbase_create 函数。(Sterling)
  • 修复了某些 Windows 版本下可能出现的问题,如果发生错误(例如在 php.ini 文件中),可能会导致 PHP 在启动时挂起 (Zeev)
  • 再次修复了 opendir()。它现在应该可以连续很好地工作了 (Zeev)
  • 添加了三个附加参数发送给用户定义的错误处理程序 - 发生错误的文件名和行号,以及错误的上下文(局部变量)(Zeev, Zend Engine)
  • 改进了错误处理代码,以处理用户定义的错误处理函数中的错误 (Zeev, Zend Engine)
  • 向 preg_replace() 添加了一个可选参数,可用于指定要进行多少次替换。(Andrei)
更多关于此版本的相关信息请访问 我们的发行页面

版本 4.0.1

  • 修复了 LDAP 修改代码中可能的崩溃问题。(Eric Kilfoil)
  • 修复了 opendir() 中的一个 bug,该 bug 阻止了如果未显式指定 $dir 参数则 readdir() 无法正常工作 (Zeev)
  • 使 --enable-discard-path 再次工作。(Andi)
  • 移除了 file() 函数 8KB 的行长限制 (Zeev)
  • 在 PHP 用作多线程 Web 服务器内的模块时禁用 dl() - 它以前不起作用,并导致奇怪的结果 (Zeev)
  • 添加了 ImageColorClosestHWB()、ImageCopyMerge() 和 ImagePaletteCopy() 函数。(Sterling)
  • 添加了 ImageCreateFromWBMP() 函数。(Jouni)
  • 修复了 NSAPI 模块下 POST 请求的问题。(Roberto Biancardi)
  • 添加了 spliti() 函数。(Thies)
  • 修复了序列化程序在序列化其类定义在反序列化上下文中不可用的对象时的行为。(Sascha)
  • 改进内存缓存性能并增加缓存大小。(Stas, Zend Engine)
  • 添加了 crc32 校验和函数 - 用于 UdmSearch 搜索引擎,目前通过系统调用运行。这将大大加快 UdmSearch php 前端的运行速度。(Rasmus)
  • 修改了 in_array() 函数,使其不再修改数组指针。(Andrei)
  • 添加了 restore_error_handler() 函数。(Zeev,Zend 引擎)
  • 修复了 PHP 多线程版本(尤其是在 Win32 系统下)错误情况下文件名和行号错误的问题。(Zeev,Zend 引擎)
  • 修复了 CGI 在某些服务器(特别是 Windows Apache 和 O'Reilly 网站)上崩溃的问题。(Andi)
  • 添加了 Pi3Web SAPI 模块;运行 `./configure --with-pi3web` 来启用此模块。(Holger; [email protected]
  • 增强了 WDDX 函数,使其在处理对象时调用 __sleep() 和 __wakeup() 方法。(Andrei)
  • 更改了 WDDX 函数,使其仅在必要时才将数组序列化为结构体。(Thies)
  • 在 Win32 系统下实现了 max_execution_time。(Zeev)
  • 更新了 strtotime() 函数,使其支持更多格式。现在其功能与 GNU date 命令完全兼容。(Andrei)
  • 添加了对 unset() 函数中使用多个参数的支持。(Faisal,Zend 引擎)
  • 那些期望资源但传入其他类型的函数现在返回 NULL 而不是 FALSE。(Thies,Zend 引擎)
  • 修复了 gmmktime() 函数,在某些系统上它会错误地调整时区偏移量和夏令时。(Andrei)
  • 将 VC++ Win32 项目和工作区文件移动到 win32 目录。(Zeev)
  • 修复了 checkdate() 函数,使其不再对非数字参数返回 true。(Rasmus)
  • 为支持新 C9x 标准的编译器添加了 `--enable-c9x-inline` 选项。如果您遇到对 i_zend_is_true 和其他符号的未定义引用,则应启用此选项。(Sascha,Zend 库)
  • 修复了 ldap_add() 和 ldap_modify() 函数中的一个问题,有时会向值添加尾随垃圾数据。(Stig Venaas)
  • 修复了 dbmopen() 函数在处理 dbm/db/ndbm 数据库的 'c' 模式时出现的问题。(JimJag)
  • 修复了 number_format() 函数在使用区域设置时崩溃的问题。(Andrei)
  • 修复了 MS-SQL 模块中的一个初始化问题,该问题可能导致 mssql_query() 函数崩溃。(Zeev)
  • 将 PCRE 升级到 3.2 版本,并修复了锚定模式匹配空字符串时的错误。(Andrei)
  • 修复了一个错误,该错误阻止 PHP 注意从 php.ini 文件加载的扩展的 extension_dir 指令。(Zeev)
  • 更改了 set_error_handler() 函数,使其返回先前定义的错误处理程序的名称(如果存在)。(Zeev,Zend 引擎)
  • 正式弃用 `` 指令。它在 PHP 4.0.0 中也不起作用,现在已彻底移除。(Zeev)
  • 使 convert_cyr_string() 函数支持二进制安全,并防止其破坏其他 PHP 变量。(Andi)
  • 添加了 array_unique、array_intersect 和 array_diff 函数。(Stig Venaas)
  • 修复了在与字符串比较时使用未初始化值的问题。它们的行为再次与 PHP 3 中一样,被视为空字符串。(Andi & Zeev,Zend 引擎)
  • 修复了 date() 函数中 'Z' 标志调整夏令时的问题。(Andrei)
  • 修复了 var_dump() 函数修改数组元素内部顺序的问题。(Zeev)
  • 修复了 stripcslashes() 函数,使其移除未知转义符中的反斜杠 \,而不是保留它。(Andrei)
  • 更改了 WDDX 函数,使其始终将数组序列化为结构体。(Andrei)
  • 修复了 include_once() 函数,使其在找不到提供的文件名时发出警告。(Zeev,Zend 引擎)
  • 修复了 get_declared_classes() 函数中的一个错误,该错误可能在某些情况下多次返回相同的类。(Zeev,Zend 引擎)
  • 修复了 rawurldecode() 函数中的一个错误,该错误会导致 rawurldecode() 函数破坏其参数。(Zeev)
  • 在 Windows 系统下,php.ini 文件中的解析错误(或其他错误)将不再弄乱 CGI 模式的 HTTP 头,现在会显示在消息框中。(Zeev)
  • 修复了 OCIFetchStatement() 函数在尝试读取所有数据都已读取后读取数据时崩溃的问题。(Thies)
  • fopen_wrappers() 现在可以通过模块扩展。(Hartmut Holzgraefe)
  • 使 trim 函数去除 \0 字符,以匹配 php 3 的行为。(Rasmus)
  • 添加了 imagecreatefromxbm() 函数。(Jouni)
  • 添加了 imagewbmp() 函数。(Jouni,基于 Rune Nordbøe Skillingstad 的补丁)
  • 添加了 str_pad() 函数,用于在字符串左侧或右侧填充任意字符串。(Andrei)
  • 使 short_tags、asp_tags 和 allow_call_time_pass_reference INI 指令也支持每个目录的基础上工作,例如来自 .htaccess 文件。(Zeev)
  • 添加了 fflush() 函数。(Eric Huss)
  • 修复了包含数组值静态变量、默认函数参数和类成员变量的问题。(Andi & Zeev,Zend 引擎)
  • 修复了在使用输出缓冲时 virtual() 函数的问题。(Marc Pohl)
  • 清理了 flock() 函数中的常量,并添加了可选的第三个参数,在 EWOULDBLOCK 时设置为 true。(Rasmus)
  • 添加了 pg_loimport() 和 pg_loexport() 函数。(Jouni)
  • 为 getimagesize() 函数添加了 SWF 支持。(Derick Rethans)
  • 添加了对文件上传的索引数组和非索引数组的支持,例如 name="file[]" type="file"。(Rasmus)
  • 添加了 create_function() 函数,该函数允许动态创建函数。(Zeev,Zend 引擎)
  • 添加了对数组(与数组)和对象(与对象)的比较支持;相等运算符(==)执行无序比较,而恒等运算符(===)执行有序比较。(Zeev,Zend 引擎)
  • 允许所有接收用户定义函数回调的函数接受一个包含对象和方法名的数组,以代替函数名,例如 usort($array, array($obj, "ObjSort"))。(Zeev,Zend 引擎)
  • 添加了 set_error_handler() 函数,允许使用自定义错误处理函数,而不是内置的错误处理代码。(Zeev,Zend 引擎)
  • 将 user_error() 函数重命名为 trigger_error();user_error() 函数保留用于兼容性。(Zeev,Zend 引擎)
  • 修正了 global/static 语句,要求尾随分号 ';'。(Andi,Zend 引擎)
  • 清理了 PCRE 扩展并使其支持二进制安全。(Andrei)
  • 向 in_array() 函数添加了第三个参数。如果为真,则 in_array() 函数将使用严格比较而不是默认比较。(Andrei)
  • 添加了 pg_trace() 和 pg_untrace 函数。(Dominic J. Eidson & Zeev)
  • ignore_user_abort=Off 现在是默认值。(Thies)
  • 添加了 array_merge_recursive() 函数,它将递归地合并具有相同键的值。(Andrei)
  • 修复了在解析无效 SQL 时 OCIParse 函数崩溃的问题。(Thies)
  • 修复了 mysql_connect() 函数中的一个错误,该错误导致它在非持久连接的情况下忽略 socket 参数。(Zeev)
  • 添加了 disable_functions php.ini 指令,允许管理员出于安全原因禁用某些函数。(Zeev)
  • 修复了 Win32 系统上的会话问题。在 save_path 中设置目录深度参数时,现在需要使用 ';' 而不是 ':' 来分隔它,例如 "5;/tmp" 而不是 "5:/tmp"。(Andi)
  • 当找不到请求的 PHP 文件时,将 Apache 处理程序的返回状态更改为 'Declined'。返回 'Not Found' 会导致 ErrorDocument 处理程序阶段出现问题,因为 $REDIRECT_REDIRECT_ERROR_NOTES 完全没有设置。更改为 'Declined' 应该可以解决这个问题,而且我看不出有任何其他副作用。(Rasmus)
  • 修复了在国际化环境中扫描十进制数字的问题。它们应该始终采用标准的美国格式,例如 23.3。(Andi,Zend 引擎)
  • 向 preg_quote() 函数添加了第二个参数,允许引用一个额外的字符,通常是正则表达式分隔符。(Andrei)
  • 在关闭连接之前,现在会回滚未提交的 OCI8 事务。(Thies)
  • ignore_user_abort() 及相关函数现在也应该在 CGI 模式下工作。(由 [email protected] 提供的补丁)
  • 添加了 YAZ 扩展。(dickmeiss)
  • 修复了由某些类重新声明情况触发的崩溃错误。(Stas & Zeev,Zend 引擎)
  • 修复了 min()/max() 函数的段错误。(Andrei)
  • 用于从 JPEG 文件读取 EXIF 头部数据的新模块。大多数数码相机都会将其生成的 jpeg 图片中嵌入各种关于图片的信息。(Rasmus)
  • 修复了 basename() 函数中的错误,其中 "file.ext///" 不会返回与 "/path/file.ext///" 相同的结果。(Rasmus)
  • 添加了 swf_ortho 函数。(Sterling)
  • 迁移到虚拟当前工作目录支持。这极大地提高了 PHP 多线程版本的功能和稳定性。(Andi,Sascha)
有关此版本的更多信息,请访问 我们的发行说明页面

4.0.0 版本发布

  • 允许将 flash 文件写入标准输出。
  • 修复了 .phps 语法高亮文件中崩溃的错误。(Andi)
  • 改进了 round() 函数,允许指定舍入精度。(Andrei,Todd Kirby <[email protected]>)
  • 添加了 SORT_REGULAR、SORT_NUMERIC、SORT_STRING 标志,可与非用户排序函数一起使用,以实现精确的排序行为。(Andrei)
  • 修复了两个 64 位问题(启动崩溃、gethostbyaddr)。(Sascha)
  • NULL 值现在保留在 mysql_fetch_array() 和 mysql_fetch_object() 函数的返回值中。(Andrei)
  • 最终将 InterBase 模块从 PHP 3 移植到 PHP 4。完全支持 InterBase 6。(Jouni)
  • 为 SWF 函数添加了 swf_definepoly 函数,用于绘制多边形。(Sterling)
  • 将 imagegammacorrect 函数从 PHP3 移植到 PHP4。(Sterling)
  • 添加了 array_rand() 函数。(Andrei)
有关此版本的更多信息,请访问 我们的发行说明页面

4.0 版本,候选发布版 2

  • NSAPI WIN32 模块可编译,未测试(Shane)
  • Apache WIN32 模块可编译并进行了轻度测试。(Shane)
  • 在 php.ini-dist 中默认启用 assert() 函数。(Andrei)
  • 如果 assert() 函数和使用 /e 修饰符的 preg_replace() 函数中的动态代码评估失败,则添加了安全措施。(Andrei)
  • 修复了在 WDDX 中序列化 $GLOBALS[] 时无限递归的问题。(Andrei)
  • 使 WDDX 序列化正确转义 <、> 和 &。还总体上加快了序列化速度。(Andrei)
  • 为了清晰起见,将 install-local 重命名为 install-sapi。(Joey)
  • 改进了扩展构建框架。请参阅 README.SELF-CONTAINED-EXTENSIONS 以了解介绍。(Sascha)
  • ImagePolygon() 函数不再受最大多边形数量的限制。(Marc Pohl)
  • 添加了配置时间检查 bcmath 包。(Joey,Sascha)
  • 添加了 get_declared_classes() 函数。(Andrei,Zend 引擎)
  • 添加了来自 Jayakumar Muthukumarasamy 的初始 NSAPI 模块。(Rasmus)
  • 添加了 SWF 模块,允许您通过 libswf 创建 Macromedia Flash 文件。(Sterling)
  • 改进了 UNIX 构建系统以支持更多厂商的 make 工具。(Sascha)
  • 更新了由 Martin Pool <[email protected]> 编写的自然比较/排序算法。(Andrei)
  • 修复了 array_multisort() 函数在传递空数组时发生的崩溃问题。(Andrei)
  • 添加了 Peter Kovacs 编写的 substr_count() 函数。(Andrei)
  • 向 fseek 函数添加了可选的第三个参数,用于指示从何处查找。(Andrei)
  • OCIBindByName() 函数将不再抱怨 bindlength 为零。(Thies)
  • 将 IMAP 模块转换为高性能 API。(Zeev)
  • fgetcsv() 函数现在处理带引号字段中嵌入的换行符。(Nick Talbott)
  • 添加了 user_error() 函数,允许从脚本中显式生成错误消息。(Zeev,Zend 引擎)
  • 修复了 long2ip() 函数中偶尔返回错误 IP 地址的问题。(Evan,Andrei)
  • 修复了 IMAP 模块中的许多内存泄漏。(Stas,Andi,Zeev)
  • 修复了 number_format 函数中的错误。(Jon Forsberg)
  • 使 error_prepend_string 和 error_append_string 函数工作。(Rasmus)
  • array_walk() 函数现在会自动重置数组。(Andrei)
  • 添加了自然比较/排序例程 strnatcmp()、strnatcasecmp()、natsort() 和 natcasesort()。这些例程对于比较和排序包含数字的字符串非常有用。基于 Martin Pool <[email protected]> 的代码。有关自然排序的更多信息,请参阅 http://www.linuxcare.com.au/projects/natsort/。(Andrei)
  • Zeus Web 服务器支持 (3.3.6+ 版本) 的 ISAPI。(Ben Mansell)
  • 修复了Apache下PATH_TRANSLATED和PHP_SELF的几个问题 (Paul Gregg & Zeev)
  • 将ldap_get_values_len()函数从PHP3移植到PHP4。(Sterling)
  • 修复了include_once()在非常量参数情况下出现的问题 (Andi & Zeev, Zend Engine)
  • 添加了php.ini-optimized (Zeev)
  • 将ldap_errno(),ldap_err2str()和ldap_error()从PHP3移植到PHP4。(Sterling)
  • WDDX现在默认使用ISO-8859-1。(Thies)
  • 修复了IMAP错误处理导致的崩溃 (Stas)
  • 添加了$HTTP_POST_FILES[filename][tmp_name] - 之前无法使用$HTTP_POST_FILES[]检索上传文件的临时名称 (Zeev)
  • 使IMAP和LDAP模块可在Windows下编译并支持线程安全 (Zeev)
  • 修复了CGI模式下处理大型POST块时出现的问题 (Zeev)
  • 添加了session_get_cookie_params()函数。(Sterling)
  • 修复了stristr()的返回值不再始终小写。(Andrei)
  • 更改了PHP的Windows版本,使其不再强制要求php.ini文件 (Zeev)
  • 如果无法发送头信息,session_start()现在会提供更详细的提示。(Thies)
  • 修复了在字符串上使用赋值运算符位运算符时出现的内存泄漏 (Zeev, Zend Engine)
  • 添加了对读取COM模块中需要参数的属性的支持 - 对它们的写入操作将在PHP 4.1中支持 (Zeev)
  • 修复了COM模块中一个非常古老的遗留内存泄漏 (Zeev)
  • 修复了对象重载支持方面的问题 - 特别是COM和Java (Zeev, Zend Engine)
  • 修复了WDDX中的越界错误。(Thies)
  • 修复了通过dl()加载的模块没有正确释放其资源导致的崩溃错误 (Zeev, Zend Engine)
  • 添加了localtime()函数。(Sterling)
  • 为date函数添加了“I”格式选项,此选项将根据夏令时是否有效返回true或false。(Sterling)
  • 添加了gmstrftime()函数。(Sterling)
  • snmp_walkoid现在是snmp_realwalk的别名。(Sterling)
  • 修复了在大型包含文件中使用“global”时可能导致崩溃的错误 (Stas, Zend Engine)
  • 添加了--enable-libgcc开关以强制链接到libgcc (Sascha)
  • 修复了extension_dir没有尾部斜杠时的动态加载问题 (Sascha)
  • 修复了OpenBSD上的动态加载问题 (Sascha)
  • 改进了POSIX线程检查。ZTS现在至少在Linux,Solaris,FreeBSD和OpenBSD上工作 (Sascha, TSRM)
  • 添加了!==运算符的支持。(Torben, Zend Engine)

4.0版,候选版本1

  • 添加了对UCD-SNMP 4.1.x的支持 (Sascha)
  • 修复了mysql_result()在table.fieldname模式下使用时出现的数据损坏错误 (Zeev)
  • 修复了func_num_args(),func_get_arg()和func_get_args()作为函数参数使用时出现的崩溃问题 (Andi, Zend Engine)
  • 添加了get_class_methods(string classname)函数。(Andrei)
  • 添加了“I”开关以测试DST是否处于活动状态。(Sterling)
  • 修复了mysql_result()在table.fieldname模式下使用时出现的数据损坏错误 (Zeev)
  • 修改了注册表INI条目读取器(Win32)以支持驱动器号。例如,如果您希望指定C:\foo\bar的INI条目,则应在注册表中创建HKLM\PHP\Per Directory Values\C\foo\bar,并为要在该目录中覆盖的每个指令添加字符串值 (Zeev)
  • 修复了EXTR_PREFIX_SAME和EXTR_SKIP情况下的extract()。(Andrei)
  • stristr()不再修改其参数。(Thies)
  • 不再默认为iso-8859-1,因为这会使某些浏览器混淆。(Rasmus)
  • 可以在mysql_[p]connect中同时指定端口和套接字。(Rasmus)
  • 添加了--disable-pic用于在支持它的平台(例如Linux)上禁用为共享对象生成PIC (Sascha)
  • serialize()/unserialize()现在在处理对象时调用__sleep()和__wakeup()。(Thies)
  • 将to_string()方法重命名为__string_value()以保持一致性。(Thies, Zend Engine)
  • 修复了define()的第三个参数中的错误
  • 添加了is_numeric(),如果参数是数字或数字字符串,则返回true。(Andrei)
  • domxml现在支持libxml 2.0 Beta并放弃对旧版本的支持,因为libxml发生了巨大的变化
  • 修复了如果序列化数据已损坏,unserialize()中可能发生的崩溃。(Thies)
  • 将$HTTP_STATE_VARS更改为$HTTP_SESSION_VARS。现在只使用后一个版本!(Andrei)
  • 添加了GD-JPEG支持 (Rasmus)
  • 防止加载与PHP的调试和线程安全模式不同的动态PHP模块,这会导致崩溃 (Andi)
  • connection_aborted()及其相关函数再次可用 (Thies)
  • 升级到libtool 1.3.4 (Sascha)
  • UNIX配置现在在构建目录中创建config.nice,这允许轻松重用配置选项 (Sascha)
  • 添加了对嵌入式MySQL客户端库的支持。除非您指定路径到--with-mysql,否则将使用捆绑的MySQL客户端库 (Sascha)
  • 添加了include_once()和require_once()功能 (Andi, Zend Engine)
  • 删除了对pdflib < 3.0的支持 (Uwe)
  • 如果关闭register_globals,则会自动注册$HTTP_SESSION_VARS[]中的所有内容。(Andrei)
  • 清理了扩展命名空间 (Stig)
  • OCINLogon()会话现在再次关闭。(Thies)
  • 添加了ip2long()和long2ip(),由Faisal Nasim <[email protected]>提供 (Andrei)
  • 添加了ftruncate()和fstat(),由Faisal Nasim <[email protected]>提供 (Andrei)
  • 添加了parse_ini_file()。目前在PHP的非线程安全版本中实现,并且目前缺少节支持 (Zeev)
  • 在Apache配置指令中,“none”现在等效于"" (Stig)
  • OCINLogon不再崩溃。(Thies)
  • 修复了(string)"nan"与(string)"nan"的比较。(Thies, Zend Engine)
  • 切换回旧的$HTTP_*_VARS[]行为 - $HTTP_GET_VARS["foo"]和$foo不再是彼此的引用,而是像PHP 4.0 Beta 4之前的版本一样是单独的变量 (Zeev)
  • 修复了Sybase-DB编译问题 (Zeev)
  • 修复了一个相当常见的情况,即在请求之间调用error_reporting()后,error_reporting值不会被正确恢复 (Zeev)
  • 各种$HTTP_*_VARS[]现在受到保护,无法通过用户输入进行操作 (Zeev)
  • 添加了ini_set()作为ini_alter()的别名 (Zeev)
  • 字符串None现在被php.ini处理器识别为关键字,可用于表示空字符串 (Zeev)
  • 添加了get_class_vars(string class_name)和get_object_vars(object obj)函数。(Andrei, Zend Engine)
  • 添加了pdf_set_parameter(),pdf_skew(),pdf_show_boxed() (Uwe)
  • 修复了(string)"inf"与(string)"inf"的比较,错误地返回false (Zeev)
  • 实现了default_charset和default_mimetype配置指令 (Stig)
  • 从PHP3移植了T1lib支持。(Jouni)
  • 修复了APXS的-DEAPI继承。(Sascha)
  • 修复了模块关闭时可能发生的崩溃。(Thies)
  • 修复了safe_mode_protected_env_vars INI指令 (Zeev)
  • 修复了getrusage() (Sascha)
  • 修复了从存储过程中返回游标时出现的OCI8崩溃。(Thies)

4.0版,Beta 4补丁级别1

  • 修复了关闭magic_quotes时发生的崩溃。(Thies)
  • 支持pdflib 2.30 (Uwe)

4.0版,Beta 4

  • 引入了$HTTP_POST_FILES[],其中包含通过HTTP上传上传的文件信息 (Zeev)
  • 使PHP可在Microsoft Personal Web Server下工作,可在Windows NT工作站和Windows 95下工作 (Zeev)
  • 使multipart/form-data内容遵守variables_order指令 (Zeev)
  • 更新了browscap模块以与PHP 4.0一起工作 (Zeev)
  • 在客户端过早按下STOP后,ISAPI可以优雅地恢复 (Andi)
  • 修复了在多次引用的数组偏移量上使用unset()的错误 (Andi, Zend Engine)
  • 改进了ISAPI模块 - 除非您希望使用PHP执行身份验证,否则不再需要将PHP设置为ISAPI过滤器,只需将其设置为ISAPI扩展即可。这还没有得到足够的测试,但它应该可以工作 (Zeev)
  • 修复了Windows下的RFC1867文件上传问题 (Zeev)
  • 初步支持pdflib 2.20 (Uwe)
  • 添加了对DB的PostgreSQL支持 (Rui Hirokawa <[email protected]>)
  • 重新引入了“none”以禁用auto_prepend/append_file (Stig)
  • 添加了DB/storage (Stig, PEAR)
  • 引入了DB警告 (Stig, PEAR)
  • 修复了strip_tags中的越界错误 (Stas)
  • 修复了strip_tags()和相关函数中的崩溃。(Thies)
  • 针对来自IE/Mac的虚假POST数据的工作区。(Thies) Alain Malek <[email protected]>提供的补丁
  • 完成了服务器抽象层;所有PHP代码现在都在不同的服务器(Apache、CGI、IIS等)之间共享,除了精简的接口模块 (Zeev)
  • 在gettype()中添加了NULL支持。(Thies)
  • base64_decode()将正确解码POST数据。(Thies) Turadg Aleahmad <[email protected]>提交的补丁
  • domxml做了更多工作。构建xml树,创建xml文档有效 (Uwe)
  • 使foreach()能够处理对象。(Thies, Zend Engine)
  • 添加了基于libxml的domxml扩展,功能仍然很少 (Uwe)
  • 修复了fgetss(),strip_tags()和gzgetss()中的内存损坏问题 (Zeev)
  • 更新了日历动态链接库以与PHP 4一起工作。(Evan)
  • 添加了strncmp()函数,由Walter提供。(Andrei)
  • 使var_dump()的输出更有信息量。(Thies)
  • 修复了一些OCIBindByName()问题。(Thies)
  • 保护ISAPI模块免受异常的影响。现在可以很好地检测和处理脚本中的堆栈溢出 (Zeev)
  • 修复了base64_decode中可能出现的缓冲区溢出。(Thies)
  • 修复了setcookie()中可能出现的缓冲区溢出。(Thies)
  • 修复了可能导致Apache主进程死亡的signal()错误。(Thies)
  • 添加了session_set_cookie_params()函数。(Andrei)
  • 如果在已经发送输出后发送头信息,警告消息现在将说明生成第一个输出的文件名和行号 (Zeev)
  • 感谢其作者James Clark,将XML Expat库添加到标准PHP源代码分发中 (Andi & Zeev)
  • 将XML支持添加到默认的Win32版本中 (Andi & Zeev)
  • 添加了socket_get_status()函数。将set_socket_timeout()重命名为socket_set_timeout(),将set_socket_blocking()重命名为socket_set_blocking()。(Andrei)
  • 添加了realpath()函数。(Andrei)
  • mktime现在将0-70范围内的年份解释为2000-2070。您可以继续指定完整的年份(即1920) (Sascha)
  • 添加了使用INI指令控制用户允许更改的环境变量的功能,用于安全模式 (Zeev)
  • 修复了在大型输入字符串上工作的strtr()中的崩溃错误 (Zeev)
  • Ora_GetColumn()/Ora_FetchInto()现在为NULL列返回NULL。(Thies)
  • OCI8现在支持绑定NULL值。模块清理。(Thies)
  • 添加了通过set_socket_timeout()函数在套接字读取操作上设置超时功能。(Andrei)
  • 添加了implicit_flush INI指令 (Zeev)
  • 添加了implicit_flush()以控制是否应在任何输出后隐式调用flush() (Zeev)
  • 修复了pfsockopen()中的崩溃问题 (Zeev)
  • 修复了phpinfo()中可能发生的崩溃问题 (Zeev)
  • 添加了register_argc_argv INI指令,以允许有选择地禁用$argv和$argc变量的声明,以提高性能 (Zeev)
  • 添加了$HTTP_ENV_VARS[]和$HTTP_SERVER_VARS[]支持,与$HTTP_GET_VARS[]类似,包含环境和服务器变量。将register_globals设置为Off现在也将阻止将环境和服务器变量注册到全局范围 (Zeev)
  • 将gpc_globals INI指令重命名为register_globals (Zeev)
  • 引入了variables_order,它弃用了gpc_order,并允许除了GET/POST/Cookies之外,还控制服务器和环境变量 (Zeev)
  • 新函数cpdf_set_document_limits() (Uwe)
  • 将安全模式补丁应用于popen()。(Kristian Köhntopp提供的补丁)
  • str_repeat()现在返回正确的长度。(Thies)
  • 不要假设GD检查已安装libz和libpng (Rasmus)
  • 根据WDDX 1.0版本实现了对<boolean>和<null>类型的支持 (Andrei)
  • 使var_dump()/serialize()/unserialize()能够识别NULL。(Thies)
  • 添加了新的NULL常量 (Zeev, Zend Engine)
  • 修复了独立CGI二进制文件中的-c支持 (Zeev)
  • 使用新的内存缓存将PHP的性能提高了5-15% (Andi & Zeev, Zend Engine)
  • 改进了 php.ini 读取器,使其支持常量和位运算符 (Zeev)
  • 修复了 strrev() 函数,使其不再修改 arg1 参数。(Thies)
  • 修复了 iptcembed() 函数中的缓冲区溢出。(Thies)
  • 修复了 ODBC 错误报告中的一个 bug。(Zeev)
  • 添加了 PHP_Logo_GUID() 和 Zend_Logo_GUID() 函数,用于返回 phpinfo() 中使用的 PHP 和 Zend 徽标的 GUID。(Zeev)
  • 添加了 GNU Pth 支持 (Sascha,TSRM 库)
  • 移除了 select(),fd_set() 和 fd_isset() 函数 - 将很快重新实现!(Thies)
  • 通过使用不同的互斥锁,显著提高了 Win32 的性能 (Zeev,TSRM 库)
  • 使 quotemeta() 和 preg_quote() 函数支持二进制安全。(Andrei)
  • 在 fsockopen() 函数中添加了 UDP 支持。(Evan)
  • 添加了 --disable-pear 选项 (Andrei)
  • 将 libzend 代码库重命名为 Zend (Zeev)
  • 添加了对 thttpd 的支持 (Sascha)
  • 添加了 session.cache_limiter 和 cache_expire 选项 (Sascha)
  • 恢复了 PHP_VERSION 和 PHP_OS 常量 (Zeev)
  • 添加了 get_loaded_extensions(),extension_loaded() 和 get_extension_funcs() 函数。(Andrei)
  • 在 PHP 错误日志文件中添加了日期/时间戳。(Andrei, Joey)
  • 添加了 is_subclass_of() 函数 (Andrei, Zend 引擎)
  • 实现了 count_chars() 函数。(Thies)
  • 添加了 class_exists() 函数 (Andrei, Zend 引擎)
  • 使 strspn() 和 strcspn() 函数支持二进制安全。(Andrei)
  • 添加了 array_multisort() 函数。(Andrei)
  • 使 pageinfo.c 文件支持线程安全 (Sascha)
  • 使 implode() 函数支持二进制安全 (Andrei)
  • 使 strstr(),stristr() 和 ucwords() 函数支持二进制安全。(Andrei)
  • 使 strtoupper(),strtolower(),substr_replace() 函数支持二进制安全。(Andrei)
  • 修复了 Apache 语法高亮模式中的崩溃问题。(Zeev)
  • 报告所有 ODBC 错误,而不仅仅是堆栈顶部的错误 (lurcher)
  • OCI8 现在可以正确返回 LONG 列中的 NULL 值。(Thies)
  • 添加了对类似 C 的 assert() 函数的支持。(Thies)
  • 添加了 CyberCash 支持。(Evan)
  • 使 explode() 函数支持二进制安全。(Thies)
  • 使 strpos() 函数支持二进制安全。(Thies)
  • 添加了 XML_Set_Object() 函数,现在可以在对象内部使用 XML 解析器。(Thies)
  • 会话变量现在被解码到 $HTTP_STATE_VARS[] 数组和全局变量中,这取决于 track_vars 和 gpc_globals 设置 (Andrei)
  • 添加了 get_used_files() 函数 - 返回一个哈希表,将使用的文件映射到它们的完整路径 (Zeev)
  • PHP 4 脚本现在将遵守 max_execution_time 设置并实际超时 (Rasmus)
  • 在 phpinfo() 输出中添加了 configure 命令 (Stig)
  • 在 mysql_?connect() 函数中添加了可选的套接字路径 (Rasmus)
  • 使 mysql 和 gd 模块再次作为共享扩展工作 (Stig)
  • 使全局 GET/POST/Cookie 变量及其 $HTTP_*_VARS[] 对应变量相互引用 (Zeev)
  • 添加了对 'use' 关键字的支持 - 行为类似于 'require',但不会多次使用同一个文件 (Andi & Zeev, Zend 引擎)
  • 添加了检查,用于在重用之前检查 ODBC 接口中持久连接是否仍然有效 ([email protected])
  • 添加了 DBMaker 支持 (由 Pax Tsai <[email protected]> 提供的补丁)
  • 将 "PECL" 重命名为 "PEAR" (PHP 扩展和附加组件存储库) (Stig)
  • buildconf 现在使用 build.mk (Stig)
  • 禁用指向 URL 的符号链接 (Rasmus)
  • Informix 驱动程序现在反映了所用 ESQL/C 的版本 (Danny)
  • 修改了 session_register() 函数,使其可以接受可变数量的参数 (Andrei)
  • 修复了线程安全模式下的文件描述符泄漏问题 (Zeev, Zend 引擎)
  • 添加了 select(),fd_set() 和 fd_isset() 函数 (Evan)
  • cpdf 支持已从 php3 移植,需要 ClibPDF 2.x (Uwe)
  • 修复了使用自动输出缓冲时发生的内存泄漏问题。(Zeev)
  • 引入了 PECL - PHP 扩展和代码库 (发音为 "pickle") (Stig)
  • 修复了 here-docs 实现中的不一致性 (Andi & Zeev, Zend 库)
  • 修复了常量类成员初始化的问题 (Andi & Zeev, Zend 引擎)
  • 修复了 min(),max(),a[r]sort(),[r]sort() 函数中的浮点数比较问题。(Thies)
  • 实现了 get_html_translation_table() 函数。(Thies)
  • 实现了 array_flip() 函数。返回键值对调换的输入数组。(Thies)
  • 在 DBA 中添加了 Berkeley DB3 支持 (Sascha)
  • 实现了 strtr($str,$translation_array) 函数的 2 参数版本。这可以用来还原 htmlspecialchars() 函数的操作。(Thies)
  • 修复了 XML_Parse_Into_Struct 函数中的内存覆盖问题。(Thies)
  • 添加了 substr_replace() 函数 (Andrei)

版本 4.0 Beta 3

  • ucfirst()/ucwords() 函数不再修改 arg1 参数 (Thies)
  • 修复了 strtr() 函数,使其不再修改 arg1 参数 (Thies)
  • 为 Informix 驱动程序添加了 Win32 构建文件,并使其可以与 ZTS 编译 (danny)
  • 添加了 tmpfile() 函数 (Stig)
  • 将正则表达式库升级到 alpha3.8 (Sascha)
  • 修复了在 OCI8 中选择嵌套表的问题。(Thies)
  • 修复了内部 FTP 代码的 RFC-854 问题。命令必须以 "\r\n" 结尾。(Thies)
  • 修复了 OpenLink ODBC 支持 (Stig)
  • min(),max(),a[r]sort(),[r]sort(),k[r]sort() 函数现在与语言核心一致。(Thies)
  • 如果可用,tempnam() 函数现在使用 mkstemp() 函数 (Stig)
  • serialize() 和 var_dump() 函数现在会遵守 php.ini 中为双精度浮点数设置的精度。(Thies)
  • 改进了 Win32 COM 模块以支持 [out] 参数 (Boris Wedl)
  • 修复了某些 Sybase 列结尾处返回的垃圾数据 (Thies) 补丁提交者:[email protected]
  • 为 Win32 添加了 Microsoft SQL Server 模块 (Frank)
  • 添加了通过引用强制使用可变数量的内部函数参数的功能。(Andi & Zeev, Zend 引擎)
  • 实现了 getprotoby{name,number} 函数。(Evan)
  • 添加了 array_pad() 函数。(Andrei)
  • 添加了新的 getservby{name,port} 函数。(Evan)
  • 添加了 session.cookie_path 和 session.cookie_domain 选项 (Sascha)
  • 在 extension= 后继续处理 PHP_INI_SYSTEM knownDirectives (Sam Ruby)
  • 启用 IBM DB2 支持 - 在 Linux 上针对 DB2 6.1 UDB 进行了测试 (Rasmus)
  • 添加了新的 str_repeat() 函数。(Andrei)
  • 输出缓冲系统现在支持线程安全。(Thies)
  • 实现了 OCI8 $lob->WriteToFile() 函数 - 对于流式传输大量 LOB 数据非常有用,无需使用巨大的缓冲区。(Thies)
  • 添加了 session.use_cookies 选项 (Sascha)
  • 添加了 getcwd() 函数。(Thies)
  • XML_Parse_Into_Struct 函数不再丢失数据。(Thies)
  • 修复了 parse_url('-') 函数的崩溃问题。(Thies)
  • 添加了 === 运算符的支持。(Andi & Thies, Zend 引擎)
  • unserialize() 函数现在会在传递无效数据时发出通知。(Thies)
  • 修复了 shuffle() 函数,使其不再在 Solaris 上崩溃。(Andrei)
  • 添加了 is_resource(),is_bool() 函数。(Thies)
  • 清理了 File 模块 (Thies)
  • 升级了数学函数以使用新的 Zend 函数 API (Thies)
  • 修复了 shell_exec() 函数和 `some_command` 构造中的僵尸进程问题。(Thies)
  • Thies 引入了 ZEND_FETCH_RESOURCE2 (Danny)。
  • 将 Informix 驱动程序添加到已维护扩展列表中。(Danny)。
  • Informix 驱动程序:更改 ifx.ec 以使用新的高性能 ZEND API。(Danny)。
  • IXF_LIBDIR 环境变量指定 configure 的备用 Informix 库路径 (Danny)。
  • 修复了 gmmktime() 函数,使其始终满足以下条件:gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) (Jouni)
  • setlocale 函数不再会在忘记将其更改回原始设置时搞乱事情。(Jouni)
  • 切换到新的系统,其中 ChangeLog 会从提交消息中自动更新。NEWS 文件现在是发布公告的地方。(Andrei)
  • 修复了 XML 模块中的引用计数问题。(Thies)
  • 修复了 HTTP_RAW_POST_DATA 处理中的崩溃问题 (Thies)
  • 您可以再次将资源用作数组索引 (Thies, Zend 引擎)
  • 修复了带有三个参数的 pg_fetch_array() 函数 (Sascha) 补丁提交者:[email protected]
  • 许多内部函数升级到使用新的 Zend 函数 API (Thies)
  • fdf 支持已移植;尚未针对 glibc 的最新版本 4.0 进行完全测试 (Uwe)
  • OCI8 连接现在会在它们被引用时保持打开状态 (Thies)
  • 清理了 Directory 模块 (Thies)
  • Ora_Close 函数中的一个小小的修复 (Thies)
  • 将 range() 和 shuffle() 函数从 PHP 3 移植到 PHP 4 (Andrei)
  • 修复了 header("HTTP/...") 函数的行为 (Sascha)
  • 改进了 UNIX 构建系统。现在使用了 libtool (Sascha)
  • 更多内部函数升级到使用新的 Zend 函数 API。(Thies, Zend 引擎)
  • 修复了与 ereg() 函数的向后兼容性问题 (Thies)
  • 使用更彻底的方法更新了 Zend 垃圾收集。(Andi, Zend 引擎)
  • 添加了在 array() 构造中使用变量引用的功能。例如,array("foo" => &$foo)。(Andi, Zend 引擎)
  • 添加了 array_reverse() 函数 (Andrei)
  • 更多 XML 修复/清理 (Thies)
  • 更新了 preg_replace() 函数,以便如果传递的任何参数是数组,它将在将其转换为字符串之前复制每个条目,以便原始条目保持不变。如果主题是数组,它还将保留输出中的键。(Andrei)
  • 更新了 OCI8 以使用新的高性能 Zend 函数 API。(Thies)
  • 配置加速 (Stig)
  • 修复了与 LOB/持久连接相关的 OCI8 崩溃问题 (Thies)
  • 在 UNIX 上概括了服务器 API 构建过程 (Stig)
  • 添加了 '--disable-rpath' 选项 (Sascha)
  • 添加了 AOLserver SAPI 模块 (Sascha)
  • 修复了 XML 回调函数。(Thies)
  • 更新了 ODBC 以使用新的高性能 Zend 函数 API (kara)
  • 更新了 zlib 以使用新的高性能 Zend 函数 API。(Stefan)
  • 更新了 preg_split() 函数,允许仅返回非空片段 (Andrei)
  • 更新了 PCRE 以使用新的高性能 Zend 函数 API (Andrei)
  • 更新了 session,dba,mhash,mcrypt,sysvshm,sysvsem,gettext 模块以使用新的高性能 Zend 函数 API (Sascha)
  • 扩展了 var_dump 函数以某种程度地处理资源类型 (Andrei)
  • 更新了 WDDX 以使用新的高性能 Zend 函数 API (Andrei)
  • 更新了 XML 以使用新的高性能 Zend 函数 API。(Thies)
  • 更新了 Oracle 以使用新的高性能 Zend 函数 API。(Thies)
  • 通过使用新的高性能 Zend 函数 API,显著提高了 MySQL 模块的性能。(Zeev)
  • 添加了对 Easysoft ODBC-ODCB 桥的支持 ([email protected])
  • 修复了 odbc_setoption 函数中的 bug,getParameter 调用不正确 ([email protected])
  • Ora_Fetch_Into 函数现在在所有情况下都会重置返回的数组 (Thies)
  • 修复了 Oracle 驱动程序中的 NULL 列问题 (Thies)
  • 向 ODBC 添加了额外的元数据函数,例如 SQLTables 等 ([email protected])
  • 修复了 mcal make_event_object() 函数中的 SEGV 问题以及 mcal_list_alarms() 函数中的错别字 (Andrew Skalski)
  • 修复了 Ora_PLogon (Thies)
  • 将 Oracle 资源化 (Thies)
  • 在 WDDX 中实现了对象序列化/反序列化 (Andrei)
  • 添加了 krsort() 函数 (Thies)
  • 为访问可变数量参数的函数添加了 func_num_args()、func_get_arg() 和 func_get_args() 函数 (Zeev)
  • 添加了 FTP 支持 (Andrew Skalski)
  • 向 strip_tags()、gzgetss() 和 fgetss() 添加了可选参数 allowable_tags,允许指定不应去除的标签字符串 (Rasmus)
  • 升级了 var_dump(),使其可以接受多个参数 (Andrei)
  • 将 XML 资源化 (Thies)
  • 修复了 Apache 每个目录指令处理程序中的内存泄漏 (Zeev)
  • 添加了 array_count_values() 函数。(Thies)
  • snmp、pgsql、mysql 和 gd 模块可以构建为动态加载的模块 (Greg)
  • 修复了 OCI8 获取空 LOB 的问题 (Thies)
  • 为 session 模块添加了用户级回调 (Sascha)
  • 添加了对未知 POST 内容类型的支持 (Zeev)
  • 为 session 模块添加了“wddx”序列化处理程序 (Sascha)(如果使用 --with-wddx 编译,则自动启用)
  • 修复了对象反序列化 (Thies)
  • PHP 4.0 现在将对象序列化为“O”(PHP 3.0 不理解),但按预期反序列化 PHP 3.0 序列化的对象。(Thies)
  • 使序列化/反序列化能够作用于类。如果在反序列化时知道该类,您将获得一个完全可用的对象!(Thies)
  • 根据新的 PCRE API 重写了 preg_* 函数,这也使它们的运行方式更类似于 Perl 函数 (Andrei)
  • 可以指定 PCRE 库的外部位置 (Andrei)
  • 将捆绑的 PCRE 库更新到 2.08 版本 (Andrei)
  • count()/is_array/is_object……速度提升。(Thies)
  • OCI8 在保存 LOB 时支持追加和定位 (Thies)
  • 添加了元音支持 (Thies)
  • OCI8 不再使用 define 回调。(Thies)
  • OCI8 驱动程序现在支持类似于 PHP 3.0 的 LOB。(Thies)
  • var_dump 现在转储对象的属性 (Thies)
  • 重写了 GET/POST/Cookie 数据读取器以支持多维数组!(Zeev)
  • 将 allow_builtin_links 重命名为 expose_php(默认为 On)。此指令告诉 PHP 是否可以将其存在暴露给外部世界,例如通过将其添加到 Web 服务器标头 (Zeev)
  • 添加了对透明会话 ID 传播的支持 (Sascha)
  • 使 WDDX 正确序列化对象属性 (Andrei)
  • 修复了当传递未定义变量进行序列化时 WDDX 的内存泄漏 (Andrei)
  • 添加了 session_unset() 函数 (Andrei)
  • 修复了双重会话全局变量关闭崩溃 (Andrei)
  • 修复了与 ignore_user_abort ini 条目相关的崩溃 (Andrei)
  • 添加了对会话 ID 创建的外部熵源的支持(在 Unix 上为 /dev/random 和 /dev/urandom)(Sascha)
  • 在 php.ini 中添加了 gpc_globals 变量指令。默认情况下为 On,但如果将其设置为 Off,则不会将 GET、POST 和 Cookie 变量插入到全局作用域。与 track_vars 结合使用时最有意义 (Zeev)
  • 添加了对共享库的版本控制支持 (Sascha) 这允许同时使用 PHP 3.0 和 PHP 4.0 作为 Apache 模块。有关更多信息,请参见 INSTALL 文件的结尾。
  • 向 array_keys 添加了第二个参数,该参数指定应返回其键的搜索值 (Andrei)
  • 将 Informix 驱动程序资源化 (Danny)
  • odbc 的新资源处理,重命名为 php_odbc.[ch]
  • 使 set_time_limit() 在 Unix 上工作 (Rasmus)
  • 添加了连接处理支持 (Rasmus)
  • 改进了 Sybase-CT 模块以使用资源 (Zeev)
  • 改进了 mSQL 模块以使用资源 (Zeev)
  • 更改了 mysql_query() 和 mysql_db_query(),以便在保存结果集数据失败时返回 false (Zeev)
  • 改进了资源机制——资源不会尽快释放 (Zeev)
  • 添加了用于会话数据存储的共享内存模块 (Sascha)
  • 修复了 session.auto_start (Sascha)
  • 修复了输出缓冲和 HEAD 请求的几个问题 (Zeev)
  • 修复了 ISAPI 模块的 HTTP 状态代码问题 (Zeev)
  • 修复了一个阻止 $GLOBALS 正确工作的问题 (Zeev,Zend 库)
  • 移植了最新的 GetImageSize (Thies)
  • 在 Win32 中添加了会话编译支持 (Andi)
  • 向 CGI 二进制文件添加了 -d 开关,允许从命令行覆盖 php.ini 值 (Zeev)
  • 修复了如果 wddx_deserialize 没有收到有效数据包将会发生的崩溃 (Andrei)
  • 修复了在运行时重新定义类时的一个小错误 (Andi,Zend 引擎)
  • 修复了 AIX 上的 sem_get() (Sascha)
  • 修复了 fopen() 以在 Win32 中使用 URL (Andi & Zeev)
  • 修复了 Win32 的 include_path (Andi,Zend 引擎)
  • 修复了 ISAPI 标头发送函数中的错误 (Charles)
  • 修复了使用未定义值时的内存泄漏 (Andi & Zeev,Zend 引擎)
  • 在 php.ini 中添加了 output_buffering 指令,以启用所有 PHP 脚本的输出缓冲——默认情况下为关闭 (Zeev)。
  • 修复了一些类继承问题 (Zeev,Zend 引擎)
  • 修复了 FreeBSD/Linux 上关于共享模块的 Apache 构建 (Sascha)
  • 添加了 session.extern_referer_chk,它检查会话 ID 是否被外部站点引用并将其消除 (Sascha)
  • 改进了会话 ID 生成 (Sascha)
  • 通过使用组合 LCG 并去除额外的 usleep() 来提高 uniqid() 的速度 (Sascha)
  • 引入了通用组合线性同余发生器 (Sascha)
  • 将 ldap_close 改回为 ldap_unbind 的别名 (Andrei)
  • OciFetchInto 现在在所有情况下都会重置返回的数组 (Thies)
  • 修复了 mysql_errno() 以使其与最新版本的 MySQL 兼容 (Zeev)
  • 修复了 define() 和布尔值的问题 (Zeev)
  • 修复了 gd/freetype 函数的包含 (Sascha)
  • 修复了 MHASH_* 常量的持久性 (Sascha)
  • Oracle 现在是 ZTS 安全的 (Thies)
  • 修复了 DBA 的 DB2 模块中将缓存信息刷新到磁盘的问题 (Sascha)
  • OCI8 现在是 ZTS 安全的 (Thies)
  • 修复了 is_writeable/is_writable 问题;两者现在都已定义 (Andrei)
  • 导入了 PHP 3.0 的 diskfreespace() 函数 (Thies)
  • 修复了 MySQL 模块中的线程安全问题 (Zeev)
  • 修复了动态模块的线程安全支持 (Zeev)
  • 修复了 Sybase CT 构建过程 (Zeev)

4.0 Beta 2 版本

  • 修复了使用 header() 发送 HTTP/1.x 标头行时出现的问题 (Zeev)
  • Win32 版本现在包含内置的 ODBC 模块 (Zeev)
  • 修复了 SYSV-SHM 接口 (Thies)。
  • 更新了 hyperwave 模块,使其线程安全
  • 更新了 pdflib 模块,不再支持 pdflib 0.6 版本
  • 更新了 fdf 模块
  • 内置 phpinfo() 链接现在默认情况下已关闭。可以使用 allow_builtin_links INI 指令将其打开 (Zeev)
  • 更改了 phpinfo() 以列出没有 info 函数的模块 (Zeev)
  • 修改了 array_walk() 函数,以便除了值之外,用户态回调还会传递键和可能的用户信息 (Andrei)
  • 修复了 ldap_search()、ldap_read() 和 ldap_list() (Zeev)
  • 修复了 phpinfo() 中的 Apache 信息 ([email protected])
  • 改进了 register_shutdown_function()——您现在可以提供将传递给关闭函数的参数 (Zeev)
  • 改进了 call_user_func() 和 call_user_method()——它们现在支持通过引用传递参数 (Zeev)
  • 修复了 usort() 和 uksort() (Zeev)
  • 修复了 Apache 模块中的 md5() (Thies)
  • 引入了动态模块的构建过程 (Stig)
  • 改进了 ISAPI 模块以支持大型服务器变量 (Zeev)
  • 导入了 PHP 3.0 的修复程序,用于解决 PHP 作为动态模块以及 Redhat libc2.1 在 zlib 模块中的问题 (Stefan)
  • 修复了 sybase_fetch_object() (Zeev)
  • 使 IMAP 模块与 PHP 4.0 兼容 (Zeev)
  • 修复了 include()/require() URL 的问题 (Sascha,Zeev)
  • 修复了 implode() 中导致其破坏其参数的错误 (Zeev)
  • 添加了 get_class($obj)、get_parent_class($obj) 和 method_exists($obj,“name”) (Andi & Zeev)
  • 修复了各种继承问题 (Andi & Zeev,Zend 引擎)
  • 如果子类没有提供自己的构造函数,则子类现在继承其父类的构造函数。
  • 修复了类的运行时继承(父方法/属性正在覆盖其子类)(Zeev,Zend 引擎)
  • 修复了与“new”运算符的向后不兼容性 (Andi,Zend 引擎)
  • 修复了 uksort() 和 ksort() 排序顺序中的错误 (Andrei)
  • 修复了使用赋值运算符且左值类型为字符串时的内存泄漏 (Zeev,Zend 引擎)
  • 修复了从 include()d 文件中定义的类继承的问题 (Zeev,Zend 引擎)
  • 修复了 PHP 错误处理程序中的一个问题,该问题可能导致某些操作系统崩溃 (Zeev)
  • Apache php_flag 值仅识别“On”(区分大小写)——已更改为不区分大小写 (Zeev)
  • 修复了包含 return 语句的 switch 语句的内存泄漏 (Andi & Zeev,Zend 引擎)
  • 修复了 switch 语句中具有字符串偏移量作为条件的崩溃问题 (Andi & Zeev,Zend 引擎)
  • 导入了 PHP 3.0 对 rand() 和 mt_rand() 的修复 (Rasmus)
  • 为 strip_tags() 和 similar_text() 添加了函数条目 (Andrei)
  • 修复了 WDDX 中的一个错误,该错误会在传递数字而不是变量名时导致崩溃 (Andrei)
  • 从 PHP 3.0 移植了 strtotime() 函数 (Andrei)
  • 合并了来自 PHP 3.0 的 gdttf 内容 (Sascha)
  • buildconf 现在检查您的安装 (Stig)
  • XML 模块现在使用 --with-xml=shared 动态构建 (Stig)
  • 添加了对 freetype.h 的检查——修复了 RedHat 6.0 上的构建 (Zeev)
  • 修复了 array_walk() 以使其在 PHP 4.0 中工作 (Andrei)
  • 从 PHP 3.0 移植了所有剩余的 date() 格式选项 (Andrei)
  • $php_errormsg 现在可以使用了 (Andrei)
  • 为 Perl 兼容正则表达式函数添加了区域设置支持 (Andrei)
  • Informix 模块移植 (Danny)
  • 删除 --with-shared-apache (Sascha)
  • 添加了 base64_decode 中反向查找表的补丁 (Sascha) 由 [email protected] 提交
  • 合并了 PHP 3.0 版本的 str_replace (Sascha)
  • 添加了 DBA 模块 (Sascha)
  • 在 REQUEST_URI 中添加了会话 ID 检测 (Sascha)
  • 合并了来自 PHP 3.0 的 HP-UX/ANSI 兼容性开关 (Sascha)
  • 修复了在 Apache 构建期间构建的实用程序的 rpath 处理 (Sascha)
  • 添加了缺失的 E_ 错误级别常量 (Zeev,Zend 引擎)
  • 修复了在 Apache 下发送多个 HTTP Cookie 的错误 (Zeev)
  • 修复了 MySQL、mSQL、PostgreSQL 和 Sybase 模块上的隐式连接 (Zeev)
  • 使 PHP 4.0 的 SNMP 扩展具有 PHP 3.0.12 的所有功能 (SteveL)

4.0 Beta 1 版本

  • PHP 4.0 首个公开测试版
To Top