PHP 4.0.2 Released

Well for those of you following PHP; the opensource, free, alternative to ASP and other such technologies, version 4.0.2 was released today. It is described as mostly a bug and feature fix, and a lot of them at that. It is recommended that you upgrade, but it is not vital that you do so. Read on to see a full list of fixes and some new functionality, or download it here.

Here is a full list of changes:

29 Aug 2000, Version 4.0.2
- PHP 3 regression testing framework re-born (Stig)
- Added php_uname() function (Stig)
- Made a minor change to allow building with OpenLDAP 2.0 (Stig Venaas)
- Fixed a bug in preg_replace() that would truncate subject string if the
   first argument was en empty array. (Andrei)
- Added ob_get_length function (Stig)
- Fixed a bug that did not respect limit parameter in preg_replace() when
   using /e modifier. (Andrei)
- Added ability for each xml_set_*_handler() function to take the
   array($obj, 'method') syntax for the handler argument as well
   as the normal function name. (Andrei)
- Updated array_walk() to be able to accept array($obj, 'method')
   syntax for the walk function. (Andrei)
- Fixed segfault with fgets(), fgetcsv(), fgetss(), and fread() when
   called with negative length argument. (Torben)
- Fix by-reference parameters passing for xml_ functions and for scanf 
functions (Stas)
- Added experimental Oracle LDAP SDK support. 8.1.6 or later needed. Configure
   with something like --with-ldap=/usr/local/oracle/product/8.1.6 (Stig 
Venaas)
- Fixed memory leaks in eval();  A script that used eval() extensively, could
   end up consuming very large amounts of memory during execution (Zeev, Zend
   Engine)
- Fixed memory_limit feature, which did not work properly in previous versions
   (Zeev, Zend Engine)
- Fixed stdout support with the swf extension. (Sterling)
- Fixed byte order for ip2long and long2ip (Stas)
- Fixed dbase_add_record. (Sterling)
- Added support for libmcrypt 2.4.4 (Derick)
- Added strncasecmp function (Andi, Zend Engine)
- Fixed FTP module to accept multiline server replies (Jani)
- Fixed switch which only has a single default rule. (Andi, Zend Engine)
- Fixed problem with nested foreach()'s. (Andi, Zend Engine)
- The CCVS module is now stable and compiling. It compiles as a CGI and into
   Apache cleanly without warnings. (Brendan W. McAdams)
- Fixed mSQL_close(). ([email protected])
- Made return() in a require()'d file work like return() in an include()'d
   file (Andi & Zeev, Zend Engine)
- Changed require_once() to work using the same table as include_once()
   (Andi & Zeev, Zend Engine)
- Fixed PostgreSQL module to work when the link handle is omitted (Zeev)
- Fixed the Sybase modules to work properly with PHP 4.0 (Zeev)
- Fixed CLOB handling in OCI8 driver when using variable-width
   character sets. (Thies)
- Added 4th optional parameter to sybase_[p]connect to specify the charset
   for the connection ([email protected])
- Fixed support for current thttpd releases. (Sascha)
- Added support for kerberized IMAP library using --with-kerberos
   (Rasmus, Sascha)
- Virtualize realpath, chmod, chown and utime (Stas)
- Support content-encoding headers in file upload MIME parts
   (Ragnar Kjørstad)
- Fixed warning when shutting down OCINLogon() connections. (Thies)
- Fixed n in session variables bug on Win32 (Stas)
- OCIError() would sometimes not report failed connections. (Thies)
- Fixed HEAD request bug on an Apache ErrorDocument redirect and preserve
   the status code across the redirect as well.  (Rasmus)
- Added Olympus-specific tags to read_exif_data() (Rasmus)
- Fixed bug in imap_fetchheader() where using FT_PREFETCHTEXT didn't return
   the body. Bug #4447. (Jani)
- Fixed exec() returning "" when output is empty
- Added XML_Parser class in PEAR (Stig)
- Added "make test" target in pear/ and added some regression tests (Stig)
- Fixed bug in strip_tags function as per bug #5857 (Rasmus)
- Fixed reading of IPTC via GetImageInfo() for certain JPEG files. (Thies)
- Improved the output-buffering functions to be re-entrant (Zeev)
- Made ldap_add(), ldap_modify(), ldap_mod_add(), ldap_mod_replace()
   binary-safe. Original patch: Terrence Miao  (Jani)
- CGI aka. command line version has now an option '-l' for syntax check
   without execution (Hartmut)
- Fixed bug in ldap_get_values_len() which makes it NULL-safe. (Jani)
- Bug-report and fix submitted by Michel Alexeline 
- Make ext_skel create a Makefile.in set up to handle shared extension
   support automatically (Rasmus)
- Fixed php_realpath not to die on non-existing files (needed for touch())
   (Stas and [email protected])
- Fixed get_browser() function (Stas)
- Fixed symbol clash which caused a DSO problem on OpenBSD (Rob Black and
   [email protected])
- Added new function: ldap_compare(). (Jani)
- Fixed a bug in ldap_get_entries() and ldap_get_attributes(). (Jani)
- Ported DB to new error reporting scheme in PEAR. (Stig)
- Added sybase and ibase DB backends in PEAR. (Sterling)
- New PEAR package Payment_Verisign for use with the Payflow Pro
   (pfpro) extension. (David Croft)
- Added CURL support. (Sterling)
- Catch users trying to set "compatibility" parameter in PDF, which is not
   supported from user-land. (Joey)
- Fixed dbase_add_record. (Sterling)
- Added new function wordwrap() to wordwrap long strings from Chris
   Russel  (David Croft)
- Added four additional arguments: attrsonly, sizelimit, timelimit, deref which
   were missing in ldap_search(), ldap_list() and ldap_read() functions (Jani)
- Fixed a bug in ldap_search/list/read() which prevented returning the partial
   results when 'Sizelimit exceeded' error occurred. (Jani Taskinen)
- Fixed preg_replace() to automatically escape quotes in matched
   strings when using /e modifier. (Andrei)
- Itanium patch (Steve Robb)
- Set default include_path so PEAR files can be reached (Stig)
- Added "pear" executable, requires CGI version installed (Stig)
- Added extension ii for Ingres II native support. See README in ext/ingres_ii
   directory. (David H)
- Added Win32 project for the Interbase module (Zeev)
- Added ability to perform calls to the parent class without explicitly
   specifying its name, using parent::func_name(...) (Zeev, Zend Engine)
- You can now call Ora_Error() without prameters to get the reason
   for a failed connection attempt. (Kirill Maximov)
- New extension "pfpro" for interface with Verisign Payflow Pro (David Croft)
- Added IMG_GIF, IMG_JPG, IMG_JPEG, IMG_PNG and IMG_WBMP constants for
   imagetypes() function (Rasmus)
- Added ImageTypes() function which returns a bitfield with the supported
   image formats.  1=gif, 2=jpeg, 4=png and 8=wbmp (Rasmus)
- Make it possible to specify an empty string as a thousands-seperator
   in number_format() (Rasmus)
- Shared module support for LDAP extension (Troels Arvin)
- Fixed a bug with imap_mail where apache would segfault if the rpath
   parameter was specified.
- Use dashes and short day name in cookies since some browsers seem picky
   about this (Rasmus)
- Added pspell module. (Vlad)
- Added 3 additional arguments to the user-defined error handler - the file
   name and line number in which the error occured, and the context (local
   variables) of the code in which the error occured (Zeev, Zend Engine)
- Improved the error handling code to handle an error in a user-defined error
   handling function (Zeev, Zend Engine)
- Fixed leak when using string offsets in the array() construct.
   (Andi, Zend Engine)
- Fixed corruption problem when changing deeply nested values in objects.
   (Andi & Zeev, Zend Engine)
- Improved array_multisort() to be able to specify sort type as well sort
   order. Incidentally, it can be used to sort multi-dimensional arrays
   as well. (Andrei)
- Fixed a possible data corruption in case of a huge amount of aborted requests
   (Zeev)
- Apache module would sometimes close a wrong file-descriptor. (Sascha)
- Fixed use of alternative storage handlers in the session module. (Sascha)
- Updated str_pad() to be able to pad on left/right/both sides. (Andrei)
- Fixed crash in gzopen(). (Thies)
- Multiple character set support in gdttf.c (Rob Goodwin)
- When using HTTP auth from PHP, fill in the %u custom log field so the
   authenticated used id will get logged in the Apache access_log (Rasmus)
- Support for pdflib 3.01. (Uwe)
- FDF Data is handled properly and can be accessed by reading
   HTTP_RAW_POST_DATA. (Uwe)
- Added new 'O' format modifier that will output the GMT offset as "[+-]HHMM"
   (eg: Pacific time is -0700).  This is useful for things such as Date: mail
   headers. (Mike W)
- Fixed crash on OCI?Logon() failure. (Thies)
- Make the special Header("http/...") response be case insensitive like 3.0
   (Rasmus)
- Allow cybercash to compile as a DL module. (Sterling)
- Fixed the dbase_create function. (Sterling)
- Fixed a problem under some versions of Windows that could cause PHP to hang
   on startup if errors occured, e.g. in the php.ini file (Zeev)
- Fixed opendir() again.  It should actually work well continuously now (Zeev)
- Added three additional arguments to be sent to a user-defined error handler -
   the filename and line number in which the error occured, and the context
   (the local variables) of the error (Zeev, Zend Engine)
- Improved the error handling code to handle an error in a user-defined error
   handling function (Zeev, Zend Engine)
- Added an optional parameter to preg_replace() that can be used to
   specify how many replacements to make. (Andrei)

Comments are closed.

© 1998-2024 BetaNews, Inc. All Rights Reserved. Privacy Policy - Cookie Policy.