PHP

4.1.0

Released on 10 Dec 2001
Project description.
PHP is a popular general-purpose scripting language that is especially suited to web development
PHP 4.1.0 Changelog
  • Worked around a bug in the MySQL client library that could cause PHP to hang when using unbuffered queries. (Zeev)
  • Fixed a bug which caused set_time_limit() to affect all subsequent requests to running Apache child process. (Zeev)
  • Removed the sablotron extension in favor of the new XSLT extension. (Sterling)
  • Fixed a bug in WDDX deserialization that would sometimes corrupt the root element if it was a scalar one. (Andrei)
  • Make ImageColorAt() and ImageColorsForIndex() work with TrueColor images. (Rasmus)
  • Fixed a bug in preg_match_all() that would return results under improper indices in certain cases. (Andrei)
  • Fixed a crash in str_replace() that would happen if search parameter was an array and one of the replacements resulted in subject string being empty. (Andrei)
  • Fixed MySQL extension to work with MySQL 4.0. (Jani)
  • Fixed a crash bug within Cobalt systems. Patch by tomc@tripac.com. (Jani)
  • Bundled Dan Libby's xmlrpc-epi extension.
  • Introduced extension version numbers. (Stig)
  • Added version_compare() function. (Stig)
  • Fixed pg_last_notice() (could cause random crashes in PostgreSQL applications, even if they didn't use pg_last_notice()). (Zeev)
  • Fixed DOM-XML's error reporting, so E_WARNING errors are given instead of E_ERROR error's, this allows you to trap errors thrown by DOMXML functions. (Sterling)
  • Fixed a bug in the mcrypt extension, where list destructors were not properly being allocated. (Sterling)
  • Better Interbase blob, null and error handling. (Patch by Jeremy Bettis)
  • Fixed a crash bug in array_map() if the input arrays had string or non-sequential keys. Also modified it so that if a single array is passed, its keys are preserved in the resulting array. (Andrei)
  • Fixed a crash in dbase_replace_record. (Patch by robin.marlow@dps-int.com)
  • Fixed a crash in msql_result(). (Zeev)
  • Added support for single dimensional SafeArrays and Enumerations. Added com_isenum() function to check if a component implements an enumeration. (Alan, Harald)
  • Fixed a bug in dbase_get_record() and dbase_get_record_with_names(). boolean fields are now returned correctly. Patch by Lawrence E. Widman <widman@cardiothink.com> (Jani)
  • Added --version option to php-config. (Stig)
  • Improved support for thttpd-2.21b by incorporating patches for all known bugs. (Sascha)
  • Added ircg_get_username, a roomkey argument to ircg_join, error fetching infrastructure, a tokenizer to speed up message processing, and fixed a lot of bugs in the IRCG extension. (Sascha)
  • Improved speed of the serializer/deserializer. (Thies, Sascha)
  • Floating point numbers are better detected when converting from strings. (Zeev, Zend Engine)
  • Replaced php.ini-optimized with php.ini-recommended. As the name implies, it's warmly recommended to use this file as the basis for your PHP configuration, rather than php.ini-dist. (Zeev)
  • Restore xpath_eval() and php_xpathptr_eval() for 4.0.7. There are still some known leaks. (Joey)
  • Added import_request_variables(), to allow users to safely import form variables to the global scope (Zeev)
  • Introduced a new $_REQUEST array, which includes any GET, POST or COOKIE variables. Like the other new variables, this variable is also available regardless of the context. (Andi & Zeev)
  • Introduced $_GET, $_POST, $_COOKIE, $_SERVER and $_ENV variables, which deprecate the old $HTTP_*_VARS arrays. In addition to be much shorter to type - these variables are also available regardless of the scope, and there's no need to import them using the 'global' statement. (Andi & Zeev)
  • Added vprintf() and vsprintf() functions that allow passing all arguments after format as an array. (Andrei)
  • Added support for GD2 image type for ImageCreateFromString() (Jani)
  • Added ImageCreateFromGD(), ImageCreateFromGD2(), ImageCreateFromGD2part(), ImageGD() and ImageGD2() functions (Jani)
  • addcslashes now warns when charlist is invalid. The returned string remained the same (Jeroen)
  • Added optional extra argument to gmp_init(). The extra argument indicates which number base gmp should use when converting a string to the gmp-number. (Troels)
  • Added the Cyrus-IMAP extension, which allows a direct interface to Cyrus' more advanced capabilities. (Sterling)
  • Enhance read_exif_data() to support multiple comment tags (Rasmus)
  • Fixed a crash bug in array_map() when NULL callback was passed in. (Andrei)
  • Change from E_ERROR to E_WARNING in the exif extension (Rasmus)
  • New pow() implementation, which returns an integer when possible, and warnings on wrong input (jeroen)
  • Added optional second parameter to trim, chop and ltrim. You can now specify which characters to trim (jeroen)
  • Hugely improved the performance of the thread-safe version of PHP, especially under Windows (Andi & Zeev)
  • Improved request-shutdown performance significantly (Andi & Zeev, Zend Engine)
  • Added a few new math functions. (Jesus)
  • Bump bundled expat to 1.95.2 (Thies)
  • Improved the stability of OCIPlogon() after a database restart. (Thies)
  • Fixed __FILE__ in the CGI & Java servlet modes when used in the main script. It only worked correctly in included files before this fix (Andi)
  • Improved the Zend hash table implementation to be much faster (Andi, Zend Engine)
  • Updated PHP's file open function (used by include()) to check in the calling script's directory in case the file can't be found in the include_path (Andi)
  • Fixed a corruption bug that could cause constants to become corrupted, and possibly prevent resources from properly being cleaned up at the end of a request (Zeev)
  • Added optional use of Boyer-Moore algorithm to str_replace() (Sascha)
  • Fixed and improved shared-memory session storage module (Sascha)
  • Add config option (always_populate_raw_post_data) which when enabled will always populate $HTTP_RAW_POST_DATA regardless of the post mime type (Rasmus)
  • Added support for socket and popen file types to ftp_fput (Jason)
  • Fixed various memory leaks in the LDAP extension (Stig Venaas)
  • Improved interactive mode - it is now available in all builds of PHP, without any significant slowdown (Zeev, Zend Engine)
  • Fixed crash in iptcparse() if the supplied data was bogus. (Thies)
  • Fixed return value for a failed snmpset() - now returns false (Rasmus)
  • Added hostname:port support to snmp functions (nbougues@axialys.net, Rasmus)
  • Added fdf_set_encoding() function (Masaki YATSU, Rasmus)
  • Reversed the destruction-order of resources. This fixes the reported OCI8 "failed to rollback outstanding transactions!" message (Thies, Zend Engine)
  • Added option for returning XMLRPC fault packets. (Matt Allen, Sascha Schumann)
  • Improved range() function to support range('a','z') and range(9,0) types of ranges. (Rasmus)
  • Added getmygid() and safe_mode_gid ini directive to allow safe mode to do a gid check instead of a uid check. (James E. Flemer, Rasmus)
  • Made assert() accept the array(&$obj, 'methodname') syntax. (Thies)
  • Made sure that OCI8 outbound variables are always zero-terminated. (Thies)
  • Fixed a bug that allowed users to spawn processes while using the 5th parameter to mail(). (Derick)
  • Added nl_langinfo() (when OS provides it) that returns locale.
  • Fixed a major memory corruption bug in the thread safe version. (Zeev)
  • Fixed a crash when using the CURLOPT_WRITEHEADER option. (Sterling)
  • Added optional suffix removal parameter to basename(). (Hartmut)
  • Added new parameter UDM_PARAM_VARDIR ha in Udm_Set_Agent_Param() function to support alternative search data directory. This requires mnogoSearch 3.1.13 or later.
  • Fixed references in sessions. This doesn't work when using the WDDX session-serializer. Also improved speed of sessions. (Thies)
  • Added new experimental module pcntl (Process Control). (Jason)
  • Fixed a bug when com.allow_dcom is set to false. (phanto)
  • Added a further parameter to the constructor to load typelibs from file when instantiating components (e.g. DCOM Components without local registration). (phanto)
  • Added the possibility to specify typelibs by full name in the typelib file (Alan Brown)
  • Renamed the ZZiplib extension to the Zip extension, function names have also changed accordingly, functionality, has stayed constant. (Sterling)
  • Made the length argument (argument 2) to pg_loread() optional, if not specified data will be read in 1kb chunks. (Sterling)
  • Added a third argument to pg_lowrite() which is the length of the data to write. (Sterling)
  • Added the CONNECTION_ABORTED, CONNECTION_TIMEOUT and CONNECTION_NORMAL constants. (Zak)
  • Assigning to a string offset beyond the end of the string now automatically increases the string length by padding it with spaces, and performs the assignment. (Zeev, Zend Engine)
  • Added warnings in case an uninitialized string offset is read. (Zeev, Zend Engine)
  • Fixed a couple of overflow bugs in case of very large negative integer numbers. (Zeev, Zend Engine)
  • Fixed a crash bug in the string-offsets implementation (Zeev, Zend Engine)
  • Improved the implementation of parent::method_name() for classes which use run-time inheritance. (Zeev, Zend Engine)
  • Added 'W' flag to date() function to return week number of year using ISO 8601 standard. (Colin)
  • Made the PostgreSQL driver do internal row counting when iterating through result sets. (gvz@2scale.net)
  • Updated ext/mysql/libmysql to version 3.23.39; Portability fixes, minor bug fixes. (tim@mysql.com)
  • Added get_defined_constants() function to return an associative array of constants mapped to their values. (Sean)
  • New mailparse extension for parsing and manipulating MIME mail. (Wez)
  • Define HAVE_CONFIG_H when building standalone DSO extensions. (Stig)
  • Added the 'u' modifier to printf/sprintf which prints unsigned longs. (Derick)
  • Improved IRIX compatibility. (Sascha)
  • Fixed crash bug in bzopen() when specifying an invalid file. (Andi)
  • Fixed bugs in the mcrypt extension that caused crashes. (Derick)
  • Added the IMG_ARC_ROUNDED option for the ImageFilledArc() function, which specified that the drawn curve should be rounded. (Sterling)
  • Updated the sockets extension to use resources instead of longs for the socket descriptors. The socket functions have been renamed to conform with the PHP standard instead of their C counterparts. The sockets extension is now usable under Win32. (Daniel)
  • Added disk_total_space() to return the total size of a filesystem. (Patch from Steven Bower)
  • Renamed diskfreespace() to disk_free_space() to conform to established naming conventions. (Jon)
  • Fixed #2181. Now zero is returned instead of an unset value for 7-bit encoding and plain text body type. (Vlad)
  • Fixed a bug in call_user_*() functions that would not allow calling functions/methods that accepted parameters by reference. (Andrei)
  • Added com_release($obj) and com_addref($obj) functions and the related class members $obj->Release() and $obj->AddRef() to gain more control over the used COM components. (phanto)
  • Added an additional parameter to dotnet_load to specify the codepage (phanto)
  • Added peak memory logging. Use --enable-memory-limit to create a new Apache 1.x logging directive "{mod_php_memory_usage}n" which will log the peak amount of memory used by the script. (Thies)
  • Made fstat() and stat() provide identical output by returning a numerical and string indexed array. (Jason)
  • Fixed memory leak upon re-registering constants. (Sascha, Zend Engine)