PHP Release 5.0.0


Source Code
Change Logs
fixed bug #28831 (arrayobject
  • Fixed bug #28851 (call_user_func_array has typo in error message).
fixed bug #28822 (arrayobject
  • Fixed bug #28789 (ReflectionProperty getValue() fails on public static members).
  • Fixed bug #28771 (Segfault when using xslt and clone).
  • Fixed bug #28751 (SoapServer does not call _autoload()).
  • Fixed bug #28739 (array_*diff() and array_*intersect() not clearing the fci cache before work).
  • Fixed bug #28721 and insertBefore() unset DOMText).(Rob)
  • Fixed bug #28702 (SOAP does not parse WSDL service address correctly).
  • Fixed bug #28699 (Reflection api bugs).
fixed bug #28694 (reflectionextension
  • Fixed bug #28512 (Allocate enough space to store MSSQL data).
  • Fixed strip_tags() to correctly handle '\0' characters.
  • Moved the PDFLib extension to PECL.
  • Added MySQL 4.1.2-alpha and 4.1.3-beta support to MySQLI extension.
  • Added support for dumping private/protected properties to var_dump().
  • Added count() support for COM arrays.
  • Added Firebird/InterBase UDF source that allows PHP functions to be called from SQL
  • Removed Firebird/Interbase function ibase_timefmt()
  • Changed user error handler mechanism to relay to built-in error handler if it returns false.
  • Changed class type hints for function parameters to not allow the passing of NULL values.
  • Changed tidy_node to tidyNode and removed tidy_exception.
  • Fixed ip2long() to return FALSE if an IP address passed to this function is not valid.
  • Fixed memory leak in memory manager.
  • Fixed problem with exceptions returning from include().
  • Fixed bug #28641 (Instance of Interface).
  • Fixed bug #28430 (Extending mysqli class).
  • Fixed bug #28311 (Transparency detection code is off by 1).
  • Fixed bug #28304 (Missing bounds check inside imagefilter()).
  • Fixed bug #28300 (Userspace stream/filter names forced to lowercase).
  • Fixed bug #28287 (stream_*_register() not calling __autoload()).
  • Fixed bug #28267 (php_image_filter_contrast calls gdImageBrightness).
  • Fixed bug #28239 (No results returned on SOAP call, no error given).
  • Fixed bug #28205 (num_rows property for statement object).
fixed bug #28161 (com
  • Fixed bug #28125 (ArrayObject leaks when accessing elements).
  • Fixed bug #28100 (NULL parameter support for mysqli_ssl_set).
  • Fixed bug #28099 (ArrayObject doesn't implement ArrayAccess).
fixed bug #27929 (spl
  • Fixed bug #27640 (memory leak of registered_zend_ini_directives).
fixed bug #27063 (spl
  • Implementing an interface/abstract method with the wrong prototype is now a fatal error.
  • Reimplemented zend.ze1_compatibility_mode to have better PHP 4 compliance.
under cli, fclose() on php
  • Moved yaz extension to PECL.
  • Added pty support to proc_open().
  • Added possibility to check in which extension an internal class was defined in using reflection API.
  • Changed tidy error handling to no longer use exceptions and renamed the "error_buf" property to errorBuffer.
  • Changed class and method names to use studlyCaps convention.
  • Changed language parser to throw errors when a non-empty signature is used in a destructor definition.
  • Changed HTTP file uploads not to throw E_WARNINGs and E_NOTICEs. The error value in the $_FILES global should be used for error handling.
  • Changed __construct() to always take precedence over old style constructor.
  • Fixed handling of return values from storred procedures in mssql_execute() with multiple result sets returned.
  • Fixed bug #28096 (stream_socket_accept() doesn't work with ssl).
  • Fixed bug #28007 (compile mssql extension with old versions of FreeTDS fails).
fixed bug #27997 (spl
  • Fixed bug #27974 (COM doesn't pass array parameters).
  • Fixed bug #27928 (sqlite incorrectly handles invalid filenames).
  • Fixed bug $27923 (in some cases using foreach() to iterate over values led to a false error message about the key being a reference).
  • Fixed bug #27865 (STDIN, STDOUT, STDERR are dup()d under CLI).
  • Fixed bug #27821 (xml_parse() segfaults when xml_set_object() is called from class method).
  • Fixed bug #27742 (WDSL SOAP Parsing Schema bug).
  • Fixed bug #27722 (Segfault on schema without targetNamespace).
  • Fixed bug #27719 (mktime issues on and around DST changeover).
  • Fixed bug #27681 (soap extension fails without HAVE_TM_GMTOFF).
  • Fixed bug #27641 (Object cloning in ze1_compatibility_mode was reimplemented)
  • Fixed bug #27628 (Simplify the process of making a POST request via stream context).
  • Fixed bug #27619 (filters not applied to pre-buffered stream data).
  • Fixed bug #27519 (Reflection_Function constructor crashes with non-existant function's name).
  • Fixed bug #27457 (handling of numeric indexes in strtr()).
  • Fixed bug #27397 (debug_backtrace() not showing function arguments).
  • Fixed bug #27283 (The last catch statement was sometimes skipped).
  • Fixed bug #26441 (When __set() returned a value it corrupted it).
  • Fixed bug #19749 (shouldn't mmap() files larger than memory_limit).
  • Fixed numerous bugs with the just-in-time auto-global initialization, that could cause $_SERVER, $argv/$argc and other variables not to work properly.
  • Fixed data corruption with constant assignments to object properties.
  • Changed __toString() to be called automatically only with print and echo statements.
  • Replaced the exec_finished hook by the zend_post_deactive hook for extensions. The new hook will be run after the symbol table and destructors are run.
  • Fixed possible crash when internal get_method() is not defined.
  • Fixed calling methods using call_user_func() in conjunction with the array("Class","Method") syntax to use the scope of the PHP user function.
  • Fixed php-cgi to not ignore command-line switches when run in a web context. This fixes our test cases allowing INI with GET sections to work.
  • Fixed getopt() so it works without $_SERVER.
  • Added support for PHP 4 style object comparisons which is enabled in ze1_compatiblity_mode.
  • Added support for PHP 4 style object conversion to long, double, and boolean values which is enabled in ze1_compatibility_mode.
  • Allow object oriented extensions to overload comparison functions and other operations. Solves problems using SimpleXML values.
  • Fixed crash when accessing a class constant with a value which in turn is also a constant.
  • Fixed object's truth value conversion. It is always true unless ze1_compatibility_mode is on in which it behaves like in PHP 4.
  • Improved out of memory handling in new memory manager.
  • Fixed crash when an object references itself during destructor call.
  • Fixed crash in foreach() when iterating over object properties or a method's return values.
  • Fixed crash when an exception is thrown in a destructor. Such exceptions are now ignored as destruction happens out of context at no definite time.
  • Fixed crashes in exception handling.
  • Changed prototype checks so that they aren't done on constructors.
  • Changed prototype checks to output an E_STRICT message instead of an E_COMPILE_ERROR.
changed iterator
  • Upgraded bundled oniguruma library to version 2.2.2.
  • Added mb_list_encoding() to return an array with all mbstring supported encodings.
  • Added support for more ISO8601 datetime formats in strtotime().
  • Timezone specifier
  • Week specifier
  • Renamed php.ini option "zend2.implicit_clone" to "zend.ze1_compatibility_mode" as it doesn't only affect implicit cloning.
  • Methods that override parent methods are now subject to prototype checking, and have to be compatible with the method they're overriding - this check is disabled in compatibility mode.
  • Fixed crash in php_ini_scanned_files() when no additional INI files were actually parsed.
  • Fixed bug in gdImageFilledRectangle in the bundled GD library, that required x1 < x2 and y1 < y2 for coordinates.
  • Fixed crash with foreach() and temporary objects($obj->method()->a ...) where method returns a non-referenced object.
  • Fixed problem preventing startup errors from being displayed.
  • Fixed start-up problem if both SPL and SimpleXML were enabled. The double initialization of apache 1.3 was causing problems here.
  • Fixed bug #27606 (Expression must be a modifiable lvalue compiler error).
  • Fixed bug #27597 (pg_fetch_array not returning false).
fixed bug #27586 (arrayobject
  • Fixed bug #27537 (Objects pointing to each other segfaults).
  • Fixed bug #27535 (Problem with object freeing mechanism).
  • Fixed bug #27504 (Visibility bugs in call_user_function()).
  • Fixed bug #27338 (memory leak inside tsrm_virtual_cwd.c on win32).
  • Fixed bug #27291 (get_browser matches browscap.ini patterns incorrectly).
  • Fixed bug #27287 (wddx segfaults during deserialization).
  • Fixed bug #27263 (session extension crashes when unserializing referenced values / objects).
  • Fixed bug #27237 (Working with simplexml crashes apache2).
  • Fixed bug #27227 (Mixed case class names causes Fatal Error in Constructor call).
  • Fixed bug #27125 (strval() doesn't work for objects with __toString()).
  • Fixed bug #27123 (Fix crash caused by bug in get_object_vars()).
  • Fixed bug #26677 (mbstring compile errors with IRIX compiler).
  • Fixed bug #26206 (register_long_arrays breaks superglobals).
  • Fixed bug #25724 (argv and argc not defined).
  • Changed exceptions so that they must now inherit from the built-in Exception class. This allows for a general catch(Exception $e) statement to catch all exceptions.
  • Added SPL extension.
  • Added checks for invalid characters in a cookie name and cookie data into set[raw]cookie().
  • Added support for ++ and += (and similar) to SimpleXML.
  • Added infrastructure for ++ and += (and similar) to object overloading modules.
  • Added error message when trying to re-assign to $this variable.
  • Added support for an interface to extend another interface.
added new pspell functions
  • pspell_config_dict_dir()
  • pspell_config_data_dir()
added new interbase functions
  • ibase_service_attach() and ibase_service_detach().
  • ibase_backup() and ibase_restore().
  • ibase_maintain_db(), ibase_db_info() and ibase_server_info().
  • Added context option "http"/"request_fulluri" to send entire URI in request which is required format for some proxies.
  • Added optional third parameter 'strict' to array_keys().
  • Added stream_lock() method to userspace streams interface.
  • Added xsltprocessor->registerPHPFunctions().
  • Readded support for using classes before they are declared according to the behavior in PHP 4. This won't work with classes who are using PHP 5 features such as interfaces.
  • Completely overhauled SimpleXML extension.
  • Upgraded bundled SQLite library to version 2.8.11.
  • Improved destructor implementation to always call destructors on clean shutdown. An order of destruction is not guaranteed.
  • Redesigned exception support. This fixes many bugs in the previous design such as nested try's and problems with overloaded extensions.
  • Redesigned clone by adding a clone keyword (clone $obj) and copying all properties before __clone() is called. Also allows calling parent __clone function by using parent::__clone().
  • Fixed interfaces to check for function return-by-reference equality when inheriting and implementing interfaces.
  • Fixed foreach() to respect property visibility.
  • Fixed problem with parse error in include() file not stopping PHP's execution.
  • Fixed var_export() to show public, protected and private modifiers properly.
  • Fixed problems with longlong values in mysqli.
  • Fixed class name case preserving of user defined classes.
  • Fixed bug #27145 (Unmangle private/protected property names before printing them inside error messages).
  • Fixed bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into octets).
fixed bug #27042 (spl
  • Fixed bug #27008 (Every class method can be called as static).
  • Fixed bug #26938 has problems reading long lines). (Ilia, runekl[at]opoint[dot]com
fixed bug #26947 (ext/dom
  • Fixed bug #26911 (crash in sqlite extension when fetching data from empty queries).
fixed bug #26844 (ext/mime_magic
  • Fixed bug #26819 (http_build_query() crashes on NULL output).
  • Fixed bug #26817 (http_build_query() does not handle private & protected object properties correctly).
  • Fixed bug #26815 (foreach of (DOM) childnodes crashes when Xinclude is used).
  • Fixed bug #26796 (SQLite causes crashes with other extensions *connect() calls).
  • Fixed bug #26762 (unserialize() produces lowercase classnames).
  • Fixed bug #26743 (getElementsByTagName doesn't work properly).
  • Fixed bug #26736 (__autoload not invoked for parent classes).
fixed bug #26723 (domnode
  • Fixed bug #26697 (calling class_exists() on a nonexistent class in __autoload results in segfault).
  • Fixed bug #26696 (string index in a switch() crashes with multiple matches).
  • Fixed bug #26695 (Reflection API does not recognize mixed-case class hints).
  • Fixed bug #26690 (make xsltProcessor->transformToUri use streams wrappers).
  • Fixed bug #26680 (Added version check in mysqli_report_index).
  • Fixed bug #26675 (Segfault on ArrayAccess use).
  • Fixed bug #26640 (__autoload() not invoked by Reflection classes).
  • Fixed bug #26543 (call_user_func() broken for self, parent).
  • Fixed bug #26077 (memory leak when new() result is not assigned and no constructor is defined).
  • Fixed bug #26065 (Crash when nesting classes).
  • Fixed bug #25816 (disallow arrays in class constants).
  • Fixed bug #25329 (sqlite_create_function with method and reference to $this).
  • Fixed bug #25038 (call_user_func() issues a warning if function throws an exception).
  • Fixed bug #24608 (__set not triggered when overloading with array).
  • Fixed bug #24243 (enabling browscap causes segfault).
  • Bundled new tidy extension
  • Upgraded PCRE library to version 4.5.
  • Dropped Windows 95 support.
moved extensions to pecl
  • ext/crack
  • ext/db
  • ext/mcal
  • ext/qtdom
  • ext/notes
  • Added 'c' modifier to date() which returns the date in the ISO 8601 format.
  • Added an optional parameter to microtime() to get the time as float.
  • Added MacRoman encoding support to htmlentities().
  • Added possibility to call PHP functions as XSLT-functions.
  • Added possibility to prevent PHP from registering variables when input filter support is used.
  • Added iconv stream filter (convert.iconv.*).
  • Added EXSLT support in ext/xsl.
  • Added qdbm handler for dba extension.
added new functions
  • dba_key_split() to split inifile keys in an array.
  • time_nanosleep() signal safe sleep
  • headers_list().
  • php_strip_whitespace(). strip whitespace & comments from a script.
  • php_check_syntax(). check php script for parse errors.
  • image_type_to_extension(). return extension based on image type.
  • stream_socket_sendto() and stream_socket_recvfrom().
  • iconv_mime_decode_headers().
  • get_declared_interfaces().
  • sqlite_fetch_column_types().
  • setrawcookie().
  • pg_version().
  • dbase_get_header_info().
  • snmp_read_mib().
  • http_build_query().
  • ftp_alloc().
  • array_udiff().
  • array_udiff_assoc().
  • array_udiff_uassoc().
  • array_diff_uassoc().
  • convert_uuencode().
  • convert_uudecode().
  • substr_compare().
  • pcntl_wait().
added proxy support to http
  • Added rename(), rmdir() and mkdir() support to userstreams.
added rename(), rmdir() and mkdir() support to ftp
  • Changed rename(), rmdir() and mkdir() to be routed via streams API.
  • Changed stat() and family to be routed via streams API.
  • Fixed include_once() / require_once() on Windows to honor case-insensitivity of files.
  • Fixed get_declared_classes() to return only classes.
  • Fixed __autoload() to preserve case of the passed class name.
  • Fixed bug #26615 ()
  • Fixed bug #26591 ("__autoload threw an exception" during an uncaught).
  • Fixed bug #26534 (stream_get_meta_data() -> Access Violation).
  • Fixed bug #26528 (HTML entities are not being decoded by xml_parse()/xml_parse_into_struct()).
  • Fixed bug #26182 (Object properties created redundantly).
  • Fixed bug #26156 (REPLACE_ZVAL_VALUE works on uninit stack-based zvals).
  • Fixed bug #26083 (Non-working write support in ext/dom).
  • Fixed bug #26072 (--disable-libxml does not work).
  • Fixed bug #26001 (serialize crashes when accessing an overloaded object that has no properties (NULL hashtable)).
  • Fixed bug #25664 (COM crashes when calling a Delphi implementations of ITypeInfo).
  • Fixed bug #24837 (Incorrect behaviour of PPP using foreach).
  • Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from inside the script).
  • Fixed bug #24394 (Serializing cross-referenced objects causes segfault).
lots and lots of changes in the zend engine 2 since beta 1
  • Added Iterators
  • Improved memory manager
  • Added Reflection API
  • Removed the not so working namespaces support
  • Removed support for expressions within constant declarations.
  • You can read about most changes in ZEND_CHANGES under the Zend directory.
improved the dbx extension
  • Added DBX_RESULT_UNBUFFERED flag for dbx_query().
  • Added dbx_fetch_row()
  • Added SQLite support.
improved the interbase extension
  • Added support for multiple databases into ibase_trans()
  • Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE PROCEDURE statements into ibase_query()
  • Added ability to bind PHP arrays to native Interbase arrays
  • Added ibase_commit_ret() and ibase_rollback_ret()
  • Added ibase_drop_db()
  • Added ibase_gen_id()
  • Added ibase_name_result()
  • Added ibase_errcode()
  • Added ibase_affected_rows() and ibase_num_params()
  • Added ibase_param_info()
  • Added ibase_wait_event()
  • Added ibase_set_event_handler() and ibase_free_event_handler()
  • Added new COM extension with integrated .Net support.
added "resume_pos" context option to "ftp
  • Added optional parameter to OCIWriteTemporaryLob() to specify the type of LOB (Patch by Novicky Marek <novicky@aarongroup.cz>).
  • Added reflection API.
  • Changed length parameter in fgetcsv() to be optional.
  • Fixed IPv6 support in MacOSX Panther.
  • Fixed fgetcsv() to correctly handle international (non-ascii) characters.
  • Fixed support for <![CDATA[]]> fields within XML documents in ext/xml.
  • Fixed visibility of __construct and __clone.
  • Fixed bug #25756 (SimpleXML's validate_schema_file() broken).
  • Fixed bug #25581 (getimagesize() returns incorrect values on bitmap (os2) files).
  • Fixed bug #25494 (array_merge*() allows non-arrays as argument).
  • Fixed bug #24766 (strange result array from unpack()).
  • Fixed bug #24729 ($obj = new $className; causes crash when $className is not set).
  • Fixed bug #24565 (cannot read array elements received via $_REQUEST).
  • Fixed bug #24445 (get_parent_class() returns different values).
fixed bug #24403 (preg_replace() problem
  • Fixed bug #24399 (PEAR DB isError crash [instanceof_function fault?]).
  • Fixed bug #24396 (foreach ($k=>$v), the key $k is missing).
  • Fixed bug #24279 (__get() crash when no value is returned).
  • Fixed bug #22367 (undefined variable has a value).
  • Fixed bug #19859 (allow fast_call_user_function to support __call).
  • Fixed bug #17997 (Warning when switch() and reference are combined).
  • Fixed bug #17988 (strtotime failed to parse postgresql timestamp).
  • Removed the bundled MySQL client library.
  • Switched to Zend Engine 2, which includes numerous engine level improvements. A full list is available at http://www.php.net/zend-engine-2.php.
added sqlite (http
  • Includes bundled SQLite library
  • Enabled by default
completely overhauled xml support
  • New simplexml extension.
  • New DOM extension.
  • New XSL extension.
  • Moved the old DOM-XML and XSLT extensions to PECL.
  • ext/xml can now use either libxml2 or expat to parse XML.
  • Removed bundled expat library.
new php.ini options
  • "session.hash_function" and "session.hash_bits_per_character".
  • "mail.force_extra_paramaters".
  • "register_long_arrays".
  • Improved the speed of internal functions that use callbacks by 40% due to a new internal fast_call_user_function() function.
improved the streams support
  • Improved performance of readfile(), fpassthru() and some internal streams operations under Win32.
  • stream_socket_client() - similar to fsockopen(), but more powerful.
  • stream_socket_server() - Creates a server socket.
  • stream_socket_accept() - Accept a client connection.
  • stream_socket_get_name() - Get local or remote name of socket.
  • stream_copy_to_stream()
  • stream_get_line() - Reads either the specified number of bytes or until the ending string is found.
  • Added context property to userspace streams object.
  • Added generic crypto interface for streams.
  • Added lightweight streaming input abstraction to the Zend Engine scanners to provide uniform support for include()'ing data from PHP streams across all platforms.
  • Added 'string.base64' stream filter.
  • Renamed stream_register_wrapper() to stream_wrapper_register().
improved the gd extension
  • imagefilter() - Apply different filters to image.
  • Antialiased drawing support: o imageantialias() - active antialias o imageline() and imagepolygon() antialias support
  • Changed the length parameter in fgetss() to be optional.
  • Changed ini parser to allow for handling of quoted multi-line values.
  • Changed get_extension_funcs() to return list of the built-in Zend Engine functions if "zend" is specified as the module name.
  • Changed array_search() to accept also objects as a needle.
  • Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater.
  • Changed uniqid() parameters to be optional and allow any prefix length.
  • Added new iconv functions.
  • iconv_strlen()
  • iconv_substr()
  • iconv_strpos()
  • iconv_strrpos()
  • iconv_mime_decode()
  • iconv_mime_encode()
added misc. new functions
  • ldap_sasl_bind().
  • imap_getacl().
  • file_put_contents().
  • proc_nice() - Changes priority of the current process.
  • pcntl_getpriority() and pcntl_setpriority().
  • idate(), date_sunrise() and date_sunset().
  • strpbrk() - Searches a string for a list of characters.
  • get_headers() - Returns headers sent by the server of the specified URL.
  • str_split() - Breaks down a string into an array of elements based on length.
  • array_walk_recursive().
  • array_combine().
  • Added optional parameter to get_browser() to make it return an array.
  • Added optional parameter to openssl_sign() to specify the hashing algorithm.
  • Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which makes them return the digest as binary data.
  • Added optional parameter to mkdir() to make directory creation recursive.
  • Added optional parameter to file() which makes the result array not contain the line endings and to skip empty lines.
added new range() functionality
  • Support for float modifier.
  • Detection of numeric values inside strings passed as high & low.
  • Proper handle the situations where high == low.
  • Added an optional step parameter.
  • Added encoding detection feature for expat XML parser.
  • Added missing multibyte (unicode) support and numeric entity support to html_entity_decode().
  • Added IPv6 support to ext/sockets.
added context options 'method', 'header' and 'content' for "http
  • Added input filter support. See README.input_filter for more info.
  • Added a replace count for str_[i]replace(), see bug #8218.
  • Fixed is_executable() to be available also on Windows.
  • Fixed dirname() and strip_tags() to be binary-safe.
  • Fixed bug #24098 (crash in pathinfo()).
  • Fixed bug #21985 and #22064 (various mb_send_mail() issues).
  • Fixed bug #21600 (Assign by reference function call changes variable contents).
To Top