1<?php 2$_SERVER['BASE_PAGE'] = 'ChangeLog-4.php'; 3include_once __DIR__ . '/include/prepend.inc'; 4include_once __DIR__ . '/include/changelogs.inc'; 5 6$MINOR_VERSIONS = ['4.4', '4.3', '4.2', '4.1', '4.0']; 7changelog_header(4, $MINOR_VERSIONS); 8?> 9<a id="PHP_4_4"></a> 10 11<section class="version" id="4.4.9"><!-- {{{ 4.4.9 --> 12<h3>Version 4.4.9</h3> 13<?php release_date("07-Aug-2008"); ?> 14<ul> 15<li>Updated PCRE to version 7.7.</li> 16<li>Fixed overflow in memnstr().</li> 17<li>Fixed crash in imageloadfont when an invalid font is given.</li> 18<li>Fixed open_basedir handling issue in the curl extension.</li> 19<li><?php bugfix(27421); ?> (mbstring.func_overload set in .htaccess becomes global).</li> 20</ul> 21 22<!-- }}} --></section> 23 24<section class="version" id="4.4.8"><!-- {{{ 4.4.8 --> 25<h3>Version 4.4.8</h3> 26<?php release_date("03-Jan-2008"); ?> 27<ul> 28<li>Improved fix for MOPB-02-2007.</li> 29<li>Fixed an integer overflow inside chunk_split(). Identified by Gerhard Wagner.</li> 30<li>Fixed integer overlow in str[c]spn().</li> 31<li>Fixed regression in glob when open_basedir is on introduced by <?php bugl(41655); ?> fix.</li> 32<li>Fixed money_format() not to accept multiple %i or %n tokens.</li> 33<li>Added "max_input_nesting_level" php.ini option to limit nesting level of input variables. Fix for MOPB-03-2007.</li> 34<li>Fixed INFILE LOCAL option handling with MySQL - now not allowed when open_basedir or safe_mode is active.</li> 35<li>Fixed session.save_path and error_log values to be checked against open_basedir and safe_mode (CVE-2007-3378).</li> 36<li><?php bugfix(43010); ?> (Fixed regression in imagearc with two equivelent angles).</li> 37<li><?php bugfix(41765); ?> (Recode crashes/does not work on amd64).</li> 38<li><?php bugfix(41630); ?> (segfault when an invalid color index is present in the image data).</li> 39<li><?php bugfix(41628); ?> (PHP settings leak between Virtual Hosts in Apache 1.3).</li> 40<li><?php bugfix(38798); ?> (OpenSSL init corrected in php5 but not in php4).</li> 41</ul> 42 43<!-- }}} --></section> 44 45<section class="version" id="4.4.7"><!-- {{{ 4.4.7 --> 46<h3>Version 4.4.7</h3> 47<?php release_date("03-May-2007"); ?> 48<ul> 49<li>Fixed MOPB-33-2007 (PHP mail() Message ASCIIZ Byte Truncation).</li> 50<li>Fixed MOPB-32-2007 (Double free inside session_decode()).</li> 51<li>Fixed MOPB-26-2007 (mb_parse_str() can be used to activate register_globals).</li> 52<li>Fixed MOPB-24-2007 (Fixed unallocated memory access/double free in in array_user_key_compare()).</li> 53<li>Fixed MOPB-22-2007 (PHP session_regenerate_id() Double Free Vulnerability).</li> 54<li>Fixed MOPB-21-2007 (An open_basedir/safe_mode bypass inside the compress.bzip2 wraper).</li> 55<li>Fixed MOPB-8-2007 (XSS in phpinfo()).</li> 56<li>Fixed CVE-2007-1001 (GD wbmp used with invalid image size).</li> 57<li>Fixed CVE-2007-0455 (Buffer overflow in gdImageStringFTEx, used by imagettf function).</li> 58<li><?php bugfix(41252); ?> (Calling mcrypt_generic without first calling mcrypt_generic_init crashes).</li> 59<li><?php bugfix(40998); ?> (long session array keys are truncated).</li> 60<li><?php bugfix(40915); ?> (addcslashes unexpected behavior with binary input).</li> 61<li><?php bugfix(40831); ?> (cURL extension doesn't clean up the buffer of reused handle).</li> 62<li><?php bugfix(40747); ?> (possible crash in session when save_path is out of open_basedir).</li> 63<li><?php bugfix(38236); ?> (Binary data gets corrupted on multipart/formdata POST).</li> 64<li>Fixed huge CPU usage in imagearc when used with large angles (libgd bug #74).</li> 65<li>Fixed CRLF injection inside ftp_putcmd().</li> 66</ul> 67 68<!-- }}} --></section> 69 70<section class="version" id="4.4.6"><!-- {{{ 4.4.6 --> 71<h3>Version 4.4.6</h3> 72<?php release_date("01-Mar-2007"); ?> 73<ul> 74<li>Updated PCRE to version 7.0.</li> 75<li>Fixed segfault in ext/session when register_globals=On.</li> 76<li><?php bugfix(40635); ?> (segfault in cURL extension).</li> 77<li><?php bugfix(40611); ?> (possible cURL memory error).</li> 78<li><?php bugfix(40578); ?> (imagettftext() multithreading issue).</li> 79<li><?php bugfix(40502); ?> (ext/interbase compile failure).</li> 80<li><?php bugfix(40286); ?> (PHP fastcgi with PHP_FCGI_CHILDREN don't kill children when parent is killed).</li> 81</ul> 82 83<!-- }}} --></section> 84 85<section class="version" id="4.4.5"><!-- {{{ 4.4.5 --> 86<h3>Version 4.4.5</h3> 87<?php release_date("14-Feb-2007"); ?> 88<ul> 89<li>Upgraded PEAR to 1.5.0.</li> 90<li>Updated PCRE to version 6.7.</li> 91<li>Moved extensions to PECL: ext/ovrimos</li> 92<li>Added a meta tag to phpinfo() output to prevent search engines from indexing the page.</li> 93<li>Backported a fix in the configure tests to detect the "rounding fuzz".</li> 94<li>Backported fix for ext/imap compilation failure with recent c-client versions.</li> 95<li>Fixed missing open_basedir check inside chdir() function.</li> 96<li><?php bugfix(40335); ?> (Compile fails when using GCC 4.1.1/binutils 2.17).</li> 97<li><?php bugfix(39971); ?> (pg_insert/pg_update do not allow now() to be used for timestamp fields).</li> 98<li><?php bugfix(39890); ?> (using autoconf 2.6x and --with-layout=GNU breaks PEAR install path).</li> 99<li><?php bugfix(39819); ?> (Using $this not in object context can cause segfaults).</li> 100<li><?php bugfix(39653); ?> (ext/dba doesn't check for db-4.5 and db-4.4 when db4 support is enabled).</li> 101<li><?php bugfix(39583); ?> (ftp_put() does not change transfer mode to ASCII).</li> 102<li><?php bugfix(39458); ?> (ftp_nlist() returns false on empty dirs).</li> 103<li><?php bugfix(39354); ?> (Allow building of curl extension against libcurl 7.16.0).</li> 104<li><?php bugfix(39034); ?> (curl_exec() with return transfer returns TRUE on empty files).</li> 105<li><?php bugfix(38963); ?> (Fixed a possible open_basedir bypass in tempnam()).</li> 106<li><?php bugfix(38882); ?> (ldap_connect causes segfault with newer versions of OpenLDAP).</li> 107<li><?php bugfix(38859); ?> (parse_url() fails if passing '@' in passwd).</li> 108<li><?php bugfix(38722); ?> (Calling undefined method prints insufficient error message).</li> 109<li><?php bugfix(38534); ?> (segfault when calling setlocale() in userspace session handler).</li> 110<li><?php bugfix(38450); ?> (constructor is not called for classes used in userspace stream wrappers).</li> 111<li><?php bugfix(38378); ?> (wddx_serialize_value() generates no wellformed xml).</li> 112<li><?php bugfix(37812); ?> (aggregate_methods_by_list fails to take certain methods).</li> 113<li><?php bugfix(36975); ?> (natcasesort() causes array_pop() to misbehave).</li> 114<li><?php bugfix(36248); ?> (CURLOPT_HEADERFUNCTION, couldn't set the function in the class).</li> 115<li><?php bugfix(34066); ?> (recursive array_walk causes segfault).</li> 116</ul> 117 118There is a <a href="release_4_4_4.php">separate announcement</a> available for this release.<br> 119 120<!-- }}} --></section> 121 122<section class="version" id="4.4.4"><!-- {{{ 4.4.4 --> 123<h3>Version 4.4.4</h3> 124<?php release_date("17-Aug-2006"); ?> 125<ul> 126<li>Fixed memory_limit on 64bit systems.</li> 127<li>Fixed overflow on 64bit systems in str_repeat() and wordwrap().</li> 128<li>Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are enabled.</li> 129<li>Fixed a memory corruption error with an invalid foreach() call.</li> 130<li><?php bugfix(38431); ?> (xmlrpc_get_type() crashes PHP on objects).</li> 131<li><?php bugfix(38377); ?> (session_destroy() gives warning after session_regenerate_id()).</li> 132<li><?php bugfix(38322); ?> (reading past array in sscanf() leads to arbitary code execution).</li> 133<li><?php bugfix(38278); ?> (session_cache_expire()'s value does not match phpinfo's session.cache_expire).</li> 134<li><?php bugfix(38251); ?> (socket_select() and invalid arguments).</li> 135<li><?php bugfix(38183); ?> (disable_classes=Foobar causes disabled class to be called Foo).</li> 136<li><?php bugfix(38112); ?> (corrupted gif segfaults).</li> 137<li><?php bugfix(37265); ?> (Added missing safe_mode & open_basedir checks to imap_body()).</li> 138<li><?php bugfix(29538); ?> (number_format and problem with 0).</li> 139</ul> 140 141There is a <a href="release_4_4_4.php">separate announcement</a> available for this release.<br> 142 143<!-- }}} --></section> 144 145<section class="version" id="4.4.3"><!-- {{{ 4.4.3 --> 146<h3>Version 4.4.3</h3> 147<?php release_date("03-Aug-2006"); ?> 148<ul> 149<li>Added control character checks for cURL extension's open_basedir/safe_mode checks.</li> 150<li>Added overflow checks to wordwrap() function.</li> 151<li>Added a check for special characters in the session name.</li> 152<li>Improved safe_mode check for the error_log() function.</li> 153<li>Updated PCRE to version 6.6.</li> 154<li>Fixed handling of extremely long paths inside tempnam() function.</li> 155<li>Fixed XSS inside phpinfo() with long inputs.</li> 156<li>Fixed a possible buffer overflow inside create_named_pipe() for Win32 systems in libmysql.c.</li> 157<li><?php bugfix(37720); ?> (merge_php_config scrambles values).</li> 158<li><?php bugfix(37569); ?> (WDDX incorrectly encodes high-ascii characters).</li> 159<li><?php bugfix(37510); ?> (session_regenerate_id changes session_id() even on failure).</li> 160<li><?php bugfix(37360); ?> (Memory errors with a corrupt GIF file).</li> 161<li><?php bugfix(37348); ?> (Make PEAR install ignore open_basedir).</li> 162<li><?php bugfix(37346); ?> (Crashes when using an invalid colormap format).</li> 163<li><?php bugfix(37162); ?> (wddx does not build as a shared extension).</li> 164<li><?php bugfix(37046); ?> (foreach breaks static scope).</li> 165<li><?php bugfix(37045); ?> (Fixed check for special chars for http redirects).</li> 166<li><?php bugfix(36857); ?> (Added support for partial content fetching to the HTTP streams wrapper).</li> 167<li><?php bugfix(36776); ?> (node_list_wrapper_dtor segfault).</li> 168<li><?php bugfix(36459); ?> (Incorrect adding PHPSESSID to links, which contains \r\n).</li> 169<li><?php bugfix(36458); ?> (sleep() accepts negative values).</li> 170<li><?php bugfix(36242); ?> (Possible memory corruption in stream_select()).</li> 171<li><?php bugfix(36223); ?> (curl bypasses open_basedir restrictions).</li> 172<li><?php bugfix(36205); ?> (Memory leaks on duplicate cookies).</li> 173<li><?php bugfix(36148); ?> (unpack("H*hex", $data) is adding an extra character to the end of the string).</li> 174<li><?php bugfix(36017); ?> (fopen() crashes PHP when opening a URL).</li> 175</ul> 176 177There is a <a href="release_4_4_3.php">separate announcement</a> available for this release.<br> 178 179<!-- }}} --></section> 180 181<section class="version" id="4.4.2"><!-- {{{ 4.4.2 --> 182<h3>Version 4.4.2</h3> 183<?php release_date("11-Jan-2006"); ?> 184<ul> 185<li>Added missing safe_mode/open_basedir checks into cURL extension.</li> 186<li>Backported missing imap_mailcompose() fixes from PHP 5.x.</li> 187<li>Prevent header injection by limiting each header to a single line.</li> 188<li>Fixed possible XSS inside error reporting functionality.</li> 189<li>Fixed Apache 2 regression with sub-request handling on non-linux systems.</li> 190<li><?php bugfix(35817); ?> (unpack() does not decode odd number of hexadecimal values).</li> 191<li><?php bugfix(35735); ?> ($EGREP not defined in configure).</li> 192<li><?php bugfix(35669); ?> (imap_mail_compose() crashes with multipart-multiboundary-email).</li> 193<li><?php bugfix(35655); ?> (whitespace following end of heredoc is lost).</li> 194<li><?php bugfix(35646); ?> (%{mod_php_memory_usage}n is not reset after exit).</li> 195<li><?php bugfix(35594); ?> (Multiple calls to getopt() may result in a crash).</li> 196<li><?php bugfix(35571); ?> (Fixed crash in Apache 2 SAPI when more then one php script is loaded via SSI include).</li> 197<li><?php bugfix(35536); ?> (mysql_field_type() doesn't handle NEWDECIMAL).</li> 198<li><?php bugfix(35410); ?> (wddx_deserialize() doesn't handle large ints as keys properly).</li> 199<li><?php bugfix(35341); ?> (Fix for bug <?php bugl(33760); ?> breaks build with older curl).</li> 200<li><?php bugfix(35278); ?> (Multiple virtual() calls crash Apache 2 php module).</li> 201<li><?php bugfix(35257); ?> (Calling ob_flush after creating an ob callback causes segfault).</li> 202<li><?php bugfix(35079); ?> (stream_set_blocking(true) toggles, not enables blocking).</li> 203<li><?php bugfix(35078); ?> (configure does not find ldap_start_tls_s).</li> 204<li><?php bugfix(35071); ?> (Wrong fopen mode used in GD safe-mode checks).</li> 205<li><?php bugfix(35067); ?>, <?php bugfix(35063); ?> (key(),current() need to work by reference).</li> 206<li><?php bugfix(35062); ?> (socket_read() produces warnings on non blocking sockets).</li> 207<li><?php bugfix(35059); ?> (Apache2 crash with mod_rewrite).</li> 208<li><?php bugfix(35009); ?> (ZTS: Persistent resource destruct crashes when extension is compiled as shared).</li> 209<li><?php bugfix(34996); ?> (ImageTrueColorToPalette() crashes when ncolors is zero).</li> 210<li><?php bugfix(34851); ?> (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer parameter on Windows).</li> 211<li><?php bugfix(34830); ?> (the 5th argument of mb_send_mail does not work).</li> 212<li><?php bugfix(34359); ?> (Possible crash inside fopen http wrapper).</li> 213<li><?php bugfix(33963); ?> (mssql_bind() fails on input parameters).</li> 214<li><?php bugfix(33760); ?> (cURL needs CRYPTO_callback functions to prevent locking).</li> 215<li><?php bugfix(33720); ?> (mb_encode_mimeheader does not work for multibyte chars).</li> 216<li><?php bugfix(33523); ?> (Memory leak in xmlrpc_encode_request()).</li> 217<li><?php bugfix(33201); ?> (Crash when fetching some data types).</li> 218<li><?php bugfix(33153); ?> (crash in mssql_next result).</li> 219<li><?php bugfix(32009); ?> (crash when mssql_bind() is called more than once).</li> 220<li><?php bugfix(31971); ?> (ftp_login fails on some SSL servers).</li> 221<li><?php bugfix(30760); ?> (Remove MessageBox on win32 for E_CORE errors if display_startup_error is off).</li> 222<li><?php bugfix(27678); ?> (number_format() crashes with large numbers).</li> 223 224</ul> 225 226There is a <a href="release_4_4_2.php">separate announcement</a> available for this release.<br> 227 228<!-- }}} --></section> 229 230<section class="version" id="4.4.1"><!-- {{{ 4.4.1 --> 231<h3>Version 4.4.1</h3> 232<?php release_date("31-Oct-2005"); ?> 233<ul> 234<li>Added missing safe_mode checks for image* functions and cURL.</li> 235<li>Added missing safe_mode/open_basedir checks for file uploads.</li> 236<li>Fixed a memory corruption bug regarding included files.</li> 237<li>Fixed possible INI setting leak via virtual() in Apache 2 sapi.</li> 238<li>Fixed possible crash and/or memory corruption in import_request_variables().</li> 239<li>Fixed potential GLOBALS overwrite via import_request_variables().</li> 240<li>Fixed possible GLOBALS variable override when register_globals are ON.</li> 241<li>Fixed possible register_globals toggle via parse_str().</li> 242<li>Added "new_link" parameter to mssql_connect(). Bug <?php bugl(34369); ?>.</li> 243<li><?php bugfix(34850); ?> (--program-suffix and --program-prefix not included in man page names).</li> 244<li><?php bugfix(34790); ?> (preg_match_all(), named capturing groups, variable assignment/return => crash).</li> 245<li><?php bugfix(34742); ?> (ftp wrapper failures caused from segmented command transfer).</li> 246<li><?php bugfix(34704); ?> (Infinite recursion due to corrupt JPEG).</li> 247<li><?php bugfix(34645); ?> (ctype corrupts memory when validating large numbers).</li> 248<li><?php bugfix(34565); ?> (mb_send_mail does not fetch mail.force_extra_parameters).</li> 249<li><?php bugfix(34557); ?> (php -m exits with "error" 1).</li> 250<li><?php bugfix(34456); ?> (Possible crash inside pspell extension).</li> 251<li><?php bugfix(34311); ?> (unserialize() crashes with chars above 191 dec).</li> 252<li><?php bugfix(34307); ?> (on_modify handler not called to set the default value if setting from php.ini was invalid).</li> 253<li><?php bugfix(34302); ?> (date('W') do not return leading zeros for week 1 to 9).</li> 254<li><?php bugfix(34277); ?> (array_filter() crashes with references and objects).</li> 255<li><?php bugfix(34191); ?> (ob_gzhandler does not enforce trailing \0).</li> 256<li><?php bugfix(34156); ?> (memory usage remains elevated after memory limit is reached).</li> 257<li><?php bugfix(34148); ?> (+,- and . not supported as parts of scheme).</li> 258<li><?php bugfix(34137); ?> (assigning array element by reference causes binary mess). </li> 259<li><?php bugfix(34068); ?> (Numeric string as array key not cast to integer in wddx_deserialize()).</li> 260<li><?php bugfix(34064); ?> (arr[] as param to function is allowed only if function receives argument by reference).</li> 261<li><?php bugfix(33989); ?> (extract($GLOBALS,EXTR_REFS) crashes PHP).</li> 262<li><?php bugfix(33987); ?> (php script as ErrorDocument causes crash in Apache 2). </li> 263<li><?php bugfix(33940); ?> (array_map() fails to pass by reference when called recursively).</li> 264<li><?php bugfix(33690); ?> (Crash setting some ini directives in httpd.conf).</li> 265<li><?php bugfix(33673); ?> (Added detection for partially uploaded files).</li> 266<li><?php bugfix(33648); ?> (Using --with-regex=system causes compile failure).</li> 267<li><?php bugfix(33558); ?> (Warning with nested calls to functions returning by reference).</li> 268<li><?php bugfix(33383); ?> (crash when retrieving empty LOBs).</li> 269<li><?php bugfix(33156); ?> (cygwin version of setitimer doesn't accept ITIMER_PROF).</li> 270<li><?php bugfix(32937); ?> (open_basedir looses trailing / in the limiter).</li> 271<li><?php bugfix(32589); ?> (possible crash inside imap_mail_compose() function).</li> 272<li><?php bugfix(32179); ?> (xmlrpc_encode() segfaults with recursive references).</li> 273<li><?php bugfix(32160); ?> (copying a file into itself leads to data loss).</li> 274<li><?php bugfix(31158); ?> (array_splice on $GLOBALS crashes).</li> 275<li><?php bugfix(29983); ?> (PHP does not explicitly set mime type & charset).</li> 276<li><?php bugfix(29253); ?> (array_diff with $GLOBALS argument fails).</li> 277<li><?php bugfix(21306); ?> (ext/sesssion: catch bailouts of write handler during RSHUTDOWN).</li> 278</ul> 279 280There is a <a href="release_4_4_1.php">separate announcement</a> available for this release.<br> 281 282<!-- }}} --></section> 283 284<section class="version" id="4.4.0"><!-- {{{ 4.4.0 --> 285<h3>Version 4.4.0</h3> 286<?php release_date("11-Jul-2005"); ?> 287<ul> 288<li>Added man pages for "phpize" and "php-config" scripts.</li> 289<li>Added support for .cc files in extensions.</li> 290<li>Added the sorting flag SORT_LOCALE_STRING to the sort() functions which makes them sort based on the current locale.</li> 291<li>Changed sha1_file() and md5_file() functions to use streams instead of low level IO.</li> 292<li>Fixed memory corruptions when using references in a wrong way.</li> 293<li>Fixed memory corruption in pg_copy_from() in case the as_null parameter was passed.</li> 294<li>Fixed memory corruption in stristr().</li> 295<li><?php bugfix(32685); ?>, <?php bugfix(29423); ?> (Segfault when using assignment by reference within function).</li> 296<li><?php bugfix(33242); ?> (Mangled error message when stream fails).</li> 297<li><?php bugfix(33222); ?> (segfault when CURL handle is closed in a callback).</li> 298<li><?php bugfix(33214); ?> (odbc_next_result does not signal SQL errors with 2-statement SQL batches).</li> 299<li><?php bugfix(33210); ?> (relax jpeg recursive loop protection).</li> 300<li><?php bugfix(33200); ?> (preg_replace(): magic_quotes_sybase=On makes 'e' modifier misbehave).</li> 301<li><?php bugfix(33150); ?> (shtool: insecure temporary file creation).</li> 302<li><?php bugfix(33072); ?> (Add a safemode/open_basedir check for runtime save_path change).</li> 303<li><?php bugfix(33070); ?> (Improved performance of bzdecompress() by several orders of magnitude).</li> 304<li><?php bugfix(33057); ?> (Don't send extraneous entity-headers on a 304 as per RFC 2616 section 10.3.5).</li> 305<li><?php bugfix(33019); ?> (socket errors cause memory leaks in php_strerror()).</li> 306<li><?php bugfix(33017); ?> ("make distclean" gives an error with VPATH build).</li> 307<li><?php bugfix(33013); ?> ("next month" was handled wrong while parsing dates).</li> 308<li><?php bugfix(32974); ?> (pcntl calls malloc() from a signal handler).</li> 309<li><?php bugfix(32944); ?> (Disabling session.use_cookies doesn't prevent reading session cookies).</li> 310<li><?php bugfix(32936); ?> (http redirects URLs are not checked for control chars).</li> 311<li><?php bugfix(32932); ?> (Oracle LDAP: ldap_get_entries invalid pointer).</li> 312<li><?php bugfix(32904); ?> (pg_get_notify() ignores result_type parameter).</li> 313<li><?php bugfix(32813); ?> (parse_url() does not handle scheme-only urls properly).</li> 314<li><?php bugfix(32810); ?> (temporary files not using plain file wrapper).</li> 315<li><?php bugfix(32802); ?> (General cookie overrides more specific cookie).</li> 316<li><?php bugfix(32800); ?>, <?php bugfix(32830); ?> (ext/odbc: Problems with 64bit systems).</li> 317<li><?php bugfix(32773); ?> (GMP functions break when second parameter is 0).</li> 318<li><?php bugfix(32742); ?> (segmentation fault when the stream with a wrapper is not closed).</li> 319<li><?php bugfix(32730); ?> (ext/crack.c fails to compile with cracklib-2.8.3).</li> 320<li><?php bugfix(32670); ?> (foreach() does not issue warning on unset array arg).</li> 321<li><?php bugfix(32699); ?> (pg_affected_rows() was defined when it was not available).</li> 322<li><?php bugfix(32682); ?> (ext/mssql: Error on module shutdown when called from activescript).</li> 323<li><?php bugfix(32647); ?> (Using register_shutdown_function() with invalid callback can crash PHP).</li> 324<li><?php bugfix(32591); ?> (ext/mysql: Unsatisfied symbol: ntohs with HP-UX).</li> 325<li><?php bugfix(32589); ?> (Possible crash inside imap_mail_compose, with charsets).</li> 326<li><?php bugfix(32587); ?> (Apache2: errors sent to error_log do not include timestamps).</li> 327<li><?php bugfix(32567); ?> (ext/gmp fails to compile in threadsafe mode).</li> 328<li><?php bugfix(32538); ?> (ext/swf/swf.c does not compile with gcc-3.4.x or newer).</li> 329<li><?php bugfix(32530); ?> (chunk_split() does not append endstr if chunklen is longer then the original string).</li> 330<li><?php bugfix(32491); ?> (File upload error - unable to create a temporary file).</li> 331<li><?php bugfix(32311); ?> (mb_encode_mimeheader() does not properly escape characters).</li> 332<li><?php bugfix(32245); ?> (xml_parser_free() in a function assigned to the xml parser gives a segfault).</li> 333<li><?php bugfix(32116); ?> (mysql compressed connection doesn't work under windows).</li> 334<li><?php bugfix(31887); ?> (ISAPI: Custom 5xx error does not return correct HTTP response message).</li> 335<li><?php bugfix(31583); ?> (php_std_date() uses short day names in non-y2k_compliance mode).</li> 336<li><?php bugfix(31213); ?> (Sideeffects caused by fix of bug <?php bugfix(29493); ?>).</li> 337<li><?php bugfix(30052); ?> (Crash on shutdown after odbc_pconnect()).</li> 338<li><?php bugfix(29975); ?> (memory leaks when set_error_handler() is used inside error handler).</li> 339<li><?php bugfix(29944); ?> (Function defined in switch, crashes).</li> 340<li><?php bugfix(29338); ?> (unencoded spaces get ignored after certain tags).</li> 341<li><?php bugfix(28605); ?> (Need to use -[m]ieee option for Alpha CPUs).</li> 342<li><?php bugfix(28377); ?> (debug_backtrace is intermittently passing args).</li> 343</ul> 344 345There is a <a href="release_4_4_0.php">separate announcement</a> available for this release.<br> 346 347<!-- }}} --></section> 348 349<a id="PHP_4_3"></a> 350 351<section class="version" id="4.3.11"><!-- {{{ 4.3.11 --> 352<h3>Version 4.3.11</h3> 353<?php release_date("31-Mar-2005"); ?> 354<ul> 355<li>Added Oracle Instant Client support</li> 356<li>Added checks for negative values to gmp_sqrt(), gmp_powm(), gmp_sqrtrem() and gmp_fact() to prevent SIGFPE</li> 357<li>Changed phpize not to require libtool</li> 358<li>Updated bundled libmbfl library (used for multibyte functions)</li> 359<li>Fixed several leaks in ext/browscap and sapi/embed</li> 360<li>Fixed several leaks in ext/filepro</li> 361<li>Fixed build system to always use bundled libtool files</li> 362<li>Fixed MacOSX shared extensions crashing on Apache startup</li> 363<li><?php bugfix(32373); ?> (segfault in bzopen() if supplied path to non-existent file).</li> 364<li><?php bugfix(32340); ?> (insert_before($node,NULL) does not return).</li> 365<li><?php bugfix(32200); ?> (Prevent using both --with-apxs2 and --with-apxs2filter).</li> 366<li><?php bugfix(32114); ?> (DOM crashing when attribute appended to Document).</li> 367<li><?php bugfix(32063); ?> (mb_convert_encoding ignores named entity 'alpha').</li> 368<li><?php bugfix(31960); ?> (msql_fetch_row() and msql_fetch_array() dropping columns with NULL values).</li> 369<li><?php bugfix(31936); ?> (set_h_errno() is redefined incompatibly).</li> 370<li><?php bugfix(31911); ?> (mb_decode_mimeheader() is case-sensitive to hex escapes).</li> 371<li><?php bugfix(31858); ?> (--disable-cli does not force --without-pear).</li> 372<li><?php bugfix(31842); ?> (*date('r') does not return RFC2822 conforming date string).</li> 373<li><?php bugfix(31797); ?> (exif_read_data() uses too low nesting limit).</li> 374<li><?php bugfix(31796); ?> (readline completion handler does not handle empty return values).</li> 375<li><?php bugfix(31792); ?> (getrusage() does not provide ru_nswap value).</li> 376<li><?php bugfix(31754); ?> (dbase_open() fails for mode = 1).</li> 377<li><?php bugfix(31705); ?> (parse_url() does not recognize http://foo.com#bar).</li> 378<li><?php bugfix(31684); ?> (dio_tcsetattr(): misconfigured termios settings).</li> 379<li><?php bugfix(31699); ?> (unserialize() float problem on non-English locales).</li> 380<li><?php bugfix(31623); ?> (OCILogin does not support password grace period).</li> 381<li><?php bugfix(31580); ?> (fgetcsv() problematic with "" escape sequences).</li> 382<li><?php bugfix(31527); ?> (crash in msg_send() when non-string is stored without being serialized).</li> 383<li><?php bugfix(31514); ?> (open_basedir uses path_translated rather then cwd for . translation).</li> 384<li><?php bugfix(31480); ?> (Possible infinite loop in imap_mail_compose()).</li> 385<li><?php bugfix(31479); ?> (Fixed crash in chunk_split(), when chunklen > strlen).</li> 386<li><?php bugfix(31465); ?> (False warning in unpack() when working with *).</li> 387<li><?php bugfix(31454); ?> (session_set_save_handler crashes PHP when supplied non-existent object ref).</li> 388<li><?php bugfix(31444); ?> (Memory leak in zend_language_scanner.c).</li> 389<li><?php bugfix(31442); ?> (unserialize broken on 64-bit systems).</li> 390<li><?php bugfix(31440); ?> ($GLOBALS can be overwritten via GPC when register_globals is enabled).</li> 391<li><?php bugfix(31413); ?> (curl POSTFIELDS crashes on 64-bit platforms).</li> 392<li><?php bugfix(31396); ?> (compile fails with gd 2.0.33 without freetype).</li> 393<li><?php bugfix(31371); ?> (highlight_file() trims new line after heredoc).</li> 394<li><?php bugfix(31270); ?> (missing safe_mode/open_basedir check in swf_openfile()).</li> 395<li><?php bugfix(31174); ?> (compile warning in url.c).</li> 396<li><?php bugfix(31159); ?> (COM object access is not working).</li> 397<li><?php bugfix(31142); ?> (imap_mail_compose() fails to generate correct output).</li> 398<li><?php bugfix(31398); ?> (When magic_guotes_gpc are enabled filenames with ' get cutoff).</li> 399<li><?php bugfix(31288); ?> (Possible crash in mysql_fetch_field(), if mysql_list_fields() was not called previously).</li> 400<li><?php bugfix(31120); ?> (mssql_query returns false on successful inserts and stored procedures).</li> 401<li><?php bugfix(31107); ?>, <?php bugfix(31110); ?>, <?php bugfix(31111); ?>, <?php bugfix(31249); ?> (Compile failure of zend_strtod.c).</li> 402<li><?php bugfix(31106); ?> (Fixed crash in overloaded objects).</li> 403<li><?php bugfix(31103); ?> (Better error message when c-client cannot be found).</li> 404<li><?php bugfix(31101); ?> (missing kerberos header file path with --with-openssl).</li> 405<li><?php bugfix(31072); ?> (var_export() does not output an array element with an empty string key).</li> 406<li><?php bugfix(31060); ?> (imageftbbox() does not use linespacing parameter).</li> 407<li><?php bugfix(31056); ?> (php_std_date() returns invalid formatted date if y2k_compliance is On).</li> 408<li><?php bugfix(31055); ?> (apache2filter: per request leak proportional to the full path of the request URI).</li> 409<li><?php bugfix(30726); ?> (-.1 like numbers are not being handled correctly).</li> 410<li><?php bugfix(30609); ?> (cURL functions bypass open_basedir).</li> 411<li><?php bugfix(30573); ?> (compiler warnings in libmbfl due to invalid type cast).</li> 412<li><?php bugfix(30549); ?> (incorrect character translations for some ISO8859 charsets).</li> 413<li><?php bugfix(30446); ?> (apache2handler: virtual() includes files out of sequence)</li> 414<li><?php bugfix(30430); ?> (odbc_next_result() doesn't bind values and that results in segfault).</li> 415<li><?php bugfix(30120); ?> (imagettftext() and imagettfbbox() accept too many parameters).</li> 416<li><?php bugfix(29733); ?> (printf() handles repeated placeholders wrong).</li> 417<li><?php bugfix(29424); ?> (width and height inverted for JPEG2000 files).</li> 418<li><?php bugfix(28976); ?> (mail(): use "From:" from headers if sendmail_from is empty).</li> 419<li><?php bugfix(28930); ?> (PHP sources pick wrong header files generated by bison).</li> 420<li><?php bugfix(28804); ?> (ini-file section parsing pattern is buggy).</li> 421<li><?php bugfix(28803); ?> (enabled debug causes bailout errors with CLI on AIX because of fflush() called on already closed filedescriptor).</li> 422<li><?php bugfix(28451); ?> (corrupt EXIF headers have unlimited recursive IFD directory entries).</li> 423<li><?php bugfix(28220); ?> (mb_strwidth() returns wrong width values for some handful chars).</li> 424<li><?php bugfix(28086); ?> (crash inside overload() function).</li> 425<li><?php bugfix(28074); ?> (FastCGI: stderr should be written in a FCGI stderr stream).</li> 426<li><?php bugfix(28067); ?> (partially incorrect utf8 to htmlentities mapping).</li> 427<li><?php bugfix(27633); ?> (Double \r problem on ftp_get in ASCII mode on Win32).</li> 428<li><?php bugfix(18613); ?> (Multiple OUs in x509 certificate not handled properly).</li> 429<li><?php bugfix(7782); ?> (Cannot use PATH_INFO fully with php isapi).</li> 430</ul> 431 432There is a <a href="release_4_3_11.php">separate announcement</a> available for this release.<br> 433 434<!-- }}} --></section> 435 436<section class="version" id="4.3.10"><!-- {{{ 4.3.10 --> 437<h3>Version 4.3.10</h3> 438<?php release_date("14-Dec-2004"); ?> 439<ul> 440<li>Added the %F modifier to *printf to render a non-locale-aware representation of a float with the . as decimal separator.</li> 441<li>Fixed a bug in addslashes() handling of the '\0' character.</li> 442<li>Backported Marcus' foreach() speedup patch from PHP 5.x.</li> 443<li>Fixed potential problems with unserializing invalid serialize data.</li> 444<li><?php bugfix(31034); ?> (Problem with non-existing iconv header file).</li> 445<li><?php bugfix(31024); ?> (Crash in fgetcsv() with negative length).</li> 446<li><?php bugfix(31019); ?> (Logic error mssql library checking).</li> 447<li><?php bugfix(30995); ?> (snmp extension does not build with net-snmp 5.2).</li> 448<li><?php bugfix(30990); ?> (allow popen() on *NIX to accept 'b' flag).</li> 449<li><?php bugfix(30826); ?> (Certain reference relations cannot be unserialized properly).</li> 450<li><?php bugfix(30750); ?> (Meaningful error message when upload directory is not accessible).</li> 451<li><?php bugfix(30739); ?> (imagefill does not set back alphablending mode).</li> 452<li><?php bugfix(30672); ?> (Problem handling exif data in jpeg images at unusual places).</li> 453<li><?php bugfix(30658); ?> (Ensure that temporary files created by GD are removed).</li> 454<li><?php bugfix(30654); ?> (oci8 persistent connection is deleted from hash if there was exclusive connection with the same credentials).</li> 455<li><?php bugfix(30613); ?> (Prevent infinite recursion in url redirection).</li> 456<li><?php bugfix(30587); ?> (array_multisort doesn't separate zvals before changing them).</li> 457<li><?php bugfix(30475); ?> (curl_getinfo() may crash in some situations).</li> 458<li><?php bugfix(30442); ?> (segfault when parsing ?getvariable[][ ).</li> 459<li><?php bugfix(30388); ?> (rename across filesystems loses ownership and permission info).</li> 460<li><?php bugfix(30282); ?> (segfault when using unknown/unsupported session.save_handler and/or session.serialize_handler).</li> 461<li><?php bugfix(30281); ?> (Prevent non-wbmp images from being detected as such).</li> 462<li><?php bugfix(30276); ?> (Possible crash in ctype_digit on large numbers).</li> 463<li><?php bugfix(30229); ?> (imagerectangle and imagefilledrectangle do work well with alpha channel, corners are drawn twice).</li> 464<li><?php bugfix(30224); ?> (Sybase date strings are sometimes not null terminated).</li> 465<li><?php bugfix(30133); ?> (get_current_user() crashes on Windows).</li> 466<li><?php bugfix(30057); ?> (did not detect IPV6 on FreeBSD 4.1).</li> 467<li><?php bugfix(30027); ?> (Possible crash inside ftp_get()).</li> 468<li><?php bugfix(29805); ?> (HTTP Authentication Issues).</li> 469<li><?php bugfix(29418); ?> (double free when openssl_csr_new fails)..</li> 470<li><?php bugfix(28598); ?> (Lost support for MS Symbol fonts).</li> 471<li><?php bugfix(28325); ?> (Circular references not properly serialized).</li> 472<li><?php bugfix(28228); ?> (NULL decimal separator is not being handled correctly).</li> 473<li><?php bugfix(27469); ?> (serialize() objects of incomplete class).</li> 474 475</ul> 476 477There is a <a href="release_4_3_10.php">separate announcement</a> available for this release.<br> 478 479<!-- }}} --></section> 480 481<section class="version" id="4.3.9"><!-- {{{ 4.3.9 --> 482<h3>Version 4.3.9</h3> 483<?php release_date("22-Sep-2004"); ?> 484<ul> 485<li>GPC input processing fixes.</li> 486<li>Implemented periodic PCRE compiled regexp cache cleanup, to avoid memory exhaustion.</li> 487<li>Fixed bug with raw_post_data not getting set.</li> 488<li>Fixed a file-descriptor leak with phpinfo() and other 'special' URLs.</li> 489<li>Rewritten UNIX and Windows install help files.</li> 490<li>Updated PCRE to provide better error handling in certain cases.</li> 491<li>NSAPI: added "bucket" parameter to list of non-php.ini-keys of php4_execute for doing performance stats without warnings in server-log.</li> 492<li>Fixed leap year checking with idate().</li> 493<li>Fixed strip_tags() to correctly handle '\0' characters.</li> 494<li>Fixed funny forking effect in FastCGI when PHP_FCGI_CHILDREN was not set.</li> 495<li><?php bugfix(30050); ?> (Possible crash inside php_shutdown_config()).</li> 496<li><?php bugfix(29882); ?> (isset crashes on arrays).</li> 497<li><?php bugfix(29753); ?> (mcal_fetch_event() allows 2nd argument to be optional).</li> 498<li><?php bugfix(29727); ?> (Added missing CURL authentication directives).</li> 499<li><?php bugfix(29719); ?> (fgetcsv() has problem parsing strings ending with escaped enclosures).</li> 500<li><?php bugfix(29607); ?> (highlighting code with HEREDOC produces invalid output).</li> 501<li><?php bugfix(29599); ?> (domxml_error segfaults another apache module).</li> 502<li><?php bugfix(29594); ?> (Use PHP's own tmpfile() implementation).</li> 503<li><?php bugfix(29581); ?> (Typo inside php.ini comments for mysql.trace_mode).</li> 504<li><?php bugfix(29493); ?> (extract(array, EXTR_REFS) misbehaves with elements referred twice or more times).</li> 505<li><?php bugfix(29443); ?> (Sanity check for wbmp detection).</li> 506<li><?php bugfix(29369); ?> (Uploaded files with ' or " in their names get their names truncated at those characters).</li> 507<li><?php bugfix(29349); ?> (imagecreatefromstring() crashes with external GD library).</li> 508<li><?php bugfix(29333); ?> (output_buffering+trans_sess_id can corrupt output).</li> 509<li><?php bugfix(29226); ?> (ctype_* functions missing validation of numeric string representations).</li> 510<li><?php bugfix(29209); ?> (imap_fetchbody() doesn't check message index).</li> 511<li><?php bugfix(29116); ?> (Zend constant warning uses memory after free).</li> 512<li><?php bugfix(29114); ?> (Potential double free in php_stat).</li> 513<li><?php bugfix(29075); ?> (strnatcmp() incorrectly handles whitespace).</li> 514<li><?php bugfix(29049); ?> (array sorting via user function/method does not validate it).</li> 515<li><?php bugfix(29038); ?> (extract() with EXTR_PREFIX_SAME prefixes empty strings).</li> 516<li><?php bugfix(29034); ?> (wordwrap() returns a boolean when passed empty string).</li> 517<li><?php bugfix(28974); ?> (overflow in array_slice(), array_splice(), substr, substr_replace(), strspn(), strcspn()).</li> 518<li><?php bugfix(28897); ?> (ibase: -1 returned as -0.000 for 64-bit scaled int).</li> 519<li><?php bugfix(28879); ?> (Implicit/Explicit array creation inconsistency when using Resources, Arrays, or Objects as indices).</li> 520<li><?php bugfix(28878); ?> (Setting of inikey's in obj.conf fails).</li> 521<li><?php bugfix(28868); ?> (Internal wrapper registry not thread safe).</li> 522<li><?php bugfix(28818); ?> (Apache 2 sapis do not export st_dev).</li> 523<li><?php bugfix(28800); ?> (strings beginning with "inf" improperly converted).</li> 524<li><?php bugfix(28723); ?> (Fixed mbstring config.m4 to work on OSes where test command does not support -e parameter).</li> 525<li><?php bugfix(28692); ?> (\0 in Authenticate header passed via safe_mode).</li> 526<li><?php bugfix(28670); ?> (WWW-Authentication header mangling with PCRE in safe_mode adds extra spaces).</li> 527<li><?php bugfix(28668); ?> (glob() does not work with relative paths on Windows).</li> 528<li><?php bugfix(28649); ?> (Proper glob() return value on Linux when there are no matches).</li> 529<li><?php bugfix(28633); ?> (sprintf incorrectly adding padding to floats).</li> 530<li><?php bugfix(28627); ?> (When multiple MySQL links are used default link is leaked).</li> 531<li><?php bugfix(28525); ?> (gmp_powm() does not work with hexadecimal string modulo represented as a string).</li> 532<li><?php bugfix(28512); ?> (Allocate enough space to store MSSQL data).</li> 533<li><?php bugfix(28466); ?> (mbstring_convert_variables() array separation problem).</li> 534<li><?php bugfix(28175); ?> (Allow bundled GD to compile against freetype 2.1.2).</li> 535 536</ul> 537There is a <a href="release_4_3_9.php">separate announcement</a> available for this release.<br> 538 539<!-- }}} --></section> 540 541<section class="version" id="4.3.8"><!-- {{{ 4.3.8 --> 542<h3>Version 4.3.8</h3> 543<?php release_date("13-Jul-2004"); ?> 544<ul> 545<li>Fixed strip_tags() to correctly handle '\0' characters. (Stefan)</li> 546<li>Improved stability during startup when memory_limit is used. (Stefan)</li> 547<li>Replace alloca() with emalloc() for better stack protection. (Ilia)</li> 548<li>Added missing safe_mode checks inside ftok and itpc. (Ilia)</li> 549<li><?php bugfix(28963); ?> Fixed address allocation routine in IMAP extension. (Ilia)</li> 550<li><?php bugfix(28632); ?> Prevent open_basedir bypass via MySQL's LOAD DATA LOCAL. (Ilia)</li> 551</ul> 552 553There is a <a href="release_4_3_8.php">separate announcement</a> available for this release.<br> 554<!-- }}} --></section> 555 556<section class="version" id="4.3.7"><!-- {{{ 4.3.7 --> 557<h3>Version 4.3.7</h3> 558<?php release_date("03-Jun-2004"); ?> 559<ul> 560<li>Upgraded bundled GD library to 2.0.23. (Ilia)</li> 561<li>Changed user error handler mechanism to relay to built-in error handler if it returns false. (Andrei)</li> 562<li>Fixed command line escaping routines for win32. (Ilia)</li> 563<li>Fixed problems with *printf() functions and '%f' formatting. (Marcus)</li> 564<li>Fixed possible crash inside pg_copy_(to|from) function if delimiter is more then 1 character long. (Ilia)</li> 565<li>Fixed crash inside cpdf_place_inline_image() when working with true-color images. (Ilia)</li> 566<li>Fixed handling of return values from stored procedures in mssql_execute() with multiple result sets returned. (Frank)</li> 567<li>Fixed logic bug in session_register() which allowed registering _SESSION and/or HTTP_SESSION_VARS. (Sara)</li> 568<li><?php bugfix(28597); ?> (xmlrpc_encode_request() incorrectly encodes chars in 200-210 range). (fernando dot nemec at folha dot com dot br, Ilia)</li> 569<li><?php bugfix(28569); ?> (informix connection id is not thread safe). (novicky at aarongroup dot cz, Ard)</li> 570<li><?php bugfix(28564); ?> (Problem building informix as a shared extension). (roques at mti dot ag, Ilia)</li> 571<li><?php bugfix(28508); ?> (Do not make hypot() available if not supported by libc). (Ilia)</li> 572<li><?php bugfix(28506); ?> (Allow negative start angle in imagearc and imagefilledarc). (Pierre)</li> 573<li><?php bugfix(28456); ?> (Problem with enclosed / in uploaded files). (Antony)</li> 574<li><?php bugfix(28386); ?> (wordwrap() wraps lines 1 character too soon). (Ilia)</li> 575<li><?php bugfix(28374); ?> (Possible unterminated loop inside _php_pgsql_trim_message()). (Ilia)</li> 576<li><?php bugfix(28355); ?> (glob() does not return error on Linux when it does not have permission to open the directory). (Ilia)</li> 577<li><?php bugfix(28289); ?> (incorrect resolving of relative paths by glob() in windows). (Ilia)</li> 578<li><?php bugfix(28229); ?> (run-tests tripped up by spaces in names). (Marcus)</li> 579<li><?php bugfix(28228); ?> (number_format() does not allow empty decimal separator). (Ilia)</li> 580<li><?php bugfix(28196); ?> (missing error constants in cURL extension). (Ilia)</li> 581<li><?php bugfix(28187); ?> (parse_url() not handling embedded IPv6 in URLs). (Sara)</li> 582<li><?php bugfix(28175); ?> (build problem for people using FreeType 2.1.0-2.1.2). (Ilia)</li> 583<li><?php bugfix(28147); ?> (Crash with drawing anti-aliased lines). (Derick)</li> 584<li><?php bugfix(28122); ?> (dba_open db3: Permission denied). (Marcus)</li> 585<li><?php bugfix(28112); ?> (sqlite_query() crashing apache on malformed query). (Ilia, Marcus)</li> 586<li><?php bugfix(28055); ?> (timeout duration too long in feof()/pfsockopen() liveness checks). (Wez)</li> 587<li><?php bugfix(28087); ?> (Do not force mysql.trace_mode to 0 on every request). (Ilia)</li> 588<li><?php bugfix(28042); ?> (greek letters in html to entity mapping not correct). (Derick)</li> 589<li><?php bugfix(28007); ?> (compile mssql extension with old versions of FreeTDS fails). (Frank)</li> 590<li><?php bugfix(27995); ?> (imagefilltoborder() stops the fill process prematurely). (Ilia)</li> 591<li><?php bugfix(27810); ?> (don't use php's pemalloc in ext/pcre). (Joe Orton)</li> 592<li><?php bugfix(23220); ?> (SSL: fatal protocol error when talking to IIS). (Wez)</li> 593 594</ul> 595There is a <a href="release_4_3_7.php">separate announcement</a> available for this release.<br> 596 597<!-- }}} --></section> 598 599<section class="version" id="4.3.6"><!-- {{{ 4.3.6 --> 600<h3>Version 4.3.6</h3> 601<?php release_date("15-Apr-2004"); ?> 602<ul> 603<li>Updated bundled PDFLib library to version 5.0.3p1 in Windows distribution. (Edin)</li> 604<li>Synchronized bundled GD library with GD 2.0.22. (Ilia)</li> 605<li>Fixed a crash in multi-threaded environments when a thread is shutdown by the web server. (Stas)</li> 606<li>Fixed a bug that prevented building of the GD extension against external GD lib 1.X. (Ilia, Edin, Nick Talbott).</li> 607<li><?php bugfix(27963); ?> (Session lifetime setting may leak between requests). (Ilia)</li> 608<li><?php bugfix(27849); ?> (configure craps out on trivial syntax error). (Derick)</li> 609<li><?php bugfix(27822); ?> (is_resource() returns TRUE for closed resources). (Derick)</li> 610<li><?php bugfix(27819); ?> (problems returning reference to a reference parameter). (Ilia)</li> 611<li><?php bugfix(27809); ?> (ftp_systype returns null on some ftp servers). (Ilia)</li> 612<li><?php bugfix(27802); ?> (default number of children to 8 when PHP_FCGI_CHILDREN is not defined). (Ilia)</li> 613<li><?php bugfix(27780); ?> (strtotime(+1 xxx) returns a wrong date/time). (Derick)</li> 614<li><?php bugfix(27769); ?> (domxml_xmltree crashes). (Rob)</li> 615<li><?php bugfix(27764); ?> (Get return value from a stored procedure not returning any result sets). (Frank)</li> 616<li><?php bugfix(27762); ?> (SCO Openserver doesn't have S_ISSOCK). (Wez)</li> 617<li><?php bugfix(27743); ?> (Make sure Money types are converted and returned correctly). (Frank)</li> 618<li><?php bugfix(27732); ?> (Fixed compilation bug inside php_sab_info.h). (Ilia)</li> 619<li><?php bugfix(27731); ?> (error_reporting() inside @ block fails to set error_reporting level). (Ilia)</li> 620<li><?php bugfix(27719); ?> (mktime issues on and around DST changeover). (Rasmus)</li> 621<li><?php bugfix(27717); ?> (Test Failures when compiled on 64-bit mode). (Ard, Derick)</li> 622<li><?php bugfix(27687); ?> (Bug Adding Default Charset to 'text/*' Content-Type Header). (Marcus)</li> 623<li><?php bugfix(27663); ?> (compile failure with cURL 7.11.1). (Ilia)</li> 624<li><?php bugfix(27646); ?> (Cannot serialize/unserialize non-finite numeric values). (Marcus)</li> 625<li><?php bugfix(26757); ?> (session.save_path default is bogus for win32). (Wez)</li> 626<li><?php bugfix(26589); ?> (Crash inside mssql extension when selecting many columns of type money). (Frank)</li> 627<li><?php bugfix(25547); ?> (error_handler and array index with function call). cschneid at cschneid dot com)</li> 628 629</ul> 630There is a <a href="release_4_3_6.php">separate announcement</a> available for this release.<br> 631 632<!-- }}} --></section> 633 634<section class="version" id="4.3.5"><!-- {{{ 4.3.5 --> 635<h3>Version 4.3.5</h3> 636<?php release_date("26-Mar-2004"); ?> 637<ul> 638 639<li>Fixed possible crash using an invalid color index with a palette image in imagecolortransparent (Pierre)</li> 640<li>Fixed php-cgi to not ignore command-line switches when run in a web context. This fixes our test cases allowing INI with GET sections to work (Rasmus)</li> 641<li>Fixed getopt() so it works without $_SERVER (Rasmus, bfrance)</li> 642<li>Fixed crash in php_ini_scanned_files() when no additional INI files were actually parsed. (Jon)</li> 643<li>Fixed possible crashes inside socket extension, due to missing check inside allocation functions. (Ilia)</li> 644<li>Fixed zero bytes memory allocation when no extra ini files are found in the --with-config-file-scan-dir specified directory. (Eric Colinet, Derick)</li> 645<li>Changed "allow_url_fopen" php.ini option to be PHP_INI_SYSTEM. (Sara)</li> 646<li>Improved the sybase_ct module: (Timm) 647 <ul> 648 <li>Added ability to define a message handler not only globally, but also per connection.</li> 649 <li>Added "sybct.packet_size" php.ini option.</li> 650 <li>Changed "sybct.login_timeout" php.ini option changeable at runtime.</li> 651 <li>Fixed memory leak in sybase_set_message_handler().</li> 652 </ul></li> 653<li>Synchronized bundled GD library with GD 2.0.17</li> 654<li>Upgraded PCRE library to version 4.5. (Andrei)</li> 655<li>Updated bundled PostgreSQL library to version 7.4 in Windows distribution. (Edin)</li> 656<li>Added support for --program-prefix and --program-suffix configure options. (Jani)</li> 657<li>Added a warning when creating temp stream fails with ftp_(n)list(). (Sara)</li> 658<li>Fixed header handler in NSAPI SAPI module (header->replace was ignored, send_default_content_type now sends value from php.ini). (Uwe Schindler)</li> 659<li><?php bugfix(27633); ?> (Incorrect EOL translation by ftp_get() in ASCII mode). (Ilia)</li> 660<li><?php bugfix(27600); ?> (GCC 3.0.4 does not like __attribute__ directive). (Sascha)</li> 661<li><?php bugfix(27590); ?> (crash during shutdown when freeing persistent resources in ZTS mode). (Ilia)</li> 662<li><?php bugfix(27582); ?> (possible crashes in imagefilltoborder()). (Pierre)</li> 663<li><?php bugfix(27580); ?> (pre-initialization errors in ap2 handler are not being written to vhost error log). (Ilia)</li> 664<li><?php bugfix(27559); ?> (Corrected open_basedir resolving logic). (Ilia)</li> 665<li><?php bugfix(27530); ?> (broken http auth when safe_mode is on and PCRE is disabled). (Ilia)</li> 666<li><?php bugfix(27509); ?> (broken getaddrinfo() causes fsockopen() error). (Sara)</li> 667<li><?php bugfix(27505); ?> (htmlentities() does not handle BIG5 correctly). (Ilia, ywliu at hotmail dot com)</li> 668<li><?php bugfix(27498); ?> (bogus safe_mode error on nonexistent directories for chdir() and opendir() functions). (Ilia)</li> 669<li><?php bugfix(27460); ?> (base64_decode() does not handle extra padding). (Ilia, naish at klanen dot net)</li> 670<li><?php bugfix(27443); ?> (defined() returns wrong type). (Derick)</li> 671<li><?php bugfix(27437); ?> (wrong freetype include inside GD library). (Ilia)</li> 672<li><?php bugfix(27424); ?> (headers missing on flush() in apache 2 SAPIs). (Ilia)</li> 673<li><?php bugfix(27421); ?> (mbstring.func_overload should be system ini setting). (Ilia)</li> 674<li><?php bugfix(27384); ?> (unpack() misbehaves with 1 char string). (GeorgeS)</li> 675<li><?php bugfix(27383); ?> (Potential crash inside fopen_wrapper, while parsing response code). (Ilia)</li> 676<li><?php bugfix(27354); ?> (Modulus operator crashes PHP). (Derick)</li> 677<li><?php bugfix(27341); ?> (HEAD requests fail to return data). (Ilia)</li> 678<li><?php bugfix(27337); ?> (missing sapi_shutdown() in sapi/isapi causes memory leak). (Jani, msisolak at yahoo dot com)</li> 679<li><?php bugfix(27328); ?> (ftp extension relies on 32-bit longs). (Sara)</li> 680<li><?php bugfix(27300); ?> (Improved regex for pg_convert()). (benjcarson at digitaljunkies dot ca, Ilia)</li> 681<li><?php bugfix(27295); ?> (memory leak inside sscanf()). (Ilia)</li> 682<li><?php bugfix(27293); ?> (two crashes inside image2wbmp()). (Ilia)</li> 683<li><?php bugfix(27291); ?> (get_browser matches browscap.ini patterns incorrectly). (Jay)</li> 684<li><?php bugfix(27278); ?> (*printf() functions treat arguments as if passed by reference). (Ilia)</li> 685<li><?php bugfix(27238); ?> (iptcparse() function misses some fields). (Pierre)</li> 686<li><?php bugfix(27235); ?> (Interbase NUMERIC x.0 field returns empty string on 0). (Ard)</li> 687<li><?php bugfix(27196); ?> (Missing content_length initialization in apache 2 sapis). (Ilia, pdoru at kappa dot ro)</li> 688<li><?php bugfix(27183); ?> (userland stream wrapper segfaults on stream_write). (Moriyoshi)</li> 689<li><?php bugfix(27175); ?> (tzset() is not being called by PHP on startup). (Ilia, sagawa at sohgoh dot net)</li> 690<li><?php bugfix(27172); ?> (Possible floating point exception in gmp_powm()). (Ilia)</li> 691<li><?php bugfix(27171); ?> (crash inside gmp_hamdist()). (Jani)</li> 692<li><?php bugfix(27157); ?> (Compile Failure on Solaris 8). (Timm)</li> 693<li><?php bugfix(27149); ?> (broken CLOB support in oci8 extension). (Antony)</li> 694<li><?php bugfix(27135); ?> (Possible crash inside mb_strlen()). (Moriyoshi)</li> 695<li><?php bugfix(27104); ?> (CLI/CGI SAPI module variable name conflict). (Marcus)</li> 696<li><?php bugfix(27058); ?> (crash in sybase_connect() with 2 arguments). (Ilia)</li> 697<li><?php bugfix(27056); ?> (ints used instead of longs inside some GD functions). (Ilia)</li> 698<li><?php bugfix(27040); ?> (passing an array of form-fields to CURLOPT_POSTFIELDS does not work). (Ilia, Jani)</li> 699<li><?php bugfix(27037); ?> (fixed possible crash in apache2handler output code). (Ilia)</li> 700<li><?php bugfix(27026); ?> (Added "cgi.nph" php.ini option to allow forcing of the 'Status: 200' header that is not normally needed). (Ilia)</li> 701<li><?php bugfix(27011); ?> (64bit int/long confusion in preg_match*() functions). (Ilia)</li> 702<li><?php bugfix(27007); ?> (missing connection closure when connect fails in pgsql). (Ilia)</li> 703<li><?php bugfix(26974); ?> (rename() doesn't check the destination file against safe_mode/open_basedir). (Ilia)</li> 704<li><?php bugfix(26973); ?> (*printf() '+' modifier broken). (Jani)</li> 705<li><?php bugfix(26969); ?> (--with-openssl=shared build fails). (Jani)</li> 706<li><?php bugfix(26968); ?> (Segfault with Interbase module built as shared). (Ard)</li> 707<li><?php bugfix(26949); ?> (rand(min,max) always returns min when ZTS enabled). (Jani)</li> 708<li><?php bugfix(26937); ?> (Warning in xml.c). (Jani)</li> 709<li><?php bugfix(26927); ?> (preg_quote() does not escape \0). (Ilia)</li> 710<li><?php bugfix(26923); ?> (ext/imap: pam and crypt libraries missing when build as shared extension). (Jani)</li> 711<li><?php bugfix(26909); ?> (crash in imap_mime_header_decode() when no encoding is used). (Ilia)</li> 712<li><?php bugfix(26896); ?> (ext/ftp does not work as shared extension). (Jani)</li> 713<li><?php bugfix(26892); ?> (ORA-21301 in ocinewcollection() call). (Antony)</li> 714<li><?php bugfix(26878); ?> (problem with multiple references to the same variable with different types). (Ilia)</li> 715<li><?php bugfix(26864); ?> (pg_(update|delete) ignore PGSQL_DML_EXEC option). (Ilia)</li> 716<li><?php bugfix(26862); ?> (ob_flush() followed by output_reset_rewrite_vars() may result in data loss). (Ilia, scottmacvicar at ntlworld dot com)</li> 717<li><?php bugfix(26847); ?> (memory leak in mail() when to/subject contain only spaces). (Ilia)</li> 718<li><?php bugfix(26814); ?> (When included file has a parse error, terminate script execution). (Ilia)</li> 719<li><?php bugfix(26777); ?> (ext/interbase: Let DB handle NULL params). (Ard)</li> 720<li><?php bugfix(26772); ?>, <?php bugl(26967); ?> (file operations return NULL instead of FALSE). (Wez, Ilia)</li> 721<li><?php bugfix(26758); ?> (FastCGI exits immediately with status 255). (Ilia, tcarter at noggin dot com dot au)</li> 722<li><?php bugfix(26755); ?> (CLI now overrides php.ini settings and switches off output buffering). (Edin)</li> 723<li><?php bugfix(26753); ?> (zend_fetch_list_dtor_id() doesn't check NULL strings). (Jani, Markus dot Lidel at shadowconnect dot com)</li> 724<li><?php bugfix(26752); ?> (Silent unterminated loop when length parameter for fgets(), fread() and fgetss() is 0). (Ilia)</li> 725<li><?php bugfix(26751); ?> (PHP can't find the MySQL socket on a case sensitive file system). (Derick)</li> 726<li><?php bugfix(26703); ?> (Certain characters inside strings incorrectly treated as keywords). (vrana [at] php [dot] net, Ilia)</li> 727<li><?php bugfix(26699); ?> (mbstring doesn't identify "binary" as a valid encoding). (nirva-php at ishiboo dot com, Moriyoshi)</li> 728<li><?php bugfix(26667); ?> (Added safety checks to ip2long()). (Ilia)</li> 729<li><?php bugfix(26653); ?> (open_basedir incorrectly resolved on win32). (Ilia, scottmacvicar at ntlworld dot com)</li> 730<li><?php bugfix(26639); ?> (mb_convert_variables() clutters variables beyond the references). (Moriyoshi)</li> 731<li><?php bugfix(26635); ?> (fixed look up for fonts in the current directory w/ZTS). (Ilia)</li> 732<li><?php bugfix(26625); ?> (pg_convert sets NULL incorrectly for character data types). (Ilia)</li> 733<li><?php bugfix(26604); ?> (Apache2 SAPIs implicitly disable Keep-Alive). (Ilia)</li> 734<li><?php bugfix(26595); ?> (ext/domxml: XSLT_NAMESPACE undeclared). (Christian)</li> 735<li><?php bugfix(26565); ?> (strtotime("this month") resolving to the wrong month). (Jani)</li> 736<li><?php bugfix(26564); ?> (ncurses5 has headers in PREFIX/include/ncurses/). (Jani)</li> 737<li><?php bugfix(26548); ?> (ext/session: Malformed HTTP dates headers). (Derick)</li> 738<li><?php bugfix(26531); ?> (ext/domxml: get_elements_by_tag_name() wildcard fails). (Rob Richards)</li> 739<li><?php bugfix(26488); ?> (Missing declaration of CRTSCTS in ext/dio/dio.c). (Jani)</li> 740<li><?php bugfix(26467); ?> (flock() does not force the "wouldblock" parameter to be passed by reference). (Wez)</li> 741<li><?php bugfix(26463); ?> (Incorrect handling of semicolons after heredoc). (Ilia)</li> 742<li><?php bugfix(26462); ?> (phpize + ext/bcmath -> compile error). (Jani)</li> 743<li><?php bugfix(26461); ?> (-lssl missing from LIBS). (Jani)</li> 744<li><?php bugfix(26458); ?> (var_dump(), var_export(), debug_zval_dump() not binary safe for array keys). (Ilia)</li> 745<li><?php bugfix(26447); ?> (--with-openssl=shared causes compile errors). (Jani)</li> 746<li><?php bugfix(26446); ?> (domxml_open_file() returns an empty error-Array). (Rob)</li> 747<li><?php bugfix(26440); ?> (MFH missing context options). (Ilia)</li> 748<li><?php bugfix(26438); ?> (error in thttpd SAPI installation). (Jani)</li> 749<li><?php bugfix(26415); ?> (Updated bundled OpenSSL DLLs in the Windows distribution to 0.9.7c). (Edin)</li> 750<li><?php bugfix(26407); ?> (Result set fetching broken around transactions). (Timm)</li> 751<li><?php bugfix(26391); ?> (parse_url() destroys strings that contain a character in range of \x80-\xff)). (Moriyoshi)</li> 752<li><?php bugfix(26384); ?> (crash in domxslt->process()). (Christian)</li> 753<li><?php bugfix(26381); ?> (rand() without srand() doesn't work with certain php.ini). (Jani)</li> 754<li><?php bugfix(26376); ?> (typo in ext/odbc/config.m4: DBMaker test fails). (Jani)</li> 755<li><?php bugfix(26355); ?> (flock() doesn't initialize the wouldblock argument). (Ilia)</li> 756<li><?php bugfix(26309); ?> (Fixed argument parsing for imageftbbox()). (Ilia)</li> 757<li><?php bugfix(26304); ?> (Unexpected data loss when opening dba file). (Marcus)</li> 758<li><?php bugfix(26285); ?> (escapeshellarg() uses wrong quotes on windows). (Ilia)</li> 759<li><?php bugfix(26267); ?> (gmp_random() leaks memory and does not produce random numbers). (Jani)</li> 760<li><?php bugfix(26253); ?> (ext/tokenizer: build as shared extension fails). (Jani)</li> 761<li><?php bugfix(26235); ?> (yp_first/yp_next do not specify correct key length). (Ilia)</li> 762<li><?php bugfix(26216); ?> ("getimagesize(): stream does not support seeking" when using remote files). (Marcus)</li> 763<li><?php bugfix(26201); ?> (crash in ibase_trans() on invalid link handle). (Ilia)</li> 764<li><?php bugfix(26198); ?> (strtotime() handling of M/F Y date format). (Ilia)</li> 765<li><?php bugfix(26194); ?> (iconv() not properly defined with libiconv). (Steph, Frank, Moriyoshi)</li> 766<li><?php bugfix(26176); ?> (Fixed handling of numeric keys in INI files). (Ilia)</li> 767<li><?php bugfix(26168); ?> (shtool availability check in phpize). (robbat2 at gentoo dot org, Ilia)</li> 768<li><?php bugfix(26148); ?> (Print the notice before modifying variable on type mismatch). (morten-bugs dot php dot net at afdelingp dot dk, Ilia)</li> 769<li><?php bugfix(26128); ?> (mbstring prints out wrong information on phpinfo()). (Moriyoshi)</li> 770<li><?php bugfix(26113); ?> (remove leftover local file when ftp_get/ftp_nb_get fails). (Ilia)</li> 771<li><?php bugfix(26105); ?> (Compile failure on GCC version 3.0.X). (Ilia)</li> 772<li><?php bugfix(26103); ?> (ext/mime_magic causes compile failure in ext/mssql). (Jani)</li> 773<li><?php bugfix(26097); ?> (gdImageColorClosestAlpha() returns incorrect results). (sprice at wisc dot edu, Ilia)</li> 774<li><?php bugfix(26042); ?> (memory leak if mcrypt_generic_deinit() is not called after every mcrypt_generic_init() call). (Ilia)</li> 775<li><?php bugfix(26025); ?> (Segfault on glob() without GLOB_NOCHECK or GLOB_NOMAGIC under *BSD platforms). (Moriyoshi)</li> 776<li><?php bugfix(26005); ?> (Random "cannot change the session ini settings" errors). (Jani, jsnajdr at kerio dot com)</li> 777<li><?php bugfix(26003); ?> (Make fgetcsv() binary safe). (Ilia, Moriyoshi)</li> 778<li><?php bugfix(25963); ?> (PostgreSQL error message include \n characters). (Marcus, Ilia)</li> 779<li><?php bugfix(25939); ?> (feof() not working correctly for sockets). (Wez)</li> 780<li><?php bugfix(25916); ?> (get_browser() -> PHP Fatal error: Nesting level too deep - recursive dependency?). (Uwe Schindler)</li> 781<li><?php bugfix(25794); ?> (Cannot open existing hash db3 file with write" ext/dba). (Marcus)</li> 782<li><?php bugfix(25753); ?> (php.ini settings "leak" from vhosts/.htaccess files). (Patch by: rover at tob dot ru)</li> 783<li><?php bugfix(25694); ?> (round() and number_format() give inconsistent results). (Ilia)</li> 784<li><?php bugfix(25664); ?> (calling ITypeInfo::Invoke with bogus params). (Wez)</li> 785<li><?php bugfix(25581); ?> (getimagesize () return incorrect values on bitmap (os2) files). (Marcus)</li> 786<li><?php bugfix(25329); ?> (sqlite_create_function with method and reference to $this). (Marcus).</li> 787<li><?php bugfix(24773); ?> (unsetting string as array causes a crash). (Sara)</li> 788<li><?php bugfix(24773); ?> (Unsetting string offsets crashes PHP). (Moriyoshi, Sara)</li> 789<li><?php bugfix(24582); ?> (extensions can't be loaded dynamically in Solaris/iPlanet). (Jani)</li> 790<li><?php bugfix(23467); ?> (date('T') outputs incorrect Time Zone). (Jani, scottmacvicar at ntlworld dot com)</li> 791<li><?php bugfix(22403); ?> (PHP crashes when executing a sql procedure without parameters). (Timm)</li> 792<li><?php bugfix(22127); ?> (Invalid response code when force-cgi-redirect safety mechanism is triggered). (Ilia, scottmacvicar at ntlworld dot com)</li> 793<li><?php bugfix(21760); ?> (Use of uninitialized pointer inside php_read()). (Ilia, uce at ftc dot gov)</li> 794<li><?php bugfix(21513); ?> (shutdown functions not executed if timed out). (Zeev)</li> 795<li><?php bugfix(21070); ?> (ftp_genlist/ANSI-tmpfile() fail w/ some platform). (Sara)</li> 796 797</ul> 798There is a <a href="release_4_3_5.php">separate announcement</a> available for this release.<br> 799 800 801<!-- }}} --></section> 802 803<section class="version" id="4.3.4"><!-- {{{ 4.3.4 --> 804<h3>Version 4.3.4</h3> 805<?php release_date("03-Nov-2003"); ?> 806<ul> 807<li>Made MCVE extension available on win32. (Jani)</li> 808<li>Upgraded bundled libfcgi and made FastCGI support viable on Win32. (Sascha)</li> 809<li>Added apache_get_version() function. (Ilia)</li> 810<li>Fixed disk_total_space() and disk_free_space() under FreeBSD. (Jon Parise)</li> 811<li>Fixed crash bug when non-existing save/serializer handler was used. (Jani)</li> 812<li>Fixed memory leak in gethostbynamel() if an error occurs. (Sara)</li> 813<li>Fixed FastCGI being unable to bind to a specific IP. (Sascha)</li> 814<li>Fixed multibyte regex engine to properly handle ".*" pattern under POSIX compatible mode. (K.Kosako <kosako at sofnec.co.jp>, Moriyoshi)</li> 815<li><?php bugfix(25955); ?> (Compile failure on MacOSX 10.3 Panther). (Marko, Dan)</li> 816<li><?php bugfix(25923); ?> (mail() modifies the to & subject arguments). (Ilia)</li> 817<li><?php bugfix(25922); ?> (Crash in error handler when 5th argument is modified). (Ilia) </li> 818<li><?php bugfix(25918); ?> (Possible crash in mime_content_type()). (Ilia)</li> 819<li><?php bugfix(25900); ?> (document->get_elements_by_tag_name with default xmlns). (Rob)</li> 820<li><?php bugfix(25895); ?> (Incorrect detection of safe_mode limited ini options). (Ilia)</li> 821<li><?php bugfix(25888); ?> (Crash of php.exe when xpath_eval of a namespace). (Rob)</li> 822<li><?php bugfix(25836); ?> (last key of multi-dimensional array passed via GPC not being escaped when magic_quotes_gpc is on). (Ilia)</li> 823<li><?php bugfix(25825); ?> (tzset() was not called to reset libc environment on request shutdown). (Wez)</li> 824<li><?php bugfix(25814); ?> (Make flock() return correct value when 3rd argument is used). (Ilia)</li> 825<li><?php bugfix(25800); ?> (parse_url() could not parse urls with empty port). (Ilia)</li> 826<li><?php bugfix(25780); ?> (ext/session: invalid "session.cookie_lifetime" makes session_start() to crash in win32). (Jani)</li> 827<li><?php bugfix(25777); ?> (Do not rtrim() of text fields fetched from mssql). (Ilia)</li> 828<li><?php bugfix(25770); ?> (Segfault with PHP and bison 1.875). (eggert@gnu.org, Marcus)</li> 829<li><?php bugfix(25764); ?> (ldap_get_option() crashes with unbound ldap link). (Jani)</li> 830<li><?php bugfix(25758); ?> (var_export does not escape ' & \ inside array keys). (Ilia)</li> 831<li><?php bugfix(25752); ?> (ext/ncurses: ncurses.h instead of curses.h with BSD). (Jani)</li> 832<li><?php bugfix(25746); ?> (Do not bail out when unable to chdir original dir on systems with broken getcwd()). (Ilia)</li> 833<li><?php bugfix(25745); ?> (ctype functions fail with non-ascii characters). (Moriyoshi)</li> 834<li><?php bugfix(25744); ?> (make ZTS build of ext/sybase compile). (Ilia)</li> 835<li><?php bugfix(25738); ?> (alloca() related issues on the Darwin platform). (Moriyoshi)</li> 836<li><?php bugfix(25708); ?> (extract($GLOBALS, EXTR_REFS) mangles $GLOBALS). (Moriyoshi)</li> 837<li><?php bugfix(25707); ?> (html_entity_decode() over-decodes &lt;). (Moriyoshi)</li> 838<li><?php bugfix(25703); ?> (openssl configure check failed). (Jani)</li> 839<li><?php bugfix(25701); ?> (On flush() set headers_sent in apache2handler). (Ilia)</li> 840<li><?php bugfix(25671); ?> (str_replace() corrupts subarrays). (Sara)</li> 841<li><?php bugfix(25669); ?> (eregi() with non-ascii characters). (Moriyoshi)</li> 842<li><?php bugfix(25665); ?> (var_dump() hangs on Nan and INF). (Ilia)</li> 843<li><?php bugfix(25648); ?> (xslt_set_encoding() not detected correctly). (Jani)</li> 844<li><?php bugfix(25636); ?> (SNMP Session not closed on success). (Ilia, patch by: nesslage at mwsc dot edu)</li> 845<li><?php bugfix(25635); ?> (Make "make tests" to fail due to invalid include_path). (Ilia)</li> 846<li><?php bugfix(25604); ?> (HAVE_SNMP_PARSE_OID undefined with phpize build). (Jani)</li> 847<li><?php bugfix(25583); ?> (Incorrect handling of paths starting with "/" on win32 inside glob() function). (Ilia)</li> 848<li><?php bugfix(25570); ?> (Possible crash in apache2handler when zend_bailout called outside of zend_try {} block). (Ilia)</li> 849<li><?php bugfix(25558); ?> (ext/dbase: reverted fix for bug <?php bugl(23463); ?>). (Vlad)</li> 850<li><?php bugfix(25530); ?> (checkdate() incorrectly handles floats). (Ilia)</li> 851<li><?php bugfix(25525); ?> (ldap_explode_dn() crashes when passed invalid dn). (Sara, patch by: mikael dot suvi at trigger dot ee)</li> 852<li><?php bugfix(25504); ?> (pcre_match_all() crashes when passed only 2 parameters). (Jani)</li> 853<li><?php bugfix(25483); ?> (ext/informix: bogus -469 error from ifx_query()). (Jani, patch by: denisov at kubsu dot ru)</li> 854<li><?php bugfix(25463); ?> (ext/cpdf: compile failure with bundled GD)</li> 855<li><?php bugfix(25429); ?> (fix copying of stdin using copy() function). (Ilia)</li> 856<li><?php bugfix(25424); ?> (ext/informix: lvarchar not supported in win32). (Jani)</li> 857<li><?php bugfix(25404); ?> (ext/pgsql: open transactions not closed when script ends). (Marcus)</li> 858<li><?php bugfix(25385); ?> (ob_gzhandler(): typo in sapi_add_header_ex() call). (Jani)</li> 859<li><?php bugfix(25378); ?> (unserialize() crashes with invalid data). (Jani)</li> 860<li><?php bugfix(25372); ?> (sscanf() does not work with %X). (Jani)</li> 861<li><?php bugfix(25348); ?> ("make install" fails with --enable-short-tags). (Jani)</li> 862<li><?php bugfix(25343); ?> (is_dir() gives warning on FreeBSD). (Jani)</li> 863<li><?php bugfix(25333); ?> (Possible body corruption & crash in win32 mail()). (Ilia)</li> 864<li><?php bugfix(25316); ?> (Possible infinite loop inside _php_stream_write()). (Ilia)</li> 865<li><?php bugfix(25314); ?> (FTP_ASCII mode behaving like binary from Win->Unix). (Sara)</li> 866<li><?php bugfix(25308); ?> (php -m crashes when zend extensions are loaded). (Stas)</li> 867<li><?php bugfix(25307); ?> (Crash with WDDX serializer). (Sascha, Jani)</li> 868<li><?php bugfix(25295); ?> (QNX6: php_ini.c:414: 'alphasort' undeclared). (Jani)</li> 869<li><?php bugfix(25294); ?> (ext/ftp: NLST failure leads to crash on exit). (Sara, Rob)</li> 870<li><?php bugfix(25293); ?> (Output correct EOL to error_log). (Ilia)</li> 871<li><?php bugfix(25239); ?> (ftp_fopen_wrapper not RFC compliant). (Sara)</li> 872<li><?php bugfix(25218); ?> ("deflate" compressed pages had a gzip header). (Stefan)</li> 873<li><?php bugfix(25211); ?> (image.c compile failure with AIX). (Marcus)</li> 874<li><?php bugfix(25166); ?> (WDDX serializer handler missing in win32). (Jani)</li> 875<li><?php bugfix(25109); ?> (Possible crash when fetching field names in pgsql). (Ilia)</li> 876<li><?php bugfix(25106); ?> (Added more stringent checks on bzopen() mode). (Ilia)</li> 877<li><?php bugfix(25070); ?> (unlock session files on win32 before closing them). (Ilia)</li> 878<li><?php bugfix(24402); ?> (Compile failure with gettext 0.12.x). (Jani)</li> 879<li><?php bugfix(23488); ?> (zlib.output_compression overrides Vary header). (Stefan)</li> 880<li><?php bugfix(23326); ?> (ext/domxml: Attributes via append_child not supported). (Melvyn)</li> 881<li><?php bugfix(21220); ?> (Wrong Apache version shown in phpinfo() output). (Jani)</li> 882<li><?php bugfix(18534); ?> (ifx_close() leaves open session). (nobbie@php.net)</li> 883<li><?php bugfix(14049); ?> (realpath() returns invalid results for non-existent paths). (Ilia)</li> 884</ul> 885There is a <a href="release_4_3_4.php">separate announcement</a> available for this release.<br> 886 887<!-- }}} --></section> 888 889<section class="version" id="4.3.3"><!-- {{{ 4.3.3 --> 890<h3>Version 4.3.3</h3> 891<?php release_date("25-Aug-2003"); ?> 892<ul> 893<li>Synchronized bundled GD library with GD 2.0.15. (Ilia)</li> 894<li>Upgraded the bundled Expat library to version 1.95.6. (Jani)</li> 895<li>Upgraded the bundled PCRE library to version 4.3. (Andrei)</li> 896<li>Improved the engine to use POSIX/socket IO where feasible. (Sascha)</li> 897<li>Improved the NSAPI SAPI module (Uwe Schindler) 898 <ul> 899 <li>php4_init (magnus.conf): new parameter to set alternate path to php.ini. (php_ini="/path/to/php.ini")</li> 900 <li>php4_execute (obj.conf): support for additional php.ini values. Allows different settings per virtual server. (See sapi/nsapi/nsapi-readme.txt for more information)</li> 901 <li>Added support for virtual().</li> 902 <li>Added nsapi_request_headers() and nsapi_response_headers() with aliases for apache compatibility.</li> 903 <li>Added "nsapi.read_timeout" php.ini option. </li> 904 <li>Synced $_SERVER variables to be similar to Apache variables.</li> 905 <li>Added possibility to use PHP to generate HTTP error pages (404 Not Found..)</li> 906 <li>Added possibility to use PHP to generate directory listings for directories without index.html</li> 907 </ul> 908</li> 909<li>Improved the IMAP extension (Ilia) 910 <ul> 911 <li>Added imap_timeout() function. (bug <?php bugl(24161); ?>)</li> 912 <li>Added optional 'charset' parameter to imap_search() and imap_sort(). (bug <?php bugl(22505); ?>)</li> 913 </ul> 914</li> 915<li>Improved the InterBase extension (Daniela) 916 <ul> 917 <li>Added transaction constants: IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WRITE, IBASE_WAIT and IBASE_CONCURRENCY. (bugs <?php bugl(8797); ?>, <?php bugl(23887); ?>)</li> 918 <li>Made numeric/decimal datatype handling work on any platform.</li> 919 </ul> 920</li> 921<li>Added DBA handler 'inifile' to support ini files. (Marcus)</li> 922<li>Added a "DEBUG" note to 'php -v' output when --enable-debug is used. (Derick)</li> 923<li>Added long options into CLI & CGI (e.g. --version). (Marcus)</li> 924<li>Added a new parameter to preg_match*() that can be used to specify the starting offset in the subject string to match from. (Andrei)</li> 925<li>Fixed possible integer overflows in: 926 <ul> 927 <li>base64_encode(). (Moriyoshi)</li> 928 <li>bundled GD library. (Ilia)</li> 929 </ul> 930</li> 931<li>Fixed "mysql.connect_timeout" php.ini option to be settable with ini_set(). (Rasmus)</li> 932<li>Fixed ext/yaz to not log if "yaz.log_file" php.ini option is not set. (Adam)</li> 933<li>Fixed a bug in bundled libmysql (mysql bug <a href="http://bugs.mysql.com/564">564</a>). (Georg)</li> 934<li>Fixed ext/exif to honor "magic_quotes_runtime" php.ini option. (Marcus)</li> 935<li>Fixed FastCGI IIS document root problem. (Shane)</li> 936<li>Fixed corruption of multibyte character including 0x5c as second byte in multipart/form-data. (Rui)</li> 937<li>Fixed possible crash in imagerotate() when an invalid color index is used for background color. (Pierre-Alain Joye)</li> 938<li>Fixed a bug that under certain circumstances could invalidate safe_mode. (Ilia)</li> 939<li>Fixed certificate version and allowed setting of the serial number in openssl_csr_sign(). (Stefan Roehrich)</li> 940<li>Fixed each() to be binary safe for keys. (Zeev)</li> 941<li><?php bugfix(25093); ?> (Various leaks due to non-freed queries). (Ilia)</li> 942<li><?php bugfix(25084); ?> (Make refer check not dependant on register_globals). (Ilia)</li> 943<li><?php bugfix(25081); ?> (odbc_fetch_array() may mangle numeric fields). (Ilia)</li> 944<li><?php bugfix(25044); ?> (header("Location:") changing HTTP status). (Marcus)</li> 945<li><?php bugfix(25037); ?> (Possible infinite loop inside SendText()). (Ilia)</li> 946<li><?php bugfix(25007); ?> (rand() & mt_rand() seed RNG every call). (Jani)</li> 947<li><?php bugfix(24989); ?> (external libexpat conflicts with bundled libexpat). (Jani)</li> 948<li><?php bugfix(24980); ?> (array_reduce() uses first element as default running total). (Ilia)</li> 949<li><?php bugfix(24977); ?> (Revert mysql_select_db optimization). (Ilia)</li> 950<li><?php bugfix(24958); ?> (Incorrect handling of 404s). (Ilia, Justin)</li> 951<li><?php bugfix(24951); ?> (ob_flush() needlessly destroys output handler). (Ilia)</li> 952<li><?php bugfix(24936); ?> (ext/fdf not linked properly as shared extension). (Jani)</li> 953<li><?php bugfix(24909); ?> (Bad random numbers with ZTS builds on Solaris). (Ilia)</li> 954<li><?php bugfix(24897); ?> (inconsistent behavior of shuffle() & array_multisort()). (Ilia, Jani)</li> 955<li><?php bugfix(24883); ?> (variables_order and gpc_order being ignored). (Ilia)</li> 956<li><?php bugfix(24873); ?> (incorrect handling of / inside open_basedir). (Ilia)</li> 957<li><?php bugfix(24871); ?> (methods misidentified as constructors). (Ilia)</li> 958<li><?php bugfix(24827); ?> (ob_gzhandler overrides Vary header). (Ilia)</li> 959<li><?php bugfix(24792); ?> (--enable-zend-multibyte causes random segfaults with ZTS). (fujimoto)</li> 960<li><?php bugfix(24783); ?> (foreach($ar as $key => $val), $key not binary safe). (Zeev)</li> 961<li><?php bugfix(24760); ?> (non-default SNMP port number not working). (Jani)</li> 962<li><?php bugfix(24752); ?> (Unhandled "uniqueidentifier" field type). (Ilia, s.sonnenberg[at]coolspot.de)</li> 963<li><?php bugfix(24710); ?> (Crash when $obj->{0} is used). (Zeev)</li> 964<li><?php bugfix(24663); ?> (\n. sequences were not being escaped). (Ilia)</li> 965<li><?php bugfix(24640); ?> (var_export() and var_dump() can not output large floats). (Marcus)</li> 966<li><?php bugfix(24629); ?> (FreeBSD select() does not like large microseconds values). (Mirco Bauer).</li> 967<li><?php bugfix(24609); ?> (ext/domxml: segfault when using replace node across different docs). (Rob Richards)</li> 968<li><?php bugfix(24594); ?> (Rewrite of the imagefill() function). (Pierre-Alain Joye)</li> 969<li><?php bugfix(24592); ?> (NULL related crash in session extension). (Sascha)</li> 970<li><?php bugfix(24573); ?> (debug_backtrace() crashes if $this set to null). (Jani)</li> 971<li><?php bugfix(24560); ?> (parse_url() incorrectly handling certain file:// based schemas). (Ilia)</li> 972<li><?php bugfix(24557); ?> (make fclose() respect refcount on the resource). (Wez, Ilia)</li> 973<li><?php bugfix(24537); ?> (apache2 compile misses some include directories). (Jani)</li> 974<li><?php bugfix(24535); ?> (ext/mysql: crash when retrieving data from unbuffered result after the original connection has been changed). (Ilia)</li> 975<li><?php bugfix(24519); ?> (aggregate_methods_by_list() does not increment refcount).</li> 976<li><?php bugfix(24313); ?> (file_exists() warning on non-existent files when open_basedir is used). (Ilia)</li> 977<li><?php bugfix(24312); ?> (base64_decode() does not skip 0xF0-0xFF characters). (gereon.steffens[at]onvista.de, Ilia)</li> 978<li><?php bugfix(24284); ?> (Fixed memory leak inside pg_ping()). (Ilia)</li> 979<li><?php bugfix(24249); ?> (fdf_add_doc_javascript() not available on Windows). (Edin)</li> 980<li><?php bugfix(24224); ?> (ibase_blob_get() overflow). (Ard)</li> 981<li><?php bugfix(24223); ?> (missing variable initialization in bundled gd). (Ilia)</li> 982<li><?php bugfix(24220); ?> (range() didn't handle numeric strings correctly). (Ilia)</li> 983<li><?php bugfix(24210); ?> (not detecting assume_default_colors - typo). (Sara)</li> 984<li><?php bugfix(24198); ?> (Invalid recursion detection in array_merge_recurcive()). (Ilia)</li> 985<li><?php bugfix(24177); ?> (Status not set correctly after flush() in Apache 2). (Ilia)</li> 986<li><?php bugfix(24155); ?> (gdImageRotate270 incorrectly use x parameter for y axis). (tom@gksystems.com, Ilia)</li> 987<li><?php bugfix(24150); ?> (crash in imap_fetch_overview() & imap_rfc822_write_address()). (Ilia)</li> 988<li><?php bugfix(24142); ?> (workaround for a gcc bug affecting round()). (Marcus, Ilia)</li> 989<li><?php bugfix(24063); ?> (serialize() missing 0 after the . on scientific notation). (Marcus, Ilia)</li> 990<li><?php bugfix(24063); ?> (scientific notation broken in *printf()). (Ilia)</li> 991<li><?php bugfix(24060); ?> (ncurses_del_panel() causes segfault). (Georg)</li> 992<li><?php bugfix(24054); ?> (Integer overflow failure with GCC/x86 for *=). (Sascha)</li> 993<li><?php bugfix(24028); ?> (Reading raw post message by php://input failed). (Jani)</li> 994<li><?php bugfix(24009); ?> (FastCGI handling of file not found). (Shane)</li> 995<li><?php bugfix(24007); ?> (Problem with register_globals & arrays). (Ilia)</li> 996<li><?php bugfix(23951); ?> (constants in static initializers clobbered by inheritance). (Wez, Zend Engine)</li> 997<li><?php bugfix(23936); ?> (ext/interbase: fail to select and fetch). (Ard)</li> 998<li><?php bugfix(23913); ?> (make rename() work across partitions on *nix). (Ilia)</li> 999<li><?php bugfix(23912); ?> (Invalid CSS in phpinfo() output). (Ilia)</li> 1000<li><?php bugfix(23902); ?> (NULL in CGI header output). (Shane)</li> 1001<li><?php bugfix(23898); ?> (Proper handling of NULLs in odbc_result, odbc_fetch_into and odbc_result_all). (Ilia)</li> 1002<li><?php bugfix(23897); ?> (Fixed a check for mbfilter_ru.h). (aleks@m2media.ru, Ilia)</li> 1003<li><?php bugfix(23894); ?> (sprintf() decimal specifiers problem). (Moriyoshi)</li> 1004<li><?php bugfix(23888); ?> (Missing input validation for flags parameter). (Ilia)</li> 1005<li><?php bugfix(23808); ?> (broken imagecopymerge()). (Pierre-Alain Joye)</li> 1006<li><?php bugfix(23798); ?> (Spaces were not being stripped from Bcc header). (Ilia)</li> 1007<li><?php bugfix(23792); ?> (imagerotate() problems with limited pallet, the function will always return true color image from now on). (Pierre-Alain Joye)</li> 1008<li><?php bugfix(23779); ?> (mysql_connect(): disable local infile option if php.ini option "open_basedir" is set). (Georg)</li> 1009<li><?php bugfix(23769); ?> (In FreeBSD glob() gives wrong result when pattern not found). (Hartmut)</li> 1010<li><?php bugfix(23733); ?> (Coredump on startup with Oracle 9+). (Edin)</li> 1011<li><?php bugfix(23685); ?> (fake values returned when OID value is an empty string). (Jani)</li> 1012<li><?php bugfix(23664); ?> (FastCGI socket listening). (Shane)</li> 1013<li><?php bugfix(23509); ?> (exit code lost when exit() called from register_shutdown_function()). (Ilia)</li> 1014<li><?php bugfix(23463); ?> (added Dbase2 version check). (Vlad Krupin)</li> 1015<li><?php bugfix(23285); ?> (Potential Stack overflow in zendlex). (Wez)</li> 1016<li><?php bugfix(23104); ?> (hash position of static arrays not being reset). (Ilia)</li> 1017<li><?php bugfix(23038); ?>, <?php bugl(23574); ?> (aggregate() related leaks and crashes). (Andrei)</li> 1018<li><?php bugfix(22947); ?> (Ack() inside win32/sendmail.c may stall in certain situations). (Ilia)</li> 1019<li><?php bugfix(22690); ?> (ob_start() did not work with create_function() callbacks). (Marcus)</li> 1020<li><?php bugfix(22592); ?> (Cascading assignments to strings with curly braces broken). (Stas)</li> 1021<li><?php bugfix(22245); ?> (References inside $_SESSION not being handled). (Ilia)</li> 1022<li><?php bugfix(22154); ?> (Possible crash when memory_limit is reached and output buffering in addition to session.use_trans_sid is used). (Ilia)</li> 1023<li><?php bugfix(22072); ?> (Apache2 sapis do not detect aborted connections). (Ilia)</li> 1024<li><?php bugfix(21958); ?> (workaround for unusual realpath() on AIX & Tru64). (Ilia)</li> 1025<li><?php bugfix(21957); ?> (serialize() mangles objects with __sleep). (Ilia)</li> 1026<li><?php bugfix(21918); ?> (strange behavior of mixed type in array-keys). (Marcus)</li> 1027<li><?php bugfix(21855); ?> (Threading issue on HP-UX). (Roshan Naik, Andi, Moriyoshi)</li> 1028<li><?php bugfix(21611); ?> (version_compare() does not support "p" as suffix). (Stefan Walk)</li> 1029<li><?php bugfix(21074); ?> (Apache2: "ErrorDocument xxx /error.php" broken). (Jani)</li> 1030<li><?php bugfix(20896); ?> (-s -w modes with php-cli cause php to hang). (Ilia)</li> 1031<li><?php bugfix(19613); ?> (putenv("VAR=") does not empty VAR on win32). (Zeev)</li> 1032<li><?php bugfix(18744); ?> (blob_add() has max limit of 64k). (Ard)</li> 1033<li><?php bugfix(18291); ?> (escapeshellcmd() can now handle quoted arguments). (Ilia)</li> 1034<li><?php bugfix(17414); ?> (pthreads bug workaround). (timo.teras[at]iki.fi)</li> 1035<li><?php bugfix(13142); ?> (strtotime not handling "M d H:i:s Y" format). (Ilia)</li> 1036<li><?php bugfix(11924); ?> (ibase_query(), ibase_execute() mangled passed parameters). (Jani)</li> 1037<li><?php bugfix(7014); ?> (crash in _php_ibase_error() after request shutdown). (Ard)</li> 1038</ul> 1039More information on this release on <a href="/releases.php#4.3.3">our Releases page</a>.<br> 1040 1041<!-- }}} --></section> 1042 1043<section class="version" id="4.3.2"><!-- {{{ 4.3.2 --> 1044<h3>Version 4.3.2</h3> 1045<?php release_date("29-May-2003"); ?> 1046<ul> 1047<li>Syncronized bundled GD library with GD 2.0.12. (Ilia)</li> 1048<li>Removed support for GDLIB version 1.x.x (php_gd.dll) on Windows. (Edin)</li> 1049<li>Enabled read-only GIF support in the bundled GDLIB (php_gd2.dll) on Windows. (Sebastian, Edin)</li> 1050<li> 1051 Improved dba extension (Marcus) 1052 <ul> 1053 <li>Added support for internal error handling of Berkeley db libraries.</li> 1054 <li>Disallowed Berkeley db versions 4.1.0 to 4.1.24 due to locking problems.</li> 1055 <li>Disallowed linkage of Berkeley db submodules against libraries with different major versions.</li> 1056 <li>Disallowed configuring of more than one Berkeley db handler.</li> 1057 <li>Reenabled dba_popen() with new persistent STDIO streams.</li> 1058 </ul> 1059</li> 1060<li>Added a new Apache 2.0 SAPI module (sapi/apache2handler) based on the old version (sapi/apache2filter). (Ian Holsman, Justin Erenkrantz)</li> 1061<li>Added "disable_classes" php.ini option to allow administrators to disable certain classes for security reasons. (Harald)</li> 1062<li>Added man page for CLI version of PHP. (Marcus)</li> 1063<li>Added --clean option into phpize. (Jani)</li> 1064<li>Added --ldflags option into php-config. (Jani)</li> 1065<li>Added imagesavealpha() and imageistruecolor() functions. (Pierre)</li> 1066<li>Added XBM support for bundled GD library. (Marcus)</li> 1067<li>Added session_regenerate_id() function. (Sascha)</li> 1068<li>Added zlib_get_coding_type() function which returns the coding type used for output compression. (Moriyoshi)</li> 1069<li>Added OCIPasswordChange() which allows renewing expired Oracle users. (Maxim)</li> 1070<li>Added memory_get_usage(). Only available when PHP is configured with --enable-memory-limit. (Andrey)</li> 1071<li>Added improved JPEG 2000 support for getimagesize(). (Marcus, Adam Wright)</li> 1072<li>Added XBM and WBMP support for getimagesize(). (Marcus)</li> 1073<li>Added KOI8-R, CP866, and CP1251 support for htmlentities(). (Antony Dovgal, Moriyoshi)</li> 1074<li>Added domdocument->free() to free XML-documents from memory. (Rob Richards)</li> 1075<li>Fixed a bug in error reporting with the CLI for start-up errors. (Derick)</li> 1076<li>Fixed spurious fsync calls during socket communication. (Sascha)</li> 1077<li>Fixed a possible vhost issue in thttpd. (Sascha, dgl@dgl.cx)</li> 1078<li>Fixed including from HTTP URLs. (Sascha)</li> 1079<li>Fixed a lot of memory leaks in domxml. (Rob Richards, Chregu)</li> 1080<li>Fixed a bug in GD's truecolor TTF handling. (Derick)</li> 1081<li>Fixed several 64-bit problems. (Dave)</li> 1082<li>Fixed several errors in hwapi extension. Objects weren't handled properly. (Uwe)</li> 1083<li><?php bugfix(23788); ?> (str|preg_replace() clobber the array elements). (Ilia)</li> 1084<li><?php bugfix(23765); ?> (file uploads ignored due to case sensitivity). (Sara)</li> 1085<li><?php bugfix(23738); ?> (ifx_copy_blob() crash). (Jani)</li> 1086<li><?php bugfix(23661); ?> (mysql_fetch_array() gives no warning when an invalid argument was passed as result_type). (Derick)</li> 1087<li><?php bugfix(23619); ?> (set_error_handler() registered handler not called for object instances). (Jani, waboring@qualys.com)</li> 1088<li><?php bugfix(23606); ?> (Unable to build --with-db4 (db4.1.25)). (Marcus)</li> 1089<li><?php bugfix(23567); ?> (pfsockopen() returns dead connections). (Wez)</li> 1090<li><?php bugfix(23539); ?> (curl_exec() produces strange results). (daniel@haxx.se)</li> 1091<li><?php bugfix(23527); ?> (PostScript Type 1 fonts do not render properly). (nid@home.se, Ilia)</li> 1092<li><?php bugfix(23402); ?> (crash with improper use of mssql_bind()). (Frank)</li> 1093<li><?php bugfix(23371); ?> (configure falsely detects c-client using SSL). (Jani)</li> 1094<li><?php bugfix(23340); ?> (fopen on multiple URLs causes memory corruption). (Wez)</li> 1095<li><?php bugfix(23298); ?> (serialize cuts off floats & doubles). (Ilia, Marcus)</li> 1096<li><?php bugfix(23232); ?> (safe_mode does not honor PHP_AUTH_* in apache2). (Ilia)</li> 1097<li><?php bugfix(23225); ?> (money_format() didn't handle erroneous return of strfmon). (Ilia, marcot@tabini.ca)</li> 1098<li><?php bugfix(23201); ?> (set_file_buffer() crashes with stdio streams). (Ilia)</li> 1099<li><?php bugfix(23188); ?> (CDB databases created with 'c' mode do not work). (Marcus)</li> 1100<li><?php bugfix(23187); ?> (memory leaks in sybase_connect/sybase_pconnect). (Ilia)</li> 1101<li><?php bugfix(23162); ?> (user_error() crashs if error message > 1024 bytes). (Jay, Marcus, Moriyoshi)</li> 1102<li><?php bugfix(23152); ?> ($http_response_header empty on invalid URLs). (Ilia)</li> 1103<li><?php bugfix(23102); ?> (integer overflow in exif_iif_add_value()). (Ilia)</li> 1104<li><?php bugfix(23099); ?> (ext/interbase: libgds.so: undefined reference to 'crypt'). (Jani)</li> 1105<li><?php bugfix(23093); ?> (highlight_string() crashed with __FUNCTION__). (Jani)</li> 1106<li><?php bugfix(23080); ?> (socket_strerror() crashes on win32). (Moriyoshi)</li> 1107<li><?php bugfix(23071); ?> (when DST in effect, date("T") crashed PHP). (Scott MacVicar, Jani)</li> 1108<li><?php bugfix(23069); ?> (tempnam creates readonly file [win32]). (Wez)</li> 1109<li><?php bugfix(23009); ?> (pg_select with timestamp). (Marcus, Jay)</li> 1110<li><?php bugfix(23008); ?> (ldap_start_tls() not available on Windows). (Edin)</li> 1111<li><?php bugfix(23004); ?> (When ftp_close() is called, send QUIT to the ftp server). (Ilia)</li> 1112<li><?php bugfix(22989); ?> (sendmail not found by configure). (igyu@ionsphere.org)</li> 1113<li><?php bugfix(22987); ?> (missing perror() check in configure). (Jani)</li> 1114<li><?php bugfix(22965); ?> (Crash in gd lib's ImageFillToBorder()). (Ilia)</li> 1115<li><?php bugfix(22939); ?> (crash in imap_header_info()). (Ilia)</li> 1116<li><?php bugfix(22844); ?> (Changing bool value via -d or ini_set(), On would be Off). (Ilia)</li> 1117<li><?php bugfix(22786); ?> (Crash when trying to call DomAttribute's set_namespace method). (Chregu)</li> 1118<li><?php bugfix(22775); ?> (Fatal errors exit with status 0 with CGI/CLI). (Jani)</li> 1119<li><?php bugfix(22774); ?> (PHP crashes when exiting (long XML doc)). (Rob Richards)</li> 1120<li><?php bugfix(22751); ?> (Compile error in gdcache.c when external libgd is used). (Jani)</li> 1121<li><?php bugfix(22721); ?> (Poor file() performance on systems without mmap). (Wez)</li> 1122<li><?php bugfix(22709); ?> (Crash in interbase when database unavailable). (Vladimir Michl)</li> 1123<li><?php bugfix(22681); ?> (Crash when reading from invalid file pointer). (Ilia)</li> 1124<li><?php bugfix(22672); ?> (User not logged under Apache2). (Ian) </li> 1125<li><?php bugfix(22616); ?> (Wrong order of -lssl and -lcrypto with IMAP). (Jani)</li> 1126<li><?php bugfix(22613); ?> (imagettfbox() does not add the kerning distance to the running position). (Ilia)</li> 1127<li><?php bugfix(22585); ?> (Do not terminate the script on minor errors). (Ilia)</li> 1128<li><?php bugfix(22550); ?> (overflow protection for upload_max_filesize ini option). (Ilia)</li> 1129<li><?php bugfix(22544); ?> (writing transparency to truecolor png images). (Ilia)</li> 1130<li><?php bugfix(22538); ?> (failed stat on stdio/stdin/stderr streams). (Wez, Ilia)</li> 1131<li><?php bugfix(22530); ?> (append_child does not unlink node). (Chregu)</li> 1132<li><?php bugfix(22520); ?> (mcrypt_generic_deinit() was not available on Windows). (Edin)</li> 1133<li><?php bugfix(22508); ?> (Added protection against circular HTML redirects). (Ilia)</li> 1134<li><?php bugfix(22473); ?> (ISAPI Secure Server variables not available). (Christian Swoboda)</li> 1135<li><?php bugfix(22402); ?> (opening of ftp for read/write could fail due to invalid return code handling). (Ilia)</li> 1136<li><?php bugfix(22384); ?> (FNM_CASEFOLD is not available). (Hartmut)</li> 1137<li><?php bugfix(22382); ?> (fgetcsv() did not handle \" correctly). (Ilia)</li> 1138<li><?php bugfix(22376); ?> (wrong httpd.conf modified when using INSTALL_ROOT). (Jani)</li> 1139<li><?php bugfix(22363); ?> (combinations of fwrite(), fread() and fseek() produce unexpected results). (Wez)</li> 1140<li><?php bugfix(22355); ?> (PHP would remove folding from Subject & To fields). (Ilia)</li> 1141<li><?php bugfix(22330); ?> (overloaded strrpos() gives wrong results). (david@santinoli.com, Moriyoshi)</li> 1142<li><?php bugfix(22312); ?> (crash on failed connection when curl_getinfo() was called). (Phil Oleson <poleson@verio.net>)</li> 1143<li><?php bugfix(22308); ?> (optimized passthru, code is now ~40 times faster). (Ilia)</li> 1144<li><?php bugfix(22306); ?> (pg_lo_seek($h, 0, PGSQL_SEEK_SET) succeeds but returns false). (Jani)</li> 1145<li><?php bugfix(22301); ?> (htmlspecialchars() crashes Apache on Tru64). (Ilia)</li> 1146<li><?php bugfix(22299); ?> (gethostbyname() with non-existing domain crashed on MacOSX). (Jani)</li> 1147<li><?php bugfix(22283); ?> (possible crash when opening relative URLs). (Ilia)</li> 1148<li><?php bugfix(22238); ?> (stream_select() clobbers fifos under win9x). (Wez)</li> 1149<li><?php bugfix(22234); ?> (copy() fails if source file has 0 length). (Moriyoshi)</li> 1150<li><?php bugfix(22227); ?> (printf() field limiters broke between 4.2.3 and 4.3.0). (Moriyoshi)</li> 1151<li><?php bugfix(22224); ?> (implode() changes object references in array). (Moriyoshi)</li> 1152<li><?php bugfix(22221); ?> (bad rows count in the result object for postgresql). (Marc)</li> 1153<li><?php bugfix(22207); ?> (e notation in *printf would be missing a 0 when there is no exponent). (Ilia)</li> 1154<li><?php bugfix(22220); ?> ("php_admin_value open_basedir none" does not work). (Jani)</li> 1155<li><?php bugfix(22191); ?> (frontbase build broken with old version of frontbase). (Ilia)</li> 1156<li><?php bugfix(22187); ?> (spprintf function did not handle floats correctly). (Ilia)</li> 1157<li><?php bugfix(22149); ?> (incorrect insertion of session id when tabs are used to separate tag elements). (Ilia)</li> 1158<li><?php bugfix(22141); ?> (removed undocumented Boyer str_replace() method). (Sara)</li> 1159<li><?php bugfix(22103); ?> (Added gdImageEllipse and replaced old gdImageFilledEllipse with a better implementation). (Pierre)</li> 1160<li><?php bugfix(22088); ?> (array_shift() left next index to be +1 too much). (Jani)</li> 1161<li><?php bugfix(22083); ?> (MySQL charset directory problem on Windows). (Edin)</li> 1162<li><?php bugfix(22059); ?> (ftp_chdir() causes segfault). (Sara)</li> 1163<li><?php bugfix(22048); ?> (crash in imap_header() when the e-mail contains an abnormally large number of special characters). (Ilia)</li> 1164<li><?php bugfix(22042); ?> (pg_result_seek() would never seek to the 1st row in the result due to always seeking to row next to the one requested). (Ilia)</li> 1165<li><?php bugfix(22031); ?> (Made curl_write() & curl_write_header() binary safe). (Ilia)</li> 1166<li><?php bugfix(22022); ?> (Crash in imap_mail_compose() if the body is an empty array). (Ilia)</li> 1167<li><?php bugfix(22017); ?> (date() does not support negative timestamps on win32). (Ilia)</li> 1168<li><?php bugfix(22008); ?> (strip_tags() eliminates too much). (Moriyoshi)</li> 1169<li><?php bugfix(22004); ?> (Overload extension and _call() breaks classes). (Shane)</li> 1170<li><?php bugfix(21998); ?> (array_pop() did not reset the current array position). (Jani)</li> 1171<li><?php bugfix(21978); ?>, <?php bugl(21036); ?> (win32 mail(), bcc: gets interpreted as cc:). (Sara)</li> 1172<li><?php bugfix(21885); ?> (move_uploaded_file() does not ignore open_basedir). (Wez)</li> 1173<li><?php bugfix(21820); ?> ("$arr['foo']" generates bogus E_NOTICE, should be E_PARSE). (Jani)</li> 1174<li><?php bugfix(21815); ?> (fpassthru() ignored buffered data but complained anyway). (Wez)</li> 1175<li><?php bugfix(21809); ?> (select would not always timeout during socket shutdown). (Wez)</li> 1176<li><?php bugfix(21751); ?> (default output buffer could not be deleted). (Marcus)</li> 1177<li><?php bugfix(21725); ?> (return behaviour differs between include and require). (Zeev)</li> 1178<li><?php bugfix(21713); ?> (include remote files leaks descriptors on Solaris). (Wez)</li> 1179<li><?php bugfix(21708); ?> (ucwords() trouble again). (Moriyoshi)</li> 1180<li><?php bugfix(21689); ?> (fgetcsv() suppresses some characters before a separator). (Masahiro, Moriyoshi)</li> 1181<li><?php bugfix(21912); ?>, <?php bugl(21676); ?> (getimagesize() failed for remote files). (Wez)</li> 1182<li><?php bugfix(21597); ?> (made glob() understand Windows paths). (Edin)</li> 1183<li><?php bugfix(21549); ?> (problem with Ingres II persistent connections). (Jani)</li> 1184<li><?php bugfix(21544); ?> (Extended checks for where FreeTDS is installed). (Frank)</li> 1185<li><?php bugfix(21534); ?> (typo in gmp_gcdext() causes incorrect results). (Sara)</li> 1186<li><?php bugfix(21531); ?> (file_exists() and other filestat functions report errors when the requested file/directory does not exists). (Sara)</li> 1187<li><?php bugfix(21529); ?> (memory corruption by fsockopen()). (Ilia)</li> 1188<li><?php bugfix(21525); ?> (bind_textdomain_codeset() now available on Windows). (Edin)</li> 1189<li><?php bugfix(21523); ?> (number_format() could cause a memory allocation for a negative memory size in situations where the sprintf implementation of the host system generated less decimal places than were requested). (Wez)</li> 1190<li><?php bugfix(21518); ?> (imagecreatefromstring() crashed with invalid image files). (Ilia)</li> 1191<li><?php bugfix(21511); ?> (config.status warning). (Jani)</li> 1192<li><?php bugfix(21498); ?> (mysql_pconnect connection problems). (Georg)</li> 1193<li><?php bugfix(21453); ?> (improper handling of non-terminated < by strip_tags()). (Ilia)</li> 1194<li><?php bugfix(21445); ?> (gd unable to open fonts). (Ilia)</li> 1195<li><?php bugfix(21443); ?> (improper handling of ? surrounded by spaces in get_browser()). (Ilia)</li> 1196<li><?php bugfix(21442); ?> (crash in mail() on Windows when 1st parameter is empty). (Edin)</li> 1197<li><?php bugfix(21410); ?> (fixed handling of NULL or "" files on Win32). (Ilia)</li> 1198<li><?php bugfix(21378); ?> (COM code crashes after update 4.2.1 to 4.3.0). (Harald)</li> 1199<li><?php bugfix(21338); ?> (html_entity_decode() crashed when "" is passed). (Ilia)</li> 1200<li><?php bugfix(21310); ?> (Solaris has issues with getcwd() needing read permissions on directories instead of just execute). (Wez, jflemer)</li> 1201<li><?php bugfix(21297); ?> (in CLI/CGI on the #! it would leave a \n when the code encounters \r\n). (Ilia)</li> 1202<li><?php bugfix(21268); ?> (session_decode() returned FALSE on success). (Ilia)</li> 1203<li><?php bugfix(21267); ?> (opening URLs that result in redirection to a relative path was failing). (Ilia)</li> 1204<li><?php bugfix(21229); ?> (missing 3rd argument to php_module_startup). (Ilia)</li> 1205<li><?php bugfix(21228); ?> (broken check for ob_gzhandler and made ob_start() return the correct value). (Ilia)</li> 1206<li><?php bugfix(21226); ?> (parse_url handling of urls without a path). (Ilia)</li> 1207<li><?php bugfix(21224); ?> (apache configure fails when using --enable-versioning). (Jani)</li> 1208<li><?php bugfix(21169); ?> (Compile Failure and lots of warnings on UnixWare). (Derick)</li> 1209<li><?php bugfix(21131); ?> (fopen() with mode 'a+' and rewind() doesn't work). (Wez)</li> 1210<li><?php bugfix(21007); ?> (html_errors off text-only output in phpinfo). (Marcus)</li> 1211<li><?php bugfix(20857); ?> (snmpset() failed always, patch by: rs@epost.de). (Jani)</li> 1212<li><?php bugfix(20802); ?> (PHP would die silently when memory limit reached). (Ilia)</li> 1213<li><?php bugfix(20715); ?> (odbc could not be compiled as shared extension). (Jani)</li> 1214<li><?php bugfix(20641); ?> (Numeric/decimal datatype overflow in ext/interbase on Win32). (Daniela)</li> 1215<li><?php bugfix(20503); ?> (imagesetbrush() not available on Windows). (Edin)</li> 1216<li><?php bugfix(20282); ?> (COM memory leak). (Harald)</li> 1217<li><?php bugfix(20256); ?> (snprintf() not defined on some systems). (Jani)</li> 1218<li><?php bugfix(19919); ?> (crash in sapi_apache_header_handler under heavy load). (George)</li> 1219<li><?php bugfix(19795); ?> (Problems with strnatcmp() / strnatcasecmp()). (Moriyoshi)</li> 1220<li><?php bugfix(17868); ?> (multiple <!--include--> used to include PHP files crashes). (Ilia)</li> 1221<li><?php bugfix(17448); ?> (Print the message when OCI_SUCCESS_WITH_INFO is returned). (Maxim)</li> 1222<li><?php bugfix(17098); ?> (make Apache2 aware that PHP scripts should not be cached). (Ilia)</li> 1223<li><?php bugfix(16798); ?> (Compile failure with LOB support for Oracle version < 8.1). (Maxim)</li> 1224<li><?php bugfix(14532); ?> (fixed connection_status() to return 2 for timeouts). (Jani)</li> 1225<li><?php bugfix(14245); ?> ('make install' fails on AIX when using --with-apxs). (Jani)</li> 1226<li><?php bugfix(13757); ?> (CGI: passing query string on command line broken). (Shane)</li> 1227<li><?php bugfix(13561); ?> (--without-pear disabled phpize/php-config install). (Jani)</li> 1228<li><?php bugfix(13551); ?> (bcmath functions applying scale incorrectly). (Sara)</li> 1229</ul> 1230More information on this release on <a href="/releases.php#4.3.2">our Releases page</a>.<br> 1231 1232<!-- }}} --></section> 1233 1234<section class="version" id="4.3.1"><!-- {{{ 4.3.1 --> 1235<h3>Version 4.3.1</h3> 1236<?php release_date("17-Feb-2003"); ?> 1237<ul> 1238<li>Fixed serious security vulnerability in CGI SAPI. (Shane)</li> 1239</ul> 1240More information on this release on <a href="/releases.php#4.3.1">our Releases page</a>.<br> 1241 1242<!-- }}} --></section> 1243 1244<section class="version" id="4.3.0"><!-- {{{ 4.3.0 --> 1245<h3>Version 4.3.0</h3> 1246<?php release_date("27-Dec-2002"); ?> 1247<ul> 1248<li>If you don't specify building any other SAPI "make install" will install the 1249 CGI SAPI binary in {PREFIX}/bin/php. If you want to install CLI SAPI in that 1250 location use "make install-cli" after "make install" or add --disable-cgi 1251 to your configure options. In the Windows distribution CLI SAPI is included 1252 in the "cli" folder. (Edin)</li> 1253<li>Removed extensions: (Jan, Jani, Sebastian) 1254 <ul> 1255 <li>ext/aspell</li> 1256 <li>ext/ccvs</li> 1257 <li>ext/cybercash</li> 1258 <li>ext/icap</li> 1259 <li>sapi/fastcgi</li> 1260 <li>sapi/fhttpd</li> 1261 </ul> 1262</li> 1263<li>Moved extensions to PECL (http://pear.php.net/): (James, Derick) 1264 <ul> 1265 <li>ext/vpopmail</li> 1266 <li>ext/cybermut</li> 1267 </ul> 1268</li> 1269<li>Make PHP_AUTH_* variables not available in safe mode under Apache when an 1270 external basic auth mechanism is used. (Philip)</li> 1271<li>Added sha1() and sha1_file() for US Secure Hash Algorithm 1. (Stefan Esser)</li> 1272<li>Aliased dba_popen() to dba_open() until 4.3.2 when persistent STDIO streams 1273 are introduced. (Andrei)</li> 1274<li>Fixed a security bug in the bundled MySQL library. (Georg, Stefan)</li> 1275<li>ZLIB extension is now built-in in the Windows distribution. 1276 External extension (php_zlib.dll) has been removed. (Edin)</li> 1277<li>Fixed a bug in ISO-8601 week calculation</li> 1278<li>Fixed a crash when using invalid color index with imagecolortransparent() 1279 (Pierre-Alain Joye).</li> 1280<li><?php bugfix(20987); ?> (no handling for client certificates). (Ilia)</li> 1281<li><?php bugfix(21039); ?> (crash when not supplying an IV to mcrypt_generic_init). 1282 (Derick)</li> 1283<li><?php bugfix(20936); ?> (openssl_pkey_get was broken). (jeroen@derks.it, Wez)</li> 1284<li><?php bugfix(20927); ?> (wordwrap crash). (Ilia)</li> 1285<li><?php bugfix(20796); ?> (when register_globals is on & arrays with same names are 1286 passed via get/post/cookie the data inside $_GET/$_POST/$_COOKIE can would be 1287 corrupted). (Ilia)</li> 1288<li><?php bugfix(20725); ?> (if the upload directory cannot be written to, the POST data 1289 after the uploaded file is lost). (Ilia)</li> 1290<li><?php bugfix(20865); ?> (array_key_exists() fails to find NULL key). (Ilia)</li> 1291<li><?php bugfix(20812); ?> (ftp_get returned NULL on success, instead of TRUE). (Ilia)</li> 1292<li><?php bugfix(20785); ?> (crash when using pdf_open_memory_image() to load a 1293 true-color image). (Ilia)</li> 1294<li>Fixed a crash when converting between true-color images (png/jpeg) and 1295 gd1/gd2 image formats, png/jpeg -> gd1/gd2 -> png/jpeg conversion now 1296 works correctly. (Ilia, Pierre-Alain Joye).</li> 1297<li>Fixed a memory leak in the bundled GD library inside 1298 gdImageTrueColorToPalette(). (Ilia)</li> 1299<li><?php bugfix(12776); ?> (array_walk crash). (Moriyoshi)</li> 1300<li><?php bugfix(20934); ?> (htmlspecialchars returns latin1 from UTF-8). (Moriyoshi)</li> 1301<li>Fixed bugs <?php bugl(20270); ?>, <?php bugl(15702); ?>, <?php bugl(18600); ?> (segfaults in ext/java). (Tony J. White)</li> 1302<li>Made bcmath extension thread safe. (Sander)</li> 1303<li><?php bugfix(19566); ?> (get_declared_classes() segfaults). (Moriyoshi, Marcus, Andi)</li> 1304<li><?php bugfix(20381); ?> (array_merge_recursive mangles input arrays). (Moriyoshi)</li> 1305<li>Added -n command switch to cli and cgi version which allows to skip php.ini 1306 parsing at startup. (Marcus, Wez)</li> 1307<li><?php bugfix(19689); ?> (absolute paths like /test/dir/ not working correctly). 1308 (Ilia)</li> 1309<li>Added "neutral" language entry to mbstring spec. (Moriyoshi)</li> 1310<li>Changed bundled gd library to consider php.ini option memory_limit. (Marcus)</li> 1311<li>Modified log() to accept multiple bases. (Jason)</li> 1312<li>Fixed bugs <?php bugl(16190); ?>/<?php bugl(18746); ?>xt/db: flatfile support with windows). (Marcus)</li> 1313<li>Added gd_info() which returns an array of gd support information. (Marcus)</li> 1314<li>Implemented features/changes requested in Bug <?php bugl(16960); ?> (Timm): 1315 <ul> 1316 <li>Added a new function sybase_unbuffered_query()</li> 1317 <li>Added a new function sybase_fetch_assoc()</li> 1318 <li>Added sybase_set_message_handler() which enables users to handle 1319 server messages in a callback function</li> 1320 <li>Added an ini entry for deadlock retries - retrying deadlocks can cause 1321 transaction state to break (sybct.deadlock_retry_count, 1322 defaults to -1 "forever").</li> 1323 <li>Fixed sybase_fetch_object() not to return objects with numeric members</li> 1324 <li>Fixed issues with identical fieldnames</li> 1325 <li>Made sybase_fetch_*() functions return correct datatypes</li> 1326 <li>Made phpinfo() section more verbose</li> 1327 <li>Made sybase_query() error messages more verbose</li> 1328 </ul> 1329</li> 1330<li><?php bugfix(19935); ?> (made OpenSSL file system operations abide by safe_mode 1331 & open_basedir restrictions). (Ilia)</li> 1332<li><?php bugfix(18868); ?> (improved the check for availability of realpath()). (Ilia)</li> 1333<li>Fixed width/height detection of bmp images using getimagesize() function on 1334 big endian systems and added code to retrieve bmp bit depth. (Ilia)</li> 1335<li><?php bugfix(20035); ?> (line counting error when script starts with #! in 1336 cgi/cli/fastcgi sapis). (Ilia)</li> 1337<li><?php bugfix(20235); ?> (incorrect handling of symlinks on ZTS build). (Ilia)</li> 1338<li>Added sanity checks to headers_sent() & image_type_to_mime_type(). (Ilia)</li> 1339<li>Added an aditional parameter to the jdtojewish() function which makes 1340 the function return the symbolic hebrew name. (Moshe Doron, Derick)</li> 1341<li><?php bugfix(20169); ?> (implode() clobbers first argument). (Moriyoshi)</li> 1342<li>Improved dba extension (Marcus) 1343 <ul> 1344 <li>Added dba_handlers() that returns an array of installed handlers and 1345 dba_list() that returns an associative array of open database files. </li> 1346 <li>Added bundled cdb support wich can be activated by --with-cdb without a 1347 path. The bundled version supports cdb_make that allows writing cdb files.</li> 1348 <li>Added optional skip parameter to dba_fetch() to support multiple key-value 1349 pairs with the same key for cdb handler.</li> 1350 <li>Added locking for those handlers that do not have their own locking.</li> 1351 <li>Added support for magic_quotes_runtime php.ini option.</li> 1352 <li>Added flatfile support what finally makes ext/db deprecated.</li> 1353 </ul> 1354</li> 1355<li>Added imagerotate() which is available only when bundled libgd is used. 1356 (Pierre-Alain Joye, Ilia)</li> 1357<li><?php bugfix(17497); ?> (mssql extension crashes if magic_quotes_runtime is on). 1358 (Sterling)</li> 1359<li>Remove $_FILES from $_REQUEST (import_request_variables is not modified), 1360 this didn't work properly in the first place, and added confusion. (Sterling)</li> 1361<li>Fix the socket_read() function on win32 to work in normal mode (reading to 1362 the end of a line), as well as binary mode. (Sterling)</li> 1363<li><?php bugfix(20110); ?> (added sanity check to prevent include/require functions 1364 from trying to include directories). (Ilia)</li> 1365<li><?php bugfix(20108); ?> (segmentation fault on printf("%1.1s", "string")). (Ilia)</li> 1366<li>Added dbx_escape_string() function to dbx module. (Marc)</li> 1367<li>Added Oracle (oci8) support to dbx module. (Marc)</li> 1368<li>Updated FDF extension to work with Adode fdftk 5.0. (Hartmut)</li> 1369<li>Added mb_strtolower() and mb_strtoupper(). (Moriyoshi)</li> 1370<li>Fixed an infinite loop in setlocale() when only invalid locale names 1371 were passed in the array. (patch by Pal Loberg, pallo[at]initio.no)</li> 1372<li>Fixed bugs <?php bugl(19156); ?> and <?php bugl(19544); ?> (COM extension leaks memory and keeps 1373 components referenced). (Harald)</li> 1374<li>Added fribidi_get_charsets() and fribidi_charset_info() functions. (Tal)</li> 1375<li>Added Oracle TIMESTAMP type to oci8 extension. (Thies)</li> 1376<li>Fixed fgets($fp) to read until EOL when length parameter is not set. (Wez)</li> 1377<li>Changed registry entries under "HKLM\SOFTWARE\PHP\Per Directory Values" to 1378 work also with administrative directives such as safe_mode, open_basedir, 1379 etc. (Claudio Felber)</li> 1380<li>Added str_word_count() function which counts words inside a string. (Ilia)</li> 1381<li>Added PGSQL_CONNECT_FORCE_NEW option to pg_connect() (Yasuo)</li> 1382<li>Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to 1383 indicate which iconv implementation is used. (Moriyoshi)</li> 1384<li><?php bugfix(4232); ?> (Added %e & %E support to printf/sprintf). (Ilia)</li> 1385<li><?php bugfix(17580); ?> (Allow ini parser to parse files >16K). (Ilia)</li> 1386<li><?php bugfix(19649); ?> (Sanity checks for browscap.ini parser). (Ilia)</li> 1387<li>Added experimental patch to address problem with floats on various locales. 1388 (Bug <?php bugl(17079); ?>). (Ilia)</li> 1389<li><?php bugfix(19280); ?> (imap_header fails with many To: addresses). (Ilia)</li> 1390<li>Added mb_regex_set_options(). The Options parameters of various mbregex 1391 functions are now deprecated. (Moriyoshi)</li> 1392<li><?php bugfix(19482); ?> (Segfault with PCRE and locale). (Andrei)</li> 1393<li>Made ImageTruecolorToPalette() in bundled GD2 library actually work. (Rasmus)</li> 1394<li>Fixed ImageCopy() in bundled GD2 library to handle copying from truecolor to 1395 palette-based. (Wez, Rasmus)</li> 1396<li>Added read-only GIF support for bundled GD2 library. (Rasmus)</li> 1397<li>Made several adjustments to xslt extension (David Viner, Lehnar, Melvyn) 1398 <ul> 1399 <li>Added xslt_set_object and xslt_setopt function</li> 1400 <li>Changed backend interaction with Sablotron library</li> 1401 <li>Fixed leak with error_print</li> 1402 <li>Made xslt_make_array() always set NULL on last index to signal array end.</li> 1403 </ul> 1404</li> 1405<li>Changed the glue argument in implode() to be optional. If not specified, 1406 defaults to "". (Sterling)</li> 1407<li>Fixed fields argument to contain correct info for xslt_set_error_handler(). 1408 (Patch by Lenar Lohmus)</li> 1409<li>Added --with-config-file-scan-dir compile-time switch which specifies a 1410 directory which will be scanned for *.ini files. (Rasmus)</li> 1411<li>Added ob_get_clean() and ob_get_flush(). (Yasuo)</li> 1412<li>Added ftp_ssl_connect() to ext/ftp for FTP over SSL support. (Stefan Esser)</li> 1413<li>Made a few additions and changes to Apache 2 sapi. (Ilia) 1414 <ul> 1415 <li>Added apache_response_headers(), apache_note(), apache_getenv() and 1416 apache_setenv() functions.</li> 1417 <li>Added more detailed error reporting to apache_lookup_uri() and virtual().</li> 1418 <li>Renamed getallheaders() to apache_request_headers() and made an alias for BC.</li> 1419 <li>Added php_apache_sapi_getenv() and php_apache_sapi_get_stat().</li> 1420 <li>Added syntax-highlighting handling (.phps)</li> 1421 </ul> 1422</li> 1423<li>Fixed strstr(), strchr() and strrchr() to be binary safe. (Andrey)</li> 1424<li>Added array_diff_assoc() and array_intersect_assoc(). (Andrey)</li> 1425<li><?php bugfix(17825); ?> (ob_start() chunk size option didn't work well). (Yasuo)</li> 1426<li>Fixed output buffer infinite loop when buffer_size became 0. (Marcus, Wez)</li> 1427<li>Added getopt() for parsing command line options and arguments. (Jon)</li> 1428<li>Added pg_fetch_assoc(), pg_fetch_all(), pg_ping(), pg_meta_data(), pg_convert(), 1429 pg_insert(), pg_select(), pg_update(), pg_delete(), pg_result_seek(), 1430 pg_unescape_bytea(), pg_get_notify() and pg_get_pid(). (Yasuo)</li> 1431<li><?php bugfix(17281); ?> (Sanity checks for encoding sessions). (Ilia)</li> 1432<li><?php bugfix(16995); ?> and <?php bugl(19392); ?> (Prevent crash if $HTTP_SESSION_VARS != ARRAY). 1433 (Ilia)</li> 1434<li><?php bugfix(19292); ?> (open_basedir restriction problem). (Rasmus)</li> 1435<li><?php bugfix(19366); ?> (gdImageFill crashes when x & y are outside of 1436 the image's boundries). (Ilia)</li> 1437<li><?php bugfix(13936); ?> (__FILE__ constant didn't contain full path). (Ilia)</li> 1438<li>PHP now has a new stream system that allows it to do some clever stuff with 1439 fopen() and fsockopen(). As a result: 1440 <ul> 1441 <li>URL wrappers natively supports https:// URLs if you have compiled 1442 OpenSSL support into PHP (shared extension does not support this).</li> 1443 <li>Added support for fopen("ftps://...", ...) which allows to connect to FTP 1444 servers via SSL. (Stefan Esser)</li> 1445 <li>fsockopen() adds support for ssl:// and tls:// connections via TCP/IP</li> 1446 <li>copy($srcfilename, $destfilename) can now be used with URL wrappers</li> 1447 <li>zlib wrappers/streams can be used even on systems without 1448 fopencookie()</li> 1449 <li>Changed 'zlib:' fopen wrapper to 'compress.zlib://' and deprecate 1450 'zlib:' to avoid ambiguities when filenames have ':' characters. (Wez)</li> 1451 <li>Added 'compress.bzip2://' stream and wrapper support.</li> 1452 <li>Added user-space streams - it is now possible to define a class in PHP 1453 code and register it as a URL wrapper. (stream_register_wrapper)</li> 1454 <li>Most extensions now support streams when passing files, which means 1455 that those extensions will now also support URL wrappers. (Wez)</li> 1456 <li>Added URL-wrapper support to exif. (Marcus)</li> 1457 <li>Added memory stream support. (Marcus)</li> 1458 <li>Renamed: 1459 <ul> 1460 <li>socket_set_timeout() -> stream_set_timeout()</li> 1461 <li>socket_set_blocking() -> stream_set_blocking()</li> 1462 <li>set_file_buffer() -> stream_set_write_buffer()</li> 1463 <li>socket_get_status() -> stream_get_meta_data()</li> 1464 </ul> 1465 As these functions can (in theory) work on any type of stream. (Wez)</li> 1466 <li>Raw POST data is now available as "php://input" stream. (Hartmut)</li> 1467 <li>fopen("php://output", "wb") returns a stream that writes to the output 1468 buffer (like echo and print). (Wez)</li> 1469 <li>Added stream_context_create(), stream_context_set_params() and 1470 stream_context_set_option and added an optional fourth parameter to 1471 fopen() which accepts a stream context. Contexts allow sharing of 1472 information between streams (a kind of "session") and setting 1473 notification callbacks. (Wez)</li> 1474 <li>Made the "User-Agent" header sent by http:// and https:// wrappers 1475 configurable in php.ini or via a stream context. (Sterling)</li> 1476 <li>Added stream_filter_prepend() and stream_filter_append() which apply 1477 a filter to either the top or the bottom of a stream filter stack. 1478 Implemented "string.rot13" filter as an example; more filters are 1479 expected to follow in later releases and other extensions. (Wez)</li> 1480 <li>Added stream_select() which works like socket_select but works on 1481 streams returned by fopen(), fsockopen() and pfsockopen() instead. 1482 (Wez)</li> 1483 <li>Added STDIN, STDOUT and STDERR constants for CLI sapi reflecting opened 1484 streams to their respective standard I/O counterparts. (Edin)</li> 1485 <li>Added php.ini option "auto_detect_line_endings" which enables PHP to 1486 detect Macintosh, Unix and Dos end-of-line characters in fgets() and 1487 file(). Fixes bugs <?php bugl(16521); ?> and <?php bugl(16708); ?>. (Wez)</li> 1488 <li>Fixed include(), require() and GD functions to work with remote files 1489 under win32.</li> 1490 <li><?php bugfix(18609); ?> (ImageCreateFromJPEG can't fetch from a URL). (Wez)</li> 1491 </ul> 1492</li> 1493<li><?php bugfix(18022); ?> (fopen does not work with php://stdin anymore on Solaris). 1494 (Wez)</li> 1495<li>Added php.ini option "default_socket_timeout" to set the timeout limit for 1496 PHP network streams. (kalowsky, ilia@prohost.org, Wez)</li> 1497<li>Added file_get_contents() which returns the contents of a file as a string. 1498 This function also supports the URL wrappers. (Wez)</li> 1499<li><?php bugfix(19595); ?> (Missing functions for GD2 format handling). (Edin)</li> 1500<li><?php bugfix(19633); ?> (Wrong directories in ext/ldap/config.m4). (Derick)</li> 1501<li>Fixed bugs <?php bugl(17274); ?> and <?php bugl(19627); ?> (segfault in sem_remove). (Wez)</li> 1502<li>Added mb_convert_case() function to the mbstring extension which can convert 1503 strings between upper, lower and title case using Unicode mappings. 1504 <?php bugfix(19257); ?> (strtolower & strtoupper does not work for UTF-8 strings). 1505 (Wez)</li> 1506<li><?php bugfix(18521); ?> (htmlentities didn't warn about unsupported charsets). (Wez)</li> 1507<li><?php bugfix(11643); ?> (Session related, fix SID redefinition). (Ilia)</li> 1508<li><?php bugfix(18556); ?> (Scripting Engine, problem with locales like tr_TR). (Ilia)</li> 1509<li>Changed y2k_compliance to default to 1 now. (Sascha)</li> 1510<li>Added platform independent socket error constants for better error handling. (Jason)</li> 1511<li>Update output of phpinfo() to use more CSS to reduce the file size, do 1512 proper HTML escaping, and make it XHTML compliant. (Colin)</li> 1513<li>Fixed compile errors in the FriBidi extension (Bug <?php bugl(16414); ?>). (Tal)</li> 1514<li>Fixed bugs <?php bugl(7472); ?>, <?php bugl(12120); ?> and <?php bugl(12989); ?> as well as other potential problems 1515 with strip_tags() function. (Ilia)</li> 1516<li>Fixed bugs <?php bugl(17570); ?> and <?php bugl(17957); ?> (Regexps related). (Andrei, Ilia)</li> 1517<li>Fixed bugs <?php bugl(18167); ?> and <?php bugl(16859); ?> (SEGV with session_decode). (Ilia)</li> 1518<li>Fixed bugs <?php bugl(19573); ?> and <?php bugl(13472); ?> (Session, XHTML compliance and trans_sid). 1519 (Sascha)</li> 1520<li><?php bugfix(19570); ?> (last character was missing in get_html_translation_table). 1521 (Wez)</li> 1522<li>Upgraded PCRE to version 3.9. (Wez)</li> 1523<li>Fixed bug in OCIResult() which returned garbage when called on 1524 empty result-sets. (Thies)</li> 1525<li>Added ability to use Perl-style ${n} subpattern references in the 1526 replacement string for preg_replace() (bug <?php bugl(18442); ?>). (Andrei)</li> 1527<li>Fixed array_merge_recursive() to avoid problems with merging cyclical 1528 arrays (bug <?php bugl(16064); ?>). (Andrei)</li> 1529<li>Made function_exists() work properly with disabled functions. (Andrei)</li> 1530<li>Added ability to extract() variables as references via OR'able EXTR_REFS 1531 flag. (Andrei)</li> 1532<li>Fixed a build failure with the OCI8 extension on Tru64. 1533 (Patch by Michael Mauch, micahel.mauch@gmx.de)</li> 1534<li>Added --disable-all configure option. (Jani)</li> 1535<li>Backported debug_backtrace() from ZendEngine2. (Thies)</li> 1536<li>Added html-free phpinfo() output for CLI. (Jan)</li> 1537<li>Fixed socket_recvfrom() to be binary safe. (Jason)</li> 1538<li>Changed mail() to use escape_shell_cmd() to allow multiple extra parameters 1539 to the invocation of the mailer as used in the fifth parameter. (Derick)</li> 1540<li>Changed cURL extension to require cURL version 7.9.8 (Derick)</li> 1541<li>Added zend_execute_internal which is called like zend_execute but for 1542 internal functions. (Thies)</li> 1543<li>Changed pg_connection_status(), pg_connection_reset(), pg_connection_busy(), 1544 pg_result_status() and pg_result_error() to silently return FALSE when 1545 resource is not passed to them. (Yasuo)</li> 1546<li>Fixed some mysql compile failures on 64 bit-OS. (Georg)</li> 1547<li>Added warnings for deprecated mysql functions: 1548 <ul> 1549 <li>mysql_create_db() </li> 1550 <li>mysql_drop_db() </li> 1551 <li>mysql_escape_string()</li> 1552 </ul> 1553</li> 1554<li>Added XsltObject-<result_dump_mem($result) for returning xslt-result directly 1555 into a string and XsltObject-<result_dump_file($result,$file[,$compression]) 1556 for dumping into a file. (morus.walter@web.de, chregu)</li> 1557<li>Made mime_magic and ZIP extensions available on Windows. (Edin)</li> 1558<li>Added xslt_backend_version() and xslt_backend_name() for getting 1559 information about the processor backend. (chregu)</li> 1560<li>Added ImageColorMatch() and ImageLayerEffect() functions which are only 1561 available when using the bundled GD library. (ttoohey)</li> 1562<li>Made major improvents to the pcntl extension. (Jason) 1563 <ul> 1564 <li>Greatly improved performance (signal callback mechanism uses ticks)</li> 1565 <li>Implemented object signal callback ability by using array($obj, $method)</li> 1566 <li>Added a restart parameter to pcntl_signal, which allows you to disable 1567 the default of system call restarting</li> 1568 </ul> 1569</li> 1570<li>Changed DomNode->next_sibling() and DomNode->previous_sibling() to return 1571 NULL instead of false (W3C specs). (chregu)</li> 1572<li>Changed DomNode->insert_before() and DomNode->append_child() to conform to 1573 W3C specs (moving not copying nodes, accepting NULL as 2nd param). (chregu)</li> 1574<li>Added DomNode->set_namespace(uri[,prefix]) (chregu)</li> 1575<li>Fixed shuffle() to properly generate all possibilities. (Patch provided by 1576 Adam <adam@trachtenberg.com>)</li> 1577<li>Fixed DomNode->insert_before() to behave according to W3C spec 1578 ie. new_child is moved, not copied. (chregu)</li> 1579<li>Added some namespace support with DomNode->add_namespace(uri, prefix) 1580 and DomDocument->create_element_ns(uri, nodename) (chregu)</li> 1581<li>Added optional parameter to DomElement->node_name() for retrieving fully 1582 qualified name (ie. namespace prefix). (chregu)</li> 1583<li>Changed DomNode->child_nodes() to return empty array instead of false if no 1584 child nodes are found. (chregu)</li> 1585<li>Fixed a bug with handling the Expect header. (Patch by ilia@prohost.org)</li> 1586<li>Fixed a bug in ODBC where closing the module caused a crash in the Windows 1587 executable. (kalowsky)</li> 1588<li>Fixed memory leaks in pack() and unpack(). (Patch by ilia@prohost.org)</li> 1589<li>Added URLs to error messages which direct to a page describing the error or 1590 function in question. (Derick, Wez, Marcus)</li> 1591<li>Added odbc_data_source() functionality to identify DB ServerName, and a 1592 description of it gathered from the DSN. (kalowsky)</li> 1593<li>Fixed copy() to return TRUE with 0 byte files. (Patch by ilia@prohost.org)</li> 1594<li>Added ob_list_handlers() which returns an array of all active output 1595 handlers. (Marcus)</li> 1596<li>Added mbstring encoding/decoding "HTML-ENTITIES". (Marcus)</li> 1597<li>Added parameter 'L' for mb_http_input() to retrieve input encoding as a 1598 comma separated string. (Marcus)</li> 1599<li>Added the ability for declare() compiler modifications to occur globally 1600 by using an empty statement. (Jason, Zend Engine) 1601 i.e. 1602 <pre> 1603 //Globally enables the ticks modifier for the whole program 1604 declare (ticks=1); 1605 1606 //Enables the ticks modifier for just the lexical block containing 1607 //"statement". 1608 declare (ticks=1) { 1609 statement; 1610 } 1611 </pre> 1612</li> 1613<li>Brought strtotime() "next" keyword handling in line with documentation and 1614 its glibc cousin. (Rasmus)</li> 1615<li>Fixed str_rot13() to not mangle source string. (Rasmus)</li> 1616<li>Fixed imap_get_quota() to work with multiple returned resources as per 1617 the RFC 2087 and bug <?php bugl(14673); ?>. (kalowsky, Sander Steffann)</li> 1618<li>Added MarkerNote decoding to exif_read_data() for several Cameras. (Marcus)</li> 1619<li>Disabled zlib.output_compression for "image/" content-type 1620 headers which can be changed during script execution. (Stefan)</li> 1621<li>Added new asynchronous FTP functions. (Stefan)</li> 1622<li>Added optional 5th parameter to FTP functions to support resuming. (Stefan)</li> 1623<li>Added optional 2nd parameter to print_r() to make it return the variable 1624 representation instead of echoing it. (Derick)</li> 1625<li>Added mysql_ping(), mysql_real_escape_string(), mysql_character_set_name(), 1626 mysql_thread_id(), mysql_stat() and mysql_list_processes(). (Zak, Georg)</li> 1627<li>Added safe_mode & open_basedir checks for pg_lo_export(). (Yasuo)</li> 1628<li>Added open_basedir check for pg_lo_import(). (Yasuo)</li> 1629<li>Fixed infinite recursion crash bug in ticks. (Jason)</li> 1630<li>Added php.ini option "mysql.connect_timeout" to set the timeout limit for 1631 mysql_connect() and mysql_pconnect(). (Georg)</li> 1632<li>Added optional parameter "flags" to mysql_connect() and mysql_pconnect() 1633 which can be used to set usage of idle timeout and different protocols, 1634 SSL and compressed. (Georg)</li> 1635<li>Added automatic rollback to ext/mysql for non committed transactions. (Georg)</li> 1636<li>Fixed cases where preg_split() incorrectly terminated final element if it 1637 contained null bytes. (Andrei)</li> 1638<li>Added persistent connections/pipelining to thttpd. (Sascha)</li> 1639<li>Fixed two potential blocking issues in thttpd. (Sascha)</li> 1640<li>Fixed broken header file detection on Solaris. (Sascha)</li> 1641<li>Improved nss/socket-related symbol/library detection. (Jani, Sascha)</li> 1642<li>Made iconv() work well with both libiconv and libgconv. (Moriyoshi, Yasuo)</li> 1643<li>Fixed socket_set_timeout() on win32. (Jason, Edin, Jani)</li> 1644<li>Added domxml_node_namespace_uri(). (Rui Lopes)</li> 1645<li>Fixed win32 memory leak in /ext/sockets that would occur on any error 1646 condition. Also fixed host resolution error messages on win32. (Jason)</li> 1647<li>Added optional 3rd parameter 'recursive' to ftp_rawlist() which will 1648 do 'LIST -R' instead of 'LIST'. (Jani)</li> 1649<li>Changed getimagesize() to always set unknown fields to 0 and added support 1650 for iff imagetype. (Marcus)</li> 1651<li>Added runtime Apache2 thread check to ensure we don't run a non-threaded 1652 PHP inside a threaded Apache2 MPM. (Rasmus)</li> 1653<li>Made getimagesize() and exif_read_data() to return also the mime-type and 1654 exif_thumbnail() to return also the image-type. (Marcus)</li> 1655<li>Added image_type_to_mime_type() which converts image-types to mime-types. 1656 (Marcus)</li> 1657<li>Made GD functions to only exist if they are available in libgd. Now the 1658 availability can be tested with function_exists(). (Derick)</li> 1659<li>Added an optional parameter to the header() function which overrides the HTTP 1660 response code. (Derick)</li> 1661<li>Changed the order of which modules are unloaded to the reverse order of 1662 which they were loaded. (Derick, Zend Engine)</li> 1663<li>Added preliminary SAX-Input support. It's now possible to build a DomDocument 1664 with SAX-Events. (chregu)</li> 1665<li>Bundled GD library 2.0.1 with php (ext/gd/libgd) (Rasmus, Jani, Markus, Edin)</li> 1666<li>Fixed bzopen() crash in thread-safe mode. (Andrei)</li> 1667<li>Added better error-messages (3rd parameter) and validating of DTDs (2nd 1668 parameter) to domxml_open_mem() and domxml_open_file(). (Christian)</li> 1669<li>Added domxml_doc_validate() for validating existing DomDocuments with a DTD. 1670 (Christian)</li> 1671<li>Added ability to capture string offsets in preg_match_*() results. 1672 (David Brown, Andrei)</li> 1673<li>Fixed set_error_handler() to accept methods as callbacks and also report 1674 invalid callbacks. (Andrei)</li> 1675<li>Fixed a memory corruption bug in overload extension. (Andrei)</li> 1676<li>Fixed error handling in fsockopen() on win32. (Jason)</li> 1677<li>Added win32 support for the timeout parameter of fsockopen(). (Jason)</li> 1678<li>Fixed shuffle() to provide equal distribution of values. (Andrei)</li> 1679<li>Added --with-mysql-sock configure option which can be used to override 1680 the unix socket location. (e.g. NFS compiles, etc.) (James Cox)</li> 1681<li>Fixed is_a() to properly work on extension registered classes. (Andrei)</li> 1682<li>Added new constants: PHP_PREFIX and PHP_SHLIB_SUFFIX. (Stig)</li> 1683<li>Added pctnl_alarm() function. (Edin)</li> 1684<li>If zlib.output_compression is enabled and a page is compressed 1685 a "Vary: Accept-Encoding" header is now added. (Stefan)</li> 1686<li>Renamed getallheaders() to apache_request_headers() and kept getallheaders() 1687 as an alias to it. Also added apache_response_headers() which returns the 1688 current response headers from Apache. (Rasmus)</li> 1689<li>Added missing AddRef() calls in the COM extension. This should fix weird 1690 behaviour (in particular with ADODB). (Harald)</li> 1691<li>Fixed segfault in version_compare(). (Stig)</li> 1692<li>Added compressed Flash MX files support to getimagesize(). (Derick)</li> 1693<li>Added ability to capture string offsets in preg_split() results. 1694 (David Brown, Andrei)</li> 1695<li>Fixed a crash bug in token_get_all(). (Andrei)</li> 1696<li>Implemented glob() for Unix/Win32. (Hartmut, Edin, Markus)</li> 1697<li>Added domxml_doc_set_root() to change the root node. (Lukas Schroeder)</li> 1698<li>Fixed a crash bug in stripslashes() when working in sybase mode. (Rasmus)</li> 1699<li>Added experimental support for Simplified Chinese, Traditional Chinese and 1700 Korean encodings into mbstring. (Rui)</li> 1701<li>Misc. Win32 mail() enhancements: support 'From:' header (msisolak@yahoo.com), 1702 support Bcc header, case-insensitive headers, enhanced error reporting, 1703 automatic proper line ending conversion, fixed crash with Cc, fixed buffer 1704 overflows with $header. (Markus)</li> 1705<li>Improved IMAP extension performance. (adam.kauffman@mindspring.com, 1706 rjs3@andrew.cmu.edu, Jon)</li> 1707<li>Added optional 5th parameter to domxml_xslt_process(). When set, profiling 1708 information is saved to the specified file. (chregu)</li> 1709<li>Added MD5 support for crypt() on Windows. (Edin)</li> 1710<li>Fixed resource bug in LDAP extension. (Stig Venaas)</li> 1711<li>Fixed crash in output buffering when buffer is overwritten in a callback. 1712 (Yasuo)</li> 1713<li>Added output_add_rewrite_var() and output_remove_rewrite_var() to inject 1714 and remove variables from the URL-Rewriter. (Thies)</li> 1715<li>The Windows build can now be configured more comfortably, for example 1716 when dealing with built-in extensions. (Sebastian)</li> 1717<li>Added large OID value (2^31 to 2^32) support for pg_lo_import(), 1718 pg_lo_unlink(), pg_lo_open() and pg_lo_export(). (Yasuo)</li> 1719<li>Fixed mixing OCIPlogon() and OCINLogon() to not leak Oracle-Sessions. (Thies)</li> 1720<li>Added php.ini options for EXIF extension to encode and decode Unicode/JIS 1721 user comments. (Marcus)</li> 1722<li>Changed the "-c" CLI/CGI option to allow both 'filename' and 1723 'path to php.ini'. (Yasuo)</li> 1724<li>Added version information to the .dll and .exe files created under Windows. 1725 (jtate)</li> 1726<li>Added __FUNCTION__ and __CLASS__ constants. (Jani, Zend Engine)</li> 1727<li>Added optional 2nd parameter for pg_result_status() to specify return type. 1728 (Yasuo)</li> 1729<li>Added "log_errors_max_len" php.ini option which controls maximum length for 1730 error messages. (Marcus)</li> 1731<li>Added "ignore_repeated_errors" and "ignore_repeated_source" php.ini options 1732 which can be used to disable logging of repeated error messages. (Marcus)</li> 1733<li>Made pg_last_notice() work correctly. (Yasuo)</li> 1734<li>Added "pgsql.ignore_notice" and "pgsql.log_notice" php.ini options. (Yasuo)</li> 1735<li>Added "zlib.output_compression_level" php.ini option. (Stig)</li> 1736<li>Added support for --with-apxs build on Mac OS X / Darwin. (markonen)</li> 1737<li>Added support for dynamically loaded extensions on OS X / Darwin. 1738 NOTE: This requires Apache 1.3.25 or later. (kalowsky, markonen)</li> 1739<li>Fixed CR/LF processing in quoted_printable_decode() on Win32. (kir)</li> 1740<li>Made crack extension available on Win32. Cracklib libraries for Win32 are 1741 available at http://www.jtatesoftware.com/cracklib/. (jtate)</li> 1742<li>Added mysql_info() function. (Jan)</li> 1743<li>Added mysql_list_processes() and mysql_stat() functions. (Georg)</li> 1744<li>Fixed memory allocation problem on systems that have iconv() support in libc. 1745 (Yasuo)</li> 1746<li>Made var_dump() handle recursive structures better. (Yasuo, Derick)</li> 1747<li>Added exif_imagetype() function. (Marcus)</li> 1748<li>New improved build system. Among other improvements, replaces the slow 1749 recursive make with one global Makefile and eases the integration of proper 1750 dependencies. Automake is only needed for its aclocal tool. The build 1751 process is now more portable and less resource-consuming. (Sascha)</li> 1752</ul> 1753More information on this release on <a href="/releases.php#4.3.0">our Releases page</a>.<br> 1754 1755<!-- }}} --></section> 1756 1757<a id="PHP_4_2"></a> 1758 1759<section class="version" id="4.2.3"><!-- {{{ 4.2.3 --> 1760<h3>Version 4.2.3</h3> 1761<?php release_date("06-Sep-2002"); ?> 1762<ul> 1763<li>Enable UTF8 modifier support for PCRE on win32. (Wez, Edin)</li> 1764<li>Enabled strcoll() on win32. (Markus)</li> 1765<li>Fixed possible ASCII control char injection in mail(). (Stefan Esser)</li> 1766<li>Fixed a potential crash bug in import_request_variables() (Zeev)</li> 1767<li>Fixed several problems with directory functions on Windows. (Steph)</li> 1768<li>Fixed xbithack bug in Apache module. (Rasmus)</li> 1769<li>Fixed a bug that prevented touch() from working on various platforms. (Steph)</li> 1770<li>Fixed ob_gzhandler()'s handling of requests that do have the Accept-Encoding header, but do not allow compression. (Zeev)</li> 1771<li>Fixed several bugs in the multithreaded version that could cause random parse errors, especially on machines with multiple CPUs. (Zeev, Zend Engine)</li> 1772<li>Fixed a build problem in bcmath. (Alan)</li> 1773<li>Fixed several bzip2 issues. (Andrei, kalowsky)</li> 1774<li>Fixed several COM issues. (Harald)</li> 1775<li>Various exif fixes. (Marcus)</li> 1776<li>Fixed domxml_xslt_process() and domxml_get_element_by_id() and several other issues in DOMXML. (Christian)</li> 1777<li>Fixed DOMXML crash on removing previously created attributes. (Christian)</li> 1778<li>Fixed crash when converting $GLOBALS to an object. (Zeev, Zend Engine)</li> 1779<li>Fixed ImageCreateFromGD2Part() (Jani)</li> 1780<li>Fixed a build issue in the IMAP extension under IRIX. (kalowsky)</li> 1781<li>Fixed a bug in imap_last_error() (Jani)</li> 1782<li>Various mbstring fixes. (Yasuo, Rui)</li> 1783<li>Fixed a build problem in the mcal extension. (Jani)</li> 1784<li>Made MySQL rollback open transactions when the request ends. (Georg)</li> 1785<li>Fixed a crash in the shutdown order of the ODBC module. (kalowsky)</li> 1786<li>Fixed PCRE build problems. (troels@arvin.dk)</li> 1787<li>Fixed a crash in pg_lo_write() (Yasuo)</li> 1788<li>Fixed posix_isatty() and posix_ttyname(). (Markus)</li> 1789<li>Fixed accidental pg_lo_import() API change. (Yasuo)</li> 1790<li>Fixed ereg_replace() crash when the backreference number was greater than the number of captured subpatterns. (oliver@billix.franken.de)</li> 1791<li>Fixed array_rand() on thread-safe platforms such as Windows. (Edin)</li> 1792<li>Report the right exit code after a call to exit(). (Edin)</li> 1793</ul> 1794More information on this release on <a href="/releases.php#4.2.3">our Releases page</a>.<br> 1795 1796<!-- }}} --></section> 1797 1798<section class="version" id="4.2.2"><!-- {{{ 4.2.2 --> 1799<h3>Version 4.2.2</h3> 1800<?php release_date("22-Jul-2002"); ?> 1801<ul> 1802<li>Fixed serious security vulnerability. (Stefan Esser)</li> 1803</ul> 1804More information on this release on <a href="/releases.php#4.2.2">our Releases page</a>.<br> 1805 1806<!-- }}} --></section> 1807 1808<section class="version" id="4.2.1"><!-- {{{ 4.2.1 --> 1809<h3>Version 4.2.1</h3> 1810<?php release_date("13-May-2002"); ?> 1811<ul> 1812<li>Added safe-mode checks to show_source(), parse_ini_file() and rmdir(). Also 1813 fixed security problems with safe_mode_include_dir directive. (Rasmus)</li> 1814<li>Changed HTTP upload code to accept 0 byte file uploads. (Zeev)</li> 1815<li>Major update of domxml. New functions, better DOM compliance and bug fixes: 1816 <ul> 1817 <li> 1818 Changed the old $node->append_child() to $node->append_sibling() since 1819 the new append_child() behaves correctly (= W3C standard). 1820 </li> 1821 <li> 1822 Added domxml functions: 1823 <ul> 1824 <li>domxml_elem_get_elements_by_tagname()</li> 1825 <li>domxml_doc_get_elements_by_tagname()</li> 1826 <li>domxml_doc_get_element_by_id()</li> 1827 <li>domxml_elem_remove_attribute()</li> 1828 <li>domxml_elem_get_attribute_node()</li> 1829 </ul> 1830 </li> 1831 <li> 1832 Fixed a segfault in domxml_unlink(). 1833 </li> 1834 <li> 1835 Added formatting option to domxml_dump_mem(). 1836 </li> 1837 </ul> 1838 (Uwe, jtate, Chregu)</li> 1839<li>Fixed a bug in socket_select() that could cause unexpected behavior when 1840 using a statement like $w = $e = array($sock); This change unfortunately 1841 prevents the use of constant values (e.g. NULL) for the socket array 1842 paramaters. Instead, use a temporary variable or an expression with the 1843 leftmost member being a temporary variable. ex.: 1844 socket_select($w, $r, $e = NULL, 10); (Jason)</li> 1845<li>Fixed crashes in the session serializer. (Stas)</li> 1846<li>Fixed malformed atime/mtime with touch(). (Yasuo)</li> 1847<li>Fixed a couple of bugs in array_sum() and array_merge(). (Andrei)</li> 1848<li>Fixed SJIS directory name handling under Windows. (Rui)</li> 1849<li>Fixed empty mb_output_handler() output when Content-Type is specified. 1850 (Yasuo)</li> 1851<li>Fixed the false logic in ext/session which made SID constant not to be 1852 defined when cookies are disabled. (Sascha)</li> 1853<li>Fixed possible crash bug in HTTP uploads. (Patch: Lucas Schroeder)</li> 1854<li>Fixed possible NULL-pointer dereferencing in the COM extension which 1855 caused 'Error in php_OLECHAR_to_char()' warnings on various places. 1856 Also modified the API to consistently return NULL in case of an error. 1857 (Alan, Harald)</li> 1858<li>Fixed a bug in the COM extension that caused outproc servers to 'hang' 1859 because of a missing Release() call. (Alan, Harald)</li> 1860</ul> 1861More information on this release on <a href="/releases.php#4.2.1">our Releases page</a>.<br> 1862 1863<!-- }}} --></section> 1864 1865<section class="version" id="4.2.0"><!-- {{{ 4.2.0 --> 1866<h3>Version 4.2.0</h3> 1867<?php release_date("22-Apr-2002"); ?> 1868<ul> 1869<li>ATTENTION!! register_globals defaults to 'off' now !!!</li> 1870<li>Note: Apache2 support is EXPERIMENTAL.</li> 1871<li>Moved ext/mailparse to PECL. See <a href="http://thebrainroom.com/opensource/php/">http://thebrainroom.com/opensource/php/</a> 1872for more information and to download the extension. (Wez/Jim)</li> 1873<li>Fixed pg_last_notice() crash. (Yasuo)</li> 1874<li>Modified the mysql extension to disable 'LOAD LOCAL' when safe mode is 1875enabled. (Jason)</li> 1876<li>Fixed HTTP file upload support to handle big files better. (Jani)</li> 1877<li>Major modifications to the Sockets Extension and its API (Jason): 1878 <ul> 1879 <li>Fixed numerous bugs.</li> 1880 <li>Added automatic host lookup capability to all functions that take addr's. 1881example: socket_connect($sock, 'www.yahoo.com', 80);</li> 1882 <li>Corrected and standardized host lookup errors</li> 1883 <li>Modified socket_recv() behavior. [$r=socket_recv($sock, $buf, $len, $flags)]</li> 1884 <li>Added socket_set_block() which changes a socket into blocking IO mode</li> 1885 <li>Modified socket_last_error() to not clear the last error</li> 1886 <li>Added socket_clear_error() which clears the last error on a socket</li> 1887 <li>Removed all code pertaining to fd_sets (socket_fd_*)</li> 1888 <li>Modified/Improved socket_select() to accept array of resources instead of fd_sets. example: 1889 <pre> 1890 <?php<br> 1891 $wfds=$rfds=array($sock1, $sock2, $sock3, $sock7);<br> 1892 $r=socket_select($rfds, $wfds, NULL, 1);<br> 1893 print "Ready to read:\n"; var_dump($rfds);<br> 1894 ?><br> 1895 </pre></li> 1896 </ul></li> 1897<li>Fixed segfault in ibase_close() if user does not free the resultset. 1898Bugs <?php bugl(15419); ?>, <?php bugl(15992); ?>. (daniela)</li> 1899<li>Fixed pg_last_notice() crash. (Yasuo)</li> 1900<li>Added optional 3rd parameter "int encoding_mode" to gzencode() and fixed 1901parameters to conform documentation. (Stefan)</li> 1902<li>Changed read_exif_data() to be an alias of exif_read_data(). (Marcus)</li> 1903<li>Added exif_tagname() function which returns the names of tags and 1904exif_thumbnail() function to extract embedded thumbnails. (Marcus)</li> 1905<li>Fixed iconv support with FreeBSD. (kalowsky)</li> 1906<li>Cleaned up the posix extension: (Markus) 1907<ul> 1908 <li>Removed unwanted warning messages</li> 1909 <li>Added posix_errno() and posix_strerror() for fetching error messages</li> 1910 <li>Changed the way posix_getgrnam() and posix_getgrgid() return their values 1911(breaks BC but makes more sense)</li> 1912 <li>Does not include functions in symbol table which aren't supported on host 1913system.</li> 1914</ul></li> 1915<li>Added TIFF support for getimagesize() and read_exif_data(). (Marcus)</li> 1916<li>Changed the Velocis extension namespace to Birdstep to reflect new product 1917name. Added aliases for BC. (James)</li> 1918<li>Added safe_mode checks for opendir(). (jflemer)</li> 1919<li>Changed the 2nd parameter in pgsql_fetch_*() functions to support NULL if 1920all 3 parameters are supplied, but you do not want to provide a row number. 1921(Derick)</li> 1922<li>Improved iconv() when using libc's iconv. (Yasuo)</li> 1923<li>Added PHP_SAPI constant which contains the name of running SAPI. (Edin)</li> 1924<li>Added ob_get_status() which returns an array of buffers with their status. 1925(Yasuo)</li> 1926<li>Fixed a crash bug in ob_end_*() functions. ob_end_*() will not delete 1927buffers that may not be deleted. (Yasuo)</li> 1928<li>Added 3rd parameter "bool erase" to ob_start(). If FALSE, the buffer may not 1929be deleted until script finishes. (Yasuo)</li> 1930<li>Changed ob_*() functions to return TRUE for success, FALSE for failure. 1931(Yasuo)</li> 1932<li>Added sybase_ct support to dbx module. (Marc)</li> 1933<li>Fixed error message handling with PostgreSQL 7.2. (Rui)</li> 1934<li>Added object aggregation capability, see aggregation_*() functions. (Andrei)</li> 1935<li>Added debug_zval_dump() which works similarly to var_dump, but displays 1936extra internal information such as refcounts and true type names. (Jason)</li> 1937<li>Added Andrei's tokenizer extension. (Stig)</li> 1938<li>Fixed a bug in the COM extension which caused php to crash in 1939php_COM_get_ids_of_names(). (Paul, Harald)</li> 1940<li>Removed ext/satellite. It is now part of PEAR. (eriksson)</li> 1941<li>Changed php.ini directive 'safe_mode_include_dir' to accept a (semi)colon 1942separated path (like 'include_path') rather than a single directory. 1943(jflemer)</li> 1944<li>Added is_a() function that can be used to test whether object is of a certain 1945class or is derived from it. (Andrei, Zend Engine)</li> 1946<li>Added optional parameter to highlight_string() and highlight_file() which 1947makes these functions to return a highlighted string instead of dumping 1948it to standard output. (Derick)</li> 1949<li>Added EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS flags to extract(). (Rasmus)</li> 1950<li>Fixed a segfault in pg_pconnect(). If PostgreSQL server is restarted, broken 1951connection is detected and reconnected. (Yasuo)</li> 1952<li>Fixed --enable-safe-mode configure option. (Yasuo)</li> 1953<li>Added function domxml_dump_node($doc,$node). Dumps a node plus all children 1954into a string. (chregu)</li> 1955<li>Added function domxml_node_get_content(). (chregu)</li> 1956<li>Added function domxml_dump_file($filename,[$compression]). Dumps XML to 1957a file and uses compression, if specified. (chregu)</li> 1958<li>Added exslt integration to domxml extension (<a href="http://exslt.org/">http://exslt.org/</a> for details). 1959Configure with --with-dom-exslt[=DIR] (and --with-dom-xslt). 1960(chregu,jaroslaw)</li> 1961<li>Fixed session_unset() to not touch any globals if register_globals is off. 1962(Thies)</li> 1963<li>Added 3 new optional parameters to OCIFetchStatement(). They control 1964the number of rows to skip at the beginning of the cursor, the 1965maximun numer of rows that should be fetched and the format of the 1966returned array. (Thies)</li> 1967<li>Updated the XSLT extension to support Sablotron 0.8. (Petr Cimprich)</li> 1968<li>Fixed a bug in preg_match() and preg_match_all() when matching strings 1969contain null bytes. (Andrei)</li> 1970<li>Added xpath_register_ns() function. This makes it possible to issue XPath 1971queries with namespaces like for example: "//namespace:sampletag". 1972(Chris Jarecki)</li> 1973<li>Added multi-byte enabled regular expression functions. (Rui)</li> 1974<li>Added optional second parameter to count() which can be used to specify 1975either normal or recursive counting. (patch by Vlad Bosinceanu <<a href="mailto:glipy@fx.ro">glipy@fx.ro</a>>)</li> 1976<li>Added mb_get_info() to get internal settings of mbstring. (Rui)</li> 1977<li>Added async query functions to PostgreSQL module. (Yasuo)</li> 1978<li>Added pg_copy_to()/pg_copy_from() for PostgreSQL module. (Youichi, Yasuo)</li> 1979<li>Added IPv6 support for FTP extension. (Stig Venaas)</li> 1980<li>Improved the speed of wordwrap() significantly. (Jim)</li> 1981<li>Fixed pow()'s incorrect behaviour when dealing with powers of 0. (Jim)</li> 1982<li>Added is_finite(), is_infinite() and is_nan(). (Jim)</li> 1983<li>Fixed segfault in wordwrap() when wrapping to zero width and using 1984multi-character break or trying to force cut (bug <?php bugl(12768); ?>). (Jim)</li> 1985<li>Fixed several bugs in dbase extension (dbase_pack() truncate file to right 1986size, fix <?php bugl(6852) ?> #1 and #2). (Vlad)</li> 1987<li>Fixed bug in krsort() where an extra character was being compared. (Andi)</li> 1988<li>Fixed bug that made pspell include pspell.h from a wrong location. (Vlad)</li> 1989<li>Added function overload in mbstring to add multibyte support for 1990string and mail functions. (Rui)</li> 1991<li>Added flags parameter to preg_grep(). The only flag currently is 1992PREG_GREP_INVERT that will make the function return entries that 1993did not match. (Andrei)</li> 1994<li>Fixed several crash bugs in the xslt extension. (Markus, Derick)</li> 1995<li>Fixed problem with dbase not returning very large (larger than long) 1996integers properly. (Vlad)</li> 1997<li>Added concepts to IRCG: bailout-on-trivial issue, write output to 1998files, fetch a resource upon connection end. (Sascha)</li> 1999<li>Fixed POST-related bugs in thttpd, added QUERY_STRING, HTTP_HOST, 2000HTTP_ACCEPT_LANGUAGE to the script environment, improved patch 2001to send correct MIME types, and added support for /nocache/. (Sascha)</li> 2002<li>Fixed several bugs and memleaks in the domxml extension. (Markus)</li> 2003<li>Added var_export() which outputs a representation of a variable as reusable 2004PHP code. (Derick)</li> 2005<li>Added -w option to the CGI-version to strip all comments and whitespace 2006from the script. (Thies)</li> 2007<li>Added support for SO_RCVTIMEO and SO_SNDTIMEO to ext/sockets. (Jason)</li> 2008<li>Added ob_get_level() which returns the nesting level of the output buffering 2009mechanism. (Yasuo, Derick)</li> 2010<li>Added ob_flush() and ob_clean() functions which flush and clean an output 2011buffer without destroying the buffer. (Derick)</li> 2012<li>Added new optional parameter to mysql_connect() which forces a new database 2013link to be created. (Markus, Derick)</li> 2014<li>Added ldap_sort() function. (Stig Venaas)</li> 2015<li>Added md5_file() function which calculates the MD5 sum of a file. 2016Patch by Alessandro Astarita <<a href="mailto:aleast@capri.it">aleast@capri.it</a>> (Derick)</li> 2017<li>Added support for parsing recordsets contained in WDDX packets. (Andrei)</li> 2018<li>Renamed key_exists() to array_key_exists(). (Derick)</li> 2019<li>Fixed ImageColorsForIndex() and ImageColorAt() to work for TrueColor 2020images. (Rasmus)</li> 2021<li>Added support for bind_textdomain_codeset(). <<a href="mailto:rudib@email.si">rudib@email.si</a>></li> 2022<li>Added generic Win 32 API extension. (jmoore)</li> 2023<li>Removed warning message about NONEXISTENT character set from mysql_connect() 2024when the server's default character set != latin1. (MySQL Team)</li> 2025<li>Added Direct I/O extension for lowlevel access to the POSIX layer. (Sterling)</li> 2026<li>Added SAPI module for the WebJames server on RISC OS. (Alex Waugh)</li> 2027<li>Fixed ldap_add() and ldap_modify() functions to throw a warning with illegal 2028value arrays. Previously segfaulted or added wrong value. (Stig Venaas)</li> 2029<li>Added udm_check_charset() function into mnoGoSearch extension. (gluke)</li> 2030<li>Fixed mnoGoSearch extension to support mnogosearch-3.2.x. (gluke)</li> 2031<li>Made fbsql_num_rows() to return the correct value on all select statements. 2032(Frank)</li> 2033<li>Added array_chunk() function which splits an array into chunks of specified 2034size. (Andrei)</li> 2035<li>Fixed $HTTP_RAW_POST_DATA to be populated on a missing content-type when 2036always_populate_raw_post_data is on. (Rasmus)</li> 2037<li>Added session_cache_expire() function. (patch by <<a href="mailto:anuradha@gnu.org">anuradha@gnu.org</a>>) (Andrei)</li> 2038<li>Added array_fill() function. (Rasmus)</li> 2039<li>Made Authorization header to be hidden from phpinfo() output in safe_mode. 2040(Rasmus)</li> 2041<li>Re-instated safe-mode realm mangling. (Rasmus)</li> 2042<li>Fixed a bug in preg_replace() that would change the type of the replacement 2043array entries to string. (Andrei)</li> 2044<li>Added user-space object overloading extension. (Andrei)</li> 2045<li>Added ldap_start_tls() function. (Stig Venaas, patch by <<a href="mailto:kuenne@rentec.com">kuenne@rentec.com</a>>)</li> 2046<li>Changed rand() and mt_rand() to be seed automatically if srand() or 2047mt_srand() has not been called. (Sterling)</li> 2048<li>Changed the seed options to srand() and mt_srand() to be optional. If the 2049seed is not specified the most random seed possible is generated. (Sterling)</li> 2050<li>Added array_change_key_case() function which returns an array with all 2051string keys lowercased or uppercased. (Edin)</li> 2052<li>Added parameter to ircg_pconnect to suppress treating non-fatal errors 2053as fatal, and added conversion of Windows quotes to &quot;. (Sascha)</li> 2054<li>Added pcntl_exec() function which behaves similar to the system execve. 2055(Jason)</li> 2056<li>Fixed segfault and check for truecolor image in ImageColorAt(). (Rasmus)</li> 2057<li>Fixed nl2br() to handle all styles of line-endings in one string. 2058(Boian, Derick)</li> 2059<li>Added mcrypt_generic_deinit() to replace mcrypt_generic_end(). (Derick)</li> 2060<li>Added apache_setenv() function for injecting variables into Apache's 2061subprocess_env table. (Rasmus)</li> 2062<li>Added support for 'int', 'bool', 'float' and 'null' in settype(). (Jeroen)</li> 2063<li>Added IPv6 support to gethostbyaddr(). 2064(Patch by Matthias Wimmer <<a href="mailto:matthias@charente.de">matthias@charente.de</a>> and venaas)</li> 2065<li>Fixed LONG_VARCHAR type crashing in ODBC extension. Patch by Walter Franzini. 2066(kalowsky)</li> 2067<li>Changed in_array() and search_array() to allow the needle to be an array 2068in itself. (Andrei)</li> 2069<li>Added ini_get_all() function which returns all registered ini entries 2070or entries for the specified extension. (Jani)</li> 2071<li>Added support for chinese encodings in htmlentities() and htmlspecialchars(). 2072(Patch by Alan Knowles <<a href="mailto:alan_k@hklc.com">alan_k@hklc.com</a>> and Wez)</li> 2073<li>Improved support for autoconf-2.50+/libtool 1.4b+. (Jan Kneschke, Sascha)</li> 2074</ul> 2075More information on this release on <a href="/releases.php#4.2.0">our Releases page</a>.<br> 2076 2077<!-- }}} --></section> 2078 2079<a id="PHP_4_1"></a> 2080 2081<section class="version" id="4.1.2"><!-- {{{ 4.1.2 --> 2082<h3>Version 4.1.2</h3> 2083<?php release_date("27-Feb-2002"); ?> 2084<ul> 2085<li>Fixed start up failure when mm save handler is used and there is multiple 2086 SAPIs are working at the same time. (Yasuo)</li> 2087<li>Fixed the Roxen SAPI (Yasuo)</li> 2088<li>Fixed a buffer overflow in the RFC-1867 file upload code (Stefan)</li> 2089<li>Fixed a crash in the session module (Yasuo)</li> 2090<li>Fixed a crash in the pspell module (Yasuo)</li> 2091<li>Changed the default output encoding of mbstring 'pass' to fix 2092 initialization problem (Rui)</li> 2093</ul> 2094More information on this release on <a href="/releases.php#4.1.2">our Releases page</a>.<br> 2095 2096<!-- }}} --></section> 2097 2098<section class="version" id="4.1.1"><!-- {{{ 4.1.1 --> 2099<h3>Version 4.1.1</h3> 2100<?php release_date("26-Dec-2001"); ?> 2101<ul> 2102<li>Fixed incompatibility with Windows .NET / IIS 6 - may improve stability 2103 under other versions of IIS. (Zeev)</li> 2104<li>Fixed bug that caused crashes or error notices on shutdown on threaded 2105 platforms. (Zeev)</li> 2106<li> Fixed several crash bugs in the xslt extension. (Markus, Derick)</li> 2107<li>Fixed problem with dbase not returning very large (larger than long) 2108 integers properly. (Vlad)</li> 2109<li>Fixed several bugs and memleaks in the domxml extension. (Markus)</li> 2110<li>Fixed bug in gmmktime() which was one hour off during standard time - 2111 bug <?php bugl(9878); ?>. Patch by bfoddy@mediaone.net. (jmoore)</li> 2112<li>Fixed bug in gmdate() timezone handling on Windows - bug <?php bugl(13885); ?>. (jmoore)</li> 2113<li>Fixed several crash bugs in the mcrypt extension. (Derick)</li> 2114<li>Made the mcrypt extension compile with the libmcrypt 2.2 series again. 2115 (Sterling)</li> 2116<li>Fixed a bug where the is_file() family of functions would in-correctly give 2117 an error when they were given filenames that didn't exist. (Sterling)</li> 2118<li>Fixed a bug in the strtotime() function where it was incorrectly recognizing 2119 GMT +0100 and GMT -0100. (Derick)</li> 2120</ul> 2121More information on this release on <a href="/releases.php#4.1.1">our Releases page</a>.<br> 2122 2123<!-- }}} --></section> 2124 2125<section class="version" id="4.1.0"><!-- {{{ 4.1.0 --> 2126<h3>Version 4.1.0</h3> 2127<?php release_date("10-Dec-2001"); ?> 2128<ul> 2129<li>Worked around a bug in the MySQL client library that could cause PHP to hang 2130 when using unbuffered queries. (Zeev)</li> 2131<li>Fixed a bug which caused set_time_limit() to affect all subsequent requests 2132 to running Apache child process. (Zeev)</li> 2133<li>Removed the sablotron extension in favor of the new XSLT extension. 2134 (Sterling)</li> 2135<li>Fixed a bug in WDDX deserialization that would sometimes corrupt the root 2136 element if it was a scalar one. (Andrei)</li> 2137<li>Make ImageColorAt() and ImageColorsForIndex() work with TrueColor images. 2138 (Rasmus)</li> 2139<li>Fixed a bug in preg_match_all() that would return results under improper 2140 indices in certain cases. (Andrei)</li> 2141<li>Fixed a crash in str_replace() that would happen if search parameter was an 2142 array and one of the replacements resulted in subject string being empty. 2143 (Andrei)</li> 2144<li>Fixed MySQL extension to work with MySQL 4.0. (Jani)</li> 2145<li>Fixed a crash bug within Cobalt systems. Patch by tomc@tripac.com. 2146(Jani)</li> 2147<li>Bundled Dan Libby's xmlrpc-epi extension.</li> 2148<li>Introduced extension version numbers. (Stig)</li> 2149<li>Added version_compare() function. (Stig)</li> 2150<li>Fixed pg_last_notice() (could cause random crashes in PostgreSQL 2151 applications, even if they didn't use pg_last_notice()). (Zeev)</li> 2152<li>Fixed DOM-XML's error reporting, so E_WARNING errors are given instead of 2153 E_ERROR error's, this allows you to trap errors thrown by DOMXML functions. 2154 (Sterling)</li> 2155<li>Fixed a bug in the mcrypt extension, where list destructors were not 2156 properly being allocated. (Sterling)</li> 2157<li>Better Interbase blob, null and error handling. (Patch by Jeremy Bettis)</li> 2158<li>Fixed a crash bug in array_map() if the input arrays had string or 2159 non-sequential keys. Also modified it so that if a single array is passed, 2160 its keys are preserved in the resulting array. (Andrei)</li> 2161<li>Fixed a crash in dbase_replace_record. (Patch by robin.marlow@dps-int.com)</li> 2162<li>Fixed a crash in msql_result(). (Zeev)</li> 2163<li>Added support for single dimensional SafeArrays and Enumerations. 2164 Added com_isenum() function to check if a component implements an 2165 enumeration. (Alan, Harald)</li> 2166<li>Fixed a bug in dbase_get_record() and dbase_get_record_with_names(). 2167 boolean fields are now returned correctly. 2168 Patch by Lawrence E. Widman <widman@cardiothink.com> (Jani)</li> 2169<li>Added --version option to php-config. (Stig)</li> 2170<li>Improved support for thttpd-2.21b by incorporating patches for all known 2171 bugs. (Sascha)</li> 2172<li>Added ircg_get_username, a roomkey argument to ircg_join, error fetching 2173 infrastructure, a tokenizer to speed up message processing, and fixed 2174 a lot of bugs in the IRCG extension. (Sascha)</li> 2175<li>Improved speed of the serializer/deserializer. (Thies, Sascha)</li> 2176<li>Floating point numbers are better detected when converting from strings. 2177 (Zeev, Zend Engine)</li> 2178<li>Replaced php.ini-optimized with php.ini-recommended. As the name implies, 2179 it's warmly recommended to use this file as the basis for your PHP 2180 configuration, rather than php.ini-dist. (Zeev)</li> 2181<li>Restore xpath_eval() and php_xpathptr_eval() for 4.0.7. There 2182 are still some known leaks. (Joey)</li> 2183<li>Added import_request_variables(), to allow users to safely import form 2184 variables to the global scope (Zeev)</li> 2185<li>Introduced a new $_REQUEST array, which includes any GET, POST or COOKIE 2186 variables. Like the other new variables, this variable is also available 2187 regardless of the context. (Andi & Zeev)</li> 2188<li>Introduced $_GET, $_POST, $_COOKIE, $_SERVER and $_ENV variables, which 2189 deprecate the old $HTTP_*_VARS arrays. In addition to be much shorter to 2190 type - these variables are also available regardless of the scope, and 2191 there's no need to import them using the 'global' statement. (Andi & Zeev)</li> 2192<li>Added vprintf() and vsprintf() functions that allow passing all arguments 2193 after format as an array. (Andrei)</li> 2194<li>Added support for GD2 image type for ImageCreateFromString() (Jani)</li> 2195<li>Added ImageCreateFromGD(), ImageCreateFromGD2(), ImageCreateFromGD2part(), 2196 ImageGD() and ImageGD2() functions (Jani)</li> 2197<li>addcslashes now warns when charlist is invalid. The returned string 2198 remained the same (Jeroen)</li> 2199<li>Added optional extra argument to gmp_init(). The extra argument 2200 indicates which number base gmp should use when converting a 2201 string to the gmp-number. (Troels)</li> 2202<li>Added the Cyrus-IMAP extension, which allows a direct interface to Cyrus' 2203 more advanced capabilities. (Sterling)</li> 2204<li>Enhance read_exif_data() to support multiple comment tags (Rasmus)</li> 2205<li>Fixed a crash bug in array_map() when NULL callback was passed in. (Andrei)</li> 2206<li>Change from E_ERROR to E_WARNING in the exif extension (Rasmus)</li> 2207<li>New pow() implementation, which returns an integer when possible, 2208 and warnings on wrong input (jeroen)</li> 2209<li>Added optional second parameter to trim, chop and ltrim. You can 2210 now specify which characters to trim (jeroen)</li> 2211<li>Hugely improved the performance of the thread-safe version of PHP, especially 2212 under Windows (Andi & Zeev)</li> 2213<li>Improved request-shutdown performance significantly (Andi & Zeev, Zend 2214 Engine)</li> 2215<li>Added a few new math functions. (Jesus)</li> 2216<li>Bump bundled expat to 1.95.2 (Thies)</li> 2217<li>Improved the stability of OCIPlogon() after a database restart. (Thies)</li> 2218<li>Fixed __FILE__ in the CGI & Java servlet modes when used in the main script. 2219 It only worked correctly in included files before this fix (Andi)</li> 2220<li>Improved the Zend hash table implementation to be much faster (Andi, Zend 2221 Engine)</li> 2222<li>Updated PHP's file open function (used by include()) to check in the calling 2223 script's directory in case the file can't be found in the include_path (Andi)</li> 2224<li>Fixed a corruption bug that could cause constants to become corrupted, and 2225 possibly prevent resources from properly being cleaned up at the end of 2226 a request (Zeev)</li> 2227<li>Added optional use of Boyer-Moore algorithm to str_replace() (Sascha)</li> 2228<li>Fixed and improved shared-memory session storage module (Sascha)</li> 2229<li>Add config option (always_populate_raw_post_data) which when enabled 2230 will always populate $HTTP_RAW_POST_DATA regardless of the post mime 2231 type (Rasmus)</li> 2232<li>Added support for socket and popen file types to ftp_fput (Jason)</li> 2233<li>Fixed various memory leaks in the LDAP extension (Stig Venaas)</li> 2234<li>Improved interactive mode - it is now available in all builds of PHP, without 2235 any significant slowdown (Zeev, Zend Engine)</li> 2236<li>Fixed crash in iptcparse() if the supplied data was bogus. (Thies)</li> 2237<li>Fixed return value for a failed snmpset() - now returns false (Rasmus)</li> 2238<li>Added hostname:port support to snmp functions (nbougues@axialys.net, Rasmus)</li> 2239<li>Added fdf_set_encoding() function (Masaki YATSU, Rasmus)</li> 2240<li>Reversed the destruction-order of resources. This fixes the reported OCI8 2241 "failed to rollback outstanding transactions!" message (Thies, Zend Engine)</li> 2242<li>Added option for returning XMLRPC fault packets. (Matt Allen, Sascha 2243 Schumann)</li> 2244<li>Improved range() function to support range('a','z') and range(9,0) types of 2245 ranges. (Rasmus)</li> 2246<li>Added getmygid() and safe_mode_gid ini directive to allow safe mode to do 2247 a gid check instead of a uid check. (James E. Flemer, Rasmus)</li> 2248<li>Made assert() accept the array(&$obj, 'methodname') syntax. (Thies)</li> 2249<li>Made sure that OCI8 outbound variables are always zero-terminated. (Thies)</li> 2250<li>Fixed a bug that allowed users to spawn processes while using the 5th 2251 parameter to mail(). (Derick)</li> 2252<li>Added nl_langinfo() (when OS provides it) that returns locale.</li> 2253<li>Fixed a major memory corruption bug in the thread safe version. (Zeev)</li> 2254<li>Fixed a crash when using the CURLOPT_WRITEHEADER option. (Sterling)</li> 2255<li>Added optional suffix removal parameter to basename(). (Hartmut)</li> 2256<li>Added new parameter UDM_PARAM_VARDIR ha in Udm_Set_Agent_Param() function to 2257 support alternative search data directory. This requires mnogoSearch 3.1.13 2258 or later.</li> 2259<li>Fixed references in sessions. This doesn't work when using the WDDX 2260 session-serializer. Also improved speed of sessions. (Thies)</li> 2261<li>Added new experimental module pcntl (Process Control). (Jason)</li> 2262<li>Fixed a bug when com.allow_dcom is set to false. (phanto)</li> 2263<li>Added a further parameter to the constructor to load typelibs from file when 2264 instantiating components (e.g. DCOM Components without local registration). 2265 (phanto)</li> 2266<li>Added the possibility to specify typelibs by full name in the typelib file 2267 (Alan Brown)</li> 2268<li>Renamed the ZZiplib extension to the Zip extension, function names have also 2269 changed accordingly, functionality, has stayed constant. (Sterling)</li> 2270<li>Made the length argument (argument 2) to pg_loread() optional, if not 2271 specified data will be read in 1kb chunks. (Sterling)</li> 2272<li>Added a third argument to pg_lowrite() which is the length of the data to 2273 write. (Sterling)</li> 2274<li>Added the CONNECTION_ABORTED, CONNECTION_TIMEOUT and CONNECTION_NORMAL 2275 constants. (Zak)</li> 2276<li>Assigning to a string offset beyond the end of the string now automatically 2277 increases the string length by padding it with spaces, and performs the 2278 assignment. (Zeev, Zend Engine)</li> 2279<li>Added warnings in case an uninitialized string offset is read. (Zeev, Zend 2280 Engine)</li> 2281<li>Fixed a couple of overflow bugs in case of very large negative integer 2282 numbers. (Zeev, Zend Engine)</li> 2283<li>Fixed a crash bug in the string-offsets implementation (Zeev, Zend Engine)</li> 2284<li>Improved the implementation of parent::method_name() for classes which use 2285 run-time inheritance. (Zeev, Zend Engine)</li> 2286<li>Added 'W' flag to date() function to return week number of year using ISO 2287 8601 standard. (Colin)</li> 2288<li>Made the PostgreSQL driver do internal row counting when iterating through 2289 result sets. (gvz@2scale.net)</li> 2290<li>Updated ext/mysql/libmysql to version 3.23.39; Portability fixes, minor 2291 bug fixes. (tim@mysql.com)</li> 2292<li>Added get_defined_constants() function to return an associative array of 2293 constants mapped to their values. (Sean)</li> 2294<li>New mailparse extension for parsing and manipulating MIME mail. (Wez)</li> 2295<li>Define HAVE_CONFIG_H when building standalone DSO extensions. (Stig)</li> 2296<li>Added the 'u' modifier to printf/sprintf which prints unsigned longs. 2297 (Derick)</li> 2298<li>Improved IRIX compatibility. (Sascha)</li> 2299<li>Fixed crash bug in bzopen() when specifying an invalid file. (Andi)</li> 2300<li>Fixed bugs in the mcrypt extension that caused crashes. (Derick)</li> 2301<li>Added the IMG_ARC_ROUNDED option for the ImageFilledArc() function, which 2302 specified that the drawn curve should be rounded. (Sterling)</li> 2303<li>Updated the sockets extension to use resources instead of longs for the 2304 socket descriptors. The socket functions have been renamed to conform with 2305 the PHP standard instead of their C counterparts. The sockets extension is 2306 now usable under Win32. (Daniel)</li> 2307<li>Added disk_total_space() to return the total size of a filesystem. 2308 (Patch from Steven Bower)</li> 2309<li>Renamed diskfreespace() to disk_free_space() to conform to established 2310 naming conventions. (Jon)</li> 2311<li>Fixed <?php bugl(2181); ?>. Now zero is returned instead of an unset value for 2312 7-bit encoding and plain text body type. (Vlad)</li> 2313<li>Fixed a bug in call_user_*() functions that would not allow calling 2314 functions/methods that accepted parameters by reference. (Andrei)</li> 2315<li>Added com_release($obj) and com_addref($obj) functions and the related class 2316 members $obj->Release() and $obj->AddRef() to gain more control over the used 2317 COM components. (phanto)</li> 2318<li>Added an additional parameter to dotnet_load to specify the codepage (phanto)</li> 2319<li>Added peak memory logging. Use --enable-memory-limit to create a new Apache 2320 1.x logging directive "{mod_php_memory_usage}n" which will log the peak 2321 amount of memory used by the script. (Thies)</li> 2322<li>Made fstat() and stat() provide identical output by returning a numerical and 2323 string indexed array. (Jason)</li> 2324<li>Fixed memory leak upon re-registering constants. (Sascha, Zend Engine)</li> 2325</ul> 2326More information on this release on <a href="/releases.php#4.1.0">our Releases page</a>.<br> 2327 2328<!-- }}} --></section> 2329 2330<a id="PHP_4_0"></a> 2331 2332<section class="version" id="4.0.6"><!-- {{{ 4.0.6 --> 2333<h3>Version 4.0.6</h3> 2334<?php release_date("23-Jun-2001"); ?> 2335<ul> 2336<li>Fixed memory fragmention problem which could lead to web server processes 2337 growing much more than they should. (Andi, Zend Engine)</li> 2338<li>Made $HTTP_SESSION_VARS['foo'] and $foo be references to the same value 2339 when register_globals is on. (Andrei)</li> 2340<li>Fixed disk_free_space() and disk_total_space() under FreeBSD. (Jon)</li> 2341<li>Fixed readfile/passthru losing resources during connection abort (Sascha)</li> 2342<li>Fixed bug in the mcrypt extension that caused segfaults when using a key 2343 that is too large for the used algorithm, and a bug that caused 2344 mcrypt_generic() to segfault PHP (Derick)</li> 2345<li>Fixed getopt so that it accepts command line arguments in the form 2346 -<opt><arg> and -<opt> <arg>. (Jmoore)</li> 2347<li>Fixed race in writing session files (Sascha)</li> 2348<li>Fixed a possible crash in the PHP CGI when no input file is 2349 specified (Zeev)</li> 2350<li>Added is_callable() function that can be used to find out whether 2351 its argument is a valid callable construct. (Andrei)</li> 2352<li>Fixed a rare possible crash when generating extended information. (Dmitri 2353 Dmitrienko, Zend Engine)</li> 2354<li>Improved virtual() to support PHP-enabled URIs. (Zeev)</li> 2355<li>Fixed undefined behavior when using floating point keys in array() 2356 expressions. (Zeev, Zend Engine)</li> 2357<li>Fixed a possible crash in case of parse errors in include files or eval 2358 statements. (Zeev, Zend Engine)</li> 2359<li>Added --with-layout configure option. (Stig)</li> 2360<li>Improved interactive mode - supports function calls, and works in 2361 multithreaded builds. (Zeev, Zend Engine)</li> 2362<li>Fixed a crash bug in interactive mode. (Zeev, Zend Engine)</li> 2363<li>Added pg_last_notice() function. (Rasmus from suggestion by Dirk@rackspace.com)</li> 2364<li>Fixed a bug in preg_split() that would incorrectly limit the number of 2365 results when used along with PREG_SPLIT_NO_EMPTY flag. (Andrei)</li> 2366<li>Added connection error support to mysql_error() and mysql_errno(). (Jason)</li> 2367<li>Added support to getimagesize to return dimensions of BMP and PSD 2368 files. (Derick)</li> 2369<li>Added heuristic to kill stale IRC connections, message scanner caching, and 2370 nickname escaping to IRCG, suppress option to ircg_msg(), and statistics to 2371 IRCG phpinfo() output. (Sascha)</li> 2372<li>Added Japanese multibyte string functions support. (Rui)</li> 2373<li>Added Mac OS X "\r" line ending support. (Andi, Zend Engine)</li> 2374<li>Fixed a bug regarding the $PHP_SELF being incorrectly registered when 2375 force-cgi-redirect was not enabled. (Sterling)</li> 2376<li>pfpro extension now supports version 3 of the Verisign SDK. (John Donagher)</li> 2377<li>Udm_Cat_List and Udm_Cat_Path functions has been added.</li> 2378<li>Added key_exists() to check if a given key or index exists in an 2379 array or object. (David Croft)</li> 2380<li>Modify the cURL extension to compile only with the latest cURL release. 2381 Backwards compatibility with regards to the extension api has not been 2382 broken. (Sterling)</li> 2383<li>Added the ability to use user-defined callbacks with cURL. (Sterling)</li> 2384<li>Added the SSL_VERIFYPEER, CAINFO, MAXREDIRS, FILETIME, RANDOM_FILE, EGDSOCKET 2385 and CONNECTTIMEOUT options to curl_setopt(). (Sterling)</li> 2386<li>Added support for persistent connections with cURL. (Sterling)</li> 2387<li>Fixed a problem in cURL with file descriptors being allocated, but never 2388 closed. (Sterling)</li> 2389<li>Fixed interactive mode (-a). It works again with the same limitations it 2390 has always had. (Andi, Zend Engine)</li> 2391<li>Improved memory manager to use less memory and provide better memory overflow 2392 detection abilities in debug mode. (Andi, Zend Engine)</li> 2393<li>Fixed resource leaks when resources were being cast to numbers. (Zeev, Zend 2394 Engine)</li> 2395<li>Fixed foreach() to not crash when being sent an invalid argument. (Andi, Zend 2396 Engine)</li> 2397<li>Fixed a bug in opendir() under Windows when trying to open a non-exisiting 2398 directory. (Andi)</li> 2399<li>Fixed popen() and the exec family under Win32 (Unable to fork issue). (Daniel)</li> 2400<li>Make the printf family of functions binary clean. (Rasmus)</li> 2401<li>Fixed WDDX serialization to HTML-escape key/variable names so as not to 2402 break the XML packet. (Andrei)</li> 2403<li>Made WDDX extension enabled by default. (Andrei)</li> 2404<li>Added -C command-line option to avoid chdir to the script's directory. (Stig)</li> 2405<li>Fixed a bug with /e modifier in preg_replace(), that would not correctly 2406 replace two-digit references if single digit references were present 2407 before them. This fixed bug <?php bugl(10218); ?>. (Andrei)</li> 2408<li>Added temporary LOB support in OCI8. (Patch by David Benson)</li> 2409<li>Fixed crash in pathinfo()</li> 2410<li>OCI8 now supports binding of collections. (Patch by Andy Sautins 2411 <asautins@veripost.net>)</li> 2412<li>Added GD 2.0.1 support for truecolor and alpha channels, plus some other gd 2413 functions, both old and new - see docs for more info. (Wez)</li> 2414<li>Added S/MIME sign/verify encrypt/decrypt functions to openssl extension, 2415 along with some other certificate manipulation and interrogation functions. 2416 See docs for more info. (Wez)</li> 2417<li>printf argnum (parameter swapping) support. (Morten Poulsen, Rasmus)</li> 2418<li>Add DIRECTORY_SEPARATOR constant ('/' on UNIX, '\' on Windows). (Stig)</li> 2419<li>Added small change to php_odbc module, to check for failed SQLDisconnects 2420 and to close any outstanding transactions if the call fails, then disconnect 2421 again. (lurcher)</li> 2422<li>Modified get_parent_class() and get_class_methods() to accept a class name as 2423 well as a class instance. (Andrei, Zend Engine)</li> 2424<li>Added support for UNC style paths. (\\server\share\file, 2425 //server/share/file). (Daniel, TSRM)</li> 2426<li>Added dbx module (database abstraction) to the repository. (Marc)</li> 2427<li>Using ITypeInfo instead of IDispatch if possible. This makes DCOM calls 2428 and even COM calls much faster. 2429 All ini settings are now prefixed by 'com.'. 2430 Now you need not provide a path to the file containing the typelib, you can 2431 also provide the GUID of the TypeLib - entry or an IID for preloading 2432 type - information. (phanto)</li> 2433<li>Rewrite of domxml. It's now mostly DOM Level 2 conform. (Uwe)</li> 2434<li>Added array_map() function that applies a callback to the elements 2435 of given arrays and returns the result. It can also be used with a 2436 null callback to transpose arrays. (Andrei)</li> 2437<li>Added array_filter(), which allows filtering of array elements via 2438 the specified callback. (Andrei)</li> 2439<li>Fixed all relevant array functions to avoid moving the internal array 2440 pointer during operations. (Andrei)</li> 2441<li>Added mysql_unbuffered_query(), which is useful for very large result sets. 2442 (Zeev)</li> 2443</ul> 2444More information on this release on <a href="/releases.php#4.0.6">our Releases page</a>.<br> 2445 2446<!-- }}} --></section> 2447 2448<section class="version" id="4.0.5"><!-- {{{ 4.0.5 --> 2449<h3>Version 4.0.5</h3> 2450<?php release_date("30-Apr-2001"); ?> 2451<ul> 2452<li>IMPORTANT: removed /F modifier handling from preg_replace(). Instead 2453 one should use new preg_replace_callback() function. (Andrei)</li> 2454<li>Added new php.ini directive: arg_separator.input which is used to tell 2455 PHP which characters are considered as argument separators in URLs. 2456 Renamed php.ini directive: arg_separator -> arg_separator.output (Jani)</li> 2457<li>Added FastCGI SAPI module. (Ben Mansell)</li> 2458<li>Added array_reduce(), which allows iterative reduction of an array 2459 to a single value via a callback function. (Andrei)</li> 2460<li>The imageloadfont function of the gd extension should be not platform 2461 dependent after this fix. (alex@zend.com)</li> 2462<li>Fixed a compatibility problem in some file functions (fgets, fputs, fread, 2463 fwrite). The ANSI standard says that if a file is opened in read/write 2464 mode, fseek() should be called before switching from reading to writing 2465 and vice versa. (alex@zend.com)</li> 2466<li>Fixed argument checking for call_user_func* functions and allowed 2467 specifying array($obj, 'method') syntax for call_user_func_array. (Andrei)</li> 2468<li>Fixed parent::method() to also work with runtime bindings. 2469 (Zeev, Zend Engine)</li> 2470<li>Implemented high-performance zlib-based output compression - see 2471 zlib.output_compression INI directive. (Zeev)</li> 2472<li>Improved ob_gzhandler() to support chunked output buffering - it's 2473 recommended to use it with 4KB chunks. (Zeev)</li> 2474<li>Fixed chunked output buffering. (Zeev)</li> 2475<li>Forced call_user_method() and call_user_method_array() to take the 2476 object argument by reference. (Andrei)</li> 2477<li>Fixed binding of ROWIDs in OCI8. (Thies)</li> 2478<li>Added PEAR/Cache as a generic Caching System. (Sebastian, PEAR/Cache)</li> 2479<li>Added IMAP quota support (imap_set_quota, imap_get_quota), enabled/added via 2480 c-client2000. (kalowsky)</li> 2481<li>Upgraded PCRE to version 3.4. (Andrei)</li> 2482<li>Added array_search which works similar to in_array but returns 2483 the key instead of a boolean. (jason@php.net)</li> 2484<li>Fixed pgsql transaction support. (Stig, PEAR/DB)</li> 2485<li>Added new object VARIANT() to encapsulate values for use with 2486 the COM and DOTNET module. Therefore it is now possible to pass 2487 values by reference, convert php values to extended variant types (currency, 2488 date, idispatch, iunknown, ...) and define the codepage that should 2489 be used for unicode - conversion.</li> 2490<li>Improved overall speed of IRCG, added URL handling to message scanner. 2491 (Sascha)</li> 2492<li>Fixed some modules to allow using output-buffering. (Thies)</li> 2493<li>Added the chroot() function. (Derick)</li> 2494<li>PostgreSQL now does a rollback at the end of a request on every 2495 persistent connection. This is done by doing an "empty" transaction 2496 on the connection. This was advised by someone from the PostgreSQL 2497 core-team. (Thies)</li> 2498<li>Fixed PostgeSQL pg_connect() bug. We would sometimes close the default 2499 link by accident. (Patch by: aja@nlgroup.ca)</li> 2500<li>Improved OCI8 dead-session detection. (Patch by: George Schlossnagle)</li> 2501<li>Fixed get_meta_tags() multiline bug <?php bugl(4556); ?>. (Sean)</li> 2502<li>Prefer random() over *rand48(). (JimJag)</li> 2503<li>Sped up WDDX serialization 2x. (Andrei)</li> 2504<li>Added a new parameter to mail() which appends aditional command line 2505 parameters to the mail program. (Derick)</li> 2506<li>Added Udm_Clear_Search_Limits mnoGoSearch extension function. (gluke)</li> 2507<li>Fixed mnogosearch protos. Fixed mnogosearch functions return values. 2508 A bug with capital letters break search has been fixed. (gluke)</li> 2509<li>Static methods can now be called via call_user_method_* functions, e.g. 2510 call_user_method('method', 'class'), and also array('class', 'method') 2511 constructs (for array_walk(), for example). (Andrei, Zend Engine)</li> 2512<li>microtime() under Windows now returns accurate values. (James)</li> 2513<li>Added PREG_SPLIT_DELIM_CAPTURE flag to preg_split() that allows for Perl-like 2514 functionality of capturing parenthesized delimiter expression. (Andrei)</li> 2515<li>Fixed strip_tags() to not strip a lone > character. (Rasmus)</li> 2516<li>When using the ob_gzhandler() PHP now automagically also sets the 2517 Content-Lengh correctly which enables browsers to use the HTTP 2518 Keep-Alive feature. (Thies)</li> 2519<li>Improved handling of preg_replace() /F modifier so that it's possible to 2520 specify array($obj, 'method') construct as a replacement function. (Andrei)</li> 2521<li>Added mysql_get_client_info(), mysql_get_server_info(), 2522 mysql_get_proto_info(), and mysql_get_host_info() functions. (Sean)</li> 2523<li>Major change of the php pdf api. It could break some functions though 2524 backwards compatibility was tried to maintain. Adding some still 2525 missing functions as well. (Uwe)</li> 2526<li>Added mnoGoSearch extension - <a href="http://search.mnogo.ru">http://search.mnogo.ru</a>. (Sergey K)</li> 2527<li>Allow URL encoding in DB usernames and passwords. (Stig, PEAR)</li> 2528<li>Added raiseError and setErrorHandling methods to PEAR class. (Stig, PEAR)</li> 2529<li>Added support for converting images from JPG/PNG on the fly with the GD 2530 extension, which is usefull for creating dynamic WAP-sites. (Derick)</li> 2531<li>Updated ext/mysql/libmysql to version 3.23.32; bug fixes. (tim@mysql.com)</li> 2532<li>Fixed possible crash in all (non-pcre) regex functions. (Thies)</li> 2533<li>Improved str_replace() to accept an array for any parameter - similar 2534 to preg_replace(). (Andrei)</li> 2535<li>Fixed extract() to properly prefix numeric keys when EXTR_PREFIX_ALL is 2536 used. (Andrei)</li> 2537<li>Added EXTR_PREFIX_INVALID flag to extract() to automatically prefix 2538 string keys that do not constitute valid variable names. (Andrei)</li> 2539<li>BeOS patch from svanegmond@bang.dhs.org, modified somewhat by Rasmus.</li> 2540<li>Fixed the Apache module to overwrite PATH_TRANSLATED with SCRIPT_FILENAME, 2541 only if PATH_TRANSLATED is not previously set. (Zeev)</li> 2542<li>Fixed crash bug in highlight_string(). (Rasmus)</li> 2543<li>Added URL support for getimagesize() function. (Jani)</li> 2544<li>Added xslt_set_scheme_handler() function. (carmelo@akooe.com)</li> 2545<li>Added the pg_lolseek and pg_lotell functions. (Derick)</li> 2546<li>Fixed wrong breaking with the wordwrap function. (Derick)</li> 2547<li>Fixed 'O' and 'r' flags of date() to have correct sign for timezone 2548 offset. (Andrei)</li> 2549<li>Changed 'Z' flag to date() to always return timezone offset with 2550 negative sign if it's west of UTC. (Andrei)</li> 2551<li>Added the HTML_Processor class which provides common functions for 2552 processing HTML. (Sterling)</li> 2553<li>Added localeconv() and strcoll() functions for localization. (Sean)</li> 2554<li>Added the xslt_set_base function. (Sterling)</li> 2555<li>Added support for Zeus 3.3.8.</li> 2556<li>Added odbc_error() and odbc_errormsg() functions. (Stig)</li> 2557<li>New extension for vpopmail - <a href="http://www.inter7.com/vpopmail">http://www.inter7.com/vpopmail</a>, 2558 give it a try, but keep in mind that it is not ready for production 2559 environments. (David Croft, Boian Bonev)</li> 2560<li>Added sybase_get_last_message() to the Sybase CT module. (Jan Fedak)</li> 2561<li>Made ldap_list(), ldap_read() and ldap_search() do parallel search when 2562 first parameter is an array of link identifiers. (Stig Venaas)</li> 2563<li>Made fopen() of HTTP URL follow redirects, $http_response_header will 2564 contain all headers with empty string as delimiter. (Stig Venaas)</li> 2565<li>Added Console_Getopt class for parsing command-line args. (Andrei, PEAR)</li> 2566<li>Added an experimental version of the ZZipLib extension which provides the 2567 ability to read zip files. (Sterling)</li> 2568<li>Allow access to uploaded files in safe_mode. Beware that you can only 2569 read the file. If you copy it to new location the copy will not have the 2570 right UID and you script won't be able to access that copy. (Thies)</li> 2571<li>Changed extract() to check that prefixed name is a valid one. (Andrei)</li> 2572<li>Changed extract() to return the number of variables extracted. (Andrei)</li> 2573<li>Added ldap_rename() function. (Stig Venaas)</li> 2574<li>Made ldap_set_option() support controls. (Stig Venaas)</li> 2575<li>Changed ldap_search() and added functions ldap_parse_result(), 2576 ldap_first_reference(), ldap_next_reference() and ldap_parse_reference() 2577 to cope with LDAPv3 stuff like referrals and references. (Stig Venaas)</li> 2578<li>Fixed date('r') overflow.</li> 2579<li>Made the php.ini path reported in phpinfo() always point to the absolute 2580 path that was opened. (Zeev)</li> 2581<li>Made the INI mechanism thread safe. (Zeev, Zend Engine)</li> 2582<li>Changed setlocale() to use LC_* constants. (Jani)</li> 2583<li>ctype functions now follow the extension naming conventions. (Hartmut)</li> 2584<li>Added iconv() function (using libc or libiconv). (Stig)</li> 2585<li>Added ODBC_TYPE constant. (Stig)</li> 2586<li>Added the call_user_method_array function which allows you to call a method 2587 with an arbitrary number of parameters. (Sterling)</li> 2588<li>ext/odbc: IBM DB2 patch by Walter Franzini. (walter@sys-net.it)</li> 2589<li>Added extension for the cracklib library. (Alexander Feldman)</li> 2590</ul> 2591More information on this release on <a href="/releases.php#4.0.5">our Releases page</a>.<br> 2592 2593<!-- }}} --></section> 2594 2595<section class="version" id="4.0.4"><!-- {{{ 4.0.4 --> 2596<h3>Version 4.0.4</h3> 2597<?php release_date("19-Dec-2000"); ?> 2598<ul> 2599<li>Allow assigning a newly created object by reference. This is needed only if 2600 your constructor makes other data structures reference the $this object (for 2601 example, $GLOBALS["foobar"] =& $this;) 2602 The new syntax is $obj =& new MyClass(); (Andi, Zend Engine)</li> 2603<li><pre>Allow for three expression types to be sent to functions which are requesting 2604 the function argument to be passed by reference (only c. was previously 2605 supported): 2606 a. func(new myclass()); 2607 b. func(func2()); where func2() returns a reference, i.e. is defined as 2608 function &func2(...) 2609 { 2610 ... 2611 } 2612 c. func($var); where func() is defined as function func(&$var) {...} 2613 You CAN'T count on any other expressions to be passable by reference. 2614 (Andi, Zend Engine)</pre></li> 2615<li>Made ldap_get_entries() return an array even if there are no entries 2616 in search result. (Jani)</li> 2617<li>Fixed bad mod_perl interaction which caused segfaults when using LFS (Sascha)</li> 2618<li>const CONSTNAME now gets recognized. Before the patch only @const CONSTNAME 2619 description was recognized.</li> 2620<li>Added the is_null() function that will return true if a variable is of 2621 type null. (Sterling)</li> 2622<li>Fixed a bug which made readdir() unusable in some systems. (Jani)</li> 2623<li>Added the get_defined_functions() function which returns a list of all 2624 currently defined functions. (Sterling)</li> 2625<li>Added the get_defined_vars() function which returns an associative array 2626 of all variables defined in the current scope and their subsequent values. 2627 (Sterling) </li> 2628<li>Added the call_user_func_array() function which gives you the ability to 2629 call a user function by passing an array of parameters as the second 2630 argument. (Sterling)</li> 2631<li>Added the constant() function which returns the value of a constant given 2632 the constant's name. (Sterling)</li> 2633<li>Implemented support for Perl-style matching regexp delimiters in PCRE. 2634 You can use <{[( and )]}> to delimit your expressions now. (Andrei)</li> 2635<li>Introduced new 'F' modifier in PCRE that lets you specify a function 2636 name in the replacement argument to preg_replace() that will be called 2637 at run-time to provide the replacement string. It is passed an array of 2638 matched pattern and subpatterns. (Andrei)</li> 2639<li>Put an end to Bug <?php bugl(4615); ?> (kalowsky & Eric Veldhuyzen)</li> 2640<li>Fixed realpath() in Virtual Directory mode (Daniel)</li> 2641<li>Integrated the Phil Nelson's bc math library routines into PHP, now that 2642 the license allows it (Phil Nelson)</li> 2643<li>Added the xslt_set_error_handler() function to the Sablotron extension. 2644 (Sterling)</li> 2645<li>Improved Sablotron's error handling system allowing you to catch all 2646 errors before they are outputted to the screen. (Sterling)</li> 2647<li>Added OpenSSL extension (Stig Venaas)</li> 2648<li>Fixed/created support for Solid 3.0 databases (kalowsky)</li> 2649<li>Fixed support for Solid 2.3 databases (kalowsky)</li> 2650<li>quoted_printable_decode() function is made RFC-2045 compliant. (Kir)</li> 2651<li>Modified preg_grep() to always return the results with keys from the original 2652 array. (Andrei)</li> 2653<li>Modified preg_replace() to accept Perl-style $n backreferences in addition 2654 to \\n ones. (Andrei)</li> 2655<li>Modified preg_replace() to ignore backreferences that refer to 2656 non-existing subpatterns. (Andrei)</li> 2657<li>Fixed column-title buffer-overflow in OCIFetchStatement(). (Thies)</li> 2658<li>Added 'output_handler' INI directive (Zeev)</li> 2659<li>Fixed some buglets in the output buffering mechanism (Zeev)</li> 2660<li>Added transparent gzip compression support (Jade Nicoletti, Zeev)</li> 2661<li>Major overhaul of domxml. Added basic XPath support as well (Uwe)</li> 2662<li>Added 'r' flag to date() which generates an RFC822 formatted date, e.g. 2663 "Thu, 9 Nov 2000 16:33:01 -0500" (Colin)</li> 2664<li>In CGI mode, $HTTP_SERVER_VARS now includes all of the environment variables 2665 as well (Zeev)</li> 2666<li>Allow user to use mysql_use_result in mysql queries (Stas)</li> 2667<li>Fixed a memory leak that would occur when restarting Apache often 2668 (mookid@sigent.ru)</li> 2669<li>Fixed a bug that prevented $argv and $argc from being defined in the command 2670 line version of PHP (Stas)</li> 2671<li>Fixed a bug that prevented a changed compile-time extension_dir from 2672 affecting modules that were loaded via php.ini (Zeev)</li> 2673<li>Fixed a bug in ftp_mkdir() when used on ftp server which doesn't return 2674 the full path (Jani)</li> 2675<li>Added ImageCreateFromString() which creates an image stream out of 2676 e.g. a MySQL blob. (Mathieu)</li> 2677<li>Fixed a crash bug in imagewbmp() (Jani)</li> 2678<li>Changed the sablot configuration file so that if you use any version of 2679 Sablotron below 0.44 you must use Sablotron's built-in Expat libraries. 2680 (Sterling)</li> 2681<li>Added basic authentication support to thttpd (Sascha)</li> 2682<li>Added support for the Caudium webserver (<a href="http://caudium.net/">http://caudium.net/</a>). It's based 2683 on the Roxen SAPI module. Many bugs have been identified and fixed. (David)</li> 2684<li>Fixed mysql_close(), pg_close(), msql_close() and sybase_close() - they 2685 weren't properly closing the SQL connections (Zeev)</li> 2686<li>Fixed crypt() to supply random seed if none is given (Andi)</li> 2687<li>Made print_r() support recursive data structures, e.g. $GLOBALS. (Zeev)</li> 2688<li>Fixed a bug that caused PHP not to properly flush its output buffer, if more 2689 than one output buffer was used. (Zeev)</li> 2690<li>Fixed a bug that could draw the shutdown sequence of the PHP Apache module 2691 into an endless loop, under certain circumstances. It could cause Apache 2692 processes under Solaris to get stuck, especially when using output 2693 buffering. (Zeev)</li> 2694<li>Added support for serializing references (Stas)</li> 2695<li>Fixed conflict with OpenLDAP and Oracle 8.1.x (Jani)</li> 2696<li>parse_ini_file() supports a new optional 2nd argument that instructs it 2697 to divide the directives to arrays according to the sections in which they 2698 reside (Zeev)</li> 2699<li>parse_ini_file() is now thread-safe, and supported under Windows (Zeev)</li> 2700<li>Unified aborted-connection semantics of all SAPI modules (Sascha)</li> 2701<li>URL-opened files now store the HTTP response header in $http_response_header 2702 (Zeev)</li> 2703<li>Fixed array_rand() to shuffle results when the number of requested 2704 elements is the same as the number of elements in the array. (Andrei)</li> 2705<li>Added replace parameter to header() (Sascha)</li> 2706<li>Fixed handling of single quotes in transparent session-id mode (Sascha)</li> 2707<li>Fixed "php://*" fopen handler (Sascha)</li> 2708<li>Made rename work in threadsafe enviroments (Daniel)</li> 2709<li>Made session_destroy() close files before unlinking (Daniel)</li> 2710<li>Added array_sum() function. (Andrei)</li> 2711<li>Fixed a bug in session.c. The php_session_save_current_state did not check 2712 if mod_data is NULL and such situation is possible if the user calls 2713 session_module_name with a parameter. (alex@zend.com)</li> 2714<li>Added IIS Admin extension. (Frank)</li> 2715<li>OCIBindByName() now does better parameter-checking. (Thies)</li> 2716<li>Made read() binary-safe in sockets.c (Chris Vandomelen)</li> 2717<li>Made array_intersect() and array_diff() not alter order (Stig Venaas)</li> 2718<li>Made ldap_connect() accept URL in host parameter when using OpenLDAP 2719 2.x. To use SSL, use ldaps://host/ as URL. (Stig Venaas)</li> 2720<li>Made resource type names visible, e.g. var_dump() and 2721 get_resource_type() display "file" for file resources. (Andrei)</li> 2722<li>Added the curl_getinfo() function to find out information about a CURL 2723 transfer. This function requires cURL 7.4.0 or above. (Sterling)</li> 2724<li>Added the CURLOPT_KRB4, CURLOPT_INTERFACE, CURLOPT_QUOTE, CURLOPT_POSTQUOTE, 2725 CURLOPT_QUOTE and CURLOPT_HTTPPROXYTUNNELL options. (Sterling)</li> 2726<li>Renamed the shm_* functions to shmop_* (Derick)</li> 2727<li>Updated ext/mysql/libmysql to version 3.23 (tim@mysql.com)</li> 2728<li>Added ldap_get_option() and ldap_set_option() functions (Stig Venaas)</li> 2729<li>Fixed a crash in CGI mode, in case no file was provided 2730 (Daniel Beulshausen& Zeev)</li> 2731<li>Fixed possible crash bug in imap_fetchstructure() (Jani)</li> 2732<li>Fixed possible crash bug in imap_open() (Jani & Mark Musone)</li> 2733<li>Added url_rewriter.tags configuration directive (Sascha)</li> 2734<li>Added CORBA client extension, ready for use (eriksson@php.net)</li> 2735<li>Fixed memory leak in x-httpd-source mode (Jason Greene)</li> 2736<li>Changed ext/gd not to be enabled by default (Jani)</li> 2737<li>Make increment of empty string ("") behave like in PHP 3 and result in "1" 2738 (Andi, Zend Engine)</li> 2739<li>Added POST handler for Adobe FDF format (Hartmut)</li> 2740<li>Added transparent read and write .gz-files on glibc based systems 2741 using the 'zlib:' fopen wrapper (Hartmut)</li> 2742<li>Fixed a problem in the configuration parser (two null bytes were added 2743 to each ENCAPSULATED TC_STRING) (alex@zend.com)</li> 2744<li>Added HMAC support in the mhash module (nmav@altera.gr)</li> 2745<li>Added module for Ovrimos sql server (nmav@altera.gr)</li> 2746</ul> 2747More information on this release on <a href="/releases.php#4.0.4">our Releases page</a>.<br> 2748 2749<!-- }}} --></section> 2750 2751<section class="version" id="4.0.3"><!-- {{{ 4.0.3 --> 2752<h3>Version 4.0.3</h3> 2753<?php release_date("11-Oct-2000"); ?> 2754<ul> 2755<li>Fixed a possible crash in -a interactive mode (Zeev, Zend Engine)</li> 2756<li>Added mysql_escape_string() (Peter A. Savitch and & Brian Wang)</li> 2757<li>Fixed many possible crash bugs with improper use of the printf() family of 2758 functions (Andi)</li> 2759<li>Fixed a problem that allowed users to override admin_value's and admin_flag's 2760 (Zeev)</li> 2761<li>Fixed PostgreSQL module to work when the link handle is omitted (Zeev)</li> 2762<li>Fixed returning of empty LOB fields in OCI8. (Thies)</li> 2763<li>Added Calendar module to default Win32 build (Andi)</li> 2764<li>Added FTP module to default Win32 build (Andi)</li> 2765<li>Fixed crash in the POSIX getrlimit() function (alex@zend.com)</li> 2766<li>Fixed dirname() under certain conditions (Andi)</li> 2767<li>Added --with-imap-ssl to support SSL'ized imap library in RH7 and others 2768 (Rasmus)</li> 2769<li>Fixed possible crash bug in parse_url() (Andi)</li> 2770<li>Added support for trans sid under Win32 (Daniel)</li> 2771<li>IPv6 support in fopen (Stig Venaas)</li> 2772<li>Added the shmop extension. It allows more general ways of shared memory 2773 access. (thanks to Ilia Alshanestky <iliaa@home.com> and Slava Poliakov 2774 <slavapl@mailandnews.com> (Derick)</li> 2775<li>Added the ability for CURLOPT_POSTFIELDS to accept an associative array of 2776 HTTP POST variables and values. (Sterling)</li> 2777<li>Added the CURLOPT_HTTPHEADER option to curl_setopt(). (Sterling)</li> 2778<li>Added the curl_error() and curl_errno() functions. (Sterling)</li> 2779<li>Changed ext/db not to be enabled by default (Jani)</li> 2780<li>Fixed building Apache SAPI module on SCO UnixWare (Sascha)</li> 2781<li>Fixed writing empty session sets to shared memory (tcarroll@chc-chimes.com)</li> 2782<li>Added support for BSD/OS make (Sascha)</li> 2783<li>Added improved URL rewriter (Sascha)</li> 2784<li>Fixed readdir_r() use on Solaris (Sascha)</li> 2785<li>Improved HTTP headers for private-caching (jon@csh.rit.edu, Sascha)</li> 2786<li>Added new function session_cache_limiter (jon@csh.rit.edu, Sascha)</li> 2787<li>Added ftp_exec to the ftp functions (thanks to <jhennebicq@i-d.net>) 2788 (Derick)</li> 2789<li>PEAR: add last executed query as debug info in DB errors (Stig)</li> 2790<li>PEAR: allow multiple modes in PEAR_Error (Stig)</li> 2791<li>Made the Sybase CT module thread safe (Zeev)</li> 2792<li>Added second argument to array_reverse() that indicatese whether 2793 the original array keys should be preserved. (Andrei)</li> 2794<li>Clean up htmlspecialchars/htmlentities inconsistencies. (Rasmus)</li> 2795<li>PEAR: renamed DB_GETMODE_* to DB_FETCHMODE_*, added setFetchMode() 2796 in DB_common to set the default mode, added some MySQL tests (Stig)</li> 2797<li>Made eval() and several other runtime-evaluated code portions report the 2798 nature and location of errors more accurately (Stas)</li> 2799<li>Added an optional parameter to wordwrap that cuts a string if the length of a 2800 word is longer than the maximum allowed. (Derick)</li> 2801<li>Added functions pg_put_line and pg_end_copy (Dirk Elmendorf)</li> 2802<li>Added second parameter for parse_str to save result (John Bafford)</li> 2803<li>Fixed bug with curl places extra data in the output. (medvitz@medvitz.net)</li> 2804<li>Added the pathinfo() function. (Sterling)</li> 2805<li>Updated sybase_ct module and its sybase_query to use high performance API. 2806 (Joey)</li> 2807<li>Added a more configurable error reporting interface to DB. (Stig)</li> 2808<li>Added is_uploaded_file() and move_uploaded_file() (Zeev)</li> 2809<li>Added several directives to php.ini - post_max_size, file_uploads, 2810 display_startup_errors - see php.ini-dist for further information (Zeev)</li> 2811<li>Worked around a bug in the libc5 implementation of readdir() (Stas)</li> 2812<li>Fixed some potential OpenBSD and NetBSD crash bugs when opening files. (Andi)</li> 2813<li>Added EscapeShellArg() function (Rasmus)</li> 2814<li>Added a php.ini option session.use_trans_sid to enable/disable trans-sid. 2815 (Sterling)</li> 2816<li>Added the Sablotron extension for XSL parsing. (Sterling)</li> 2817<li>Fixed a bug in checkdate() which caused < 1 years to be valid (Jani)</li> 2818<li>Added support for an optional output handler function for output 2819 buffering. This enables transparent rendering of XML through XSL, 2820 transparent compression, etc. (Zeev)</li> 2821<li>Added support for user defined 'tick' callback functions. This helps 2822 emulate background processing. (Andrei)</li> 2823<li>Fixed problem with having $this as the XML parser object. (Andrei)</li> 2824<li>Internal opened_path variable now uses the Zend memory manager so that full 2825 paths of files won't leak on unclean shutdown (Andi)</li> 2826<li>Removed support of print $obj automatically calling the __string_value() 2827 method. Instead define yourself a method such as toString() and use 2828 print $obj->toString() (Andi, Zend Engine)</li> 2829</ul> 2830More information on this release on <a href="/releases.php#4.0.3">our Releases page</a>.<br> 2831 2832<!-- }}} --></section> 2833 2834<section class="version" id="4.0.2"><!-- {{{ 4.0.2 --> 2835<h3>Version 4.0.2</h3> 2836<?php release_date("29-Aug-2000"); ?> 2837<ul> 2838<li>Added PHP API for Zend's ticks. (Stig)</li> 2839<li>PHP 3 regression testing framework re-born (Stig)</li> 2840<li>Added php_uname() function (Stig)</li> 2841<li>Made a minor change to allow building with OpenLDAP 2.0 (Stig Venaas)</li> 2842<li>Fixed a bug in preg_replace() that would truncate subject string if the 2843 first argument was en empty array. (Andrei)</li> 2844<li>Added ob_get_length function (Stig)</li> 2845<li>Fixed a bug that did not respect limit parameter in preg_replace() when 2846 using /e modifier. (Andrei)</li> 2847<li>Added ability for each xml_set_*_handler() function to take the 2848 array($obj, 'method') syntax for the handler argument as well 2849 as the normal function name. (Andrei)</li> 2850<li>Updated array_walk() to be able to accept array($obj, 'method') 2851 syntax for the walk function. (Andrei)</li> 2852<li>Fixed segfault with fgets(), fgetcsv(), fgetss(), and fread() when 2853 called with negative length argument. (Torben)</li> 2854<li>Fixed by-reference parameters passing for xml_ functions and for scanf 2855 functions (Stas)</li> 2856<li>Added experimental Oracle LDAP SDK support. 8.1.6 or later needed. Configure 2857 with something like --with-ldap=/usr/local/oracle/product/8.1.6 (Stig Venaas)</li> 2858<li>Fixed memory leaks in eval(); A script that used eval() extensively, could 2859 end up consuming very large amounts of memory during execution (Zeev, Zend 2860 Engine)</li> 2861<li>Fixed memory_limit feature, which did not work properly in previous versions 2862 (Zeev, Zend Engine)</li> 2863<li>Fixed stdout support with the swf extension. (Sterling)</li> 2864<li>Fixed byte order for ip2long and long2ip (Stas)</li> 2865<li>Fixed dbase_add_record. (Sterling)</li> 2866<li>Added support for libmcrypt 2.4.4 (Derick)</li> 2867<li>Added strncasecmp function (Andi, Zend Engine)</li> 2868<li>Fixed FTP module to accept multiline server replies (Jani)</li> 2869<li>Fixed switch which only has a single default rule. (Andi, Zend Engine)</li> 2870<li>Fixed problem with nested foreach()'s. (Andi, Zend Engine)</li> 2871<li>The CCVS module is now stable and compiling. It compiles as a CGI and into 2872 Apache cleanly without warnings. (Brendan W. McAdams)</li> 2873<li>Fixed mSQL_close(). (nick@loman.net)</li> 2874<li>Made return() in a require()'d file work like return() in an include()'d 2875 file (Andi & Zeev, Zend Engine)</li> 2876<li>Changed require_once() to work using the same table as include_once() 2877 (Andi & Zeev, Zend Engine)</li> 2878<li>Fixed PostgreSQL module to work when the link handle is omitted (Zeev)</li> 2879<li>Fixed the Sybase modules to work properly with PHP 4.0 (Zeev)</li> 2880<li>Fixed CLOB handling in OCI8 driver when using variable-width 2881 character sets. (Thies)</li> 2882<li>Added 4th optional parameter to sybase_[p]connect to specify the charset 2883 for the connection (alf@alpha.ulatina.ac.cr)</li> 2884<li>Fixed support for current thttpd releases. (Sascha)</li> 2885<li>Added support for kerberized IMAP library using --with-kerberos 2886 (Rasmus, Sascha)</li> 2887<li>Virtualize realpath, chmod, chown and utime (Stas)</li> 2888<li>Support content-encoding headers in file upload MIME parts 2889 (Ragnar Kjørstad)</li> 2890<li>Fixed warning when shutting down OCINLogon() connections. (Thies)</li> 2891<li>Fixed \n in session variables bug on Win32 (Stas)</li> 2892<li>OCIError() would sometimes not report failed connections. (Thies)</li> 2893<li>Fixed HEAD request bug on an Apache ErrorDocument redirect and preserve 2894 the status code across the redirect as well. (Rasmus)</li> 2895<li>Added Olympus-specific tags to read_exif_data() (Rasmus)</li> 2896<li>Fixed bug in imap_fetchheader() where using FT_PREFETCHTEXT didn't return 2897 the body. Bug <?php bugl(4447); ?>. (Jani)</li> 2898<li>Fixed exec() returning "\0" when output is empty</li> 2899<li>Added XML_Parser class in PEAR (Stig)</li> 2900<li>Added "make test" target in pear/ and added some regression tests (Stig)</li> 2901<li>Fixed bug in strip_tags function as per bug <?php bugl(5857); ?> (Rasmus)</li> 2902<li>Fixed reading of IPTC via GetImageInfo() for certain JPEG files. (Thies)</li> 2903<li>Improved the output-buffering functions to be re-entrant (Zeev)</li> 2904<li>Made ldap_add(), ldap_modify(), ldap_mod_add(), ldap_mod_replace() 2905 binary-safe. Original patch: Terrence Miao <terrence_miao@email.com> (Jani)</li> 2906<li>CGI aka. command line version has now an option '-l' for syntax check 2907 without execution (Hartmut)</li> 2908<li>Fixed bug in ldap_get_values_len() which makes it NULL-safe. (Jani)</li> 2909<li>Bug-report and fix submitted by Michel Alexeline <alexel@dr15.cnrs.fr></li> 2910<li>Make ext_skel create a Makefile.in set up to handle shared extension 2911 support automatically (Rasmus)</li> 2912<li>Fixed php_realpath not to die on non-existing files (needed for touch()) 2913 (Stas and china@thewrittenword.com)</li> 2914<li>Fixed get_browser() function (Stas)</li> 2915<li>Fixed symbol clash which caused a DSO problem on OpenBSD (Rob Black and 2916 anil@recoil.org)</li> 2917<li>Added new function: ldap_compare(). (Jani)</li> 2918<li>Fixed a bug in ldap_get_entries() and ldap_get_attributes(). (Jani)</li> 2919<li>Ported DB to new error reporting scheme in PEAR. (Stig)</li> 2920<li>Added sybase and ibase DB backends in PEAR. (Sterling)</li> 2921<li>New PEAR package Payment_Verisign for use with the Payflow Pro 2922 (pfpro) extension. (David Croft)</li> 2923<li>Added CURL support. (Sterling)</li> 2924<li>Catch users trying to set "compatibility" parameter in PDF, which is not 2925 supported from user-land. (Joey)</li> 2926<li>Fixed dbase_add_record. (Sterling)</li> 2927<li>Added new function wordwrap() to wordwrap long strings from Chris 2928 Russel <russel@yorku.ca> (David Croft)</li> 2929<li>Added four additional arguments: attrsonly, sizelimit, timelimit, deref which 2930 were missing in ldap_search(), ldap_list() and ldap_read() functions (Jani)</li> 2931<li>Fixed a bug in ldap_search/list/read() which prevented returning the partial 2932 results when 'Sizelimit exceeded' error occurred. (Jani Taskinen)</li> 2933<li>Fixed preg_replace() to automatically escape quotes in matched 2934 strings when using /e modifier. (Andrei)</li> 2935<li>Itanium patch (Steve Robb)</li> 2936<li>Set default include_path so PEAR files can be reached (Stig)</li> 2937<li>Added "pear" executable, requires CGI version installed (Stig)</li> 2938<li>Added extension ii for Ingres II native support. See README in ext/ingres_ii 2939 directory. (David H)</li> 2940<li>Added Win32 project for the Interbase module (Zeev)</li> 2941<li>Added ability to perform calls to the parent class without explicitly 2942 specifying its name, using parent::func_name(...) (Zeev, Zend Engine)</li> 2943<li>You can now call Ora_Error() without prameters to get the reason 2944 for a failed connection attempt. (Kirill Maximov)</li> 2945<li>New extension "pfpro" for interface with Verisign Payflow Pro (David Croft)</li> 2946<li>Added IMG_GIF, IMG_JPG, IMG_JPEG, IMG_PNG and IMG_WBMP constants for 2947 imagetypes() function (Rasmus)</li> 2948<li>Added ImageTypes() function which returns a bitfield with the supported 2949 image formats. 1=gif, 2=jpeg, 4=png and 8=wbmp (Rasmus)</li> 2950<li>Make it possible to specify an empty string as a thousands-seperator 2951 in number_format() (Rasmus)</li> 2952<li>Shared module support for LDAP extension (Troels Arvin)</li> 2953<li>Fixed a bug with imap_mail where apache would segfault if the rpath 2954 parameter was specified.</li> 2955<li>Use dashes and short day name in cookies since some browsers seem picky 2956 about this (Rasmus)</li> 2957<li>Added pspell module. (Vlad)</li> 2958<li>Added 3 additional arguments to the user-defined error handler - the file 2959 name and line number in which the error occured, and the context (local 2960 variables) of the code in which the error occured (Zeev, Zend Engine)</li> 2961<li>Improved the error handling code to handle an error in a user-defined error 2962 handling function (Zeev, Zend Engine)</li> 2963<li>Fixed leak when using string offsets in the array() construct. 2964 (Andi, Zend Engine)</li> 2965<li>Fixed corruption problem when changing deeply nested values in objects. 2966 (Andi & Zeev, Zend Engine)</li> 2967<li>Improved array_multisort() to be able to specify sort type as well sort 2968 order. Incidentally, it can be used to sort multi-dimensional arrays 2969 as well. (Andrei)</li> 2970<li>Fixed a possible data corruption in case of a huge amount of aborted requests 2971 (Zeev)</li> 2972<li>Apache module would sometimes close a wrong file-descriptor. (Sascha)</li> 2973<li>Fixed use of alternative storage handlers in the session module. (Sascha)</li> 2974<li>Updated str_pad() to be able to pad on left/right/both sides. (Andrei)</li> 2975<li>Fixed crash in gzopen(). (Thies)</li> 2976<li>Multiple character set support in gdttf.c (Rob Goodwin)</li> 2977<li>When using HTTP auth from PHP, fill in the %u custom log field so the 2978 authenticated used id will get logged in the Apache access_log (Rasmus)</li> 2979<li>Support for pdflib 3.01. (Uwe)</li> 2980<li>FDF Data is handled properly and can be accessed by reading 2981 HTTP_RAW_POST_DATA. (Uwe)</li> 2982<li>Added new 'O' format modifier that will output the GMT offset as "[+-]HHMM" 2983 (eg: Pacific time is -0700). This is useful for things such as Date: mail 2984 headers. (Mike W)</li> 2985<li>Fixed crash on OCI?Logon() failure. (Thies)</li> 2986<li>Make the special Header("http/...") response be case insensitive like 3.0 2987 (Rasmus)</li> 2988<li>Allow cybercash to compile as a DL module. (Sterling)</li> 2989<li>Fixed the dbase_create function. (Sterling)</li> 2990<li>Fixed a problem under some versions of Windows that could cause PHP to hang 2991 on startup if errors occured, e.g. in the php.ini file (Zeev)</li> 2992<li>Fixed opendir() again. It should actually work well continuously now (Zeev)</li> 2993<li>Added three additional arguments to be sent to a user-defined error handler - 2994 the filename and line number in which the error occured, and the context 2995 (the local variables) of the error (Zeev, Zend Engine)</li> 2996<li>Improved the error handling code to handle an error in a user-defined error 2997 handling function (Zeev, Zend Engine)</li> 2998<li>Added an optional parameter to preg_replace() that can be used to 2999 specify how many replacements to make. (Andrei)</li> 3000</ul> 3001More information on this release on <a href="/releases.php#4.0.2">our Releases page</a>.<br> 3002 3003<!-- }}} --></section> 3004 3005<section class="version" id="4.0.1"><!-- {{{ 4.0.1 --> 3006<h3>Version 4.0.1</h3> 3007<?php release_date("28-Jun-2000"); ?> 3008<ul> 3009<li>Fixed a possible crash in the LDAP modify code. (Eric Kilfoil)</li> 3010<li>Fixed a bug in opendir(), which prevented readdir() from working properly if 3011 the $dir argument wasn't explicitly specified (Zeev)</li> 3012<li>Made --enable-discard-path work again. (Andi) </li> 3013<li>Removed 8KB limit on line length of the file() function (Zeev)</li> 3014<li>Disabled dl() when PHP is being used as a module inside a multithreaded web 3015 server - it didn't work before, and caused weird results (Zeev)</li> 3016<li>Added the ImageColorClosestHWB(), ImageCopyMerge() and ImagePaletteCopy() 3017 functions. (Sterling)</li> 3018<li>Added ImageCreateFromWBMP() function. (Jouni)</li> 3019<li>Fixed problems with POST requests under the NSAPI module. (Roberto Biancardi)</li> 3020<li>Added spliti() function. (Thies)</li> 3021<li>Fixed serializer behaviour with regards to serializing objects whose class 3022 definition was not available in the deserializing context. (Sascha)</li> 3023<li>Improve memory cache performance and increase cache size. (Stas, Zend Engine)</li> 3024<li>Added a crc32 checksum function - used by the UdmSearch search engine 3025 and currently run through a system call. This will speed up the UdmSearch 3026 php frontend significantly. (Rasmus)</li> 3027<li>Modified in_array() to not touch array pointer. (Andrei)</li> 3028<li>Added restore_error_handler(). (Zeev, Zend engine)</li> 3029<li>Fixed erroneous file names and line numbers in error situations under the 3030 multithreaded version of PHP - most noticeably Win32 (Zeev, Zend Engine)</li> 3031<li>Fixed problem with CGI crashing on certain servers especially Windows Apache 3032 & O'Reilly website (Andi)</li> 3033<li>Added Pi3Web SAPI module; run ./configure --with-pi3web to enable this. 3034 (Holger; zimpel@t-online.de)</li> 3035<li>Enhanced WDDX functions to call __sleep() and __wakeup() when working on 3036 objects. (Andrei)</li> 3037<li>Changed WDDX to serialize arrays as structs only if needed. (Thies)</li> 3038<li>Implemented max_execution_time under Win32 (Zeev)</li> 3039<li>Updated strtotime() to handle many more formats. It now has complete 3040 feature parity with GNU date command. (Andrei)</li> 3041<li>Added support for multiple arguments in unset(). (Faisal, Zend Engine)</li> 3042<li>Functions that expect a resource but are passed something else now return 3043 NULL instead of FALSE. (Thies, Zend Engine)</li> 3044<li>Fixed gmmktime(), on certain systems it incorrectly adjusted for the timezone 3045 offset and daylight savings time. (Andrei)</li> 3046<li>Moved VC++ Win32 project and workspace files to the win32 directory 3047 (Zeev)</li> 3048<li>Fixed checkdate() to not return true on non-numeric arguments (Rasmus)</li> 3049<li>Added --enable-c9x-inline option for compilers which support the new C9x 3050 standard. If you encounter undefined references to i_zend_is_true and 3051 other symbols, you should enable this. (Sascha, Zend Library)</li> 3052<li>Fixed a problem in ldap_add() and ldap_modify(), sometimes added trailing 3053 garbage to the values (Stig Venaas) </li> 3054<li>Fixed a problem with dbmopen() not handing 'c' correctly with dbm/db/ndbm 3055 databases. (JimJag)</li> 3056<li>Fixed a crash in number_format() when used with locales. (Andrei)</li> 3057<li>Fixed an initialization problem in the MS-SQL problem that could cause 3058 a crash in mssql_query() (Zeev)</li> 3059<li>Upgraded PCRE to version 3.2 and fixed a bug when anchored pattern 3060 matched an empty string. (Andrei)</li> 3061<li>Fixed a bug that prevented PHP from paying attention to the extension_dir 3062 directive with extensions that were loaded from the php.ini file (Zeev)</li> 3063<li>Changed set_error_handler() to return the name of the previously defined 3064 error handler, if any (Zeev, Zend Engine)</li> 3065<li>Declared <? php_track_vars ?> officially dead. It didn't work in PHP 4.0.0 3066 either, but now it's gone for good (Zeev)</li> 3067<li>Make convert_cyr_string() binary safe and stop it from corrupting other 3068 PHP variables. (Andi)</li> 3069<li>Added functions array_unique, array_intersect and array_diff (Stig Venaas)</li> 3070<li>Fixed problem when using uninitialized values in comparisons with strings. 3071 They behave as empty strings again just like in PHP 3. 3072 (Andi & Zeev, Zend Engine)</li> 3073<li>Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei)</li> 3074<li>Fixed var_dump() not to modify the internal order of array elements (Zeev)</li> 3075<li>Fixed stripcslashes() to remove to strip \ in unknown escapes instead of 3076 leaving it. (Andrei)</li> 3077<li>Changed WDDX to always serialize arrays as structs. (Andrei)</li> 3078<li>Fixed include_once() to issue a warning in case the supplied file name is 3079 not found (Zeev, Zend Engine)</li> 3080<li>Fixed a bug in get_declared_classes() which could return the same class 3081 multiple times under certain circumstances (Zeev, Zend Engine)</li> 3082<li>Fixed a bug in rawurldecode() that would cause in rawurldecode() corrupting 3083 its argument (Zeev)</li> 3084<li>Parse errors (or other errors) in the php.ini files under Windows will no 3085 longer mess up the HTTP headers in CGI mode and are now displayed in a 3086 message box (Zeev)</li> 3087<li>Fixed a crash in OCIFetchStatement() when trying to read after all data 3088 has already been read. (Thies)</li> 3089<li>fopen_wrappers() are now extensible via modules (Hartmut Holzgraefe)</li> 3090<li>Make trim strip \0 to match php 3 (Rasmus)</li> 3091<li>Added function imagecreatefromxbm(). (Jouni)</li> 3092<li>Added function imagewbmp(). (Jouni, based on patch from Rune Nordbøe 3093 Skillingstad)</li> 3094<li>Added str_pad() for padding a string with an arbitrary string on left or 3095 right. (Andrei)</li> 3096<li>Made the short_tags, asp_tags and allow_call_time_pass_reference INI 3097 directives work on a per-directory basis as well, e.g. from .htaccess 3098 files. (Zeev)</li> 3099<li>Added fflush() function. (Eric Huss)</li> 3100<li>Fixed a problem with static variables, default function arguments and class 3101 member variables, that contained array values. (Andi & Zeev, Zend Engine)</li> 3102<li>Fixed virtual() when used with output buffering (Marc Pohl)</li> 3103<li>Clean up constants in flock() function and add optional 3rd arg which 3104 is set to true on EWOULDBLOCK (Rasmus)</li> 3105<li>Added functions pg_loimport(), pg_loexport(). (Jouni)</li> 3106<li>Added SWF support to getimagesize() function (Derick Rethans)</li> 3107<li>Added support for both indexed and non-indexed arrays of file uploads 3108 eg. name="file[]" type="file" (Rasmus)</li> 3109<li>Added create_function(), which gives the ability to create functions 3110 on-the-fly (Zeev, Zend Engine)</li> 3111<li>Added support for comparisons of arrays (with arrays) and objects (with 3112 objects); The equality operator (==) performs an unordered comparison, 3113 whereas the identity operator (===) performs an ordered comparison (Zeev, 3114 Zend Engine)</li> 3115<li>Allow all functions that receive user-defined function callbacks to accept 3116 an array that contains an object and a method name, in place of a function 3117 name, e.g. usort($array, array($obj, "ObjSort")) (Zeev, Zend Engine)</li> 3118<li>Added set_error_handler() to allow custom error handling functions, 3119 instead of the built-in error handling code (Zeev, Zend Engine)</li> 3120<li>Renamed user_error() to trigger_error(); user_error() remains 3121 defined for compatibility (Zeev, Zend Engine)</li> 3122<li>Fixed the global/static statements to require a trailing terminating 3123 semi-colon ';'. (Andi, Zend Engine)</li> 3124<li>Cleaned up PCRE extension and made it binary-safe. (Andrei)</li> 3125<li>Added third argument to in_array(). If it's true, then in_array() 3126 will use strict comparison instead of the default one. (Andrei)</li> 3127<li>Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev)</li> 3128<li>ignore_user_abort=Off is now default. (Thies)</li> 3129<li>Added array_merge_recursive() that will recursively merge values 3130 under the same keys. (Andrei)</li> 3131<li>fixed crash in OCIParse when parsing invalid SQL. (Thies)</li> 3132<li>Fixed a bug in mysql_connect() that made it ignore the socket argument, in 3133 case of non-persistent connects (Zeev)</li> 3134<li>Added disable_functions php.ini directive, to allow administrators to disable 3135 certain functions for security reasons (Zeev)</li> 3136<li>Fixed sessions on Win32. When setting the directory depth parameter in 3137 save_path you need to now delimit it with a ';' instead of ':', e.g 3138 "5;/tmp" instead of "5:/tmp" (Andi)</li> 3139<li>Changed the Apache handler's return status to 'Declined' when a requested 3140 PHP file could not be found. Returning 'Not Found' caused problems 3141 in the ErrorDocument handler stage in that $REDIRECT_REDIRECT_ERROR_NOTES 3142 was not getting set at all. Moving to 'Declined' should fix this and I 3143 can't see any other side effects. (Rasmus)</li> 3144<li>Fixed scanning decimal numbers in internationalized environments. They should 3145 always be in standard US format e.g. 23.3. (Andi, Zend Engine)</li> 3146<li>Added second argument to preg_quote() which allows quoting of 3147 one additional character, usually the regex delimiter. (Andrei)</li> 3148<li>Uncommitted outstanding OCI8 transactions are now rolled back 3149 before the connection is closed. (Thies)</li> 3150<li>ignore_user_abort() & friends should now work in CGI mode as well. 3151 (Patch by daniel.braun@ercom.fr)</li> 3152<li>Added extension YAZ (dickmeiss).</li> 3153<li>Fixed a crash bug triggered by certain cases of class redeclarations 3154 (Stas & Zeev, Zend Engine)</li> 3155<li>Fixed min()/max() segfault. (Andrei)</li> 3156<li>New module for reading EXIF header data from JPEG files. Most digital 3157 cameras will embed all sorts of information about a picture inside the 3158 jpeg images it generates. (Rasmus)</li> 3159<li>Fixed basename() bug where "file.ext///" would not return the same 3160 as "/path/file.ext///" (Rasmus)</li> 3161<li>Added the swf_ortho function. (Sterling)</li> 3162<li>Moved to virtual current working directory support. This highly improves the 3163 functionality and stability of multi-threaded versions of PHP (Andi, Sascha)</li> 3164</ul> 3165More information on this release on <a href="/releases.php#4.0.1">our Releases page</a>.<br> 3166 3167<!-- }}} --></section> 3168 3169<section class="version" id="4.0.0"><!-- {{{ 4.0.0 --> 3170<h3>Version 4.0.0 Release</h3> 3171<?php release_date("22-May-2000"); ?> 3172<ul> 3173<li>Allow the writing of flash files to stdout.</li> 3174<li>Fixed a crash bug in .phps syntax-highlighted files (Andi)</li> 3175<li>Improved round() to allow specification of rounding precision. 3176 (Andrei, Todd Kirby <kirbyt@yahoo.com>)</li> 3177<li>Added SORT_REGULAR, SORT_NUMERIC, SORT_STRING flags that can be used with 3178 non-user sort functions for precise sorting behavior. (Andrei)</li> 3179<li>Fixed two 64-bit issues (startup crash, gethostbyaddr). (Sascha)</li> 3180<li>NULL values are now preserved in the return value of mysql_fetch_array() 3181 and mysql_fetch_object(). (Andrei)</li> 3182<li>Ported InterBase module finally from PHP 3 to PHP 4. Full support for 3183 InterBase 6. (Jouni)</li> 3184<li>Added swf_definepoly for drawing polygons to the SWF functions. (Sterling)</li> 3185<li>Ported imagegammacorrect from PHP3 to PHP4. (Sterling)</li> 3186<li>Added array_rand() function. (Andrei)</li> 3187</ul> 3188More information on this release on <a href="/releases.php#4.0.0">our Releases page</a>.<br> 3189 3190<!-- }}} --></section> 3191 3192<section class="version" id="4.0RC2"> 3193<h3>Version 4.0, Release Candidate 2</h3> 3194<?php release_date("08-May-2000"); ?> 3195<ul> 3196<li>NSAPI WIN32 Module compilable, untested (Shane)</li> 3197<li>Apache WIN32 Module compilable and lightly tested. (Shane)</li> 3198<li>Enabled assert() by default in php.ini-dist. (Andrei)</li> 3199<li>Put in safeguards in case dynamic code evaluation in assert() and 3200 preg_replace() with /e modifier fails. (Andrei)</li> 3201<li>Fixed infinite recursion when serializing $GLOBALS[] in WDDX. (Andrei)</li> 3202<li>Made WDDX serialization properly escape &lt;, &gt;, and &. Also speeded up 3203 the serialization in general. (Andrei)</li> 3204<li>Moved install-local to install-sapi for clarity. (Joey)</li> 3205<li>Improved extension build framework. Refer to README.SELF-CONTAINED-EXTENSIONS 3206 for an introduction. (Sascha)</li> 3207<li>ImagePolygon() is no longer limited by a maximum number of polygons. 3208 (Marc Pohl)</li> 3209<li>Added configure time checking for bcmath package. (Joey, Sascha)</li> 3210<li>Added get_declared_classes(). (Andrei, Zend Engine)</li> 3211<li>Added initial NSAPI module from Jayakumar Muthukumarasamy. (Rasmus)</li> 3212<li>Added the SWF module which allows you to create Macromedia Flash files via 3213 libswf. (Sterling)</li> 3214<li>Improved UNIX build system to support more vendor make tools (Sascha)</li> 3215<li>Updated natural comparison/sorting algorithm by Martin Pool 3216 <mbp@humbug.org.au>. (Andrei)</li> 3217<li>Fixed a crash in array_multisort() that happened when empty arrays 3218 were passed to it. (Andrei)</li> 3219<li>Added substr_count() from Peter Kovacs. (Andrei)</li> 3220<li>Added an optional third argument to fseek to indicate where to seek from. 3221 (Andrei)</li> 3222<li>OCIBindByName() will no longer complain about bindlength beeing zero. (Thies)</li> 3223<li>Converted the IMAP module to the high performance API (Zeev)</li> 3224<li>The fgetcsv() function now handles embedded end-of-line in a quoted field 3225 (Nick Talbott)</li> 3226<li>Added user_error(), to allow explicitly generate error messages from scripts 3227 (Zeev, Zend Engine)</li> 3228<li>Fixed a problem in long2ip() that occasionally returned incorrect IP address. 3229 (Evan, Andrei)</li> 3230<li>Fixed many memory leaks in the IMAP module (Stas, Andi, Zeev)</li> 3231<li>Fixed bug in number_format (Jon Forsberg)</li> 3232<li>Make error_prepend_string and error_append_string work (Rasmus)</li> 3233<li>array_walk() now automatically resets the array. (Andrei)</li> 3234<li>Added natural comparison/sorting routines strnatcmp(), strnatcasecmp(), 3235 natsort(), and natcasesort(). These are useful for comparing and sorting 3236 strings that contain numbers. Based on the code from Martin Pool 3237 <mbp@humbug.org.au>. See http://www.linuxcare.com.au/projects/natsort/ 3238 for more info on natural sorting. (Andrei)</li> 3239<li>Zeus Webserver support (version 3.3.6+) for ISAPI (Ben Mansell)</li> 3240<li>Fixed several problems with the PATH_TRANSLATED and PHP_SELF under Apache 3241 (Paul Gregg & Zeev)</li> 3242<li>Ported ldap_get_values_len() function from PHP3 to PHP4. (Sterling)</li> 3243<li>Fixed a problem in include_once() with non constant arguments (Andi & Zeev, 3244 Zend Engine)</li> 3245<li>Added php.ini-optimized (Zeev)</li> 3246<li>Ported ldap_errno(), ldap_err2str() and ldap_error() from PHP3 to PHP4. 3247 (Sterling)</li> 3248<li>WDDX now defaults to ISO-8859-1. (Thies)</li> 3249<li>Fixed crash resulting from IMAP's error handling (Stas)</li> 3250<li>Added $HTTP_POST_FILES[filename][tmp_name] - it was previously impossible to 3251 retrieve the temporary name of an uploaded file using $HTTP_POST_FILES[] 3252 (Zeev)</li> 3253<li>Made the IMAP and LDAP modules compilable under Windows and thread-safe 3254 (Zeev)</li> 3255<li>Fixed a problem when dealing with large POST blocks in CGI mode (Zeev)</li> 3256<li>Added session_get_cookie_params() function. (Sterling)</li> 3257<li>Fixed return of stristr() to no longer always be lowercased. (Andrei)</li> 3258<li>Changed the Windows version of PHP so that a php.ini file is no 3259 longer mandatory (Zeev)</li> 3260<li>session_start() is now more verbose if headers cannot be send. (Thies)</li> 3261<li>Fixed a memory leak when using assign-op bitwise operators on strings (Zeev, 3262 Zend Engine)</li> 3263<li>Added support for reading properties that require arguments in the COM 3264 module - writing to them will only be supported in PHP 4.1 (Zeev)</li> 3265<li>Fixed a very old legacy memory leak in the COM module (Zeev)</li> 3266<li>Fixed problems with object-overloading support - noteably, COM and Java 3267 (Zeev, Zend Engine)</li> 3268<li>Fixed an overrun in WDDX. (Thies)</li> 3269<li>Fixed a crash bug with modules loaded through dl() not properly freeing their 3270 resources (Zeev, Zend Engine)</li> 3271<li>Added localtime() function. (Sterling)</li> 3272<li>Added the 'I' format option for the date function, this option will return 3273 true or false depending on whether or not daylight savings time is in effect. 3274(Sterling)</li> 3275<li>Added gmstrftime() function. (Sterling)</li> 3276<li>snmp_walkoid is now an alias for snmp_realwalk. (Sterling)</li> 3277<li>Fixed a bug that could cause a crash when using 'global' inside large include 3278 files (Stas, Zend Engine)</li> 3279<li>Added --enable-libgcc switch to force linking against libgcc (Sascha)</li> 3280<li>Fixed dynamic loading where extension_dir had no trailing slash (Sascha)</li> 3281<li>Fixed dynamic loading on OpenBSD (Sascha)</li> 3282<li>Improved POSIX threads check. ZTS works now on at least Linux, Solaris, 3283 FreeBSD and OpenBSD (Sascha, TSRM)</li> 3284<li>Added !== operator support. (Torben, Zend Engine)</li> 3285</ul> 3286 3287<!-- }}} --></section> 3288 3289<section class="version" id="4.0RC1"> 3290<h3>Version 4.0, Release Candidate 1</h3> 3291<?php release_date("27-Mar-2000"); ?> 3292<ul> 3293<li>Added support for UCD-SNMP 4.1.x (Sascha)</li> 3294<li>Fixed a data corruption bug in mysql_result(), if used in table.fieldname 3295 mode (Zeev)</li> 3296<li>Fixed a crash problem in func_num_args(), func_get_arg() and func_get_args() 3297 when used as function arguments (Andi, Zend Engine)</li> 3298<li>Added get_class_methods(string classname) function. (Andrei)</li> 3299<li>Added 'I' switch to test whether or not DST is active. (Sterling)</li> 3300<li>Fixed a data corruption bug in mysql_result(), if used in table.fieldname 3301 mode (Zeev)</li> 3302<li>Modified the registry INI entry reader (Win32) to work with drive letters. 3303 For example, if you wish to wish to specify INI entries for C:\foo\bar, you 3304 should create HKLM\PHP\Per Directory Values\C\foo\bar in the registry, and add 3305 string values for each directive you want to override in this directory (Zeev)</li> 3306<li>Fixed extract() for EXTR_PREFIX_SAME and EXTR_SKIP cases. (Andrei)</li> 3307<li>stristr() no longer modifies it's arguments. (Thies)</li> 3308<li>Don't default to iso-8859-1 since this confuses some browsers. (Rasmus)</li> 3309<li>Make it possible to specify both a port and a socket 3310 in mysql_[p]connect. (Rasmus)</li> 3311<li>Added --disable-pic for disabling generating PIC for shared objects 3312 on platforms which support it (i.e. Linux) (Sascha)</li> 3313<li>serialize()/unserialize() now call __sleep() and __wakeup() when 3314 working on objects. (Thies)</li> 3315<li>renamed to_string() method to __string_value() for consistency. 3316 (Thies, Zend Engine)</li> 3317<li>Fixed a bug in the third argument to define()</li> 3318<li>Added is_numeric() that returns true if the argument is a number 3319 or a numeric string. (Andrei)</li> 3320<li>domxml now supports libxml 2.0 Beta and drops support for older versions, 3321 due to massive changes in libxml</li> 3322<li>fixed possible crash in unserialize() if serialized data was 3323 corrupted. (Thies)</li> 3324<li>Changed $HTTP_STATE_VARS to $HTTP_SESSION_VARS. Use only the latter 3325 version now! (Andrei)</li> 3326<li>Added GD-JPEG Support (Rasmus)</li> 3327<li>Prevent from loading dynamic PHP modules which were compiled with different 3328 debug and thread safety modes than PHP, which resulted in a crash (Andi)</li> 3329<li>connection_aborted() and friends work again (Thies)</li> 3330<li>Upgraded to libtool 1.3.4 (Sascha)</li> 3331<li>UNIX configure creates config.nice in the build directory now which allows 3332 easy reuse of configuration options (Sascha)</li> 3333<li>Added support for embedded MySQL client library. Unless you specify a path 3334 to --with-mysql, the bundled MySQL client library will be used (Sascha)</li> 3335<li>Added include_once() and require_once() functionality (Andi, Zend Engine)</li> 3336<li>Removed support for pdflib < 3.0 (Uwe)</li> 3337<li>Added auto-registration of everything in $HTTP_SESSION_VARS[] if 3338 register_globals is turned off. (Andrei)</li> 3339<li>Cleaned up extension namespace (Stig)</li> 3340<li>OCINLogon() sessions are now closed again. (Thies)</li> 3341<li>Added ip2long() and long2ip(), 3342 courtesy of Faisal Nasim <faisal@nasim.org> (Andrei)</li> 3343<li>Added ftruncate() and fstat(), 3344 courtesy of Faisal Nasim <faisal@nasim.org> (Andrei)</li> 3345<li>Added parse_ini_file(). Currently implemented in non thread safe version 3346 of PHP, and currently lacks section support (Zeev)</li> 3347<li>"none" is now equivalent with "" in Apache config directives (Stig)</li> 3348<li>OCINLogon no longer crashes. (Thies)</li> 3349<li>Fixed comparisons of (string) "nan" with (string) "nan". (Thies, Zend Engine)</li> 3350<li>Switched back to the old $HTTP_*_VARS[] behavior - $HTTP_GET_VARS["foo"] 3351 and $foo are no longer references to each other, but separate variables 3352 like they were prior to PHP 4.0 Beta 4 (Zeev)</li> 3353<li>Fixed Sybase-DB compilation (Zeev)</li> 3354<li>Fixed a (fairly common) situation where error_reporting values would not be 3355 properly restored after a call to error_reporting(), in between requests 3356 (Zeev)</li> 3357<li>The various $HTTP_*_VARS[] are now protected, and cannot be manipulated by 3358 user input (Zeev)</li> 3359<li>Added ini_set() as an alias to ini_alter() (Zeev)</li> 3360<li>The string None is now recognized as a keyword by the php.ini processor, and 3361 can be used to denote an empty string (Zeev)</li> 3362<li>Added get_class_vars(string class_name) and get_object_vars(object obj) 3363 functions. (Andrei, Zend Engine)</li> 3364<li>Added pdf_set_parameter(), pdf_skew(), pdf_show_boxed() (Uwe)</li> 3365<li>Fixed comparison of (string) "inf" with (string) "inf", which was erroneously 3366 returning false (Zeev)</li> 3367<li>Implemented default_charset and default_mimetype config directives (Stig)</li> 3368<li>Ported T1lib support from PHP3. (Jouni)</li> 3369<li>Fixed -DEAPI inheritance from APXS. (Sascha)</li> 3370<li>Fixed possible crash in module-shutdown. (Thies)</li> 3371<li>Fixed safe_mode_protected_env_vars INI directive (Zeev)</li> 3372<li>Fixed getrusage() (Sascha)</li> 3373<li>Fixed OCI8 crash when returning cursors from stored-procedures. (Thies)</li> 3374</ul> 3375 3376<!-- }}} --></section> 3377 3378<section class="version" id="4.0b4l1"> 3379<h3>Version 4.0, Beta 4 Patch Level 1</h3> 3380<?php release_date("21-Feb-2000"); ?> 3381<ul> 3382<li>Fixed crash when magic_quotes were switched off. (Thies)</li> 3383<li>Support for pdflib 2.30 (Uwe)</li> 3384</ul> 3385 3386<!-- }}} --></section> 3387 3388<section class="version" id="4.0b4"> 3389<h3>Version 4.0, Beta 4</h3> 3390<?php release_date("20-Feb-2000"); ?> 3391<ul> 3392<li>Introduced $HTTP_POST_FILES[], that contains information about files uploaded 3393 through HTTP upload (Zeev)</li> 3394<li>Made PHP work under Microsoft Personal Web Server, under both Windows NT 3395 workstation and Windows 95 (Zeev)</li> 3396<li>Made multipart/form-data content obey to the variables_order directive (Zeev)</li> 3397<li>Updated the browscap module to work with PHP 4.0 (Zeev)</li> 3398<li>Recover gracefully in ISAPI after the client prematurely presses STOP (Andi)</li> 3399<li>Fixed bug in unset() on array offsets which are referenced more than once 3400 (Andi, Zend Engine)</li> 3401<li>Improved ISAPI module - it should no longer be necessary to set PHP as 3402 an ISAPI filter, only as an ISAPI extension, unless you wish to perform 3403 authentication using PHP. This didn't yet get enough testing, but it 3404 should work (Zeev)</li> 3405<li>Fixed RFC1867 file upload under Windows (Zeev)</li> 3406<li>Initital support for pdflib 2.20 (Uwe)</li> 3407<li>Added PostgreSQL support for DB (Rui Hirokawa <louis@cityfujisawa.ne.jp>)</li> 3408<li>Re-introduced "none" for disabling auto_prepend/append_file (Stig)</li> 3409<li>Added DB/storage (Stig, PEAR)</li> 3410<li>Introduced DB warnings (Stig, PEAR)</li> 3411<li>Fixed overrun in strip_tags (Stas)</li> 3412<li>Fixed crash in strip_tags() and related functions. (Thies)</li> 3413<li>Workaround for bogus POST-Data from IE/Mac. (Thies) 3414 Patch by Alain Malek <alain@virtua.ch></li> 3415<li>Finished the server abstraction layer; All of the PHP code is now shared 3416 across different servers (Apache, CGI, IIS, etc.), except for thin 3417 interface modules (Zeev)</li> 3418<li>Added NULL-support in gettype(). (Thies)</li> 3419<li>base64_decode() will decode POST data correct. (Thies) 3420 Patch submitted by: Turadg Aleahmad <turadg@wise.berkeley.edu></li> 3421<li>Much more work on domxml. Build xml tree, create xml doc works (Uwe)</li> 3422<li>Made foreach() work on objects. (Thies, Zend Engine)</li> 3423<li>Added domxml extension based on libxml, still little functionality (Uwe)</li> 3424<li>Fixed memory corruption in fgetss(), strip_tags() and gzgetss() (Zeev)</li> 3425<li>Updated calendar dynamic library to work with PHP 4. (Evan)</li> 3426<li>Added strncmp() function, courtesy of Walter. (Andrei)</li> 3427<li>Made the output of var_dump() more informative. (Thies)</li> 3428<li>Fixed some OCIBindByName() problems. (Thies)</li> 3429<li>Protect the ISAPI module against exceptions. Stack overflows in scripts are 3430 now nicely detected and handled (Zeev)</li> 3431<li>Fixed possible buffer-overflow in base64_decode. (Thies)</li> 3432<li>Fixed possible buffer-overflow in setcookie(). (Thies)</li> 3433<li>Fixed signal() bug that could cause the Apache master process to 3434 die. (Thies)</li> 3435<li>Added session_set_cookie_params() function. (Andrei)</li> 3436<li>If header information is sent after output has already been sent, the warning 3437 message will now state the filename and line number at which the first output 3438 was made (Zeev)</li> 3439<li>Added the XML Expat library to the standard PHP source distribution thanks 3440 to its author James Clark (Andi & Zeev)</li> 3441<li>Added XML support to the default Win32 build (Andi & Zeev)</li> 3442<li>Added socket_get_status() function. Renamed set_socket_timeout() to 3443 socket_set_timeout() and set_socket_blocking() to socket_set_blocking(). (Andrei)</li> 3444<li>Added realpath() function. (Andrei)</li> 3445<li>mktime interprets years in the range 0-70 now as 2000-2070. You can 3446 continue to specify the complete year (i.e. 1920) (Sascha)</li> 3447<li>Added the ability to control the environment variables the user is allowed 3448 to change in Safe Mode, using INI directives (Zeev)</li> 3449<li>Fixed a crash bug in strtr() working on large input strings (Zeev)</li> 3450<li>Ora_GetColumn()/Ora_FetchInto() now return NULL for NULL-Columns. (Thies)</li> 3451<li>OCI8 now supports binding of NULL-values. Module cleanups. (Thies)</li> 3452<li>Added ability to set timeout on socket read operations through 3453 set_socket_timeout() function. (Andrei)</li> 3454<li>Added implicit_flush INI directive (Zeev)</li> 3455<li>Added implicit_flush() to control whether flush() should be called 3456 implicitly after any output (Zeev)</li> 3457<li>Fixed a crash in pfsockopen() (Zeev)</li> 3458<li>Fixed a possible crash in phpinfo() (Zeev)</li> 3459<li>Added register_argc_argv INI directive, to allow to selectively disable 3460 the declaration of the $argv and $argc variables for increased 3461 performance (Zeev)</li> 3462<li>Added $HTTP_ENV_VARS[] and $HTTP_SERVER_VARS[] support, which similarly 3463 to $HTTP_GET_VARS[], contain environment and server variables. Setting 3464 register_globals to Off will now also prevent registration of the 3465 environment and server variables into the global scope (Zeev)</li> 3466<li>Renamed gpc_globals INI directive to register_globals (Zeev)</li> 3467<li>Introduced variables_order that deprecates gpc_order, and allows control 3468 over the server and environment variables, in addition to GET/POST/Cookies 3469 (Zeev)</li> 3470<li>new function cpdf_set_document_limits() (Uwe)</li> 3471<li>Applied safe-mode patch to popen(). (Patch by Kristian Köhntopp)</li> 3472<li>str_repeat() now returns correct length. (Thies)</li> 3473<li>Don't assume libz and libpng are installed for the GD checks (Rasmus)</li> 3474<li>Implemented support for <boolean> and <null> types according 3475 to WDDX version 1.0 (Andrei)</li> 3476<li>Made var_dump()/serialize()/unserialize() NULL aware. (Thies)</li> 3477<li>Added new NULL constant (Zeev, Zend Engine)</li> 3478<li>Fixed -c support in the standalone CGI binary (Zeev)</li> 3479<li>Increased PHP's performance by 5-15% using a new memory cache (Andi & Zeev, 3480 Zend Engine)</li> 3481<li>Improved the php.ini reader to support constants and bitwise operators (Zeev)</li> 3482<li>Fixed strrev() to no longer modify arg1. (Thies)</li> 3483<li>Fixed buffer overruns in iptcembed(). (Thies)</li> 3484<li>Fixed a bug in ODBC error reporting (Zeev)</li> 3485<li>Added PHP_Logo_GUID() and Zend_Logo_GUID() functions, that return the GUIDs 3486 of the PHP and Zend logos used in phpinfo() (Zeev)</li> 3487<li>Added GNU Pth support (Sascha, TSRM library)</li> 3488<li>Removed select(), fd_set() and fd_isset() - will be reimplemented soon! (Thies)</li> 3489<li>Improved Win32 performance significantly by using different mutexes (Zeev, 3490 TSRM library)</li> 3491<li>Made quotemeta() and preg_quote() binary-safe. (Andrei)</li> 3492<li>Added UDP support in fsockopen(). (Evan)</li> 3493<li>Added --disable-pear option (Andrei)</li> 3494<li>Renamed libzend repository to Zend (Zeev)</li> 3495<li>Added support for thttpd (Sascha)</li> 3496<li>Added session.cache_limiter and cache_expire options (Sascha)</li> 3497<li>Restored the PHP_VERSION and PHP_OS constants (Zeev)</li> 3498<li>Added get_loaded_extensions(), extension_loaded(), and 3499 get_extension_funcs() functions. (Andrei)</li> 3500<li>Added date/time stamping to PHP error log file. (Andrei, Joey)</li> 3501<li>Added is_subclass_of() function (Andrei, Zend Engine)</li> 3502<li>Implemented count_chars(). (Thies)</li> 3503<li>Added class_exists() function (Andrei, Zend Engine)</li> 3504<li>Made strspn() and strcspn() binary-safe. (Andrei)</li> 3505<li>Added array_multisort() function. (Andrei)</li> 3506<li>Made pageinfo.c thread-safe (Sascha)</li> 3507<li>Made implode() binary-safe (Andrei)</li> 3508<li>Made strstr(), stristr(), and ucwords() binary-safe() (Andrei)</li> 3509<li>Made strtoupper(), strtolower(), substr_replace() binary-safe. (Andrei)</li> 3510<li>Fixed a crash in the Apache syntax highlighting mode (Zeev)</li> 3511<li>Report all ODBC error's not just the one on the top of the stack (lurcher)</li> 3512<li>OCI8 now returns NULL values in LONG columns correct. (Thies)</li> 3513<li>Added support for a C-like assert() function. (Thies)</li> 3514<li>Added CyberCash support. (Evan)</li> 3515<li>Made explode() binary-safe. (Thies)</li> 3516<li>Made strpos() binary-safe. (Thies)</li> 3517<li>Added XML_Set_Object() function, now you can use the XML-Parser from 3518 within an object. (Thies)</li> 3519<li>Session vars are now decoded into $HTTP_STATE_VARS[] array and the 3520 globals, depending on track_vars and gpc_globals settings (Andrei)</li> 3521<li>Added get_used_files() function - returns a hash mapping the use()'d files 3522 to their full path (Zeev)</li> 3523<li>PHP 4 scripts will now obey the max_execution_time setting and actually 3524 time out (Rasmus)</li> 3525<li>Added configure command to phpinfo() output (Stig)</li> 3526<li>Added optional socket path to the mysql_?connect() functions (Rasmus)</li> 3527<li>Made mysql and gd work as shared extensions again (Stig)</li> 3528<li>Make the global GET/POST/Cookie variables and their $HTTP_*_VARS[] counterparts 3529 be references to each other (Zeev)</li> 3530<li>Added support for the 'use' keyword - behaves like 'require', but will not 3531 use the same file more than once (Andi & Zeev, Zend Engine)</li> 3532<li>Added check to see if a persistent connection is still valid with the 3533 ODBC interface before reusing (nick@easysoft.com)</li> 3534<li>Added DBMaker support (patch by Pax Tsai <paxtsai@lion.syscom.com.tw>)</li> 3535<li>Renamed "PECL" to "PEAR" (PHP Extension and Add-on Repository) (Stig)</li> 3536<li>buildconf now uses build.mk (Stig)</li> 3537<li>Disable symlinks to urls (Rasmus)</li> 3538<li>Informix driver now reflects version of ESQL/C used (Danny)</li> 3539<li>Modified session_register() to take variable number of arguments (Andrei)</li> 3540<li>Fixed file descriptor leak in thread safe mode (Zeev, Zend Engine)</li> 3541<li>Added select(), fd_set() and fd_isset() (Evan)</li> 3542<li>cpdf support has been ported from php3, needs ClibPDF 2.x (Uwe)</li> 3543<li>Fixed a leak when using automatic output buffering (Zeev)</li> 3544<li>Introduced PECL - PHP Extension and Code Library 3545 (prounounced "pickle") (Stig)</li> 3546<li>Fixed inconsistencies in the implementation of here-docs (Andi & Zeev, Zend 3547 library)</li> 3548<li>Fixed a problem with constant class-member initializations (Andi & Zeev, 3549 Zend Engine)</li> 3550<li>Fixed float-compare in min(),max(),a[r]sort(),[r]sort() (Thies)</li> 3551<li>Implemented get_html_translation_table() function (Thies)</li> 3552<li>Implemented array_flip() function. Returns input-array with key, value 3553 flipped (Thies)</li> 3554<li>Added Berkeley DB3 support in DBA (Sascha)</li> 3555<li>Implemented 2-Arg version of strtr($str,$translation_array). This can be used 3556 to revert what htmlspecialchars() did (Thies)</li> 3557<li>Fixed mem-overwrite in XML_Parse_Into_Struct (Thies)</li> 3558<li>Added substr_replace() function (Andrei)</li> 3559</ul> 3560 3561<!-- }}} --></section> 3562 3563<section class="version" id="4.0b3"> 3564<h3>Version 4.0 Beta 3</h3> 3565<?php release_date("16-Nov-1999"); ?> 3566<ul> 3567<li>ucfirst()/ucwords() no longer modify arg1 (Thies)</li> 3568<li>Fixed strtr() not to modify arg1 (Thies)</li> 3569<li>Added Win32 build files for Informix driver and make it 3570 compile with ZTS (danny)</li> 3571<li>Added tmpfile() function (Stig)</li> 3572<li>Upgraded regex library to alpha3.8 (Sascha)</li> 3573<li>Fixed selecting nested-tables in OCI8. (Thies)</li> 3574<li>RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies)</li> 3575<li>Fixed OpenLink ODBC support (Stig)</li> 3576<li>min(),max(),a[r]sort(),[r]sort(),k[r]sort() now work consistent with the 3577 language-core. (Thies)</li> 3578<li>tempnam() now uses mkstemp() if available (Stig)</li> 3579<li>serialize() and var_dump() now honor the precision as set in php.ini 3580 for doubles. (Thies)</li> 3581<li>Improved the Win32 COM module to support [out] parameters (Boris Wedl)</li> 3582<li>Fixed garbage returned at the end of certain Sybase-Columns (Thies) 3583 Patch submitted by: neal@wanlink.com</li> 3584<li>Added Microsoft SQL Server module for Win32 (Frank)</li> 3585<li>Added support for forcing a variable number of internal function arguments 3586 by reference. (Andi & Zeev, Zend Engine)</li> 3587<li>Implemented getprotoby{name,number} (Evan)</li> 3588<li>Added array_pad() function. (Andrei)</li> 3589<li>Added new getservby{name,port} functions. (Evan)</li> 3590<li>Added session.cookie_path and session.cookie_domain (Sascha)</li> 3591<li>Continue processing PHP_INI_SYSTEM knownDirectives after extension= 3592 (Sam Ruby)</li> 3593<li>Enable IBM DB2 support - Tested against DB2 6.1 UDB on Linux (Rasmus)</li> 3594<li>Added new str_repeat() function. (Andrei)</li> 3595<li>Output-Buffering system is now Thread-Safe. (Thies)</li> 3596<li>implemented OCI8 $lob->WriteToFile() function - very useful for streaming 3597 large amounts of LOB-Data without to need of a huge buffer. (Thies)</li> 3598<li>Added session.use_cookies option (Sascha)</li> 3599<li>Added getcwd() function. (Thies)</li> 3600<li>XML_Parse_Into_Struct no longer eats data. (Thies)</li> 3601<li>Fixed parse_url('-') crash. (Thies)</li> 3602<li>added === operator support. (Andi & Thies, Zend Engine)</li> 3603<li>unserialize() now gives a notice when passed invalid data. (Thies)</li> 3604<li>Fixed shuffle() so that it no longer breaks on Solaris. (Andrei)</li> 3605<li>Added is_resource(), is_bool() functions. (Thies)</li> 3606<li>Cleaned up File-Module (Thies)</li> 3607<li>Upgraded math-funtions to use new Zend function API (Thies)</li> 3608<li>Fixed zombie problem in shell_exec() and $a = `some_command` 3609 constructs. (Thies)</li> 3610<li>Thies introduced ZEND_FETCH_RESOURCE2 (Danny).</li> 3611<li>Added Informix driver to list of maintained extensions. (Danny).</li> 3612<li>Informix driver : Changed ifx.ec to use the new high-performance 3613 ZEND API. (Danny)</li> 3614<li>IXF_LIBDIR environment variable specifies alternate Informix library 3615 path for configure (Danny).</li> 3616<li>Fixed gmmktime() so that the following should always be true: 3617 gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) (Jouni)</li> 3618<li>setlocale doesn't anymore screw up things if you forgot to change it back 3619 to the original settings. (Jouni)</li> 3620<li>Switched to new system where ChangeLog is automagically updated from commit 3621 messages. NEWS file is now the place for public announcements. (Andrei)</li> 3622<li>Fixed refcount problem in XML module. (Thies)</li> 3623<li>Fixed crash in HTTP_RAW_POST_DATA handling (Thies)</li> 3624<li>You can use resources as array-indices again (Thies, Zend Engine)</li> 3625<li>Fixed pg_fetch_array() with three arguments (Sascha) 3626 Patch submitted by: brian@soda.berkeley.edu</li> 3627<li>Upgraded a lot internal functions to use new Zend function API (Thies)</li> 3628<li>fdf support ported; not completely tested with latest version 4.0 for 3629 glibc (Uwe)</li> 3630<li>OCI8 connections are now kept open as long as they are referenced (Thies)</li> 3631<li>Cleaned up Directory-Module (Thies)</li> 3632<li>Small fix in Ora_Close (Thies)</li> 3633<li>Ported range() and shuffle() from PHP 3 to PHP 4 (Andrei)</li> 3634<li>Fixed header("HTTP/..."); behaviour (Sascha)</li> 3635<li>Improved UNIX build system. Now utilizes libtool (Sascha)</li> 3636<li>Upgrade some more internal functions to use new Zend function API. (Thies, 3637 Zend Engine)</li> 3638<li>Fixed backwards incompatibility with ereg() (Thies)</li> 3639<li>Updated Zend garbage collection with a much more thorough method. 3640 (Andi, Zend Engine)</li> 3641<li>Added the ability to use variable references in the array() construct. 3642 For example, array("foo" => &$foo). (Andi, Zend Engine)</li> 3643<li>Added array_reverse() function (Andrei)</li> 3644<li>Some more XML fixes/cleanups (Thies)</li> 3645<li>Updated preg_replace() so that if any argument passed in is an array 3646 it will make a copy of each entry before converting it to string so that 3647 the original is intact. If the subject is an array then it will preserve 3648 the keys in the output as well (Andrei) </li> 3649<li>Updated OCI8 to use the new high-performance Zend function API. (Thies)</li> 3650<li>Configure speedup (Stig)</li> 3651<li>Fixed LOB/Persistent-Connection related OCI8-Crash (Thies)</li> 3652<li>Generalized server-API build procedure on UNIX (Stig)</li> 3653<li>Added '--disable-rpath' option (Sascha)</li> 3654<li>Added AOLserver SAPI module (Sascha)</li> 3655<li>Fixed XML Callbacks. (Thies)</li> 3656<li>Updated ODBC to use the new high-performance Zend function API (kara)</li> 3657<li>Updated zlib to use the new high-performance Zend function API. (Stefan)</li> 3658<li>Updated preg_split() to allow returning only non-empty pieces (Andrei)</li> 3659<li>Updated PCRE to use the new high-performance Zend function API (Andrei)</li> 3660<li>Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use 3661 the new high-performance Zend function API (Sascha)</li> 3662<li>Extended var_dump to handle resource type somewhat (Andrei)</li> 3663<li>Updated WDDX to use the new high-performance Zend function API (Andrei)</li> 3664<li>Updated XML to use the new high-performance Zend function API. (Thies)</li> 3665<li>Updated Oracle to use the new high-performance Zend function API. (Thies)</li> 3666<li>Improved the performance of the MySQL module significantly by using the new 3667 high-performance Zend function API. (Zeev)</li> 3668<li>Added support for the Easysoft ODBC-ODCB Bridge (martin@easysoft.com)</li> 3669<li>Fixed bug in odbc_setoption, getParameter call incorrect (martin@easysoft.com)</li> 3670<li>Ora_Fetch_Into now resets the returned array in all cases (Thies) </li> 3671<li>Fixed NULL-Column problem in Oracle-Driver (Thies)</li> 3672<li>Added extra metadata functions to ODBC, SQLTables etc (nick@easysoft.com)</li> 3673<li>Fixed SEGV in mcal make_event_object() and 3674 typo in mcal_list_alarms() (Andrew Skalski)</li> 3675<li>Fixed Ora_PLogon (Thies)</li> 3676<li>Resourcified Oracle (Thies)</li> 3677<li>Implemented object serialization/deserialization in WDDX (Andrei)</li> 3678<li>Added krsort() function (Thies)</li> 3679<li>Added func_num_args(), func_get_arg() and func_get_args() for standard 3680 access to variable number of arguments functions (Zeev)</li> 3681<li>Added FTP support (Andrew Skalski)</li> 3682<li>Added optional allowable_tags arguments to strip_tags(), gzgetss() and 3683 fgetss() to allow you to specify a string of tags that are not to be 3684 stripped (Rasmus)</li> 3685<li>Upgraded var_dump() to take multiple arguments (Andrei)</li> 3686<li>Resourcified XML (Thies)</li> 3687<li>Fixed a memory leak in the Apache per-directory directives handler (Zeev)</li> 3688<li>Added array_count_values() function. (Thies)</li> 3689<li>snmp, pgsql, mysql and gd modules can be built as dynamically loaded 3690 modules (Greg)</li> 3691<li>OCI8 fix for fetching empty LOBs (Thies)</li> 3692<li>Added user-level callbacks for session module (Sascha)</li> 3693<li>Added support for unknown POST content types (Zeev)</li> 3694<li>Added "wddx" serialization handler for session module (Sascha) 3695 (automatically enabled, if you compile with --with-wddx)</li> 3696<li>Fixed unserializing objects (Thies)</li> 3697<li>PHP 4.0 now serializes Objects as 'O' (not understood by PHP 3.0), but 3698 unserializes PHP 3.0 serialized objects as expected. (Thies)</li> 3699<li>Made serialize/unserialize work on classes. If the class is known at 3700 unserialize() time, you'll get back a fully working object! (Thies)</li> 3701<li>Reworked preg_* functions according to the new PCRE API, which also made 3702 them behave much more like Perl ones (Andrei)</li> 3703<li>Made it possible to specify external location of PCRE library (Andrei)</li> 3704<li>Updated bundled PCRE library to version 2.08 (Andrei)</li> 3705<li>count()/is_array/is_object... speedups. (Thies)</li> 3706<li>OCI8 supports appending and positioning when saving LOBs (Thies)</li> 3707<li>Added metaphone support (Thies)</li> 3708<li>OCI8 doesn't use define callbacks any longer. (Thies) </li> 3709<li>OCI8 Driver now supports LOBs like PHP 3.0. (Thies)</li> 3710<li>var_dump now dumps the properties of an object (Thies)</li> 3711<li>Rewrote the GET/POST/Cookie data reader to support multi-dimensional 3712 arrays! (Zeev)</li> 3713<li>Renamed allow_builtin_links to expose_php (defaults to On). This directive 3714 tells PHP whether it may expose its existence to the outside world, e.g. 3715 by adding itself to the Web server header (Zeev)</li> 3716<li>Added support for transparent session id propagation (Sascha)</li> 3717<li>Made WDDX serialize object properties properly (Andrei)</li> 3718<li>Fixed WDDX mem leak when undefined variable is passed in 3719 for serialization (Andrei)</li> 3720<li>Added session_unset() function (Andrei)</li> 3721<li>Fixed double session globals shutdown crash (Andrei)</li> 3722<li>Fixed crash related to ignore_user_abort ini entry (Andrei)</li> 3723<li>Added support for external entropy sources for session id creation 3724 (on Unices /dev/random and /dev/urandom) (Sascha)</li> 3725<li>Added gpc_globals variable directive to php.ini. By default it is On, but 3726 if it is set to Off, GET, POST and Cookie variables will not be inserted 3727 to the global scope. Mostly makes sense when coupled with track_vars (Zeev)</li> 3728<li>Added versioning support for shared library (Sascha) 3729 This allows concurrent use of PHP 3.0 and PHP 4.0 as Apache modules. See 3730 the end of the INSTALL file for more information.</li> 3731<li>Added second parameter to array_keys which specifies search value 3732 for which the key should be returned (Andrei)</li> 3733<li>Resourcified Informix driver (Danny)</li> 3734<li>New resource handling for odbc, renamed to php_odbc.[ch]</li> 3735<li>Make set_time_limit() work on Unix (Rasmus)</li> 3736<li>Added connection handling support (Rasmus)</li> 3737<li>Improved the Sybase-CT module to make use of resources (Zeev)</li> 3738<li>Improved the mSQL module to make use of resources (Zeev)</li> 3739<li>Changed mysql_query() and mysql_db_query() to return false in case of saving 3740 the result set data fails (Zeev)</li> 3741<li>Improved the resource mechanism - resources were not getting freed as soon 3742 as they could (Zeev)</li> 3743<li>Added shared memory module for session data storage (Sascha)</li> 3744<li>Fixed session.auto_start (Sascha)</li> 3745<li>Fixed several problems with output buffering and HEAD requests (Zeev)</li> 3746<li>Fixed HTTP Status code issue with ISAPI module (Zeev)</li> 3747<li>Fixed a problem that prevented $GLOBALS from working properly (Zeev, Zend 3748 library)</li> 3749<li>Ported newest GetImageSize (Thies)</li> 3750<li>Added session compile support in Win32 (Andi)</li> 3751<li>Added -d switch to the CGI binary that allows overriding php.ini values 3752 from the command line (Zeev)</li> 3753<li>Fixed a crash that would occur if wddx_deserialize did not receive 3754 a valid packet (Andrei)</li> 3755<li>Fixed a bugglet when redefining a class at run-time (Andi, Zend Engine)</li> 3756<li>Fixed sem_get() on AIX (Sascha)</li> 3757<li>Fixed fopen() to work with URL's in Win32 (Andi & Zeev)</li> 3758<li>Fixed include_path for Win32 (Andi, Zend Engine)</li> 3759<li>Fixed bug in ISAPI header sending function (Charles)</li> 3760<li>Fixed memory leak when using undefined values (Andi & Zeev, Zend Engine)</li> 3761<li>Added output_buffering directive to php.ini, to enable output buffering 3762 for all PHP scripts - default is off (Zeev).</li> 3763<li>Fixed some more class inheritance issues (Zeev, Zend Engine)</li> 3764<li>Fixed Apache build wrt to shared modules on FreeBSD/Linux (Sascha)</li> 3765<li>Added session.extern_referer_chk which checks whether session ids were 3766 referred to by an external site and eliminates them (Sascha)</li> 3767<li>Improved session id generation (Sascha)</li> 3768<li>Improved speed of uniqid() by using the combined LCG and removing 3769 the extra usleep() (Sascha)</li> 3770<li>Introduced general combined linear congruential generator (Sascha)</li> 3771<li>Made ldap_close back into an alias for ldap_unbind (Andrei)</li> 3772<li>OciFetchInto now resets the returned array in all cases (Thies)</li> 3773<li>Fixed mysql_errno() to work with recent versions of MySQL (Zeev)</li> 3774<li>Fixed a problem with define() and boolean values (Zeev)</li> 3775<li>Fixed inclusion of gd/freetype functions (Sascha)</li> 3776<li>Fixed persistency of MHASH_* constants (Sascha)</li> 3777<li>Oracle is now ZTS-Safe (Thies)</li> 3778<li>Fixed flushing of cached information to disk in DBA's DB2 module (Sascha)</li> 3779<li>OCI8 is now ZTS-Safe (Thies)</li> 3780<li>Fixed is_writeable/is_writable problem; they are both defined now (Andrei)</li> 3781<li>Imported PHP 3.0 diskfreespace() function (Thies)</li> 3782<li>Fixed thread-safety issues in the MySQL module (Zeev)</li> 3783<li>Fixed thread-safe support for dynamic modules (Zeev)</li> 3784<li>Fixed Sybase CT build process (Zeev)</li> 3785</ul> 3786 3787<!-- }}} --></section> 3788 3789<section class="version" id="4.0b2"> 3790<h3>Version 4.0 Beta 2</h3> 3791<?php release_date("09-Aug-1999"); ?> 3792<ul> 3793<li>Fixed a problem when sending HTTP/1.x header lines using header() (Zeev)</li> 3794<li>Win32 builds now include the ODBC module built-in (Zeev)</li> 3795<li>Fixed SYSV-SHM interface (Thies).</li> 3796<li>Updated hyperwave module, made it thread safe</li> 3797<li>Updated pdflib module, version 0.6 of pdflib no longer supported</li> 3798<li>Updated fdf module</li> 3799<li>Built-in phpinfo() links are now turned off by default. They can be turned 3800 on using the allow_builtin_links INI directive (Zeev)</li> 3801<li>Changed phpinfo() to list modules that have no info function (Zeev)</li> 3802<li>Modified array_walk() function so that the userland callback is passed 3803 a key and possible user data in addition to the value (Andrei)</li> 3804<li>Fixed ldap_search(), ldap_read() and ldap_list() (Zeev)</li> 3805<li>Fixed Apache information in phpinfo() (sam@breakfree.com)</li> 3806<li>Improved register_shutdown_function() - you may now supply arguments that 3807 will be passed to the shutdown function (Zeev)</li> 3808<li>Improved call_user_func() and call_user_method() - they now support passing 3809 arguments by reference (Zeev)</li> 3810<li>Fixed usort() and uksort() (Zeev)</li> 3811<li>Fixed md5() in the Apache module (Thies)</li> 3812<li>Introduced build process for dynamic modules (Stig)</li> 3813<li>Improved ISAPI module to supprt large server variables (Zeev)</li> 3814<li>Imported PHP 3.0 fixes for problem with PHP as a dynamic module and Redhat 3815 libc2.1 in zlib module (Stefan)</li> 3816<li>Fixed sybase_fetch_object() (Zeev)</li> 3817<li>Made the IMAP module work with PHP 4.0 (Zeev)</li> 3818<li>Fixed a problem with include()/require() of URLs (Sascha, Zeev)</li> 3819<li>Fixed a bug in implode() that caused it to corrupt its arguments (Zeev)</li> 3820<li>Added get_class($obj), get_parent_class($obj) and method_exists($obj,"name") 3821 (Andi & Zeev)</li> 3822<li>Fixed various inheritance problems (Andi & Zeev, Zend Engine)</li> 3823<li>Children now inherit their parent's constructor, if they do not supply a 3824 constructor of their own.</li> 3825<li>Fixed runtime inheritance of classes (parent methods/properties were 3826 overriding their children) (Zeev, Zend Engine)</li> 3827<li>Fixed backwards incompatibility with the "new" operator (Andi, Zend Engine)</li> 3828<li>Fixed bugs in uksort() and ksort() sort ordering (Andrei)</li> 3829<li>Fixed a memory leak when using assignment-op operators with lvalue of type 3830 string (Zeev, Zend Engine)</li> 3831<li>Fixed a problem in inheritance from classes that are defined in include()d 3832 files (Zeev, Zend Engine)</li> 3833<li>Fixed a problem with the PHP error handler that could result in a crash 3834 on certain operating systems (Zeev)</li> 3835<li>Apache php_flag values only recognized 'On' (case sensitive) - changed 3836 to case insensitive (Zeev)</li> 3837<li>Fixed a memory leak with switch statement containing return statements 3838 (Andi & Zeev, Zend Engine)</li> 3839<li>Fixed a crash problem in switch statements that had a string offset 3840 as a conditional (Andi & Zeev, Zend Engine)</li> 3841<li>Imported PHP 3.0 fixes for rand() and mt_rand() (Rasmus)</li> 3842<li>Added function entries for strip_tags() and similar_text() (Andrei)</li> 3843<li>Fixed a bug in WDDX that would cause a crash if a number was passed in 3844 instead of a variable name (Andrei)</li> 3845<li>Ported strtotime() function from PHP 3.0 (Andrei)</li> 3846<li>Merged in gdttf stuff from PHP 3.0 (Sascha)</li> 3847<li>buildconf now checks your installation (Stig)</li> 3848<li>XML module now built dynamically with --with-xml=shared (Stig)</li> 3849<li>Added a check for freetype.h - fixed build on RedHat 6.0 (Zeev)</li> 3850<li>Fixed array_walk() to work in PHP 4.0 (Andrei)</li> 3851<li>Ported all remaining date() format options from PHP 3.0 (Andrei)</li> 3852<li>$php_errormsg now works (Andrei)</li> 3853<li>Added locale support for Perl Compatible Regexp functions (Andrei)</li> 3854<li>Informix module ported (Danny)</li> 3855<li>Remove --with-shared-apache (Sascha)</li> 3856<li>Added patch for reverse lookup table in base64_decode (Sascha) 3857 Submitted by bfranklin@dct.com</li> 3858<li>Merged in PHP 3.0 version of str_replace (Sascha)</li> 3859<li>Added DBA module (Sascha)</li> 3860<li>Added session id detection within REQUEST_URI (Sascha)</li> 3861<li>Merged in HP-UX/ANSI compatibility switch from PHP 3.0 (Sascha)</li> 3862<li>Fixed rpath handling for utilitites built during Apache build (Sascha)</li> 3863<li>Added missing E_ error level constants (Zeev, Zend Engine)</li> 3864<li>Fixed a bug in sending multiple HTTP Cookies under Apache (Zeev)</li> 3865<li>Fixed implicit connect on the MySQL, mSQL, PostgreSQL and Sybase 3866 modules (Zeev)</li> 3867<li>Gave PHP 4.0's SNMP extension all the functionality of PHP 3.0.12 (SteveL)</li> 3868</ul> 3869 3870<!-- }}} --></section> 3871 3872<section class="version" id="4.0b1"> 3873<h3>Version 4.0 Beta 1</h3> 3874<?php release_date("19-Jul-1999"); ?> 3875<ul> 3876<li>First public beta of PHP 4.0</li> 3877</ul> 3878</section> 3879 3880<?php 3881 3882changelog_footer(4, $MINOR_VERSIONS); 3883