diff options
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 2522 |
1 files changed, 0 insertions, 2522 deletions
@@ -1,2522 +0,0 @@ -PHP 4 NEWS -||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -? ? ??? 200?, Version 5.0.0 -- Moved extensions to PECL (http://pear.php.net/): (James, Tal) - . ext/fribidi -- Fixed bug #21600 (Assign by reference function call changes variable contents). - (Zeev) -- Fixed bug #22059 (ftp_chdir causes segfault). (Sara) -- Fixed bug #21985 and #22064 (various mb_send_mail() issues). (Moriyoshi) -- Fixed bug #20442 (upgraded bundled expat to 1.95.5). (Ilia) -- Fixed bug #20155 (xmlrpc compile problem with ZE2). (Derick, Jan Schneider) -- 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 is_executable() to be available also on Windows. (Shane) -- 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 "mail_force_extra_paramaters" php.ini option which forces the addition - of the specified parameters to be passed as extra parameters to the sendmail - binary. These parameters will always replace the value of the 5th parameter - to mail(), even in safe mode. (Derick) -- Added DBA handler 'inifile' to support ini files. (Marcus) -- Added filter support. See README.input_filter. (Rasmus) -- Added "session.hash_function" and "session.hash_bits_per_character". (Sascha) -- Added lightweight streaming input abstraction to the Zend Engine scanners - that provides uniform support for include()'ing data from PHP streams across - all platforms (Wez, Zend Engine). -- Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which - makes them return the digest as binary data. (Michael Bretterklieber, Derick) -- Added proc_nice() function. Changes priority of the current process. (Ilia) -- Added pcntl_getpriority() and pcntl_setpriority() functions. (Ilia) -- Added idate(), date_sunrise() and date_sunset() functions. (Moshe Doron) -- Added long options into CLI & CGI (e.g. --version). (Marcus) -- Added strpbrk() function. Searches a string for a list of characters. (Ilia) -- Added stream_get_line() function. Reads either the specified number of bytes - or until the ending string is found. (Ilia) -- 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 get_headers() function. Returns headers sent by the server of - the specified URL. (Ilia) -- Added str_split() function. Breaks down a string into an array of elements - based on length. (Ilia) -- Added array_walk_recursive() function. (Ilia) -- Added new command line parameters -B, -F, -R and -E which allow to process stdin - line by line (See php -h for more). (Marcus) -- Added string.base64 stream filter. (Moriyoshi) -- Added domxml_node_get_path(). (Lukas Schröder) -- Added iconv related functions. (Moriyoshi) - . iconv_strlen() - . iconv_substr() - . iconv_strpos() - . iconv_strrpos() - . iconv_mime_decode() - . iconv_mime_encode() -- Added new range() functionality. (Ilia) - . Support for float modifier. - . Detection of numeric values inside strings passed as high & low. - . Proper handle the situations where high == low. -- Added XBM support for bundled GD library. (Marcus) -- Added imagesavealpha() function. (Jukka Holappa, Pierre-Alain Joye) -- Added imagefilter() function. Allows application of various filters. - Only available with bundled GD. (Pierre-Alain Joye, Ilia) -- Added imageistruecolor(). Only available with GD2. (Pierre-Alain Joye) -- Added antialiased drawing support to bundled GD. (Pierre-Alain Joye, Ilia) - . imageantialias($im, $flag) to (de)active antialias - . imageline antialias support - . imagepolygon antialias support - -17 Feb 2003, Version 4.3.1 -- Fixed serious security vulnerability in CGI SAPI. (Shane) - -27 Dec 2002, Version 4.3.0 -- Make PHP_AUTH_* variables not available in safe mode under Apache when an - external basic auth mechanism is used. (Philip) -- Aliased dba_popen() to dba_open() until 4.3.2 when persistent STDIO streams - are introduced. (Andrei) -- Fixed a security bug in the bundled MySQL library. (Georg, Stefan) -- If you don't specify building any other SAPI "make install" will install the - CGI SAPI binary in {PREFIX}/bin/php. If you want to install CLI SAPI in that - location use "make install-cli" after "make install" or add --disable-cgi - to your configure options. In the Windows distribution CLI SAPI is included - in the "cli" folder. (Edin) -- Removed extensions: (Jan, Jani, Sebastian) - . ext/aspell - . ext/ccvs - . ext/icap - . sapi/fastcgi - . sapi/fhttpd -- Moved extensions to PECL (http://pear.php.net/): (James, Derick, George) - . ext/vpopmail - . ext/cybermut - . ext/cybercash -- ZLIB extension is now built-in in the Windows distribution. - External extension (php_zlib.dll) has been removed. (Edin) -- Fixed a crash when using invalid color index with imagecolortransparent(). - (Pierre-Alain Joye) -- Fixed bug #20987 (no handling for client certificates). (Ilia) -- Fixed bug #21039 (crash when not supplying an IV to mcrypt_generic_init). - (Derick) -- Fixed bug #20936 (openssl_pkey_get was broken). (jeroen@derks.it, Wez) -- Fixed bug #20927 (wordwrap crash). (Ilia) -- Fixed bug #20796 (when register_globals is on & arrays with same names are - passed via get/post/cookie the data inside $_GET/$_POST/$_COOKIE can would be - corrupted). (Ilia) -- Fixed bug #20725 (if the upload directory cannot be written to, the POST data - after the uploaded file is lost). (Ilia) -- Fixed bug #20865 (array_key_exists() fails to find NULL key). (Ilia) -- Fixed bug #20812 (ftp_get returned NULL on success, instead of TRUE). (Ilia) -- Fixed bug #20785 (crash when using pdf_open_memory_image() to load a - true-color image). (Ilia) -- Fixed a crash when converting between true-color images (png/jpeg) and - gd1/gd2 image formats, png/jpeg -> gd1/gd2 -> png/jpeg conversion now - works correctly. (Ilia, Pierre-Alain Joye) -- Fixed a memory leak in the bundled GD library inside - gdImageTrueColorToPalette(). (Ilia) -- Fixed bug #12776 (array_walk crash). (Moriyoshi) -- Fixed bug #20934 (htmlspecialchars returns latin1 from UTF-8). (Moriyoshi) -- Fixed bugs #20270, #15702, #18600 (segfaults in ext/java). (Tony J. White) -- Made bcmath extension thread safe. (Sander) -- Fixed bug #19566 (get_declared_classes() segfaults). (Moriyoshi, Marcus, Andi) -- Fixed bug #20381 (array_merge_recursive mangles input arrays). (Moriyoshi) -- Added -n command switch to cli and cgi version which allows to skip php.ini - parsing at startup. (Marcus, Wez) -- Fixed bug #19689 (absolute paths like /test/dir/ not working correctly). - (Ilia) -- Added "neutral" language entry to mbstring spec. (Moriyoshi) -- Changed bundled gd library to consider php.ini option memory_limit. (Marcus) -- Modified log() to accept multiple bases. (Jason) -- Fixed bugs #16190/18746 (ext/db: flatfile support with windows). (Marcus) -- Added gd_info() which returns an array of gd support information. (Marcus) -- Implemented features/changes requested in Bug #16960 (Timm): - . Added a new function sybase_unbuffered_query() - . Added a new function sybase_fetch_assoc() - . Added sybase_set_message_handler() which enables users to handle - server messages in a callback function - . Added an ini entry for deadlock retries - retrying deadlocks can cause - transaction state to break (sybct.deadlock_retry_count, - defaults to -1 "forever"). - . Fixed sybase_fetch_object() not to return objects with numeric members - . Fixed issues with identical fieldnames - . Made sybase_fetch_*() functions return correct datatypes - . Made phpinfo() section more verbose - . Made sybase_query() error messages more verbose -- Fixed bug #19935 (made OpenSSL file system operations abide by safe_mode - & open_basedir restrictions). (Ilia) -- Fixed bug #18868 (improved the check for availability of realpath()). (Ilia) -- Fixed width/height detection of bmp images using getimagesize() function on - big endian systems and added code to retrieve bmp bit depth. (Ilia) -- Fixed bug #20035 (line counting error when script starts with #! in - cgi/cli/fastcgi sapis). (Ilia) -- Fixed bug #20235 (incorrect handling of symlinks on ZTS build). (Ilia) -- Added sanity checks to headers_sent() & image_type_to_mime_type(). (Ilia) -- Added an aditional parameter to the jdtojewish() function which makes - the function return the symbolic hebrew name. (Moshe Doron, Derick) -- Fixed bug #20169 (implode() clobbers first argument). (Moriyoshi) -- Improved dba extension (Marcus) - . Added dba_handlers() that returns an array of installed handlers and - dba_list() that returns an associative array of open database files. - . Added bundled cdb support wich can be activated by --with-cdb without a - path. The bundled version supports cdb_make that allows writing cdb files. - . Added optional skip parameter to dba_fetch() to support multiple key-value - pairs with the same key for cdb handler. - . Added locking for those handlers that do not have their own locking. - . Added support for magic_quotes_runtime php.ini option. - . Added flatfile support what finally makes ext/db deprecated. -- Added imagerotate() which is available only when bundled libgd is used. - (Pierre-Alain Joye, Ilia) -- Fixed bug #17497 (mssql extension crashes if magic_quotes_runtime is on). - (Sterling) -- Remove $_FILES from $_REQUEST (import_request_variables is not modified), - this didn't work properly in the first place, and added confusion. (Sterling) -- Fix the socket_read() function on win32 to work in normal mode (reading to - the end of a line), as well as binary mode. (Sterling) -- Fixed bug #20110 (added sanity check to prevent include/require functions - from trying to include directories). (Ilia) -- Fixed bug #20108 (segmentation fault on printf("%1.1s", "string")). (Ilia) -- Added dbx_escape_string() function to dbx module. (Marc) -- Added Oracle (oci8) support to dbx module. (Marc) -- Updated FDF extension to work with Adode fdftk 5.0. (Hartmut) -- Added mb_strtolower() and mb_strtoupper(). (Moriyoshi) -- Fixed an infinite loop in setlocale() when only invalid locale names - were passed in the array. (patch by Pal Loberg, pallo@initio.no) -- Fixed bugs #19156 and #19544 (COM extension leaks memory and keeps - components referenced). (Harald) -- Added fribidi_get_charsets() and fribidi_charset_info() functions. (Tal) -- Added Oracle TIMESTAMP type to oci8 extension. (Thies) -- Fixed fgets($fp) to read until EOL when length parameter is not set. (Wez) -- Changed registry entries under "HKLM\SOFTWARE\PHP\Per Directory Values" to - work also with administrative directives such as safe_mode, open_basedir, - etc. (Claudio Felber) -- Added str_word_count() function which counts words inside a string. (Ilia) -- Added PGSQL_CONNECT_FORCE_NEW option to pg_connect() (Yasuo) -- Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to - indicate which iconv implementation is used. (Moriyoshi) -- Fixed bug #4232 (Added %e & %E support to printf/sprintf). (Ilia) -- Fixed bug #17580 (Allow ini parser to parse files >16K). (Ilia) -- Fixed bug #19649 (Sanity checks for browscap.ini parser). (Ilia) -- Added experimental patch to address problem with floats on various locales. - (Bug #17079). (Ilia) -- Fixed bug #19280 (imap_header fails with many To: addresses). (Ilia) -- Added mb_regex_set_options(). The Options parameters of various mbregex - functions are now deprecated. (Moriyoshi) -- Fixed bug #19482 (Segfault with PCRE and locale). (Andrei) -- Made ImageTruecolorToPalette() in bundled GD2 library actually work. (Rasmus) -- Fixed ImageCopy() in bundled GD2 library to handle copying from truecolor to - palette-based. (Wez, Rasmus) -- Added read-only GIF support for bundled GD2 library. (Rasmus) -- Made several adjustments to xslt extension (David Viner, Lehnar, Melvyn) - . Added xslt_set_object and xslt_setopt function - . Changed backend interaction with Sablotron library - . Fixed leak with error_print - . Made xslt_make_array() always set NULL on last index to signal array end. -- Changed the glue argument in implode() to be optional. If not specified, - defaults to "". (Sterling) -- Fixed fields argument to contain correct info for xslt_set_error_handler(). - (Patch by Lenar Lohmus) -- Added --with-config-file-scan-dir compile-time switch which specifies a - directory which will be scanned for *.ini files. (Rasmus) -- Added ob_get_clean() and ob_get_flush(). (Yasuo) -- Added ftp_ssl_connect() to ext/ftp for FTP over SSL support. (Stefan Esser) -- Made a few additions and changes to Apache 2 sapi. (Ilia) - . Added apache_response_headers(), apache_note(), apache_getenv() and - apache_setenv() functions. - . Added more detailed error reporting to apache_lookup_uri() and virtual(). - . Renamed getallheaders() to apache_request_headers() and made an alias for BC. - . Added php_apache_sapi_getenv() and php_apache_sapi_get_stat(). - . Added syntax-highlighting handling (.phps) -- Fixed strstr(), strchr() and strrchr() to be binary safe. (Andrey) -- Added array_diff_assoc() and array_intersect_assoc(). (Andrey) -- Fixed bug #17825 (ob_start() chunk size option didn't work well). (Yasuo) -- Fixed output buffer infinite loop when buffer_size became 0. (Marcus, Wez) -- Added getopt() for parsing command line options and arguments. (Jon) -- Added 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() and pg_get_pid(). (Yasuo) -- Fixed bug #17281 (Sanity checks for encoding sessions). (Ilia) -- Fixed bug #16995 and #19392 (Prevent crash if $HTTP_SESSION_VARS != ARRAY). - (Ilia) -- Fixed bug #19292 (open_basedir restriction problem). (Rasmus) -- Fixed bug #19366 (gdImageFill crashes when x & y are outside of - the image's boundries). (Ilia) -- Fixed bug #13936 (__FILE__ constant didn't contain full path). (Ilia) -- PHP now has a new stream system that allows it to do some clever stuff with - fopen() and fsockopen(). As a result: - . URL wrappers natively supports https:// URLs if you have compiled - OpenSSL support into PHP (shared extension does not support this). - . Added support for fopen("ftps://...", ...) which allows to connect to FTP - servers via SSL. (Stefan Esser) - . fsockopen() adds support for ssl:// and tls:// connections via TCP/IP - . copy($srcfilename, $destfilename) can now be used with URL wrappers - . zlib wrappers/streams can be used even on systems without fopencookie() - . Changed 'zlib:' fopen wrapper to 'compress.zlib://' and deprecate - 'zlib:' to avoid ambiguities when filenames have ':' characters. (Wez) - . Added 'compress.bzip2://' stream and wrapper support. - . Added user-space streams - it is now possible to define a class in PHP - code and register it as a URL wrapper. (stream_register_wrapper) - . Most extensions now support streams when passing files, which means - that those extensions will now also support URL wrappers. (Wez) - . Added URL-wrapper support to exif. (Marcus) - . Added memory stream support. (Marcus) - . Renamed: - 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() - As these functions can (in theory) work on any type of stream. (Wez) - . Raw POST data is now available as "php://input" stream. (Hartmut) - . fopen("php://output", "wb") returns a stream that writes to the output - buffer (like echo and print). (Wez) - . Added stream_context_create(), stream_context_set_params() and - stream_context_set_option and added an optional fourth parameter to - fopen() which accepts a stream context. Contexts allow sharing of - information between streams (a kind of "session") and setting - notification callbacks. (Wez) - . Made the "User-Agent" header sent by http:// and https:// wrappers - configurable in php.ini or via a stream context. (Sterling) - . Added stream_filter_prepend() and stream_filter_append() which apply - a filter to either the top or the bottom of a stream filter stack. - Implemented "string.rot13" filter as an example; more filters are - expected to follow in later releases and other extensions. (Wez) - . Added stream_select() which works like socket_select but works on - streams returned by fopen(), fsockopen() and pfsockopen() instead. (Wez) - . Added STDIN, STDOUT and STDERR constants for CLI sapi reflecting opened - streams to their respective standard I/O counterparts. (Edin) - . Added php.ini option "auto_detect_line_endings" which enables PHP to - detect Macintosh, Unix and Dos end-of-line characters in fgets() and - file(). Fixes bugs #16521 and #16708. (Wez) - . Fixed include(), require() and GD functions to work with remote files - under win32. - Fixed bug #18609 (ImageCreateFromJPEG can't fetch from a URL). (Wez) -- Fixed bug #18022 (fopen does not work with php://stdin anymore on Solaris). - (Wez) -- Added php.ini option "default_socket_timeout" to set the timeout limit for - PHP network streams. (kalowsky, ilia@prohost.org, Wez) -- Added file_get_contents() which returns the contents of a file as a string. - This function also supports the URL wrappers. (Wez) -- Fixed bug #19595 (Missing functions for GD2 format handling). (Edin) -- Fixed bug #19633 (Wrong directories in ext/ldap/config.m4). (Derick) -- Fixed bugs #17274 and #19627 (segfault in sem_remove). (Wez) -- Added mb_convert_case() function to the mbstring extension which can convert - strings between upper, lower and title case using Unicode mappings. - Fixed bug #19257 (strtolower & strtoupper does not work for UTF-8 strings). - (Wez) -- Fixed bug #18521 (htmlentities didn't warn about unsupported charsets). (Wez) -- Fixed bug #11643 (Session related, fix SID redefinition). (Ilia) -- Fixed bug #18556 (Scripting Engine, problem with locales like tr_TR). (Ilia) -- Changed y2k_compliance to default to 1 now. (Sascha) -- Added platform independent socket error constants for better error handling. (Jason) -- Update output of phpinfo() to use more CSS to reduce the file size, do - proper HTML escaping, and make it XHTML compliant. (Colin) -- Fixed compile errors in the FriBidi extension (Bug #16414). (Tal) -- Fixed bugs #7472, #12120 and #12989 as well as other potential problems - with strip_tags() function. (Ilia) -- Fixed bugs #17570 and #17957 (Regexps related). (Andrei, Ilia) -- Fixed bugs #18167 and #16859 (SEGV with session_decode). (Ilia) -- Fixed bugs #19573 and #13472 (Session, XHTML compliance and trans_sid). - (Sascha) -- Fixed bug #19570 (last character was missing in get_html_translation_table). - (Wez) -- Upgraded PCRE to version 3.9. (Wez) -- Fixed bug in OCIResult() which returned garbage when called on - empty result-sets. (Thies) -- Added ability to use Perl-style ${n} subpattern references in the - replacement string for preg_replace() (bug #18442). (Andrei) -- Fixed array_merge_recursive() to avoid problems with merging cyclical - arrays (bug #16064). (Andrei) -- Made function_exists() work properly with disabled functions. (Andrei) -- Added ability to extract() variables as references via OR'able EXTR_REFS - flag. (Andrei) -- Fixed a build failure with the OCI8 extension on Tru64. - (Patch by Michael Mauch, micahel.mauch@gmx.de) -- Added --disable-all configure option. (Jani) -- Backported debug_backtrace() from ZendEngine2. (Thies) -- Added html-free phpinfo() output for CLI. (Jan) -- Fixed socket_recvfrom() to be binary safe. (Jason) -- Changed mail() to use escape_shell_cmd() to allow multiple extra parameters - to the invocation of the mailer as used in the fifth parameter. (Derick) -- Changed cURL extension to require cURL version 7.9.8 (Derick) -- Added zend_execute_internal which is called like zend_execute but for - internal functions. (Thies) -- Changed pg_connection_status(), pg_connection_reset(), pg_connection_busy(), - pg_result_status() and pg_result_error() to silently return FALSE when - resource is not passed to them. (Yasuo) -- Fixed some mysql compile failures on 64 bit-OS. (Georg) -- Added warnings for deprecated mysql functions: - . mysql_create_db() - . mysql_drop_db() - . mysql_escape_string() -- Added XsltObject->result_dump_mem($result) for returning xslt-result directly - into a string and XsltObject->result_dump_file($result,$file[,$compression]) - for dumping into a file. (morus.walter@web.de, chregu) -- Made mime_magic and ZIP extensions available on Windows. (Edin) -- Added xslt_backend_version() and xslt_backend_name() for getting - information about the processor backend. (chregu) -- Added php.ini option "allow_webdav_methods" to allow handling of - WebDAV http requests within PHP scripts. (chregu) -- Added ImageColorMatch() and ImageLayerEffect() functions which are only - available when using the bundled GD library. (ttoohey) -- Made major improvents to the pcntl extension. (Jason) - . Greatly improved performance (signal callback mechanism uses ticks) - . Implemented object signal callback ability by using array($obj, $method) - . Added a restart parameter to pcntl_signal, which allows you to disable - the default of system call restarting -- Changed DomNode->next_sibling() and DomNode->previous_sibling() to return - NULL instead of false (W3C specs). (chregu) -- Changed DomNode->insert_before() and DomNode->append_child() to conform to - W3C specs (moving not copying nodes, accepting NULL as 2nd param). (chregu) -- Added DomNode->set_namespace(uri[,prefix]) (chregu) -- Fixed shuffle() to properly generate all possibilities. (Patch provided by - Adam <adam@trachtenberg.com>) -- Fixed DomNode->insert_before() to behave according to W3C spec - ie. new_child is moved, not copied. (chregu) -- Added some namespace support with DomNode->add_namespace(uri, prefix) - and DomDocument->create_element_ns(uri, nodename) (chregu) -- Added optional parameter to DomElement->node_name() for retrieving fully - qualified name (ie. namespace prefix). (chregu) -- Changed DomNode->child_nodes() to return empty array instead of false if no - child nodes are found. (chregu) -- Fixed a bug with handling the Expect header. (Patch by ilia@prohost.org) -- Fixed a bug in ODBC where closing the module caused a crash in the Windows - executable. (kalowsky) -- Fixed memory leaks in pack() and unpack(). (Patch by ilia@prohost.org) -- Added URLs to error messages which direct to a page describing the error or - function in question. (Derick, Wez, Marcus) -- Added odbc_data_source() functionality to identify DB ServerName, and a - description of it gathered from the DSN. (kalowsky) -- Fixed copy() to return TRUE with 0 byte files. (Patch by ilia@prohost.org) -- Added ob_list_handlers() which returns an array of all active output - handlers. (Marcus) -- Added mbstring encoding/decoding "HTML-ENTITIES". (Marcus) -- Added parameter 'L' for mb_http_input() to retrieve input encoding as a - comma separated string. (Marcus) -- Added the ability for declare() compiler modifications to occur globally - by using an empty statement. (Jason, Zend Engine) - i.e. - //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; - } -- Brought strtotime() "next" keyword handling in line with documentation and - its glibc cousin. (Rasmus) -- Fixed str_rot13() to not mangle source string. (Rasmus) -- Fixed imap_get_quota() to work with multiple returned resources as per - the RFC 2087 and bug #14673. (kalowsky, Sander Steffann) -- Added MarkerNote decoding to exif_read_data() for several Cameras. (Marcus) -- Disabled zlib.output_compression for "image/" content-type - headers which can be changed during script execution. (Stefan) -- Added new asynchronous FTP functions. (Stefan) -- Added optional 5th parameter to FTP functions to support resuming. (Stefan) -- Added optional 2nd parameter to print_r() to make it return the variable - representation instead of echoing it. (Derick) -- Added mysql_ping(), mysql_real_escape_string(), mysql_character_set_name(), - mysql_thread_id(), mysql_stat() and mysql_list_processes(). (Zak, Georg) -- Added safe_mode & open_basedir checks for pg_lo_export(). (Yasuo) -- Added open_basedir check for pg_lo_import(). (Yasuo) -- Fixed infinite recursion crash bug in ticks. (Jason) -- Added php.ini option "mysql.connect_timeout" to set the timeout limit for - mysql_connect() and mysql_pconnect(). (Georg) -- Added optional parameter "flags" to mysql_connect() and mysql_pconnect() - which can be used to set usage of idle timeout and different protocols, - SSL and compressed. (Georg) -- Added automatic rollback to ext/mysql for non committed transactions. (Georg) -- Fixed cases where preg_split() incorrectly terminated final element if it - contained null bytes. (Andrei) -- Added persistent connections/pipelining to thttpd. (Sascha) -- Fixed two potential blocking issues in thttpd. (Sascha) -- Fixed broken header file detection on Solaris. (Sascha) -- Improved nss/socket-related symbol/library detection. (Jani, Sascha) -- Made iconv() work well with both libiconv and libgconv. (Moriyoshi, Yasuo) -- Fixed socket_set_timeout() on win32. (Jason, Edin, Jani) -- Added domxml_node_namespace_uri(). (Rui Lopes) -- Fixed win32 memory leak in /ext/sockets that would occur on any error - condition. Also fixed host resolution error messages on win32. (Jason) -- Added optional 3rd parameter 'recursive' to ftp_rawlist() which will - do 'LIST -R' instead of 'LIST'. (Jani) -- Changed getimagesize() to always set unknown fields to 0 and added support - for iff imagetype. (Marcus) -- Added runtime Apache2 thread check to ensure we don't run a non-threaded - PHP inside a threaded Apache2 MPM. (Rasmus) -- Made getimagesize() and exif_read_data() to return also the mime-type and - exif_thumbnail() to return also the image-type. (Marcus) -- Added image_type_to_mime_type() which converts image-types to mime-types. - (Marcus) -- Made GD functions to only exist if they are available in libgd. Now the - availability can be tested with function_exists(). (Derick) -- Added an optional parameter to the header() function which overrides the HTTP - response code. (Derick) -- Changed the order of which modules are unloaded to the reverse order of - which they were loaded. (Derick, Zend Engine) -- Added preliminary SAX-Input support. It's now possible to build a DomDocument - with SAX-Events. (chregu) -- Bundled GD library 2.0.1 with php (ext/gd/libgd) (Rasmus, Jani, Markus, Edin) -- Fixed bug with Apache which let PHP_AUTH_* variables to be set when - external basic auth mechanism was used. (Jani) -- Fixed bzopen() crash in thread-safe mode. (Andrei) -- Added better error-messages (3rd parameter) and validating of DTDs (2nd - parameter) to domxml_open_mem() and domxml_open_file(). (Christian) -- Added domxml_doc_validate() for validating existing DomDocuments with a DTD. - (Christian) -- Added ability to capture string offsets in preg_match_*() results. - (David Brown, Andrei) -- Fixed set_error_handler() to accept methods as callbacks and also report - invalid callbacks. (Andrei) -- Fixed a memory corruption bug in overload extension. (Andrei) -- Fixed error handling in fsockopen() on win32. (Jason) -- Added win32 support for the timeout parameter of fsockopen(). (Jason) -- Fixed shuffle() to provide equal distribution of values. (Andrei) -- Added --with-mysql-sock configure option which can be used to override - the unix socket location. (e.g. NFS compiles, etc.) (James Cox) -- Fixed is_a() to properly work on extension registered classes. (Andrei) -- Added new constants: PHP_PREFIX and PHP_SHLIB_SUFFIX. (Stig) -- Added pctnl_alarm() function. (Edin) -- If zlib.output_compression is enabled and a page is compressed - a "Vary: Accept-Encoding" header is now added. (Stefan) -- Renamed getallheaders() to apache_request_headers() and kept getallheaders() - as an alias to it. Also added apache_response_headers() which returns the - current response headers from Apache. (Rasmus) -- Added missing AddRef() calls in the COM extension. This should fix weird - behaviour (in particular with ADODB). (Harald) -- Fixed segfault in version_compare(). (Stig) -- Added compressed Flash MX files support to getimagesize(). (Derick) -- Added ability to capture string offsets in preg_split() results. - (David Brown, Andrei) -- Fixed a crash bug in token_get_all(). (Andrei) -- Implemented glob() for Unix/Win32. (Hartmut, Edin, Markus) -- Added domxml_doc_set_root() to change the root node. (Lukas Schroeder) -- Fixed a crash bug in stripslashes() when working in sybase mode. (Rasmus) -- Added experimental support for Simplified Chinese, Traditional Chinese and - Korean encodings into mbstring. (Rui) -- Misc. Win32 mail() enhancements: support 'From:' header (msisolak@yahoo.com), - support Bcc header, case-insensitive headers, enhanced error reporting, - automatic proper line ending conversion, fixed crash with Cc, fixed buffer - overflows with $header. (Markus) -- Improved IMAP extension performance. (adam.kauffman@mindspring.com, - rjs3@andrew.cmu.edu, Jon) -- Added optional 5th parameter to domxml_xslt_process(). When set, profiling - information is saved to the specified file. (chregu) -- Added MD5 support for crypt() on Windows. (Edin) -- Fixed resource bug in LDAP extension. (Stig Venaas) -- Fixed crash in output buffering when buffer is overwritten in a callback. - (Yasuo) -- Added output_add_rewrite_var() and output_remove_rewrite_var() to inject - and remove variables from the URL-Rewriter. (Thies) -- The Windows build can now be configured more comfortably, for example - when dealing with built-in extensions. (Sebastian) -- Added large OID value (2^31 to 2^32) support for pg_lo_import(), - pg_lo_unlink(), pg_lo_open() and pg_lo_export(). (Yasuo) -- Fixed mixing OCIPlogon() and OCINLogon() to not leak Oracle-Sessions. (Thies) -- Added php.ini options for EXIF extension to encode and decode Unicode/JIS - user comments. (Marcus) -- Changed the "-c" CLI/CGI option to allow both 'filename' and - 'path to php.ini'. (Yasuo) -- Added version information to the .dll and .exe files created under Windows. - (jtate) -- Added __FUNCTION__ and __CLASS__ constants. (Jani, Zend Engine) -- Added optional 2nd parameter for pg_result_status() to specify return type. - (Yasuo) -- Added "log_errors_max_len" php.ini option which controls maximum length for - error messages. (Marcus) -- Added "ignore_repeated_errors" and "ignore_repeated_source" php.ini options - which can be used to disable logging of repeated error messages. (Marcus) -- Made pg_last_notice() work correctly. (Yasuo) -- Added "pgsql.ignore_notice" and "pgsql.log_notice" php.ini options. (Yasuo) -- Added "zlib.output_compression_level" php.ini option. (Stig) -- Added support for --with-apxs build on Mac OS X / Darwin. (markonen) -- Added support for dynamically loaded extensions on OS X / Darwin. - NOTE: This requires Apache 1.3.25 or later. (kalowsky, markonen) -- Fixed CR/LF processing in quoted_printable_decode() on Win32. (kir) -- Made crack extension available on Win32. Cracklib libraries for Win32 are - available at http://www.jtatesoftware.com/cracklib/. (jtate) -- Added mysql_info() function. (Jan) -- Added mysql_list_processes() and mysql_stat() functions. (Georg) -- Fixed memory allocation problem on systems that have iconv() support in libc. - (Yasuo) -- Made var_dump() handle recursive structures better. (Yasuo, Derick) -- Added exif_imagetype() function. (Marcus) -- New improved build system. Among other improvements, replaces the slow - recursive make with one global Makefile and eases the integration of proper - dependencies. Automake is only needed for its aclocal tool. The build - process is now more portable and less resource-consuming. (Sascha) - -06 Sep 2002, Version 4.2.3 -- Disabled the fifth parameter in mail() when safe-mode is turned on. (Derick) -- Enable UTF8 modifier support for PCRE on win32. (Wez, Edin) -- Enabled strcoll() on win32. (Markus) -- Fixed possible ASCII control char injection in mail(). (Stefan Esser) -- Fixed a potential crash bug in import_request_variables() (Zeev) -- Fixed several problems with directory functions on Windows. (Steph) -- Fixed xbithack bug in Apache module. (Rasmus) -- Fixed a bug that prevented touch() from working on various platforms. (Steph) -- Fixed ob_gzhandler()'s handling of requests that do have the Accept-Encoding - header, but do not allow compression. (Zeev) -- Fixed several bugs in the multithreaded version that could cause random parse - errors, especially on machines with multiple CPUs. (Zeev, Zend Engine) -- Fixed a build problem in bcmath. (Alan) -- Fixed several bzip2 issues. (Andrei, kalowsky) -- Fixed several COM issues. (Harald) -- Various exif fixes. (Marcus) -- Fixed domxml_xslt_process() and domxml_get_element_by_id() and several - other issues in DOMXML. (Christian) -- Fixed DOMXML crash on removing previously created attributes. (Christian) -- Fixed crash when converting $GLOBALS to an object. (Zeev, Zend Engine) -- Fixed ImageCreateFromGD2Part() (Jani) -- Fixed a build issue in the IMAP extension under IRIX. (kalowsky) -- Fixed a bug in imap_last_error() (Jani) -- Various mbstring fixes. (Yasuo, Rui) -- Fixed a build problem in the mcal extension. (Jani) -- Made MySQL rollback open transactions when the request ends. (Georg) -- Fixed a crash in the shutdown order of the ODBC module. (kalowsky) -- Fixed PCRE build problems. (troels@arvin.dk) -- Fixed a crash in pg_lo_write() (Yasuo) -- Fixed posix_isatty() and posix_ttyname(). (Markus) -- Fixed accidental pg_lo_import() API change. (Yasuo) -- Fixed ereg_replace() crash when the backreference number was greater than the - number of captured subpatterns. (oliver@billix.franken.de) -- Fixed array_rand() on thread-safe platforms such as Windows. (Edin) -- Report the right exit code after a call to exit(). (Edin) - -22 Jul 2002, Version 4.2.2 -- Fixed serious security vulnerability. (Stefan Esser) - -13 May 2002, Version 4.2.1 -- Added safe-mode checks to show_source(), parse_ini_file() and rmdir(). Also - fixed security problems with safe_mode_include_dir directive. (Rasmus) -- Changed HTTP upload code to accept 0 byte file uploads. (Zeev) -- Major update of domxml. New functions, better DOM compliance and bug fixes: - * Changed the old $node->append_child() to $node->append_sibling() since - the new append_child() behaves correctly (= W3C standard). - * Added domxml functions: - . 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() - * Fixed a segfault in domxml_unlink(). - * Added formatting option to domxml_dump_mem(). - (Uwe, jtate, Chregu) -- Fixed a bug in socket_select() that could cause unexpected behavior when - using a statement like $w = $e = array($sock); This change unfortunately - prevents the use of constant values (e.g. NULL) for the socket array - paramaters. Instead, use a temporary variable or an expression with the - leftmost member being a temporary variable. ex.: - socket_select($w, $r, $e = NULL, 10); (Jason) -- Fixed crashes in the session serializer. (Stas) -- Fixed malformed atime/mtime with touch(). (Yasuo) -- Fixed a couple of bugs in array_sum() and array_merge(). (Andrei) -- Fixed SJIS directory name handling under Windows. (Rui) -- Fixed empty mb_output_handler() output when Content-Type is specified. - (Yasuo) -- Fixed the false logic in ext/session which made SID constant not to be - defined when cookies are disabled. (Sascha) -- Fixed possible crash bug in HTTP uploads. (Patch: Lucas Schroeder) -- Fixed possible NULL-pointer dereferencing in the COM extension which - caused 'Error in php_OLECHAR_to_char()' warnings on various places. - Also modified the API to consistently return NULL in case of an error. - (Alan, Harald) -- Fixed a bug in the COM extension that caused outproc servers to 'hang' - because of a missing Release() call. (Alan, Harald) - -22 Apr 2002, Version 4.2.0 -- ATTENTION!! register_globals defaults to 'off' now !!! -- Note: Apache2 support is EXPERIMENTAL. -- PostgreSQL functions are renamed, but all old function names are available. - Old function names will be available long enough. User can safely use old - function names. (Yasuo) -- Moved ext/mailparse to PECL. See http://thebrainroom.com/opensource/php/ - for more information and to download the extension. (Wez/Jim) -- Fixed pg_last_notice() crash. (Yasuo) -- Modified the mysql extension to disable 'LOAD LOCAL' when safe mode is - enabled. (Jason) -- Added CLI (command line interface) sapi which is more suitable for writing - shell scripts. Some of the differences to CGI sapi are: no HTTP headers, - plain text error messages, does not change working directory, have a new -r - option which executes a piece of PHP code directly from the commmand line, etc. - (Edin) -- Fixed HTTP file upload support to handle big files better. (Jani) -- Major modifications to the Sockets Extension and its API (Jason): - . Fixed numerous bugs. - . Added automatic host lookup capability to all functions that take addr's. - example: socket_connect($sock, 'www.yahoo.com', 80); - . Corrected and standardized host lookup errors - . Modified socket_recv() behavior. [$r=socket_recv($sock, $buf, $len, $flags)] - . Added socket_set_block() which changes a socket into blocking IO mode - . Modified socket_last_error() to not clear the last error - . Added socket_clear_error() which clears the last error on a socket - . Removed all code pertaining to fd_sets (socket_fd_*) - . Modified/Improved socket_select() to accept array of resources instead of - fd_sets. example: - <?php - $wfds=$rfds=array($sock1, $sock2, $sock3, $sock7); - $r=socket_select($rfds, $wfds, NULL, 1); - print "Ready to read:\n"; var_dump($rfds); - ?> -- Fixed segfault in ibase_close() if user does not free the resultset. - Bugs #15419, #15992. (daniela) -- Added optional 3rd parameter "int encoding_mode" to gzencode() and fixed - parameters to conform documentation. (Stefan) -- Changed read_exif_data() to be an alias of exif_read_data(). (Marcus) -- Added exif_tagname() function which returns the names of tags and - exif_thumbnail() function to extract embedded thumbnails. (Marcus) -- Fixed iconv support with FreeBSD. (kalowsky) -- Cleaned up the posix extension: (Markus) - . Removed unwanted warning messages - . Added posix_errno() and posix_strerror() for fetching error messages - . Changed the way posix_getgrnam() and posix_getgrgid() return their values - (breaks BC but makes more sense) - . Does not include functions in symbol table which aren't supported on host - system. -- Added TIFF support for getimagesize() and read_exif_data(). (Marcus) -- Changed the Velocis extension namespace to Birdstep to reflect new product - name. Added aliases for BC. (James) -- Added safe_mode checks for opendir(). (jflemer) -- Changed the 2nd parameter in pgsql_fetch_*() functions to support NULL if - all 3 parameters are supplied, but you do not want to provide a row number. - (Derick) -- Improved iconv() when using libc's iconv. (Yasuo) -- Added PHP_SAPI constant which contains the name of running SAPI. (Edin) -- Added ob_get_status() which returns an array of buffers with their status. - (Yasuo) -- Fixed a crash bug in ob_end_*() functions. ob_end_*() will not delete - buffers that may not be deleted. (Yasuo) -- Added 3rd parameter "bool erase" to ob_start(). If FALSE, the buffer may not - be deleted until script finishes. (Yasuo) -- Changed ob_*() functions to return TRUE for success, FALSE for failure. - (Yasuo) -- Added sybase_ct support to dbx module. (Marc) -- Fixed error message handling with PostgreSQL 7.2. (Rui) -- Added object aggregation capability, see aggregation_*() functions. (Andrei) -- Added debug_zval_dump() which works similarly to var_dump, but displays - extra internal information such as refcounts and true type names. (Jason) -- Added Andrei's tokenizer extension. (Stig) -- Fixed a bug in the COM extension which caused php to crash in - php_COM_get_ids_of_names(). (Paul, Harald) -- Removed ext/satellite. It is now part of PEAR. (eriksson) -- Changed php.ini directive 'safe_mode_include_dir' to accept a (semi)colon - separated path (like 'include_path') rather than a single directory. - (jflemer) -- Added is_a() function that can be used to test whether object is of a certain - class or is derived from it. (Andrei, Zend Engine) -- Added optional parameter to highlight_string() and highlight_file() which - makes these functions to return a highlighted string instead of dumping - it to standard output. (Derick) -- Added EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS flags to extract(). (Rasmus) -- Fixed a segfault in pg_pconnect(). If PostgreSQL server is restarted, broken - connection is detected and reconnected. (Yasuo) -- Fixed --enable-safe-mode configure option. (Yasuo) -- Added function domxml_dump_node($doc,$node). Dumps a node plus all children - into a string. (chregu) -- Added function domxml_node_get_content(). (chregu) -- Added function domxml_dump_file($filename,[$compression]). Dumps XML to - a file and uses compression, if specified. (chregu) -- Added exslt integration to domxml extension (http://exslt.org for details). - Configure with --with-dom-exslt[=DIR] (and --with-dom-xslt). - (chregu,jaroslaw) -- Fixed session_unset() to not touch any globals if register_globals is off. - (Thies) -- Added 3 new optional parameters to OCIFetchStatement(). They control - the number of rows to skip at the beginning of the cursor, the - maximun numer of rows that should be fetched and the format of the - returned array. (Thies) -- Updated the XSLT extension to support Sablotron 0.8. (Petr Cimprich) -- Fixed a bug in preg_match() and preg_match_all() when matching strings - contain null bytes. (Andrei) -- Added xpath_register_ns() function. This makes it possible to issue XPath - queries with namespaces like for example: "//namespace:sampletag". - (Chris Jarecki) -- Added multi-byte enabled regular expression functions. (Rui) -- Added optional second parameter to count() which can be used to specify - either normal or recursive counting. (patch by Vlad Bosinceanu <glipy@fx.ro>) -- Added mb_get_info() to get internal settings of mbstring. (Rui) -- Added async query functions to PostgreSQL module. (Yasuo) -- Added pg_copy_to()/pg_copy_from() for PostgreSQL module. (Youichi, Yasuo) -- Added IPv6 support for FTP extension. (Stig Venaas) -- Improved the speed of wordwrap() significantly. (Jim) -- Fixed pow()'s incorrect behaviour when dealing with powers of 0. (Jim) -- Added is_finite(), is_infinite() and is_nan(). (Jim) -- Fixed segfault in wordwrap() when wrapping to zero width and using - multi-character break or trying to force cut (bug #12768). (Jim) -- Fixed several bugs in dbase extension (dbase_pack() truncate file to right - size, fix 6852 #1 and 6852 #2). (Vlad) -- Fixed bug in krsort() where an extra character was being compared. (Andi) -- Fixed bug that made pspell include pspell.h from a wrong location. (Vlad) -- Added function overload in mbstring to add multibyte support for - string and mail functions. (Rui) -- Added flags parameter to preg_grep(). The only flag currently is - PREG_GREP_INVERT that will make the function return entries that - did not match. (Andrei) -- Fixed several crash bugs in the xslt extension. (Markus, Derick) -- Fixed problem with dbase not returning very large (larger than long) - integers properly. (Vlad) -- Added concepts to IRCG: bailout-on-trivial issue, write output to - files, fetch a resource upon connection end. (Sascha) -- Fixed POST-related bugs in thttpd, added QUERY_STRING, HTTP_HOST, - HTTP_ACCEPT_LANGUAGE to the script environment, improved patch - to send correct MIME types, and added support for /nocache/. (Sascha) -- Fixed several bugs and memleaks in the domxml extension. (Markus) -- Added var_export() which outputs a representation of a variable as reusable - PHP code. (Derick) -- Added -w option to the CGI-version to strip all comments and whitespace - from the script. (Thies) -- Added support for SO_RCVTIMEO and SO_SNDTIMEO to ext/sockets. (Jason) -- Added ob_get_level() which returns the nesting level of the output buffering - mechanism. (Yasuo, Derick) -- Added ob_flush() and ob_clean() functions which flush and clean an output - buffer without destroying the buffer. (Derick) -- Added new optional parameter to mysql_connect() which forces a new database - link to be created. (Markus, Derick) -- Added ldap_sort() function. (Stig Venaas) -- Added md5_file() function which calculates the MD5 sum of a file. - Patch by Alessandro Astarita <aleast@capri.it> (Derick) -- Added support for parsing recordsets contained in WDDX packets. (Andrei) -- Renamed key_exists() to array_key_exists(). (Derick) -- Fixed ImageColorsForIndex() and ImageColorAt() to work for TrueColor - images. (Rasmus) -- Added support for bind_textdomain_codeset(). (rudib@email.si) -- Added generic Win 32 API extension. (jmoore) -- Removed warning message about NONEXISTENT character set from mysql_connect() - when the server's default character set != latin1. (Mysql Team) -- Added Direct I/O extension for lowlevel access to the POSIX layer. (Sterling) -- Added SAPI module for the WebJames server on RISC OS. (Alex Waugh) -- Fixed ldap_add() and ldap_modify() functions to throw a warning with illegal - value arrays. Previously segfaulted or added wrong value. (Stig Venaas) -- Added udm_check_charset() function into mnoGoSearch extension. (gluke) -- Fixed mnoGoSearch extension to support mnogosearch-3.2.x. (gluke) -- Made fbsql_num_rows() to return the correct value on all select statements. - (Frank) -- Added array_chunk() function which splits an array into chunks of specified - size. (Andrei) -- Fixed $HTTP_RAW_POST_DATA to be populated on a missing content-type when - always_populate_raw_post_data is on. (Rasmus) -- Added session_cache_expire() function. (patch by anuradha@gnu.org) (Andrei) -- Added array_fill() function. (Rasmus) -- Made Authorization header to be hidden from phpinfo() output in safe_mode. - (Rasmus) -- Re-instated safe-mode realm mangling. (Rasmus) -- Fixed a bug in preg_replace() that would change the type of the replacement - array entries to string. (Andrei) -- Added user-space object overloading extension. (Andrei) -- Added ldap_start_tls() function. (Stig Venaas, patch by kuenne@rentec.com) -- Changed rand() and mt_rand() to be seed automatically if srand() or - mt_srand() has not been called. (Sterling) -- Changed the seed options to srand() and mt_srand() to be optional. If the - seed is not specified the most random seed possible is generated. (Sterling) -- Added array_change_key_case() function which returns an array with all - string keys lowercased or uppercased. (Edin) -- Added parameter to ircg_pconnect to suppress treating non-fatal errors - as fatal, and added conversion of Windows quotes to ". (Sascha) -- Added pcntl_exec() function which behaves similar to the system execve. - (Jason) -- Fixed segfault and check for truecolor image in ImageColorAt(). (Rasmus) -- Fixed nl2br() to handle all styles of line-endings in one string. - (Boian, Derick) -- Added mcrypt_generic_deinit() to replace mcrypt_generic_end(). (Derick) -- Added apache_setenv() function for injecting variables into Apache's - subprocess_env table. (Rasmus) -- Added support for 'int', 'bool', 'float' and 'null' in settype(). (Jeroen) -- Added IPv6 support to gethostbyaddr(). - (Patch by Matthias Wimmer <matthias@charente.de> and venaas) -- Fixed LONG_VARCHAR type crashing in ODBC extension. Patch by Walter Franzini. - (kalowsky) -- Changed in_array() and search_array() to allow the needle to be an array - in itself. (Andrei) -- Added ini_get_all() function which returns all registered ini entries - or entries for the specified extension. (Jani) -- Added mailparse_uudecode_all() which extracts all uuencoded attachments. - (Wez) -- Added support for chinese encodings in htmlentities() and htmlspecialchars(). - (Patch by Alan Knowles <alan_k@hklc.com> and Wez) -- Improved support for autoconf-2.50+/libtool 1.4b+. (Jan Kneschke, Sascha) - -27 Feb 2002, Version 4.1.2 -- Fixed start up failure when mm save handler is used and there are multiple - SAPIs working at the same time. (Yasuo) -- Fixed the Roxen SAPI. (Yasuo) -- Fixed a buffer overflow in the RFC-1867 file upload code. (Stefan) -- Fixed a crash bug in the session module. (Yasuo) -- Fixed a crash bug in the pspell module. (Yasuo) -- Changed the default output encoding of mbstring 'pass' to fix - initialization problem. (Rui) - -26 Dec 2001, Version 4.1.1 -- Fixed incompatibility with Windows .NET / IIS 6 - may improve stability - under other versions of IIS. (Zeev) -- Fixed bug that caused crashes or error notices on shutdown on threaded - platforms. (Zeev) -- Fixed several crash bugs in the xslt extension. (Markus, Derick) -- Fixed problem with dbase not returning very large (larger than long) - integers properly. (Vlad) -- Fixed several bugs and memleaks in the domxml extension. (Markus) -- Fixed bug in gmmktime() which was one hour off during standard time - - bug #9878. Patch by bfoddy@mediaone.net. (jmoore) -- Fixed bug in gmdate() timezone handling on Windows - bug #13885. (jmoore) -- Fixed several crash bugs in the mcrypt extension. (Derick) -- Made the mcrypt extension compile with the libmcrypt 2.2 series again. - (Sterling) -- Fixed a bug where the is_file() family of functions would in-correctly give - an error when they were given filenames that didn't exist. (Sterling) -- Fixed a bug in the strtotime() function where it was incorrectly recognizing - GMT +0100 and GMT -0100. (Derick) - -10 Dec 2001, Version 4.1.0 -- Fixed return values for strtok (Bug #13866) (jmoore) -- 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) -- Enhanced 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) - -23 Jun 2001, Version 4.0.6 -- Fixed memory fragmention problem which could lead to web server processes - growing much more than they should. (Andi, Zend Engine) -- Made $HTTP_SESSION_VARS['foo'] and $foo be references to the same value - when register_globals is on. (Andrei) -- Fixed disk_free_space() and disk_total_space() under FreeBSD. (Jon) -- Fixed readfile/passthru losing resources during connection abort (Sascha) -- Fixed bug in the mcrypt extension that caused segfaults when using a key - that is too large for the used algorithm, and a bug that caused - mcrypt_generic() to segfault PHP (Derick) -- Fixed getopt so that it accepts command line arguments in the form - -<opt><arg> and -<opt> <arg>. (Jmoore) -- Fixed race in writing session files (Sascha) -- Fixed a possible crash in the PHP CGI when no input file is - specified (Zeev) -- Added is_callable() function that can be used to find out whether - its argument is a valid callable construct. (Andrei) -- Fixed a rare possible crash when generating extended information. (Dmitri - Dmitrienko, Zend Engine) -- Improved virtual() to support PHP-enabled URIs. (Zeev) -- Fixed undefined behavior when using floating point keys in array() - expressions. (Zeev, Zend Engine) -- Fixed a possible crash in case of parse errors in include files or eval - statements. (Zeev, Zend Engine) -- Added --with-layout configure option. (Stig) -- Improved interactive mode - supports function calls, and works in - multithreaded builds. (Zeev, Zend Engine) -- Fixed a crash bug in interactive mode. (Zeev, Zend Engine) -- Added pg_last_notice() function. (Rasmus from suggestion by Dirk@rackspace.com) -- Fixed a bug in preg_split() that would incorrectly limit the number of - results when used along with PREG_SPLIT_NO_EMPTY flag. (Andrei) -- Added connection error support to mysql_error() and mysql_errno(). (Jason) -- Added support to getimagesize to return dimensions of BMP and PSD - files. (Derick) -- Added heuristic to kill stale IRC connections, message scanner caching, and - nickname escaping to IRCG, suppress option to ircg_msg(), and statistics to - IRCG phpinfo() output. (Sascha) -- Added Japanese multibyte string functions support. (Rui) -- Added Mac OS X "\r" line ending support. (Andi, Zend Engine) -- Fixed a bug regarding the $PHP_SELF being incorrectly registered when - force-cgi-redirect was not enabled. (Sterling) -- pfpro extension now supports version 3 of the Verisign SDK. (John Donagher) -- Udm_Cat_List and Udm_Cat_Path functions has been added. -- Added key_exists() to check if a given key or index exists in an - array or object. (David Croft) -- Modify the cURL extension to compile only with the latest cURL release. - Backwards compatibility with regards to the extension api has not been - broken. (Sterling) -- Added the ability to use user-defined callbacks with cURL. (Sterling) -- Added the SSL_VERIFYPEER, CAINFO, MAXREDIRS, FILETIME, RANDOM_FILE, EGDSOCKET - and CONNECTTIMEOUT options to curl_setopt(). (Sterling) -- Added support for persistent connections with cURL. (Sterling) -- Fixed a problem in cURL with file descriptors being allocated, but never - closed. (Sterling) -- Fixed interactive mode (-a). It works again with the same limitations it - has always had. (Andi, Zend Engine) -- Improved memory manager to use less memory and provide better memory overflow - detection abilities in debug mode. (Andi, Zend Engine) -- Fixed resource leaks when resources were being cast to numbers. (Zeev, Zend - Engine) -- Fixed foreach() to not crash when being sent an invalid argument. (Andi, Zend - Engine) -- Fixed a bug in opendir() under Windows when trying to open a non-exisiting - directory. (Andi) -- Fixed popen() and the exec family under Win32 (Unable to fork issue). (Daniel) -- Make the printf family of functions binary clean. (Rasmus) -- Fixed WDDX serialization to HTML-escape key/variable names so as not to - break the XML packet. (Andrei) -- Made WDDX extension enabled by default. (Andrei) -- Added -C command-line option to avoid chdir to the script's directory. (Stig) -- Fixed a bug with /e modifier in preg_replace(), that would not correctly - replace two-digit references if single digit references were present - before them. This fixed bug #10218. (Andrei) -- Added temporary LOB support in OCI8. (Patch by David Benson) -- Fixed crash in pathinfo() -- OCI8 now supports binding of collections. (Patch by Andy Sautins - <asautins@veripost.net>) -- Added GD 2.0.1 support for truecolor and alpha channels, plus some other gd - functions, both old and new - see docs for more info. (Wez) -- Added S/MIME sign/verify encrypt/decrypt functions to openssl extension, - along with some other certificate manipulation and interrogation functions. - See docs for more info. (Wez) -- printf argnum (parameter swapping) support. (Morten Poulsen, Rasmus) -- Add DIRECTORY_SEPARATOR constant ('/' on UNIX, '\' on Windows). (Stig) -- Added small change to php_odbc module, to check for failed SQLDisconnects - and to close any outstanding transactions if the call fails, then disconnect - again. (lurcher) -- Modified get_parent_class() and get_class_methods() to accept a class name as - well as a class instance. (Andrei, Zend Engine) -- Added support for UNC style paths. (\\server\share\file, - //server/share/file). (Daniel, TSRM) -- Added dbx module (database abstraction) to the repository. (Marc) -- Using ITypeInfo instead of IDispatch if possible. This makes DCOM calls - and even COM calls much faster. - All ini settings are now prefixed by 'com.'. - Now you need not provide a path to the file containing the typelib, you can - also provide the GUID of the TypeLib - entry or an IID for preloading - type - information. (Harald) -- Rewrite of domxml. It's now mostly DOM Level 2 conform. (Uwe) -- Added array_map() function that applies a callback to the elements - of given arrays and returns the result. It can also be used with a - null callback to transpose arrays. (Andrei) -- Added array_filter(), which allows filtering of array elements via - the specified callback. (Andrei) -- Fixed all relevant array functions to avoid moving the internal array - pointer during operations. (Andrei) -- Added mysql_unbuffered_query(), which is useful for very large result sets. - (Zeev) - -30 Apr 2001, Version 4.0.5 -- Added new php.ini directive: arg_separator.input which is used to tell - PHP which characters are considered as argument separators in URLs. - Renamed php.ini directive: arg_separator -> arg_separator.output (Jani) -- Added FastCGI SAPI module. (Ben Mansell) -- Added array_reduce(), which allows iterative reduction of an array - to a single value via a callback function. (Andrei) -- The imageloadfont function of the gd extension should be not platform - dependent after this fix. (alex@zend.com) -- Fixed a compatibility problem in some file functions (fgets, fputs, fread, - fwrite). The ANSI standard says that if a file is opened in read/write - mode, fseek() should be called before switching from reading to writing - and vice versa. (alex@zend.com) -- Fixed argument checking for call_user_func* functions and allowed - specifying array($obj, 'method') syntax for call_user_func_array. (Andrei) -- Fixed parent::method() to also work with runtime bindings. - (Zeev, Zend Engine) -- Implemented high-performance zlib-based output compression - see - zlib.output_compression INI directive. (Zeev) -- Improved ob_gzhandler() to support chunked output buffering - it's - recommended to use it with 4KB chunks. (Zeev) -- Fixed chunked output buffering. (Zeev) -- Forced call_user_method() and call_user_method_array() to take the - object argument by reference. (Andrei) -- Fixed binding of ROWIDs in OCI8. (Thies) -- Added PEAR/Cache as a generic Caching System. (Sebastian, PEAR/Cache) -- Added IMAP quota support (imap_set_quota, imap_get_quota), enabled/added via - c-client2000. (kalowsky) -- Upgraded PCRE to version 3.4. (Andrei) -- Added array_search which works similar to in_array but returns - the key instead of a boolean. (jason@php.net) -- Fixed pgsql transaction support. (Stig, PEAR/DB) -- Added new object VARIANT() to encapsulate values for use with - the COM and DOTNET module. Therefore it is now possible to pass - values by reference, convert php values to extended variant types (currency, - date, idispatch, iunknown, ...) and define the codepage that should - be used for unicode - conversion. -- Improved overall speed of IRCG, added URL handling to message scanner. - (Sascha) -- Fixed some modules to allow using output-buffering. (Thies) -- Added the chroot() function. (Derick) -- PostgreSQL now does a rollback at the end of a request on every - persistent connection. This is done by doing an "empty" transaction - on the connection. This was advised by someone from the PostgreSQL - core-team. (Thies) -- Fixed PostgeSQL pg_connect() bug. We would sometimes close the default - link by accident. (Patch by: aja@nlgroup.ca) -- Improved OCI8 dead-session detection. (Patch by: George Schlossnagle) -- Fixed get_meta_tags() multiline bug #4556. (Sean) -- Prefer random() over *rand48(). (JimJag) -- Sped up WDDX serialization 2x. (Andrei) -- Added a new parameter to mail() which appends aditional command line - parameters to the mail program. (Derick) -- Added Udm_Clear_Search_Limits mnoGoSearch extension function. (gluke) -- Fixed mnogosearch protos. Fixed mnogosearch functions return values. - A bug with capital letters break search has been fixed. (gluke) -- Static methods can now be called via call_user_method_* functions, e.g. - call_user_method('method', 'class'), and also array('class', 'method') - constructs (for array_walk(), for example). (Andrei, Zend Engine) -- microtime() under Windows now returns accurate values. (James) -- Added PREG_SPLIT_DELIM_CAPTURE flag to preg_split() that allows for Perl-like - functionality of capturing parenthesized delimiter expression. (Andrei) -- Fixed strip_tags() to not strip a lone > character. (Rasmus) -- When using the ob_gzhandler() PHP now automagically also sets the - Content-Lengh correctly which enables browsers to use the HTTP - Keep-Alive feature. (Thies) -- Improved handling of preg_replace() /F modifier so that it's possible to - specify array($obj, 'method') construct as a replacement function. (Andrei) -- Added mysql_get_client_info(), mysql_get_server_info(), - mysql_get_proto_info(), and mysql_get_host_info() functions. (Sean) -- Major change of the php pdf api. It could break some functions though - backwards compatibility was tried to maintain. Adding some still - missing functions as well. (Uwe) -- Added mnoGoSearch extension - http://search.mnogo.ru. (Sergey K) -- Allow URL encoding in DB usernames and passwords. (Stig, PEAR) -- Added raiseError and setErrorHandling methods to PEAR class. (Stig, PEAR) -- Added support for converting images from JPG/PNG on the fly with the GD - extension, which is usefull for creating dynamic WAP-sites. (Derick) -- Updated ext/mysql/libmysql to version 3.23.32; bug fixes. (tim@mysql.com) -- Fixed possible crash in all (non-pcre) regex functions. (Thies) -- Improved str_replace() to accept an array for any parameter - similar - to preg_replace(). (Andrei) -- Fixed extract() to properly prefix numeric keys when EXTR_PREFIX_ALL is - used. (Andrei) -- Added EXTR_PREFIX_INVALID flag to extract() to automatically prefix - string keys that do not constitute valid variable names. (Andrei) -- BeOS patch from svanegmond@bang.dhs.org, modified somewhat by Rasmus. -- Fixed the Apache module to overwrite PATH_TRANSLATED with SCRIPT_FILENAME, - only if PATH_TRANSLATED is not previously set. (Zeev) -- Fixed crash bug in highlight_string(). (Rasmus) -- Added URL support for getimagesize() function. (Jani) -- Added xslt_set_scheme_handler() function. (carmelo@akooe.com) -- Added the pg_lolseek and pg_lotell functions. (Derick) -- Fixed wrong breaking with the wordwrap function. (Derick) -- Fixed 'O' and 'r' flags of date() to have correct sign for timezone - offset. (Andrei) -- Changed 'Z' flag to date() to always return timezone offset with - negative sign if it's west of UTC. (Andrei) -- Added the HTML_Processor class which provides common functions for - processing HTML. (Sterling) -- Added localeconv() and strcoll() functions for localization. (Sean) -- Added the xslt_set_base function. (Sterling) -- Added support for Zeus 3.3.8. -- Added odbc_error() and odbc_errormsg() functions. (Stig) -- New extension for vpopmail - http://www.inter7.com/vpopmail, - give it a try, but keep in mind that it is not ready for production - environments. (David Croft, Boian Bonev) -- Added sybase_get_last_message() to the Sybase CT module. (Jan Fedak) -- Made ldap_list(), ldap_read() and ldap_search() do parallel search when - first parameter is an array of link identifiers. (Stig Venaas) -- Made fopen() of HTTP URL follow redirects, $http_response_header will - contain all headers with empty string as delimiter. (Stig Venaas) -- Added Console_Getopt class for parsing command-line args. (Andrei, PEAR) -- Added an experimental version of the ZZipLib extension which provides the - ability to read zip files. (Sterling) -- Allow access to uploaded files in safe_mode. Beware that you can only - read the file. If you copy it to new location the copy will not have the - right UID and you script won't be able to access that copy. (Thies) -- Changed extract() to check that prefixed name is a valid one. (Andrei) -- Changed extract() to return the number of variables extracted. (Andrei) -- Added ldap_rename() function. (Stig Venaas) -- Made ldap_set_option() support controls. (Stig Venaas) -- Changed ldap_search() and added functions ldap_parse_result(), - ldap_first_reference(), ldap_next_reference() and ldap_parse_reference() - to cope with LDAPv3 stuff like referrals and references. (Stig Venaas) -- Fixed date('r') overflow. -- Made the php.ini path reported in phpinfo() always point to the absolute - path that was opened. (Zeev) -- Made the INI mechanism thread safe. (Zeev, Zend Engine) -- Changed setlocale() to use LC_* constants. (Jani) -- ctype functions now follow the extension naming conventions. (Hartmut) -- Added iconv() function (using libc or libiconv). (Stig) -- Added ODBC_TYPE constant. (Stig) -- Added the call_user_method_array function which allows you to call a method - with an arbitrary number of parameters. (Sterling) -- ext/odbc: IBM DB2 patch by Walter Franzini. <walter@sys-net.it> -- Added extension for the cracklib library. (Alexander Feldman) - -19 Dec. 2000, Version 4.0.4 -- Allow assigning a newly created object by reference. This is needed only if - your constructor makes other data structures reference the $this object (for - example, $GLOBALS["foobar"] =& $this;) - The new syntax is $obj =& new MyClass(); (Andi, Zend Engine) -- 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) -- Made ldap_get_entries() return an array even if there are no entries - in search result. (Jani) -- Fixed bad mod_perl interaction which caused segfaults when using LFS (Sascha) -- const CONSTNAME now gets recognized. Before the patch only @const CONSTNAME - description was recognized. -- Added the is_null() function that will return true if a variable is of - type null. (Sterling) -- Fixed a bug which made readdir() unusable in some systems. (Jani) -- Added the get_defined_functions() function which returns a list of all - currently defined functions. (Sterling) -- Added the get_defined_vars() function which returns an associative array - of all variables defined in the current scope and their subsequent values. - (Sterling) -- Added the call_user_func_array() function which gives you the ability to - call a user function by passing an array of parameters as the second - argument. (Sterling) -- Added the constant() function which returns the value of a constant given - the constant's name. (Sterling) -- Implemented support for Perl-style matching regexp delimiters in PCRE. - You can use <{[( and )]}> to delimit your expressions now. (Andrei) -- Introduced new 'F' modifier in PCRE that lets you specify a function - name in the replacement argument to preg_replace() that will be called - at run-time to provide the replacement string. It is passed an array of - matched pattern and subpatterns. (Andrei) -- Put an end to BUG#4615 (kalowsky & Eric Veldhuyzen) -- Added the IRCG extension (Sascha) -- Fixed realpath() in Virtual Directory mode (Daniel) -- Integrated the Phil Nelson's bc math library routines into PHP, now that - the license allows it (Phil Nelson <phil@cs.wwu.edu>) -- Added the xslt_set_error_handler() function to the Sablotron extension. - (Sterling) -- Improved Sablotron's error handling system allowing you to catch all - errors before they are outputted to the screen. (Sterling) -- Added OpenSSL extension (Stig Venaas) -- Fixed/created support for Solid 3.0 databases (kalowsky) -- Fixed support for Solid 2.3 databases (kalowsky) -- quoted_printable_decode() function is made RFC-2045 compliant. (Kir) -- Modified preg_grep() to always return the results with keys from the original - array. (Andrei) -- Modified preg_replace() to accept Perl-style $n backreferences in addition - to \\n ones. (Andrei) -- Modified preg_replace() to ignore backreferences that refer to - non-existing subpatterns. (Andrei) -- Fixed column-title buffer-overflow in OCIFetchStatement(). (Thies) -- Added 'output_handler' INI directive (Zeev) -- Fixed some buglets in the output buffering mechanism (Zeev) -- Added transparent gzip compression support (Jade Nicoletti, Zeev) -- Major overhaul of domxml. Added basic XPath support as well (Uwe) -- Added 'r' flag to date() which generates an RFC822 formatted date, e.g. - "Thu, 9 Nov 2000 16:33:01 -0500" (Colin) -- In CGI mode, $HTTP_SERVER_VARS now includes all of the environment variables - as well (Zeev) -- Allow user to use mysql_use_result in mysql queries (Stas) -- Fixed a memory leak that would occur when restarting Apache often - (mookid@sigent.ru) -- Fixed a bug that prevented $argv and $argc from being defined in the command - line version of PHP (Stas) -- Fixed a bug that prevented a changed compile-time extension_dir from - affecting modules that were loaded via php.ini (Zeev) -- Fixed a bug in ftp_mkdir() when used on ftp server which doesn't return - the full path (Jani) -- Added ImageCreateFromString() which creates an image stream out of - e.g. a MySQL blob. (Mathieu) -- Fixed a crash bug in imagewbmp() (Jani) -- Changed the sablot configuration file so that if you use any version of - Sablotron below 0.44 you must use Sablotron's built-in Expat libraries. - (Sterling) -- Added basic authentication support to thttpd (Sascha) -- Added support for the Caudium webserver (http://caudium.net/). It's based - on the Roxen SAPI module. Many bugs have been identified and fixed. (David) -- Fixed mysql_close(), pg_close(), msql_close() and sybase_close() - they - weren't properly closing the SQL connections (Zeev) -- Fixed crypt() to supply random seed if none is given (Andi) -- Made print_r() support recursive data structures, e.g. $GLOBALS. (Zeev) -- Fixed a bug that caused PHP not to properly flush its output buffer, if more - than one output buffer was used. (Zeev) -- Fixed a bug that could draw the shutdown sequence of the PHP Apache module - into an endless loop, under certain circumstances. It could cause Apache - processes under Solaris to get stuck, especially when using output - buffering. (Zeev) -- Added support for serializing references (Stas) -- Fixed conflict with OpenLDAP and Oracle 8.1.x (Jani) -- parse_ini_file() supports a new optional 2nd argument that instructs it - to divide the directives to arrays according to the sections in which they - reside (Zeev) -- parse_ini_file() is now thread-safe, and supported under Windows (Zeev) -- Unified aborted-connection semantics of all SAPI modules (Sascha) -- URL-opened files now store the HTTP response header in $http_response_header - (Zeev) -- Fixed array_rand() to shuffle results when the number of requested - elements is the same as the number of elements in the array. (Andrei) -- Added replace parameter to header() (Sascha) -- Fixed handling of single quotes in transparent session-id mode (Sascha) -- Fixed "php://*" fopen handler (Sascha) -- Made rename work in threadsafe enviroments (Daniel) -- Made session_destroy() close files before unlinking (Daniel) -- Added array_sum() function. (Andrei) -- Fixed a bug in session.c. The php_session_save_current_state did not check - if mod_data is NULL and such situation is possible if the user calls - session_module_name with a parameter. (alex@zend.com) -- Added IIS Admin extension. (Frank) -- OCIBindByName() now does better parameter-checking. (Thies) -- Made read() binary-safe in sockets.c (Chris Vandomelen) -- Made array_intersect() and array_diff() not alter order (Stig Venaas) -- Made ldap_connect() accept URL in host parameter when using OpenLDAP - 2.x. To use SSL, use ldaps://host/ as URL. (Stig Venaas) -- Made resource type names visible, e.g. var_dump() and - get_resource_type() display "file" for file resources. (Andrei) -- Added the curl_getinfo() function to find out information about a CURL - transfer. This function requires cURL 7.4.0 or above. (Sterling) -- Added the CURLOPT_KRB4, CURLOPT_INTERFACE, CURLOPT_QUOTE, CURLOPT_POSTQUOTE, - CURLOPT_QUOTE and CURLOPT_HTTPPROXYTUNNELL options. (Sterling) -- Renamed the shm_* functions to shmop_* (Derick) -- Updated ext/mysql/libmysql to version 3.23 (tim@mysql.com) -- Added ldap_get_option() and ldap_set_option() functions (Stig Venaas) -- Fixed a crash in CGI mode, in case no file was provided - (Daniel Beulshausen& Zeev) -- Fixed possible crash bug in imap_fetchstructure() (Jani) -- Fixed possible crash bug in imap_open() (Jani & Mark Musone) -- Added url_rewriter.tags configuration directive (Sascha) -- Added CORBA client extension, ready for use (eriksson@php.net) -- Fixed memory leak in x-httpd-source mode (Jason Greene) -- Changed ext/gd not to be enabled by default (Jani) -- Make increment of empty string ("") behave like in PHP 3 and result in "1" - (Andi, Zend Engine) -- Added POST handler for Adobe FDF format (Hartmut) -- Added transparent read and write .gz-files on glibc based systems - using the 'zlib:' fopen wrapper (Hartmut) -- Fixed a problem in the configuration parser (two null bytes were added - to each ENCAPSULATED TC_STRING) (alex@zend.com) -- Added HMAC support in the mhash module (nmav@altera.gr) -- Added module for Ovrimos sql server (nmav@altera.gr) - -11 Oct 2000, Version 4.0.3 -- Fixed a possible crash in -a interactive mode (Zeev, Zend Engine) -- Added mysql_escape_string() (Peter A. Savitch and & Brian Wang) -- Fixed many possible crash bugs with improper use of the printf() family of - functions (Andi) -- Fixed a problem that allowed users to override admin_value's and admin_flag's - (Zeev) -- Fixed PostgreSQL module to work when the link handle is omitted (Zeev) -- Fixed returning of empty LOB fields in OCI8. (Thies) -- Added Calendar module to default Win32 build (Andi) -- Added FTP module to default Win32 build (Andi) -- Fixed crash in the POSIX getrlimit() function (alex@zend.com) -- Fixed dirname() under certain conditions (Andi) -- Added --with-imap-ssl to support SSL'ized imap library in RH7 and others - (Rasmus) -- Fixed possible crash bug in parse_url() (Andi) -- Added support for trans sid under Win32 (Daniel) -- Added IPv6 support in fopen (Stig Venaas) -- Added the shmop extension. It allows more general ways of shared memory - access. (thanks to Ilia Alshanestky <iliaa@home.com> and Slava Poliakov - <slavapl@mailandnews.com> (Derick) -- Added the ability for CURLOPT_POSTFIELDS to accept an associative array of - HTTP POST variables and values. (Sterling) -- Added the CURLOPT_HTTPHEADER option to curl_setopt(). (Sterling) -- Added the curl_error() and curl_errno() functions. (Sterling) -- Changed ext/db not to be enabled by default (Jani) -- Fixed building Apache SAPI module on SCO UnixWare (Sascha) -- Fixed writing empty session sets to shared memory (tcarroll@chc-chimes.com) -- Added support for BSD/OS make (Sascha) -- Added improved URL rewriter (Sascha) -- Fixed readdir_r() use on Solaris (Sascha) -- Improved HTTP headers for private-caching (jon@csh.rit.edu, Sascha) -- Added new function session_cache_limiter (jon@csh.rit.edu, Sascha) -- Added ftp_exec to the ftp functions (thanks to <jhennebicq@i-d.net>) - (Derick) -- PEAR: add last executed query as debug info in DB errors (Stig) -- PEAR: allow multiple modes in PEAR_Error (Stig) -- Made the Sybase CT module thread safe (Zeev) -- Added second argument to array_reverse() that indicatese whether - the original array keys should be preserved. (Andrei) -- Clean up htmlspecialchars/htmlentities inconsistencies. (Rasmus) -- PEAR: renamed DB_GETMODE_* to DB_FETCHMODE_*, added setFetchMode() - in DB_common to set the default mode, added some MySQL tests (Stig) -- Made eval() and several other runtime-evaluated code portions report the - nature and location of errors more accurately (Stas) -- Added an optional parameter to wordwrap that cuts a string if the length of a - word is longer than the maximum allowed. (Derick) -- Added functions pg_put_line and pg_end_copy (Dirk Elmendorf) -- Added second parameter for parse_str to save result (John Bafford) -- Fixed bug with curl places extra data in the output. (medvitz@medvitz.net) -- Added the pathinfo() function. (Sterling) -- Updated sybase_ct module and its sybase_query to use high performance API. - (Joey) -- Added a more configurable error reporting interface to DB. (Stig) -- Added is_uploaded_file() and move_uploaded_file() (Zeev) -- Added several directives to php.ini - post_max_size, file_uploads, - display_startup_errors - see php.ini-dist for further information (Zeev) -- Worked around a bug in the libc5 implementation of readdir() (Stas) -- Fixed some potential OpenBSD and NetBSD crash bugs when opening files. (Andi) -- Added EscapeShellArg() function (Rasmus) -- Added a php.ini option session.use_trans_sid to enable/disable trans-sid. - (Sterling) -- Added the Sablotron extension for XSL parsing. (Sterling) -- Fixed a bug in checkdate() which caused < 1 years to be valid (Jani) -- Added support for an optional output handler function for output - buffering. This enables transparent rendering of XML through XSL, - transparent compression, etc. (Zeev) -- Added support for user defined 'tick' callback functions. This helps - emulate background processing. (Andrei) -- Fixed problem with having $this as the XML parser object. (Andrei) -- Internal opened_path variable now uses the Zend memory manager so that full - paths of files won't leak on unclean shutdown (Andi) -- Removed support of print $obj automatically calling the __string_value() - method. Instead define yourself a method such as toString() and use - print $obj->toString() (Andi, Zend Engine) - -29 Aug 2000, Version 4.0.2 -- Added PHP API for Zend's ticks. (Stig) -- 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) -- Fixed 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(). (nick@loman.net) -- 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 (alf@alpha.ulatina.ac.cr) -- 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 "\0" 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 <terrence_miao@email.com> (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 <alexel@dr15.cnrs.fr> -- 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 china@thewrittenword.com) -- Fixed get_browser() function (Stas) -- Fixed symbol clash which caused a DSO problem on OpenBSD (Rob Black and - anil@recoil.org) -- 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 <russel@yorku.ca> (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) - -28 Jun 2000, Version 4.0.1 -- Fixed a possible crash in the LDAP modify code. (Eric Kilfoil) -- Fixed a bug in opendir(), which prevented readdir() from working properly if - the $dir argument wasn't explicitly specified (Zeev) -- Made --enable-discard-path work again. (Andi) -- Removed 8KB limit on line length of the file() function (Zeev) -- Disabled dl() when PHP is being used as a module inside a multithreaded web - server - it didn't work before, and caused weird results (Zeev) -- Added the ImageColorClosestHWB(), ImageCopyMerge() and ImagePaletteCopy() - functions. (Sterling) -- Added ImageCreateFromWBMP() function. (Jouni) -- Fixed problems with POST requests under the NSAPI module. (Roberto Biancardi) -- Added spliti() function. (Thies) -- Fixed serializer behaviour with regards to serializing objects whose class - definition was not available in the deserializing context. (Sascha) -- Improve memory cache performance and increase cache size. (Stas, Zend Engine) -- Added a crc32 checksum function - used by the UdmSearch search engine - and currently run through a system call. This will speed up the UdmSearch - php frontend significantly. (Rasmus) -- Modified in_array() to not touch array pointer. (Andrei) -- Added restore_error_handler(). (Zeev, Zend Engine) -- Fixed erroneous file names and line numbers in error situations under the - multithreaded version of PHP - most noticeably Win32 (Zeev, Zend Engine) -- Fixed problem with CGI crashing on certain servers especially Windows Apache - & O'Reilly website (Andi) -- Added Pi3Web SAPI module; run ./configure --with-pi3web to enable this. - (Holger; zimpel@t-online.de) -- Enhanced WDDX functions to call __sleep() and __wakeup() when working on - objects. (Andrei) -- Changed WDDX to serialize arrays as structs only if needed. (Thies) -- Implemented max_execution_time under Win32 (Zeev) -- Updated strtotime() to handle many more formats. It now has complete - feature parity with GNU date command. (Andrei) -- Added support for multiple arguments in unset(). (Faisal, Zend Engine) -- Functions that expect a resource but are passed something else now return - NULL instead of FALSE. (Thies, Zend Engine) -- Fixed gmmktime(), on certain systems it incorrectly adjusted for the timezone - offset and daylight savings time. (Andrei) -- Moved VC++ Win32 project and workspace files to the win32 directory - (Zeev) -- Fixed checkdate() to not return true on non-numeric arguments (Rasmus) -- Added --enable-c9x-inline option for compilers which support the new C9x - standard. If you encounter undefined references to i_zend_is_true and - other symbols, you should enable this. (Sascha, Zend Library) -- Fixed a problem in ldap_add() and ldap_modify(), sometimes added trailing - garbage to the values (Stig Venaas) -- Fixed a problem with dbmopen() not handing 'c' correctly with dbm/db/ndbm - databases. (JimJag) -- Fixed a crash in number_format() when used with locales. (Andrei) -- Fixed an initialization problem in the MS-SQL problem that could cause - a crash in mssql_query() (Zeev) -- Upgraded PCRE to version 3.2 and fixed a bug when anchored pattern - matched an empty string. (Andrei) -- Fixed a bug that prevented PHP from paying attention to the extension_dir - directive with extensions that were loaded from the php.ini file (Zeev) -- Changed set_error_handler() to return the name of the previously defined - error handler, if any (Zeev, Zend Engine) -- Declared <?php_track_vars?> officially dead. It didn't work in PHP 4.0.0 - either, but now it's gone for good (Zeev) -- Make convert_cyr_string() binary safe and stop it from corrupting other - PHP variables. (Andi) -- Added functions array_unique, array_intersect and array_diff (Stig Venaas) -- Fixed problem when using uninitialized values in comparisons with strings. - They behave as empty strings again just like in PHP 3. - (Andi & Zeev, Zend Engine) -- Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei) -- Fixed var_dump() not to modify the internal order of array elements (Zeev) -- Fixed stripcslashes() to remove to strip \ in unknown escapes instead of - leaving it. (Andrei) -- Changed WDDX to always serialize arrays as structs. (Andrei) -- Fixed include_once() to issue a warning in case the supplied file name is - not found (Zeev, Zend Engine) -- Fixed a bug in get_declared_classes() which could return the same class - multiple times under certain circumstances (Zeev, Zend Engine) -- Fixed a bug in rawurldecode() that would cause in rawurldecode() corrupting - its argument (Zeev) -- Parse errors (or other errors) in the php.ini files under Windows will no - longer mess up the HTTP headers in CGI mode and are now displayed in a - message box (Zeev) -- Fixed a crash in OCIFetchStatement() when trying to read after all data - has already been read. (Thies) -- fopen_wrappers() are now extensible via modules (Hartmut Holzgraefe) -- Make trim strip \0 to match php 3 (Rasmus) -- Added function imagecreatefromxbm(). (Jouni) -- Added function imagewbmp(). (Jouni, based on patch from Rune Nordbøe - Skillingstad) -- Added str_pad() for padding a string with an arbitrary string on left or - right. (Andrei) -- Made the short_tags, asp_tags and allow_call_time_pass_reference INI - directives work on a per-directory basis as well, e.g. from .htaccess - files. (Zeev) -- Added fflush() function. (Eric Huss) -- Fixed a problem with static variables, default function arguments and class - member variables, that contained array values. (Andi & Zeev, Zend Engine) -- Fixed virtual() when used with output buffering (Marc Pohl) -- Clean up constants in flock() function and add optional 3rd arg which - is set to true on EWOULDBLOCK (Rasmus) -- Added functions pg_loimport(), pg_loexport(). (Jouni) -- Added SWF support to getimagesize() function (Derick Rethans) -- Added support for both indexed and non-indexed arrays of file uploads - eg. name="file[]" type="file" (Rasmus) -- Added create_function(), which gives the ability to create functions - on-the-fly (Zeev, Zend Engine) -- Added support for comparisons of arrays (with arrays) and objects (with - objects); The equality operator (==) performs an unordered comparison, - whereas the identity operator (===) performs an ordered comparison (Zeev, - Zend Engine) -- Allow all functions that receive user-defined function callbacks to accept - an array that contains an object and a method name, in place of a function - name, e.g. usort($array, array($obj, "ObjSort")) (Zeev, Zend Engine) -- Added set_error_handler() to allow custom error handling functions, - instead of the built-in error handling code (Zeev, Zend Engine) -- Renamed user_error() to trigger_error(); user_error() remains - defined for compatibility (Zeev, Zend Engine) -- Fixed the global/static statements to require a trailing terminating - semi-colon ';'. (Andi, Zend Engine) -- Cleaned up PCRE extension and made it binary-safe. (Andrei) -- Added third argument to in_array(). If it's true, then in_array() - will use strict comparison instead of the default one. (Andrei) -- Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev) -- ignore_user_abort=Off is now default. (Thies) -- Added array_merge_recursive() that will recursively merge values - under the same keys. (Andrei) -- fixed crash in OCIParse when parsing invalid SQL. (Thies) -- Fixed a bug in mysql_connect() that made it ignore the socket argument, in - case of non-persistent connects (Zeev) -- Added disable_functions php.ini directive, to allow administrators to disable - certain functions for security reasons (Zeev) -- Fixed sessions on Win32. When setting the directory depth parameter in - save_path you need to now delimit it with a ';' instead of ':', e.g - "5;/tmp" instead of "5:/tmp" (Andi) -- Changed the Apache handler's return status to 'Declined' when a requested - PHP file could not be found. Returning 'Not Found' caused problems - in the ErrorDocument handler stage in that $REDIRECT_REDIRECT_ERROR_NOTES - was not getting set at all. Moving to 'Declined' should fix this and I - can't see any other side effects. (Rasmus) -- Fixed scanning decimal numbers in internationalized environments. They should - always be in standard US format e.g. 23.3. (Andi, Zend Engine) -- Added second argument to preg_quote() which allows quoting of - one additional character, usually the regex delimiter. (Andrei) -- Uncommitted outstanding OCI8 transactions are now rolled back - before the connection is closed. (Thies) -- ignore_user_abort() & friends should now work in CGI mode as well. - (Patch by daniel.braun@ercom.fr) -- Added extension YAZ (dickmeiss). -- Fixed a crash bug triggered by certain cases of class redeclarations - (Stas & Zeev, Zend Engine) -- Fixed min()/max() segfault. (Andrei) -- New module for reading EXIF header data from JPEG files. Most digital - cameras will embed all sorts of information about a picture inside the - jpeg images it generates. (Rasmus) -- Fixed basename() bug where "file.ext///" would not return the same - as "/path/file.ext///" (Rasmus) -- Added the swf_ortho function. (Sterling) -- Moved to virtual current working directory support. This highly improves the - functionality and stability of multi-threaded versions of PHP (Andi, Sascha) - -22 May 2000, Version 4.0.0 Release -- Allow the writing of flash files to stdout. -- Fixed a crash bug in .phps syntax-highlighted files (Andi) -- Improved round() to allow specification of rounding precision. - (Andrei, Todd Kirby <kirbyt@yahoo.com>) -- Added SORT_REGULAR, SORT_NUMERIC, SORT_STRING flags that can be used with - non-user sort functions for precise sorting behavior. (Andrei) -- Fixed two 64-bit issues (startup crash, gethostbyaddr). (Sascha) -- NULL values are now preserved in the return value of mysql_fetch_array() - and mysql_fetch_object(). (Andrei) -- Ported InterBase module finally from PHP 3 to PHP 4. Full support for - InterBase 6. (Jouni) -- Added swf_definepoly for drawing polygons to the SWF functions. (Sterling) -- Ported imagegammacorrect from PHP3 to PHP4. (Sterling) -- Added array_rand() function. (Andrei) - -8 May 2000, Version 4.0 Release Candidate 2 -- NSAPI WIN32 Module compilable, untested (Shane) -- Apache WIN32 Module compilable and lightly tested. (Shane) -- Enabled assert() by default in php.ini-dist. (Andrei) -- Put in safeguards in case dynamic code evaluation in assert() and - preg_replace() with /e modifier fails. (Andrei) -- Fixed infinite recursion when serializing $GLOBALS[] in WDDX. (Andrei) -- Made WDDX serialization properly escape <, >, and &. Also speeded up - the serialization in general. (Andrei) -- Moved install-local to install-sapi for clarity. (Joey) -- Improved extension build framework. Refer to README.SELF-CONTAINED-EXTENSIONS - for an introduction. (Sascha) -- ImagePolygon() is no longer limited by a maximum number of polygons. - (Marc Pohl) -- Added configure time checking for bcmath package. (Joey, Sascha) -- Added get_declared_classes(). (Andrei, Zend Engine) -- Added initial NSAPI module from Jayakumar Muthukumarasamy. (Rasmus) -- Added the SWF module which allows you to create Macromedia Flash files via - libswf. (Sterling) -- Improved UNIX build system to support more vendor make tools (Sascha) -- Updated natural comparison/sorting algorithm by Martin Pool - <mbp@humbug.org.au>. (Andrei) -- Fixed a crash in array_multisort() that happened when empty arrays - were passed to it. (Andrei) -- Added substr_count() from Peter Kovacs. (Andrei) -- Added an optional third argument to fseek to indicate where to seek from. - (Andrei) -- OCIBindByName() will no longer complain about bindlength beeing zero. (Thies) -- Converted the IMAP module to the high performance API (Zeev) -- The fgetcsv() function now handles embedded end-of-line in a quoted field - (Nick Talbott) -- Added user_error(), to allow explicitly generate error messages from scripts - (Zeev, Zend Engine) -- Fixed a problem in long2ip() that occasionally returned incorrect IP address. - (Evan, Andrei) -- Fixed many memory leaks in the IMAP module (Stas, Andi, Zeev) -- Fixed bug in number_format (Jon Forsberg) -- Make error_prepend_string and error_append_string work (Rasmus) -- array_walk() now automatically resets the array. (Andrei) -- Added natural comparison/sorting routines strnatcmp(), strnatcasecmp(), - natsort(), and natcasesort(). These are useful for comparing and sorting - strings that contain numbers. Based on the code from Martin Pool - <mbp@humbug.org.au>. See http://www.linuxcare.com.au/projects/natsort/ - for more info on natural sorting. (Andrei) -- Zeus Webserver support (version 3.3.6+) for ISAPI (Ben Mansell) -- Fixed several problems with the PATH_TRANSLATED and PHP_SELF under Apache - (Paul Gregg & Zeev) -- Ported ldap_get_values_len() function from PHP3 to PHP4. (Sterling) -- Fixed a problem in include_once() with non constant arguments (Andi & Zeev, - Zend Engine) -- Added php.ini-optimized (Zeev) -- Ported ldap_errno(), ldap_err2str() and ldap_error() from PHP3 to PHP4. - (Sterling) -- WDDX now defaults to ISO-8859-1. (Thies) -- Fixed crash resulting from IMAP's error handling (Stas) -- Added $HTTP_POST_FILES[filename][tmp_name] - it was previously impossible to - retrieve the temporary name of an uploaded file using $HTTP_POST_FILES[] - (Zeev) -- Made the IMAP and LDAP modules compilable under Windows and thread-safe - (Zeev) -- Fixed a problem when dealing with large POST blocks in CGI mode (Zeev) -- Added session_get_cookie_params() function. (Sterling) -- Fixed return of stristr() to no longer always be lowercased. (Andrei) -- Changed the Windows version of PHP so that a php.ini file is no - longer mandatory (Zeev) -- session_start() is now more verbose if headers cannot be send. (Thies) -- Fixed a memory leak when using assign-op bitwise operators on strings (Zeev, - Zend Engine) -- Added support for reading properties that require arguments in the COM - module - writing to them will only be supported in PHP 4.1 (Zeev) -- Fixed a very old legacy memory leak in the COM module (Zeev) -- Fixed problems with object-overloading support - noteably, COM and Java - (Zeev, Zend Engine) -- Fixed an overrun in WDDX. (Thies) -- Fixed a crash bug with modules loaded through dl() not properly freeing their - resources (Zeev, Zend Engine) -- Added localtime() function. (Sterling) -- Added the 'I' format option for the date function, this option will return - true or false depending on whether or not daylight savings time is in effect. -(Sterling) -- Added gmstrftime() function. (Sterling) -- snmp_walkoid is now an alias for snmp_realwalk. (Sterling) -- Fixed a bug that could cause a crash when using 'global' inside large include - files (Stas, Zend Engine) -- Added --enable-libgcc switch to force linking against libgcc (Sascha) -- Fixed dynamic loading where extension_dir had no trailing slash (Sascha) -- Fixed dynamic loading on OpenBSD (Sascha) -- Improved POSIX threads check. ZTS works now on at least Linux, Solaris, - FreeBSD and OpenBSD (Sascha, TSRM) -- Added !== operator support. (Torben, Zend Engine) - -27 March 2000, Version 4.0 Release Candidate 1 -- Added support for UCD-SNMP 4.1.x (Sascha) -- Fixed a data corruption bug in mysql_result(), if used in table.fieldname - mode (Zeev) -- Fixed a crash problem in func_num_args(), func_get_arg() and func_get_args() - when used as function arguments (Andi, Zend Engine) -- Added get_class_methods(string classname) function. (Andrei) -- Added 'I' switch to test whether or not DST is active. (Sterling) -- Fixed a data corruption bug in mysql_result(), if used in table.fieldname - mode (Zeev) -- Modified the registry INI entry reader (Win32) to work with drive letters. - For example, if you wish to wish to specify INI entries for C:\foo\bar, you - should create HKLM\PHP\Per Directory Values\C\foo\bar in the registry, and add - string values for each directive you want to override in this directory (Zeev) -- Fixed extract() for EXTR_PREFIX_SAME and EXTR_SKIP cases. (Andrei) -- stristr() no longer modifies it's arguments. (Thies) -- Don't default to iso-8859-1 since this confuses some browsers. (Rasmus) -- Make it possible to specify both a port and a socket - in mysql_[p]connect. (Rasmus) -- Added --disable-pic for disabling generating PIC for shared objects - on platforms which support it (i.e. Linux) (Sascha) -- serialize()/unserialize() now call __sleep() and __wakeup() when - working on objects. (Thies) -- renamed to_string() method to __string_value() for consistency. - (Thies, Zend Engine) -- Fixed a bug in the third argument to define() -- Added is_numeric() that returns true if the argument is a number - or a numeric string. (Andrei) -- domxml now supports libxml 2.0 Beta and drops support for older versions, - due to massive changes in libxml -- fixed possible crash in unserialize() if serialized data was - corrupted. (Thies) -- Changed $HTTP_STATE_VARS to $HTTP_SESSION_VARS. Use only the latter - version now! (Andrei) -- Added GD-JPEG Support (Rasmus) -- Prevent from loading dynamic PHP modules which were compiled with different - debug and thread safety modes than PHP, which resulted in a crash (Andi) -- connection_aborted() and friends work again (Thies) -- Upgraded to libtool 1.3.4 (Sascha) -- UNIX configure creates config.nice in the build directory now which allows - easy reuse of configuration options (Sascha) -- Added support for embedded MySQL client library. Unless you specify a path - to --with-mysql, the bundled MySQL client library will be used (Sascha) -- Added include_once() and require_once() functionality (Andi, Zend Engine) -- Removed support for pdflib < 3.0 (Uwe) -- Added auto-registration of everything in $HTTP_SESSION_VARS[] if - register_globals is turned off. (Andrei) -- Cleaned up extension namespace (Stig) -- OCINLogon() sessions are now closed again. (Thies) -- Added ip2long() and long2ip(), - courtesy of Faisal Nasim <faisal@nasim.org> (Andrei) -- Added ftruncate() and fstat(), - courtesy of Faisal Nasim <faisal@nasim.org> (Andrei) -- Added parse_ini_file(). Currently implemented in non thread safe version - of PHP, and currently lacks section support (Zeev) -- "none" is now equivalent with "" in Apache config directives (Stig) -- OCINLogon no longer crashes. (Thies) -- Fixed comparisons of (string) "nan" with (string) "nan". (Thies, Zend Engine) -- Switched back to the old $HTTP_*_VARS[] behavior - $HTTP_GET_VARS["foo"] - and $foo are no longer references to each other, but separate variables - like they were prior to PHP 4.0 Beta 4 (Zeev) -- Fixed Sybase-DB compilation (Zeev) -- Fixed a (fairly common) situation where error_reporting values would not be - properly restored after a call to error_reporting(), in between requests - (Zeev) -- The various $HTTP_*_VARS[] are now protected, and cannot be manipulated by - user input (Zeev) -- Added ini_set() as an alias to ini_alter() (Zeev) -- The string None is now recognized as a keyword by the php.ini processor, and - can be used to denote an empty string (Zeev) -- Added get_class_vars(string class_name) and get_object_vars(object obj) - functions. (Andrei, Zend Engine) -- Added pdf_set_parameter(), pdf_skew(), pdf_show_boxed() (Uwe) -- Fixed comparison of (string) "inf" with (string) "inf", which was erroneously - returning false (Zeev) -- Implemented default_charset and default_mimetype config directives (Stig) -- Ported T1lib support from PHP3. (Jouni) -- Fixed -DEAPI inheritance from APXS. (Sascha) -- Fixed possible crash in module-shutdown. (Thies) -- Fixed safe_mode_protected_env_vars INI directive (Zeev) -- Fixed getrusage() (Sascha) -- Fixed OCI8 crash when returning cursors from stored-procedures. (Thies) - -21 February 2000 Version 4.0 Beta 4 patch level 1 -- Fixed crash when magic_quotes were switched off. (Thies) -- Support for pdflib 2.30 (Uwe) - -20 February 2000, Version 4.0 Beta 4 -- Introduced $HTTP_POST_FILES[], that contains information about files uploaded - through HTTP upload (Zeev) -- Made PHP work under Microsoft Personal Web Server, under both Windows NT - workstation and Windows 95 (Zeev) -- Made multipart/form-data content obey to the variables_order directive (Zeev) -- Updated the browscap module to work with PHP 4.0 (Zeev) -- Recover gracefully in ISAPI after the client prematurely presses STOP (Andi) -- Fixed bug in unset() on array offsets which are referenced more than once - (Andi, Zend Engine) -- Improved ISAPI module - it should no longer be necessary to set PHP as - an ISAPI filter, only as an ISAPI extension, unless you wish to perform - authentication using PHP. This didn't yet get enough testing, but it - should work (Zeev) -- Fixed RFC1867 file upload under Windows (Zeev) -- Initital support for pdflib 2.20 (Uwe) -- Added PostgreSQL support for DB (Rui Hirokawa <louis@cityfujisawa.ne.jp>) -- Re-introduced "none" for disabling auto_prepend/append_file (Stig) -- Added DB/storage (Stig, PEAR) -- Introduced DB warnings (Stig, PEAR) -- Fixed overrun in strip_tags (Stas) -- Fixed crash in strip_tags() and related functions. (Thies) -- Workaround for bogus POST-Data from IE/Mac. (Thies) - Patch by Alain Malek <alain@virtua.ch> -- Finished the server abstraction layer; All of the PHP code is now shared - across different servers (Apache, CGI, IIS, etc.), except for thin - interface modules (Zeev) -- Added NULL-support in gettype(). (Thies) -- base64_decode() will decode POST data correct. (Thies) - Patch submitted by: Turadg Aleahmad <turadg@wise.berkeley.edu> -- Much more work on domxml. Build xml tree, create xml doc works (Uwe) -- Made foreach() work on objects. (Thies, Zend Engine) -- Added domxml extension based on libxml, still little functionality (Uwe) -- Fixed memory corruption in fgetss(), strip_tags() and gzgetss() (Zeev) -- Updated calendar dynamic library to work with PHP 4. (Evan) -- Added strncmp() function, courtesy of Walter. (Andrei) -- Made the output of var_dump() more informative. (Thies) -- Fixed some OCIBindByName() problems. (Thies) -- Protect the ISAPI module against exceptions. Stack overflows in scripts are - now nicely detected and handled (Zeev) -- Fixed possible buffer-overflow in base64_decode. (Thies) -- Fixed possible buffer-overflow in setcookie(). (Thies) -- Fixed signal() bug that could cause the Apache master process to - die. (Thies) -- Added session_set_cookie_params() function. (Andrei) -- If header information is sent after output has already been sent, the warning - message will now state the filename and line number at which the first output - was made (Zeev) -- Added the XML Expat library to the standard PHP source distribution thanks - to its author James Clark (Andi & Zeev) -- Added XML support to the default Win32 build (Andi & Zeev) -- Added socket_get_status() function. Renamed: - set_socket_timeout() -> socket_set_timeout() - set_socket_blocking() -> socket_set_blocking(). (Andrei) -- Added realpath() function. (Andrei) -- mktime interprets years in the range 0-70 now as 2000-2070. You can - continue to specify the complete year (i.e. 1920) (Sascha) -- Added the ability to control the environment variables the user is allowed - to change in Safe Mode, using INI directives (Zeev) -- Fixed a crash bug in strtr() working on large input strings (Zeev) -- Ora_GetColumn()/Ora_FetchInto() now return NULL for NULL-Columns. (Thies) -- OCI8 now supports binding of NULL-values. Module cleanups. (Thies) -- Added ability to set timeout on socket read operations through - set_socket_timeout() function. (Andrei) -- Added implicit_flush INI directive (Zeev) -- Added implicit_flush() to control whether flush() should be called - implicitly after any output (Zeev) -- Fixed a crash in pfsockopen() (Zeev) -- Fixed a possible crash in phpinfo() (Zeev) -- Added register_argc_argv INI directive, to allow to selectively disable - the declaration of the $argv and $argc variables for increased - performance (Zeev) -- Added $HTTP_ENV_VARS[] and $HTTP_SERVER_VARS[] support, which similarly - to $HTTP_GET_VARS[], contain environment and server variables. Setting - register_globals to Off will now also prevent registration of the - environment and server variables into the global scope (Zeev) -- Renamed gpc_globals INI directive to register_globals (Zeev) -- Introduced variables_order that deprecates gpc_order, and allows control - over the server and environment variables, in addition to GET/POST/Cookies - (Zeev) -- new function cpdf_set_document_limits() (Uwe) -- Applied safe-mode patch to popen(). (Patch by Kristian Köhntopp) -- str_repeat() now returns correct length. (Thies) -- Don't assume libz and libpng are installed for the GD checks (Rasmus) -- Implemented support for <boolean> and <null> types according - to WDDX version 1.0 (Andrei) -- Made var_dump()/serialize()/unserialize() NULL aware. (Thies) -- Added new NULL constant (Zeev, Zend Engine) -- Fixed -c support in the standalone CGI binary (Zeev) -- Increased PHP's performance by 5-15% using a new memory cache (Andi & Zeev, - Zend Engine) -- Improved the php.ini reader to support constants and bitwise operators (Zeev) -- Fixed strrev() to no longer modify arg1. (Thies) -- Fixed buffer overruns in iptcembed(). (Thies) -- Fixed a bug in ODBC error reporting (Zeev) -- Added PHP_Logo_GUID() and Zend_Logo_GUID() functions, that return the GUIDs - of the PHP and Zend logos used in phpinfo() (Zeev) -- Added GNU Pth support (Sascha, TSRM library) -- Removed select(), fd_set() and fd_isset() - will be reimplemented soon! (Thies) -- Improved Win32 performance significantly by using different mutexes (Zeev, - TSRM library) -- Made quotemeta() and preg_quote() binary-safe. (Andrei) -- Added UDP support in fsockopen(). (Evan) -- Added --disable-pear option (Andrei) -- Renamed libzend repository to Zend (Zeev) -- Added support for thttpd (Sascha) -- Added session.cache_limiter and cache_expire options (Sascha) -- Restored the PHP_VERSION and PHP_OS constants (Zeev) -- Added get_loaded_extensions(), extension_loaded(), and - get_extension_funcs() functions. (Andrei) -- Added date/time stamping to PHP error log file. (Andrei, Joey) -- Added is_subclass_of() function (Andrei, Zend Engine) -- Implemented count_chars(). (Thies) -- Added class_exists() function (Andrei, Zend Engine) -- Made strspn() and strcspn() binary-safe. (Andrei) -- Added array_multisort() function. (Andrei) -- Made pageinfo.c thread-safe (Sascha) -- Made implode() binary-safe (Andrei) -- Made strstr(), stristr(), and ucwords() binary-safe() (Andrei) -- Made strtoupper(), strtolower(), substr_replace() binary-safe. (Andrei) -- Fixed a crash in the Apache syntax highlighting mode (Zeev) -- Report all ODBC error's not just the one on the top of the stack (lurcher) -- OCI8 now returns NULL values in LONG columns correct. (Thies) -- Added support for a C-like assert() function. (Thies) -- Added CyberCash support. (Evan) -- Made explode() binary-safe. (Thies) -- Made strpos() binary-safe. (Thies) -- Added XML_Set_Object() function, now you can use the XML-Parser from - within an object. (Thies) -- Session vars are now decoded into $HTTP_STATE_VARS[] array and the - globals, depending on track_vars and gpc_globals settings (Andrei) -- Added get_used_files() function - returns a hash mapping the use()'d files - to their full path (Zeev) -- PHP 4 scripts will now obey the max_execution_time setting and actually - time out (Rasmus) -- Added configure command to phpinfo() output (Stig) -- Added optional socket path to the mysql_?connect() functions (Rasmus) -- Made mysql and gd work as shared extensions again (Stig) -- Make the global GET/POST/Cookie variables and their $HTTP_*_VARS[] counterparts - be references to each other (Zeev) -- Added support for the 'use' keyword - behaves like 'require', but will not - use the same file more than once (Andi & Zeev, Zend Engine) -- Added check to see if a persistent connection is still valid with the - ODBC interface before reusing (nick@easysoft.com) -- Added DBMaker support (patch by Pax Tsai <paxtsai@lion.syscom.com.tw>) -- Renamed "PECL" to "PEAR" (PHP Extension and Add-on Repository) (Stig) -- buildconf now uses build.mk (Stig) -- Disable symlinks to urls (Rasmus) -- Informix driver now reflects version of ESQL/C used (Danny) -- Modified session_register() to take variable number of arguments (Andrei) -- Fixed file descriptor leak in thread safe mode (Zeev, Zend Engine) -- Added select(), fd_set() and fd_isset() (Evan) -- cpdf support has been ported from php3, needs ClibPDF 2.x (Uwe) -- Fixed a leak when using automatic output buffering (Zeev) -- Introduced PECL - PHP Extension and Code Library - (prounounced "pickle") (Stig) -- Fixed inconsistencies in the implementation of here-docs (Andi & Zeev, Zend - library) -- Fixed a problem with constant class-member initializations (Andi & Zeev, - Zend Engine) -- Fixed float-compare in min(),max(),a[r]sort(),[r]sort() (Thies) -- Implemented get_html_translation_table() function (Thies) -- Implemented array_flip() function. Returns input-array with key, value - flipped (Thies) -- Added Berkeley DB3 support in DBA (Sascha) -- Implemented 2-Arg version of strtr($str,$translation_array). This can be used - to revert what htmlspecialchars() did (Thies) -- Fixed mem-overwrite in XML_Parse_Into_Struct (Thies) -- Added substr_replace() function (Andrei) - -November 16 1999, Version 4.0 Beta 3 -- ucfirst()/ucwords() no longer modify arg1 (Thies) -- Fixed strtr() not to modify arg1 (Thies) -- Added Win32 build files for Informix driver and make it - compile with ZTS (danny) -- Added tmpfile() function (Stig) -- Upgraded regex library to alpha3.8 (Sascha) -- Fixed selecting nested-tables in OCI8. (Thies) -- RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies) -- Fixed OpenLink ODBC support (Stig) -- min(),max(),a[r]sort(),[r]sort(),k[r]sort() now work consistent with the - language-core. (Thies) -- tempnam() now uses mkstemp() if available (Stig) -- serialize() and var_dump() now honor the precision as set in php.ini - for doubles. (Thies) -- Improved the Win32 COM module to support [out] parameters (Boris Wedl) -- Fixed garbage returned at the end of certain Sybase-Columns (Thies) - Patch submitted by: neal@wanlink.com -- Added Microsoft SQL Server module for Win32 (Frank) -- Added support for forcing a variable number of internal function arguments - by reference. (Andi & Zeev, Zend Engine) -- Implemented getprotoby{name,number} (Evan) -- Added array_pad() function. (Andrei) -- Added new getservby{name,port} functions. (Evan) -- Added session.cookie_path and session.cookie_domain (Sascha) -- Continue processing PHP_INI_SYSTEM knownDirectives after extension= - (Sam Ruby) -- Enable IBM DB2 support - Tested against DB2 6.1 UDB on Linux (Rasmus) -- Added new str_repeat() function. (Andrei) -- Output-Buffering system is now Thread-Safe. (Thies) -- implemented OCI8 $lob->WriteToFile() function - very useful for streaming - large amounts of LOB-Data without to need of a huge buffer. (Thies) -- Added session.use_cookies option (Sascha) -- Added getcwd() function. (Thies) -- XML_Parse_Into_Struct no longer eats data. (Thies) -- Fixed parse_url('-') crash. (Thies) -- added === operator support. (Andi & Thies, Zend Engine) -- unserialize() now gives a notice when passed invalid data. (Thies) -- Fixed shuffle() so that it no longer breaks on Solaris. (Andrei) -- Added is_resource(), is_bool() functions. (Thies) -- Cleaned up File-Module (Thies) -- Upgraded math-funtions to use new Zend function API (Thies) -- Fixed zombie problem in shell_exec() and $a = `some_command` - constructs. (Thies) -- Thies introduced ZEND_FETCH_RESOURCE2 (Danny). -- Added Informix driver to list of maintained extensions. (Danny). -- Informix driver : Changed ifx.ec to use the new high-performance - ZEND API. (Danny) -- IXF_LIBDIR environment variable specifies alternate Informix library - path for configure (Danny). -- Fixed gmmktime() so that the following should always be true: - gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) (Jouni) -- setlocale doesn't anymore screw up things if you forgot to change it back - to the original settings. (Jouni) -- Switched to new system where ChangeLog is automagically updated from commit - messages. NEWS file is now the place for public announcements. (Andrei) -- Fixed refcount problem in XML module. (Thies) -- Fixed crash in HTTP_RAW_POST_DATA handling (Thies) -- You can use resources as array-indices again (Thies, Zend Engine) -- Fixed pg_fetch_array() with three arguments (Sascha) - Patch submitted by: brian@soda.berkeley.edu -- Upgraded a lot internal functions to use new Zend function API (Thies) -- fdf support ported; not completely tested with latest version 4.0 for - glibc (Uwe) -- OCI8 connections are now kept open as long as they are referenced (Thies) -- Cleaned up Directory-Module (Thies) -- Small fix in Ora_Close (Thies) -- Ported range() and shuffle() from PHP 3 to PHP 4 (Andrei) -- Fixed header("HTTP/..."); behaviour (Sascha) -- Improved UNIX build system. Now utilizes libtool (Sascha) -- Upgrade some more internal functions to use new Zend function API. (Thies, - Zend Engine) -- Fixed backwards incompatibility with ereg() (Thies) -- Updated Zend garbage collection with a much more thorough method. - (Andi, Zend Engine) -- Added the ability to use variable references in the array() construct. - For example, array("foo" => &$foo). (Andi, Zend Engine) -- Added array_reverse() function (Andrei) -- Some more XML fixes/cleanups (Thies) -- Updated preg_replace() so that if any argument passed in is an array - it will make a copy of each entry before converting it to string so that - the original is intact. If the subject is an array then it will preserve - the keys in the output as well (Andrei) -- Updated OCI8 to use the new high-performance Zend function API. (Thies) -- Configure speedup (Stig) -- Fixed LOB/Persistent-Connection related OCI8-Crash (Thies) -- Generalized server-API build procedure on UNIX (Stig) -- Added '--disable-rpath' option (Sascha) -- Added AOLserver SAPI module (Sascha) -- Fixed XML Callbacks. (Thies) -- Updated ODBC to use the new high-performance Zend function API (kara) -- Updated zlib to use the new high-performance Zend function API. (Stefan) -- Updated preg_split() to allow returning only non-empty pieces (Andrei) -- Updated PCRE to use the new high-performance Zend function API (Andrei) -- Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use - the new high-performance Zend function API (Sascha) -- Extended var_dump to handle resource type somewhat (Andrei) -- Updated WDDX to use the new high-performance Zend function API (Andrei) -- Updated XML to use the new high-performance Zend function API. (Thies) -- Updated Oracle to use the new high-performance Zend function API. (Thies) -- Improved the performance of the MySQL module significantly by using the new - high-performance Zend function API. (Zeev) -- Added support for the Easysoft ODBC-ODCB Bridge (martin@easysoft.com) -- Fixed bug in odbc_setoption, getParameter call incorrect (martin@easysoft.com) -- Ora_Fetch_Into now resets the returned array in all cases (Thies) -- Fixed NULL-Column problem in Oracle-Driver (Thies) -- Added extra metadata functions to ODBC, SQLTables etc (nick@easysoft.com) -- Fixed SEGV in mcal make_event_object() and - typo in mcal_list_alarms() (Andrew Skalski) -- Fixed Ora_PLogon (Thies) -- Resourcified Oracle (Thies) -- Implemented object serialization/deserialization in WDDX (Andrei) -- Added krsort() function (Thies) -- Added func_num_args(), func_get_arg() and func_get_args() for standard - access to variable number of arguments functions (Zeev) -- Added FTP support (Andrew Skalski) -- Added optional allowable_tags arguments to strip_tags(), gzgetss() and - fgetss() to allow you to specify a string of tags that are not to be - stripped (Rasmus) -- Upgraded var_dump() to take multiple arguments (Andrei) -- Resourcified XML (Thies) -- Fixed a memory leak in the Apache per-directory directives handler (Zeev) -- Added array_count_values() function. (Thies) -- snmp, pgsql, mysql and gd modules can be built as dynamically loaded - modules (Greg) -- OCI8 fix for fetching empty LOBs (Thies) -- Added user-level callbacks for session module (Sascha) -- Added support for unknown POST content types (Zeev) -- Added "wddx" serialization handler for session module (Sascha) - (automatically enabled, if you compile with --with-wddx) -- Fixed unserializing objects (Thies) -- PHP 4.0 now serializes Objects as 'O' (not understood by PHP 3.0), but - unserializes PHP 3.0 serialized objects as expected. (Thies) -- Made serialize/unserialize work on classes. If the class is known at - unserialize() time, you'll get back a fully working object! (Thies) -- Reworked preg_* functions according to the new PCRE API, which also made - them behave much more like Perl ones (Andrei) -- Made it possible to specify external location of PCRE library (Andrei) -- Updated bundled PCRE library to version 2.08 (Andrei) -- count()/is_array/is_object... speedups. (Thies) -- OCI8 supports appending and positioning when saving LOBs (Thies) -- Added metaphone support (Thies) -- OCI8 doesn't use define callbacks any longer. (Thies) -- OCI8 Driver now supports LOBs like PHP 3.0. (Thies) -- var_dump now dumps the properties of an object (Thies) -- Rewrote the GET/POST/Cookie data reader to support multi-dimensional - arrays! (Zeev) -- Renamed allow_builtin_links to expose_php (defaults to On). This directive - tells PHP whether it may expose its existence to the outside world, e.g. - by adding itself to the Web server header (Zeev) -- Added support for transparent session id propagation (Sascha) -- Made WDDX serialize object properties properly (Andrei) -- Fixed WDDX mem leak when undefined variable is passed in - for serialization (Andrei) -- Added session_unset() function (Andrei) -- Fixed double session globals shutdown crash (Andrei) -- Fixed crash related to ignore_user_abort ini entry (Andrei) -- Added support for external entropy sources for session id creation - (on Unices /dev/random and /dev/urandom) (Sascha) -- Added gpc_globals variable directive to php.ini. By default it is On, but - if it is set to Off, GET, POST and Cookie variables will not be inserted - to the global scope. Mostly makes sense when coupled with track_vars (Zeev) -- Added versioning support for shared library (Sascha) - This allows concurrent use of PHP 3.0 and PHP 4.0 as Apache modules. See - the end of the INSTALL file for more information. -- Added second parameter to array_keys which specifies search value - for which the key should be returned (Andrei) -- Resourcified Informix driver (Danny) -- New resource handling for odbc, renamed to php_odbc.[ch] -- Make set_time_limit() work on Unix (Rasmus) -- Added connection handling support (Rasmus) -- Improved the Sybase-CT module to make use of resources (Zeev) -- Improved the mSQL module to make use of resources (Zeev) -- Changed mysql_query() and mysql_db_query() to return false in case of saving - the result set data fails (Zeev) -- Improved the resource mechanism - resources were not getting freed as soon - as they could (Zeev) -- Added shared memory module for session data storage (Sascha) -- Fixed session.auto_start (Sascha) -- Fixed several problems with output buffering and HEAD requests (Zeev) -- Fixed HTTP Status code issue with ISAPI module (Zeev) -- Fixed a problem that prevented $GLOBALS from working properly (Zeev, Zend - library) -- Ported newest GetImageSize (Thies) -- Added session compile support in Win32 (Andi) -- Added -d switch to the CGI binary that allows overriding php.ini values - from the command line (Zeev) -- Fixed a crash that would occur if wddx_deserialize did not receive - a valid packet (Andrei) -- Fixed a bugglet when redefining a class at run-time (Andi, Zend Engine) -- Fixed sem_get() on AIX (Sascha) -- Fixed fopen() to work with URL's in Win32 (Andi & Zeev) -- Fixed include_path for Win32 (Andi, Zend Engine) -- Fixed bug in ISAPI header sending function (Charles) -- Fixed memory leak when using undefined values (Andi & Zeev, Zend Engine) -- Added output_buffering directive to php.ini, to enable output buffering - for all PHP scripts - default is off (Zeev). -- Fixed some more class inheritance issues (Zeev, Zend Engine) -- Fixed Apache build wrt to shared modules on FreeBSD/Linux (Sascha) -- Added session.extern_referer_chk which checks whether session ids were - referred to by an external site and eliminates them (Sascha) -- Improved session id generation (Sascha) -- Improved speed of uniqid() by using the combined LCG and removing - the extra usleep() (Sascha) -- Introduced general combined linear congruential generator (Sascha) -- Made ldap_close back into an alias for ldap_unbind (Andrei) -- OciFetchInto now resets the returned array in all cases (Thies) -- Fixed mysql_errno() to work with recent versions of MySQL (Zeev) -- Fixed a problem with define() and boolean values (Zeev) -- Fixed inclusion of gd/freetype functions (Sascha) -- Fixed persistency of MHASH_* constants (Sascha) -- Oracle is now ZTS-Safe (Thies) -- Fixed flushing of cached information to disk in DBA's DB2 module (Sascha) -- OCI8 is now ZTS-Safe (Thies) -- Fixed is_writeable/is_writable problem; they are both defined now (Andrei) -- Imported PHP 3.0 diskfreespace() function (Thies) -- Fixed thread-safety issues in the MySQL module (Zeev) -- Fixed thread-safe support for dynamic modules (Zeev) -- Fixed Sybase CT build process (Zeev) - -August 9 1999, Version 4.0 Beta 2 -- Fixed a problem when sending HTTP/1.x header lines using header() (Zeev) -- Win32 builds now include the ODBC module built-in (Zeev) -- Fixed SYSV-SHM interface (Thies). -- Updated hyperwave module, made it thread safe -- Updated pdflib module, version 0.6 of pdflib no longer supported -- Updated fdf module -- Built-in phpinfo() links are now turned off by default. They can be turned - on using the allow_builtin_links INI directive (Zeev) -- Changed phpinfo() to list modules that have no info function (Zeev) -- Modified array_walk() function so that the userland callback is passed - a key and possible user data in addition to the value (Andrei) -- Fixed ldap_search(), ldap_read() and ldap_list() (Zeev) -- Fixed Apache information in phpinfo() (sam@breakfree.com) -- Improved register_shutdown_function() - you may now supply arguments that - will be passed to the shutdown function (Zeev) -- Improved call_user_func() and call_user_method() - they now support passing - arguments by reference (Zeev) -- Fixed usort() and uksort() (Zeev) -- Fixed md5() in the Apache module (Thies) -- Introduced build process for dynamic modules (Stig) -- Improved ISAPI module to supprt large server variables (Zeev) -- Imported PHP 3.0 fixes for problem with PHP as a dynamic module and Redhat - libc2.1 in zlib module (Stefan) -- Fixed sybase_fetch_object() (Zeev) -- Made the IMAP module work with PHP 4.0 (Zeev) -- Fixed a problem with include()/require() of URLs (Sascha, Zeev) -- Fixed a bug in implode() that caused it to corrupt its arguments (Zeev) -- Added get_class($obj), get_parent_class($obj) and method_exists($obj,"name") - (Andi & Zeev) -- Fixed various inheritance problems (Andi & Zeev, Zend Engine) -- Children now inherit their parent's constructor, if they do not supply a - constructor of their own. -- Fixed runtime inheritance of classes (parent methods/properties were - overriding their children) (Zeev, Zend Engine) -- Fixed backwards incompatibility with the "new" operator (Andi, Zend Engine) -- Fixed bugs in uksort() and ksort() sort ordering (Andrei) -- Fixed a memory leak when using assignment-op operators with lvalue of type - string (Zeev, Zend Engine) -- Fixed a problem in inheritance from classes that are defined in include()d - files (Zeev, Zend Engine) -- Fixed a problem with the PHP error handler that could result in a crash - on certain operating systems (Zeev) -- Apache php_flag values only recognized 'On' (case sensitive) - changed - to case insensitive (Zeev) -- Fixed a memory leak with switch statement containing return statements - (Andi & Zeev, Zend Engine) -- Fixed a crash problem in switch statements that had a string offset - as a conditional (Andi & Zeev, Zend Engine) -- Imported PHP 3.0 fixes for rand() and mt_rand() (Rasmus) -- Added function entries for strip_tags() and similar_text() (Andrei) -- Fixed a bug in WDDX that would cause a crash if a number was passed in - instead of a variable name (Andrei) -- Ported strtotime() function from PHP 3.0 (Andrei) -- Merged in gdttf stuff from PHP 3.0 (Sascha) -- buildconf now checks your installation (Stig) -- XML module now built dynamically with --with-xml=shared (Stig) -- Added a check for freetype.h - fixed build on RedHat 6.0 (Zeev) -- Fixed array_walk() to work in PHP 4.0 (Andrei) -- Ported all remaining date() format options from PHP 3.0 (Andrei) -- $php_errormsg now works (Andrei) -- Added locale support for Perl Compatible Regexp functions (Andrei) -- Informix module ported (Danny) -- Removed --with-shared-apache (Sascha) -- Added patch for reverse lookup table in base64_decode (Sascha) - Submitted by bfranklin@dct.com -- Merged in PHP 3.0 version of str_replace (Sascha) -- Added DBA module (Sascha) -- Added session id detection within REQUEST_URI (Sascha) -- Merged in HP-UX/ANSI compatibility switch from PHP 3.0 (Sascha) -- Fixed rpath handling for utilitites built during Apache build (Sascha) -- Added missing E_ error level constants (Zeev, Zend Engine) -- Fixed a bug in sending multiple HTTP Cookies under Apache (Zeev) -- Fixed implicit connect on the MySQL, mSQL, PostgreSQL and Sybase - modules (Zeev) -- Gave PHP 4.0's SNMP extension all the functionality of PHP 3.0.12 (SteveL) - -July 19 1999, Version 4.0 Beta 1 -- First public beta of PHP 4.0 |