PHP 5 ChangeLog
Version 5.0.0 Beta 3
21-Dec-2003
- Bundled new tidy extension (John, Wez)
- Upgraded PCRE library to version 4.5. (Andrei)
- Dropped Windows 95 support. (Andi)
- Moved extensions to PECL:
- ext/crack (Jani, Derick)
- ext/db (Jani, Derick)
- ext/mcal (Jani, Derick)
- ext/qtdom (Jani, Derick)
- ext/notes (Wez)
- Added 'c' modifier to date() which returns the date in the ISO
8601 format. (Derick, Manuzhai)
- Added an optional parameter to microtime() to get the time as
float. (Andrey)
- Added MacRoman encoding support to htmlentities(). (Derick,
Marcus Bointon)
- Added possibility to call PHP functions as XSLT-functions.
(Christian)
- Added possibility to prevent PHP from registering variables when
input filter. support is used. (Derick)
- Added iconv stream filter (convert.iconv.*). (Moriyoshi)
- Added EXSLT support in ext/xsl. (Christian)
- Added qdbm handler for dba extension. (mg at iceni dot pl, Marcus)
- Added new functions:
- dba_key_split() to split inifile keys in an array. (Marcus)
- time_nanosleep() signal safe sleep (Magnus, Ilia)
- headers_list(). (Sara)
- php_strip_whitespace(). strip whitespace & comments from a
script. (Ilia)
- php_check_syntax(). check php script for parse errors. (Ilia)
- image_type_to_extension(). return extension based on image type.
(Ilia)
- stream_socket_sendto() and stream_socket_recvfrom(). (Wez)
- iconv_mime_decode_headers(). (Moriyoshi)
- get_declared_interfaces(). (Andrey, Marcus)
- sqlite_fetch_column_types(). (Ilia)
- Added proxy support to http:// wrapper. (Sara)
- Added rename(), rmdir() and mkdir() support to userstreams.
(Sara)
- Added rename(), rmdir() and mkdir() support to ftp:// wrapper.
(Sara)
- Changed rename(), rmdir() and mkdir() to be routed via streams
API. (Sara)
- Changed stat() and family to be routed via streams API. (Sara)
- Fixed include_once() / require_once() on Windows to honor
case-insensitivity; of files. (Andi)
- Fixed get_declared_classes() to return only classes. (Andrey,
Marcus)
- Fixed __autoload() to preserve case of the passed class name.
(Andi)
- Fixed bug #26615 () (runekl at opoint dot com, Derick)
- Fixed bug #26591 ("__autoload threw an exception" during an
uncaught). (Marcus)
- Fixed bug #26534 (stream_get_meta_data() -> Access Violation).
(Wez)
- Fixed bug #26528 (HTML entities are not being decoded by
xml_parse()/xml_parse_into_struct()). (Ilia)
- Fixed bug #26182 (Object properties created redundantly). (Andi)
- Fixed bug #26156 (REPLACE_ZVAL_VALUE works on uninit stack-based
zvals). (Moriyoshi)
- Fixed bug #26083 (Non-working write support in ext/dom). (Ilia)
- Fixed bug #26072 (--disable-libxml does not work). (Jani)
- Fixed bug #26001 (serialize crashes when accessing an overloaded
object that has no properties (NULL hashtable)). (Wez)
- Fixed bug #25664 (COM crashes when calling a Delphi implementations
of ITypeInfo). (Wez)
- Fixed bug #24837 (Incorrect behaviour of PPP using foreach).
(Marcus)
- Fixed bug #24693 (Allow session.use_trans_sid to be
enabled/disabled from inside the script). (Ilia)
- Fixed bug #24394 (Serializing cross-referenced objects causes
segfault). (Moriyoshi)
Version 5.0.0 Beta 2
30-Oct-2003
- 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 declerations.
- You can read about most changes in ZEND_CHANGES under the Zend
directory.
- Improved the DBX extension: (Marc)
- Added DBX_RESULT_UNBUFFERED flag for dbx_query().
- Added dbx_fetch_row()
- Added SQLite support.
- Improved the Interbase extension: (Ard Biesheuvel)
- Added support for multiple databases into ibase_trans()
- Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE
PROCEDURE statements into ibase_query()
- 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. (Wez)
- Added new functions:
- setrawcookie(). (Brian)
- pg_version(). (Marcus)
- dbase_get_header_info(). (Zak)
- snmp_read_mib(). (Jani)
- http_build_query(). (Sara)
- ftp_alloc(). (Sara)
- array_udiff(). (Andrey)
- array_udiff_assoc(). (Andrey)
- array_udiff_uassoc(). (Andrey)
- array_diff_uassoc(). (Andrey)
- convert_uuencode(). (Ilia)
- convert_uudecode(). (Ilia)
- substr_compare(). (Ilia)
- pcntl_wait(). (GeorgeS)
- Added "resume_pos" context option to "ftp://" wrapper. (Sara)
- Added optional parameter to OCIWriteTemporaryLob() to specify
the type of LOB (Patch by Novicky Marek <novicky@aarongroup.cz>).
(Thies)
- Added reflection API. (Andrei, George, Timm)
- Changed length parameter in fgetcsv() to be optional. (Moriyoshi)
- Fixed IPv6 support in MacOSX Panther. (Dan, Marko)
- Fixed fgetcsv() to correctly handle international (non-ascii)
characters. (Moriyoshi)
- Fixed support for <![CDATA[]]> fields within XML documents
in ext/xml. (Sterling)
- Fixed visibility of __construct and __clone. (Marcus)
- Fixed bug #26003 (fgetcsv() not binary-safe on null bytes).
(Moriyoshi)
- Fixed bug #25756 (SimpleXML's validate_schema_file() broken).
(Moriyoshi)
- Fixed bug #25581 (getimagesize() returns incorrect values on
bitmap (os2) files). (Marcus)
- Fixed bug #25494 (array_merge*() allows non-arrays as argument).
(Jay)
- Fixed bug #24766 (strange result array from unpack()). (Moriyoshi)
- Fixed bug #24729 ($obj = new $className; causes crash when
$className is not set). (Marcus)
- Fixed bug #24565 (cannot read array elements received via
$_REQUEST). (Zeev)
- Fixed bug #24445 (get_parent_class() returns different values).
(Sterling, Stanislav)
- Fixed bug #24403 (preg_replace() problem: Using $this when not
in object context). (Zeev)
- Fixed bug #24399 (PEAR DB isError crash [instanceof_function
fault?]). (Sterling, Marcus)
- Fixed bug #24396 (foreach ($k=>$v), the key $k is missing). (Zeev)
- Fixed bug #24279 (__get() crash when no value is returned). (Ilia)
- Fixed bug #22367 (undefined variable has a value). (Zeev)
- Fixed bug #19859 (allow fast_call_user_function to support __call).
(Stanislav)
- Fixed bug #17997 (Warning when switch() and reference are combined).
(Zeev)
- Fixed bug #17988 (strtotime failed to parse postgresql timestamp).
(Derick)
Version 5.0.0 Beta 1
29-Jun-2003
- Switch to using Zend Engine 2, which includes numerous engine level improvements.
A full list is available at http://www.php.net/zend-engine-2.php.
- The SQLite (http://www.hwaci.com/sw/sqlite/) extension is now bundled and
enabled by default. (Wez, Marcus, Tal)
- Improved the speed of internal functions that use callbacks by 40% due to a
new internal fast_call_user_function() function. (Sterling)
- Completely Overhauled XML support (Rob, Sterling, Chregu, Marcus)
- Brand new Simplexml extension
- New DOM extension
- New XSL extension
- Moved the old DOM-XML and XSLT extensions to PECL
- ext/xml can now use both libxml2 and expat to parse XML
- Removed bundled expat
- Removed the bundled MySQL client library. (Sterling)
- New php.ini options:
- "session.hash_function" and "session.hash_bits_per_character". (Sascha)
- "mail.force_extra_paramaters". (Derick)
- "register_long_arrays". (Zeev)
- Improved the streams support: (Wez, Sara, Ilia)
- 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 (supports dynamic loading of
OpenSSL)
- 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().
- Added "ftp://" wrapper support to opendir(), stat() and unlink().
- Added context options 'method', 'header' and 'content' for "http://" fopen
wrapper.
- Improved the GD extension: (Pierre-Alain Joye, Ilia)
- imagefilter() - Apply different filters to image. (Only available
with bundled GD library)
- Antialiased drawing support:
- imageantialias() - (de)active antialias
- imageline() and imagepolygon() antialias support
- Changed the length parameter in fgetss() to be optional. (Moriyoshi)
- Changed ini parser to allow for handling of quoted multi-line values. (Ilia)
- Changed get_extension_funcs() to return list of the built-in Zend Engine
functions if "zend" is specified as the module name. (Ilia)
- Changed array_search() to accept also objects as a needle. (Moriyoshi)
- Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater. (Derick)
- Changed uniqid() parameters to be optional and allow any prefix length. (Marcus)
- Added new iconv functions. (Moriyoshi)
- iconv_strlen()
- iconv_substr()
- iconv_strpos()
- iconv_strrpos()
- iconv_mime_decode()
- iconv_mime_encode()
- Added misc. new functions:
- ldap_sasl_bind(). (peter_c60@hotmail.com, Jani)
- imap_getacl(). (Dan, Holger Burbach)
- file_put_contents(). (Sterling)
- proc_nice() - Changes priority of the current process. (Ilia)
- pcntl_getpriority() and pcntl_setpriority(). (Ilia)
- idate(), date_sunrise() and date_sunset(). (Moshe Doron)
- strpbrk() - Searches a string for a list of characters. (Ilia)
- get_headers() - Returns headers sent by the server of the specified URL. (Ilia)
- str_split() - Breaks down a string into an array of elements based on length. (Ilia)
- array_walk_recursive(). (Ilia)
- array_combine(). (Andrey)
- Added optional parameter to get_browser() to make it return an array. (Jay)
- Added optional parameter to openssl_sign() to specify the hashing algorithm.(scott@planetscott.ca, Derick)
- Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which
makes them return the digest as binary data. (Michael Bretterklieber, Derick)
- Added optional parameter to mkdir() to make directory creation recursive. (Ilia)
- Added optional parameter to file() which makes the result array not contain
the line endings and to skip empty lines. (Ilia)
- Added new range() functionality:
- Support for float modifier. (Ilia)
- Detection of numeric values inside strings passed as high & low. (Ilia)
- Proper handle the situations where high == low. (Ilia)
- Added an optional step parameter. (Jon)
- Added encoding detection feature for expat XML parser. (Adam Dickmeiss, Moriyoshi)
- Added missing multibyte (unicode) support and numeric entity support to
html_entity_decode(). (Moriyoshi)
- Added IPv6 support to ext/sockets. (Sara)
- Added input filter support. See README.input_filter for more info. (Rasmus)
- Added a replace count for str_[i]replace(), see bug #8218. (Sara)
- Fixed is_executable() to be available also on Windows. (Shane)
- Fixed dirname() and strip_tags() to be binary-safe. (Moriyoshi)
- Fixed bug #24098 (crash in pathinfo()). (Ilia)
- Fixed bug #21985 and #22064 (various mb_send_mail() issues). (Moriyoshi)
- Fixed bug #21600 (Assign by reference function call changes variable
contents). (Zeev)