mirror of
https://github.com/php/php-src.git
synced 2024-11-28 04:14:26 +08:00
1016 lines
55 KiB
Plaintext
1016 lines
55 KiB
Plaintext
PHP 4.0 NEWS
|
||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||
|
||
?? ??? 2000, Version 4.0.3-dev
|
||
- Added the pathinfo() function. (Sterling)
|
||
- Updated sybase_ct module and its sybase_query to use high performance API.
|
||
(Joey)
|
||
- Added a more configurable error reporting interface to DB. (Stig)
|
||
- Added is_uploaded_file() and move_uploaded_file() (Zeev)
|
||
- Added several directives to php.ini - post_max_size, file_uploads,
|
||
display_startup_errors - see php.ini-dist for further information (Zeev)
|
||
- Worked around a bug in the libc5 implementation of readdir() (Stas)
|
||
- Fixed some potential OpenBSD and NetBSD crash bugs when opening files. (Andi)
|
||
- Add EscapeShellArg() function (Rasmus)
|
||
- Add a php.ini option session.use_trans_sid to enable/disable trans-sid.
|
||
(Sterling)
|
||
- Quick-fix for the file upload security alert (Rasmus)
|
||
- Add the Sablotron extension for XSL parsing. (Sterling)
|
||
- Fixed a bug in checkdate() which caused < 1 years to be valid (Jani)
|
||
- Added support for an optional output handler function for output
|
||
buffering. This enables transparent rendering of XML through XSL,
|
||
transparent compression, etc. (Zeev)
|
||
- Added support for user defined 'tick' callback functions. This helps
|
||
emulate background processing. (Andrei)
|
||
- Fixed problem with having $this as the XML parser object. (Andrei)
|
||
- Internal opened_path variable now uses the Zend memory manager so that full
|
||
paths of files won't leak on unclean shutdown (Andi)
|
||
- Removed support of print $obj automatically calling the __string_value()
|
||
method. Instead define yourself a method such as toString() and use
|
||
print $obj->toString() (Andi, Zend Engine)
|
||
|
||
29 Aug 2000, Version 4.0.2
|
||
- Added PHP API for Zend's ticks. (Stig)
|
||
- PHP 3 regression testing framework re-born (Stig)
|
||
- Added php_uname() function (Stig)
|
||
- Made a minor change to allow building with OpenLDAP 2.0 (Stig Venaas)
|
||
- Fixed a bug in preg_replace() that would truncate subject string if the
|
||
first argument was en empty array. (Andrei)
|
||
- Added ob_get_length function (Stig)
|
||
- Fixed a bug that did not respect limit parameter in preg_replace() when
|
||
using /e modifier. (Andrei)
|
||
- Added ability for each xml_set_*_handler() function to take the
|
||
array($obj, 'method') syntax for the handler argument as well
|
||
as the normal function name. (Andrei)
|
||
- Updated array_walk() to be able to accept array($obj, 'method')
|
||
syntax for the walk function. (Andrei)
|
||
- Fixed segfault with fgets(), fgetcsv(), fgetss(), and fread() when
|
||
called with negative length argument. (Torben)
|
||
- Fix by-reference parameters passing for xml_ functions and for scanf
|
||
functions (Stas)
|
||
- Added experimental Oracle LDAP SDK support. 8.1.6 or later needed. Configure
|
||
with something like --with-ldap=/usr/local/oracle/product/8.1.6 (Stig Venaas)
|
||
- Fixed memory leaks in eval(); A script that used eval() extensively, could
|
||
end up consuming very large amounts of memory during execution (Zeev, Zend
|
||
Engine)
|
||
- Fixed memory_limit feature, which did not work properly in previous versions
|
||
(Zeev, Zend Engine)
|
||
- Fixed stdout support with the swf extension. (Sterling)
|
||
- Fixed byte order for ip2long and long2ip (Stas)
|
||
- Fixed dbase_add_record. (Sterling)
|
||
- Added support for libmcrypt 2.4.4 (Derick)
|
||
- Added strncasecmp function (Andi, Zend Engine)
|
||
- Fixed FTP module to accept multiline server replies (Jani)
|
||
- Fixed switch which only has a single default rule. (Andi, Zend Engine)
|
||
- Fixed problem with nested foreach()'s. (Andi, Zend Engine)
|
||
- The CCVS module is now stable and compiling. It compiles as a CGI and into
|
||
Apache cleanly without warnings. (Brendan W. McAdams)
|
||
- Fixed mSQL_close(). (nick@loman.net)
|
||
- Made return() in a require()'d file work like return() in an include()'d
|
||
file (Andi & Zeev, Zend Engine)
|
||
- Changed require_once() to work using the same table as include_once()
|
||
(Andi & Zeev, Zend Engine)
|
||
- Fixed PostgreSQL module to work when the link handle is omitted (Zeev)
|
||
- Fixed the Sybase modules to work properly with PHP 4.0 (Zeev)
|
||
- Fixed CLOB handling in OCI8 driver when using variable-width
|
||
character sets. (Thies)
|
||
- Added 4th optional parameter to sybase_[p]connect to specify the charset
|
||
for the connection (alf@alpha.ulatina.ac.cr)
|
||
- Fixed support for current thttpd releases. (Sascha)
|
||
- Added support for kerberized IMAP library using --with-kerberos
|
||
(Rasmus, Sascha)
|
||
- Virtualize realpath, chmod, chown and utime (Stas)
|
||
- Support content-encoding headers in file upload MIME parts
|
||
(Ragnar Kj<4B>rstad)
|
||
- Fixed warning when shutting down OCINLogon() connections. (Thies)
|
||
- Fixed \n in session variables bug on Win32 (Stas)
|
||
- OCIError() would sometimes not report failed connections. (Thies)
|
||
- Fixed HEAD request bug on an Apache ErrorDocument redirect and preserve
|
||
the status code across the redirect as well. (Rasmus)
|
||
- Added Olympus-specific tags to read_exif_data() (Rasmus)
|
||
- Fixed bug in imap_fetchheader() where using FT_PREFETCHTEXT didn't return
|
||
the body. Bug #4447. (Jani)
|
||
- Fixed exec() returning "\0" when output is empty
|
||
- Added XML_Parser class in PEAR (Stig)
|
||
- Added "make test" target in pear/ and added some regression tests (Stig)
|
||
- Fixed bug in strip_tags function as per bug #5857 (Rasmus)
|
||
- Fixed reading of IPTC via GetImageInfo() for certain JPEG files. (Thies)
|
||
- Improved the output-buffering functions to be re-entrant (Zeev)
|
||
- Made ldap_add(), ldap_modify(), ldap_mod_add(), ldap_mod_replace()
|
||
binary-safe. Original patch: Terrence Miao <terrence_miao@email.com> (Jani)
|
||
- CGI aka. command line version has now an option '-l' for syntax check
|
||
without execution (Hartmut)
|
||
- Fixed bug in ldap_get_values_len() which makes it NULL-safe. (Jani)
|
||
- Bug-report and fix submitted by Michel Alexeline <alexel@dr15.cnrs.fr>
|
||
- Make ext_skel create a Makefile.in set up to handle shared extension
|
||
support automatically (Rasmus)
|
||
- Fixed php_realpath not to die on non-existing files (needed for touch())
|
||
(Stas and china@thewrittenword.com)
|
||
- Fixed get_browser() function (Stas)
|
||
- Fixed symbol clash which caused a DSO problem on OpenBSD (Rob Black and
|
||
anil@recoil.org)
|
||
- Added new function: ldap_compare(). (Jani)
|
||
- Fixed a bug in ldap_get_entries() and ldap_get_attributes(). (Jani)
|
||
- Ported DB to new error reporting scheme in PEAR. (Stig)
|
||
- Added sybase and ibase DB backends in PEAR. (Sterling)
|
||
- New PEAR package Payment_Verisign for use with the Payflow Pro
|
||
(pfpro) extension. (David Croft)
|
||
- Added CURL support. (Sterling)
|
||
- Catch users trying to set "compatibility" parameter in PDF, which is not
|
||
supported from user-land. (Joey)
|
||
- Fixed dbase_add_record. (Sterling)
|
||
- Added new function wordwrap() to wordwrap long strings from Chris
|
||
Russel <russel@yorku.ca> (David Croft)
|
||
- Added four additional arguments: attrsonly, sizelimit, timelimit, deref which
|
||
were missing in ldap_search(), ldap_list() and ldap_read() functions (Jani)
|
||
- Fixed a bug in ldap_search/list/read() which prevented returning the partial
|
||
results when 'Sizelimit exceeded' error occurred. (Jani Taskinen)
|
||
- Fixed preg_replace() to automatically escape quotes in matched
|
||
strings when using /e modifier. (Andrei)
|
||
- Itanium patch (Steve Robb)
|
||
- Set default include_path so PEAR files can be reached (Stig)
|
||
- Added "pear" executable, requires CGI version installed (Stig)
|
||
- Added extension ii for Ingres II native support. See README in ext/ingres_ii
|
||
directory. (David H)
|
||
- Added Win32 project for the Interbase module (Zeev)
|
||
- Added ability to perform calls to the parent class without explicitly
|
||
specifying its name, using parent::func_name(...) (Zeev, Zend Engine)
|
||
- You can now call Ora_Error() without prameters to get the reason
|
||
for a failed connection attempt. (Kirill Maximov)
|
||
- New extension "pfpro" for interface with Verisign Payflow Pro (David Croft)
|
||
- Added IMG_GIF, IMG_JPG, IMG_JPEG, IMG_PNG and IMG_WBMP constants for
|
||
imagetypes() function (Rasmus)
|
||
- Added ImageTypes() function which returns a bitfield with the supported
|
||
image formats. 1=gif, 2=jpeg, 4=png and 8=wbmp (Rasmus)
|
||
- Make it possible to specify an empty string as a thousands-seperator
|
||
in number_format() (Rasmus)
|
||
- Shared module support for LDAP extension (Troels Arvin)
|
||
- Fixed a bug with imap_mail where apache would segfault if the rpath
|
||
parameter was specified.
|
||
- Use dashes and short day name in cookies since some browsers seem picky
|
||
about this (Rasmus)
|
||
- Added pspell module. (Vlad)
|
||
- Added 3 additional arguments to the user-defined error handler - the file
|
||
name and line number in which the error occured, and the context (local
|
||
variables) of the code in which the error occured (Zeev, Zend Engine)
|
||
- Improved the error handling code to handle an error in a user-defined error
|
||
handling function (Zeev, Zend Engine)
|
||
- Fixed leak when using string offsets in the array() construct.
|
||
(Andi, Zend Engine)
|
||
- Fixed corruption problem when changing deeply nested values in objects.
|
||
(Andi & Zeev, Zend Engine)
|
||
- Improved array_multisort() to be able to specify sort type as well sort
|
||
order. Incidentally, it can be used to sort multi-dimensional arrays
|
||
as well. (Andrei)
|
||
- Fixed a possible data corruption in case of a huge amount of aborted requests
|
||
(Zeev)
|
||
- Apache module would sometimes close a wrong file-descriptor. (Sascha)
|
||
- Fixed use of alternative storage handlers in the session module. (Sascha)
|
||
- Updated str_pad() to be able to pad on left/right/both sides. (Andrei)
|
||
- Fixed crash in gzopen(). (Thies)
|
||
- Multiple character set support in gdttf.c (Rob Goodwin)
|
||
- When using HTTP auth from PHP, fill in the %u custom log field so the
|
||
authenticated used id will get logged in the Apache access_log (Rasmus)
|
||
- Support for pdflib 3.01. (Uwe)
|
||
- FDF Data is handled properly and can be accessed by reading
|
||
HTTP_RAW_POST_DATA. (Uwe)
|
||
- Added new 'O' format modifier that will output the GMT offset as "[+-]HHMM"
|
||
(eg: Pacific time is -0700). This is useful for things such as Date: mail
|
||
headers. (Mike W)
|
||
- Fixed crash on OCI?Logon() failure. (Thies)
|
||
- Make the special Header("http/...") response be case insensitive like 3.0
|
||
(Rasmus)
|
||
- Allow cybercash to compile as a DL module. (Sterling)
|
||
- Fixed the dbase_create function. (Sterling)
|
||
- Fixed a problem under some versions of Windows that could cause PHP to hang
|
||
on startup if errors occured, e.g. in the php.ini file (Zeev)
|
||
- Fixed opendir() again. It should actually work well continuously now (Zeev)
|
||
- Added three additional arguments to be sent to a user-defined error handler -
|
||
the filename and line number in which the error occured, and the context
|
||
(the local variables) of the error (Zeev, Zend Engine)
|
||
- Improved the error handling code to handle an error in a user-defined error
|
||
handling function (Zeev, Zend Engine)
|
||
- Added an optional parameter to preg_replace() that can be used to
|
||
specify how many replacements to make. (Andrei)
|
||
|
||
28 Jun 2000, Version 4.0.1
|
||
- Fixed a possible crash in the LDAP modify code. (Eric Kilfoil)
|
||
- Fixed a bug in opendir(), which prevented readdir() from working properly if
|
||
the $dir argument wasn't explicitly specified (Zeev)
|
||
- Made --enable-discard-path work again. (Andi)
|
||
- Removed 8KB limit on line length of the file() function (Zeev)
|
||
- Disabled dl() when PHP is being used as a module inside a multithreaded web
|
||
server - it didn't work before, and caused weird results (Zeev)
|
||
- Added the ImageColorClosestHWB(), ImageCopyMerge() and ImagePaletteCopy()
|
||
functions. (Sterling)
|
||
- Added ImageCreateFromWBMP() function. (Jouni)
|
||
- Fixed problems with POST requests under the NSAPI module. (Roberto Biancardi)
|
||
- Added spliti() function. (Thies)
|
||
- Fixed serializer behaviour with regards to serializing objects whose class
|
||
definition was not available in the deserializing context. (Sascha)
|
||
- Improve memory cache performance and increase cache size. (Stas, Zend Engine)
|
||
- Added a crc32 checksum function - used by the UdmSearch search engine
|
||
and currently run through a system call. This will speed up the UdmSearch
|
||
php frontend significantly. (Rasmus)
|
||
- Modified in_array() to not touch array pointer. (Andrei)
|
||
- Added restore_error_handler(). (Zeev, Zend engine)
|
||
- Fixed erroneous file names and line numbers in error situations under the
|
||
multithreaded version of PHP - most noticeably Win32 (Zeev, Zend Engine)
|
||
- Fixed problem with CGI crashing on certain servers especially Windows Apache
|
||
& O'Reilly website (Andi)
|
||
- Added Pi3Web SAPI module; run ./configure --with-pi3web to enable this.
|
||
(Holger; zimpel@t-online.de)
|
||
- Enhanced WDDX functions to call __sleep() and __wakeup() when working on
|
||
objects. (Andrei)
|
||
- Changed WDDX to serialize arrays as structs only if needed. (Thies)
|
||
- Implemented max_execution_time under Win32 (Zeev)
|
||
- Updated strtotime() to handle many more formats. It now has complete
|
||
feature parity with GNU date command. (Andrei)
|
||
- Added support for multiple arguments in unset(). (Faisal, Zend Engine)
|
||
- Functions that expect a resource but are passed something else now return
|
||
NULL instead of FALSE. (Thies, Zend Engine)
|
||
- Fixed gmmktime(), on certain systems it incorrectly adjusted for the timezone
|
||
offset and daylight savings time. (Andrei)
|
||
- Moved VC++ Win32 project and workspace files to the win32 directory
|
||
(Zeev)
|
||
- Fixed checkdate() to not return true on non-numeric arguments (Rasmus)
|
||
- Added --enable-c9x-inline option for compilers which support the new C9x
|
||
standard. If you encounter undefined references to i_zend_is_true and
|
||
other symbols, you should enable this. (Sascha, Zend Library)
|
||
- Fixed a problem in ldap_add() and ldap_modify(), sometimes added trailing
|
||
garbage to the values (Stig Venaas)
|
||
- Fixed a problem with dbmopen() not handing 'c' correctly with dbm/db/ndbm
|
||
databases. (JimJag)
|
||
- Fixed a crash in number_format() when used with locales. (Andrei)
|
||
- Fixed an initialization problem in the MS-SQL problem that could cause
|
||
a crash in mssql_query() (Zeev)
|
||
- Upgraded PCRE to version 3.2 and fixed a bug when anchored pattern
|
||
matched an empty string. (Andrei)
|
||
- Fixed a bug that prevented PHP from paying attention to the extension_dir
|
||
directive with extensions that were loaded from the php.ini file (Zeev)
|
||
- Changed set_error_handler() to return the name of the previously defined
|
||
error handler, if any (Zeev, Zend Engine)
|
||
- Declared <?php_track_vars?> officially dead. It didn't work in PHP 4.0.0
|
||
either, but now it's gone for good (Zeev)
|
||
- Make convert_cyr_string() binary safe and stop it from corrupting other
|
||
PHP variables. (Andi)
|
||
- Added functions array_unique, array_intersect and array_diff (Stig Venaas)
|
||
- Fixed problem when using uninitialized values in comparisons with strings.
|
||
They behave as empty strings again just like in PHP 3.
|
||
(Andi & Zeev, Zend Engine)
|
||
- Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei)
|
||
- Fixed var_dump() not to modify the internal order of array elements (Zeev)
|
||
- Fixed stripcslashes() to remove to strip \ in unknown escapes instead of
|
||
leaving it. (Andrei)
|
||
- Changed WDDX to always serialize arrays as structs. (Andrei)
|
||
- Fixed include_once() to issue a warning in case the supplied file name is
|
||
not found (Zeev, Zend Engine)
|
||
- Fixed a bug in get_declared_classes() which could return the same class
|
||
multiple times under certain circumstances (Zeev, Zend Engine)
|
||
- Fixed a bug in rawurldecode() that would cause in rawurldecode() corrupting
|
||
its argument (Zeev)
|
||
- Parse errors (or other errors) in the php.ini files under Windows will no
|
||
longer mess up the HTTP headers in CGI mode and are now displayed in a
|
||
message box (Zeev)
|
||
- Fixed a crash in OCIFetchStatement() when trying to read after all data
|
||
has already been read. (Thies)
|
||
- fopen_wrappers() are now extensible via modules (Hartmut Holzgraefe)
|
||
- Make trim strip \0 to match php 3 (Rasmus)
|
||
- Added function imagecreatefromxbm(). (Jouni)
|
||
- Added function imagewbmp(). (Jouni, based on patch from Rune Nordb<64>e
|
||
Skillingstad)
|
||
- Added str_pad() for padding a string with an arbitrary string on left or
|
||
right. (Andrei)
|
||
- Made the short_tags, asp_tags and allow_call_time_pass_reference INI
|
||
directives work on a per-directory basis as well, e.g. from .htaccess
|
||
files. (Zeev)
|
||
- Added fflush() function. (Eric Huss)
|
||
- Fixed a problem with static variables, default function arguments and class
|
||
member variables, that contained array values. (Andi & Zeev, Zend Engine)
|
||
- Fixed virtual() when used with output buffering (Marc Pohl)
|
||
- Clean up constants in flock() function and add optional 3rd arg which
|
||
is set to true on EWOULDBLOCK (Rasmus)
|
||
- Added functions pg_loimport(), pg_loexport(). (Jouni)
|
||
- Added SWF support to getimagesize() function (Derick Rethans)
|
||
- Added support for both indexed and non-indexed arrays of file uploads
|
||
eg. name="file[]" type="file" (Rasmus)
|
||
- Added create_function(), which gives the ability to create functions
|
||
on-the-fly (Zeev, Zend Engine)
|
||
- Added support for comparisons of arrays (with arrays) and objects (with
|
||
objects); The equality operator (==) performs an unordered comparison,
|
||
whereas the identity operator (===) performs an ordered comparison (Zeev,
|
||
Zend Engine)
|
||
- Allow all functions that receive user-defined function callbacks to accept
|
||
an array that contains an object and a method name, in place of a function
|
||
name, e.g. usort($array, array($obj, "ObjSort")) (Zeev, Zend Engine)
|
||
- Added set_error_handler() to allow custom error handling functions,
|
||
instead of the built-in error handling code (Zeev, Zend Engine)
|
||
- Renamed user_error() to trigger_error(); user_error() remains
|
||
defined for compatibility (Zeev, Zend Engine)
|
||
- Fixed the global/static statements to require a trailing terminating
|
||
semi-colon ';'. (Andi, Zend Engine)
|
||
- Cleaned up PCRE extension and made it binary-safe. (Andrei)
|
||
- Added third argument to in_array(). If it's true, then in_array()
|
||
will use strict comparison instead of the default one. (Andrei)
|
||
- Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev)
|
||
- ignore_user_abort=Off is now default. (Thies)
|
||
- Added array_merge_recursive() that will recursively merge values
|
||
under the same keys. (Andrei)
|
||
- fixed crash in OCIParse when parsing invalid SQL. (Thies)
|
||
- Fixed a bug in mysql_connect() that made it ignore the socket argument, in
|
||
case of non-persistent connects (Zeev)
|
||
- Added disable_functions php.ini directive, to allow administrators to disable
|
||
certain functions for security reasons (Zeev)
|
||
- Fixed sessions on Win32. When setting the directory depth parameter in
|
||
save_path you need to now delimit it with a ';' instead of ':', e.g
|
||
"5;/tmp" instead of "5:/tmp" (Andi)
|
||
- Changed the Apache handler's return status to 'Declined' when a requested
|
||
PHP file could not be found. Returning 'Not Found' caused problems
|
||
in the ErrorDocument handler stage in that $REDIRECT_REDIRECT_ERROR_NOTES
|
||
was not getting set at all. Moving to 'Declined' should fix this and I
|
||
can't see any other side effects. (Rasmus)
|
||
- Fixed scanning decimal numbers in internationalized environments. They should
|
||
always be in standard US format e.g. 23.3. (Andi, Zend Engine)
|
||
- Added second argument to preg_quote() which allows quoting of
|
||
one additional character, usually the regex delimiter. (Andrei)
|
||
- Uncommitted outstanding OCI8 transactions are now rolled back
|
||
before the connection is closed. (Thies)
|
||
- ignore_user_abort() & friends should now work in CGI mode as well.
|
||
(Patch by daniel.braun@ercom.fr)
|
||
- Added extension YAZ (dickmeiss).
|
||
- Fixed a crash bug triggered by certain cases of class redeclarations
|
||
(Stanislav & Zeev, Zend Engine)
|
||
- Fixed min()/max() segfault. (Andrei)
|
||
- New module for reading EXIF header data from JPEG files. Most digital
|
||
cameras will embed all sorts of information about a picture inside the
|
||
jpeg images it generates. (Rasmus)
|
||
- Fixed basename() bug where "file.ext///" would not return the same
|
||
as "/path/file.ext///" (Rasmus)
|
||
- Added the swf_ortho function. (Sterling)
|
||
- Moved to virtual current working directory support. This highly improves the
|
||
functionality and stability of multi-threaded versions of PHP (Andi, Sascha)
|
||
|
||
22 May 2000, Version 4.0.0 Release
|
||
- Allow the writing of flash files to stdout.
|
||
- Fixed a crash bug in .phps syntax-highlighted files (Andi)
|
||
- Improved round() to allow specification of rounding precision.
|
||
(Andrei, Todd Kirby <kirbyt@yahoo.com>)
|
||
- Added SORT_REGULAR, SORT_NUMERIC, SORT_STRING flags that can be used with
|
||
non-user sort functions for precise sorting behavior. (Andrei)
|
||
- Fixed two 64-bit issues (startup crash, gethostbyaddr). (Sascha)
|
||
- NULL values are now preserved in the return value of mysql_fetch_array()
|
||
and mysql_fetch_object(). (Andrei)
|
||
- Ported InterBase module finally from PHP 3 to PHP 4. Full support for
|
||
InterBase 6. (Jouni)
|
||
- Added swf_definepoly for drawing polygons to the SWF functions. (Sterling)
|
||
- Ported imagegammacorrect from PHP3 to PHP4. (Sterling)
|
||
- Added array_rand() function. (Andrei)
|
||
|
||
8 May 2000, Version 4.0 Release Candidate 2
|
||
- NSAPI WIN32 Module compilable, untested (Shane)
|
||
- Apache WIN32 Module compilable and lightly tested. (Shane)
|
||
- Enabled assert() by default in php.ini-dist. (Andrei)
|
||
- Put in safeguards in case dynamic code evaluation in assert() and
|
||
preg_replace() with /e modifier fails. (Andrei)
|
||
- Fixed infinite recursion when serializing $GLOBALS[] in WDDX. (Andrei)
|
||
- Made WDDX serialization properly escape <, >, and &. Also speeded up
|
||
the serialization in general. (Andrei)
|
||
- Moved install-local to install-sapi for clarity. (Joey)
|
||
- Improved extension build framework. Refer to README.SELF-CONTAINED-EXTENSIONS
|
||
for an introduction. (Sascha)
|
||
- ImagePolygon() is no longer limited by a maximum number of polygons.
|
||
(Marc Pohl)
|
||
- Added configure time checking for bcmath package. (Joey, Sascha)
|
||
- Added get_declared_classes(). (Andrei, Zend Engine)
|
||
- Added initial NSAPI module from Jayakumar Muthukumarasamy. (Rasmus)
|
||
- Added the SWF module which allows you to create Macromedia Flash files via
|
||
libswf. (Sterling)
|
||
- Improved UNIX build system to support more vendor make tools (Sascha)
|
||
- Updated natural comparison/sorting algorithm by Martin Pool
|
||
<mbp@humbug.org.au>. (Andrei)
|
||
- Fixed a crash in array_multisort() that happened when empty arrays
|
||
were passed to it. (Andrei)
|
||
- Added substr_count() from Peter Kovacs. (Andrei)
|
||
- Added an optional third argument to fseek to indicate where to seek from.
|
||
(Andrei)
|
||
- OCIBindByName() will no longer complain about bindlength beeing zero. (Thies)
|
||
- Converted the IMAP module to the high performance API (Zeev)
|
||
- The fgetcsv() function now handles embedded end-of-line in a quoted field
|
||
(Nick Talbott)
|
||
- Added user_error(), to allow explicitly generate error messages from scripts
|
||
(Zeev, Zend Engine)
|
||
- Fixed a problem in long2ip() that occasionally returned incorrect IP address.
|
||
(Evan, Andrei)
|
||
- Fixed many memory leaks in the IMAP module (Stas, Andi, Zeev)
|
||
- Fixed bug in number_format (Jon Forsberg)
|
||
- Make error_prepend_string and error_append_string work (Rasmus)
|
||
- array_walk() now automatically resets the array. (Andrei)
|
||
- Added natural comparison/sorting routines strnatcmp(), strnatcasecmp(),
|
||
natsort(), and natcasesort(). These are useful for comparing and sorting
|
||
strings that contain numbers. Based on the code from Martin Pool
|
||
<mbp@humbug.org.au>. See http://www.linuxcare.com.au/projects/natsort/
|
||
for more info on natural sorting. (Andrei)
|
||
- Zeus Webserver support (version 3.3.6+) for ISAPI (Ben Mansell)
|
||
- Fixed several problems with the PATH_TRANSLATED and PHP_SELF under Apache
|
||
(Paul Gregg & Zeev)
|
||
- Ported ldap_get_values_len() function from PHP3 to PHP4. (Sterling)
|
||
- Fixed a problem in include_once() with non constant arguments (Andi & Zeev,
|
||
Zend Engine)
|
||
- Added php.ini-optimized (Zeev)
|
||
- Ported ldap_errno(), ldap_err2str() and ldap_error() from PHP3 to PHP4.
|
||
(Sterling)
|
||
- WDDX now defaults to ISO-8859-1. (Thies)
|
||
- Fixed crash resulting from IMAP's error handling (Stas)
|
||
- Added $HTTP_POST_FILES[filename][tmp_name] - it was previously impossible to
|
||
retrieve the temporary name of an uploaded file using $HTTP_POST_FILES[]
|
||
(Zeev)
|
||
- Made the IMAP and LDAP modules compilable under Windows and thread-safe
|
||
(Zeev)
|
||
- Fixed a problem when dealing with large POST blocks in CGI mode (Zeev)
|
||
- Added session_get_cookie_params() function. (Sterling)
|
||
- Fixed return of stristr() to no longer always be lowercased. (Andrei)
|
||
- Changed the Windows version of PHP so that a php.ini file is no
|
||
longer mandatory (Zeev)
|
||
- session_start() is now more verbose if headers cannot be send. (Thies)
|
||
- Fixed a memory leak when using assign-op bitwise operators on strings (Zeev,
|
||
Zend Engine)
|
||
- Added support for reading properties that require arguments in the COM
|
||
module - writing to them will only be supported in PHP 4.1 (Zeev)
|
||
- Fixed a very old legacy memory leak in the COM module (Zeev)
|
||
- Fixed problems with object-overloading support - noteably, COM and Java
|
||
(Zeev, Zend Engine)
|
||
- Fixed an overrun in WDDX. (Thies)
|
||
- Fixed a crash bug with modules loaded through dl() not properly freeing their
|
||
resources (Zeev, Zend Engine)
|
||
- Added localtime() function. (Sterling)
|
||
- Added the 'I' format option for the date function, this option will return
|
||
true or false depending on whether or not daylight savings time is in effect.
|
||
(Sterling)
|
||
- Added gmstrftime() function. (Sterling)
|
||
- snmp_walkoid is now an alias for snmp_realwalk. (Sterling)
|
||
- Fixed a bug that could cause a crash when using 'global' inside large include
|
||
files (Stas, Zend Engine)
|
||
- Added --enable-libgcc switch to force linking against libgcc (Sascha)
|
||
- Fixed dynamic loading where extension_dir had no trailing slash (Sascha)
|
||
- Fixed dynamic loading on OpenBSD (Sascha)
|
||
- Improved POSIX threads check. ZTS works now on at least Linux, Solaris,
|
||
FreeBSD and OpenBSD (Sascha, TSRM)
|
||
- Added !== operator support. (Torben, Zend Engine)
|
||
|
||
27 March 2000, Version 4.0 Release Candidate 1
|
||
- Added support for UCD-SNMP 4.1.x (Sascha)
|
||
- Fixed a data corruption bug in mysql_result(), if used in table.fieldname
|
||
mode (Zeev)
|
||
- Fixed a crash problem in func_num_args(), func_get_arg() and func_get_args()
|
||
when used as function arguments (Andi, Zend Engine)
|
||
- Added get_class_methods(string classname) function. (Andrei)
|
||
- Added 'I' switch to test whether or not DST is active. (Sterling)
|
||
- Fixed a data corruption bug in mysql_result(), if used in table.fieldname
|
||
mode (Zeev)
|
||
- Modified the registry INI entry reader (Win32) to work with drive letters.
|
||
For example, if you wish to wish to specify INI entries for C:\foo\bar, you
|
||
should create HKLM\PHP\Per Directory Values\C\foo\bar in the registry, and add
|
||
string values for each directive you want to override in this directory (Zeev)
|
||
- Fixed extract() for EXTR_PREFIX_SAME and EXTR_SKIP cases. (Andrei)
|
||
- stristr() no longer modifies it's arguments. (Thies)
|
||
- Don't default to iso-8859-1 since this confuses some browsers. (Rasmus)
|
||
- Make it possible to specify both a port and a socket
|
||
in mysql_[p]connect. (Rasmus)
|
||
- Added --disable-pic for disabling generating PIC for shared objects
|
||
on platforms which support it (i.e. Linux) (Sascha)
|
||
- serialize()/unserialize() now call __sleep() and __wakeup() when
|
||
working on objects. (Thies)
|
||
- renamed to_string() method to __string_value() for consistency.
|
||
(Thies, Zend Engine)
|
||
- Fixed a bug in the third argument to define()
|
||
- Added is_numeric() that returns true if the argument is a number
|
||
or a numeric string. (Andrei)
|
||
- domxml now supports libxml 2.0 Beta and drops support for older versions,
|
||
due to massive changes in libxml
|
||
- fixed possible crash in unserialize() if serialized data was
|
||
corrupted. (Thies)
|
||
- Changed $HTTP_STATE_VARS to $HTTP_SESSION_VARS. Use only the latter
|
||
version now! (Andrei)
|
||
- Added GD-JPEG Support (Rasmus)
|
||
- Prevent from loading dynamic PHP modules which were compiled with different
|
||
debug and thread safety modes than PHP, which resulted in a crash (Andi)
|
||
- connection_aborted() and friends work again (Thies)
|
||
- Upgraded to libtool 1.3.4 (Sascha)
|
||
- UNIX configure creates config.nice in the build directory now which allows
|
||
easy reuse of configuration options (Sascha)
|
||
- Added support for embedded MySQL client library. Unless you specify a path
|
||
to --with-mysql, the bundled MySQL client library will be used (Sascha)
|
||
- Added include_once() and require_once() functionality (Andi, Zend Engine)
|
||
- Removed support for pdflib < 3.0 (Uwe)
|
||
- Added auto-registration of everything in $HTTP_SESSION_VARS[] if
|
||
register_globals is turned off. (Andrei)
|
||
- Cleaned up extension namespace (Stig)
|
||
- OCINLogon() sessions are now closed again. (Thies)
|
||
- Added ip2long() and long2ip(),
|
||
courtesy of Faisal Nasim <faisal@nasim.org> (Andrei)
|
||
- Added ftruncate() and fstat(),
|
||
courtesy of Faisal Nasim <faisal@nasim.org> (Andrei)
|
||
- Added parse_ini_file(). Currently implemented in non thread safe version
|
||
of PHP, and currently lacks section support (Zeev)
|
||
- "none" is now equivalent with "" in Apache config directives (Stig)
|
||
- OCINLogon no longer crashes. (Thies)
|
||
- Fixed comparisons of (string) "nan" with (string) "nan". (Thies, Zend Engine)
|
||
- Switched back to the old $HTTP_*_VARS[] behavior - $HTTP_GET_VARS["foo"]
|
||
and $foo are no longer references to each other, but separate variables
|
||
like they were prior to PHP 4.0 Beta 4 (Zeev)
|
||
- Fixed Sybase-DB compilation (Zeev)
|
||
- Fixed a (fairly common) situation where error_reporting values would not be
|
||
properly restored after a call to error_reporting(), in between requests
|
||
(Zeev)
|
||
- The various $HTTP_*_VARS[] are now protected, and cannot be manipulated by
|
||
user input (Zeev)
|
||
- Added ini_set() as an alias to ini_alter() (Zeev)
|
||
- The string None is now recognized as a keyword by the php.ini processor, and
|
||
can be used to denote an empty string (Zeev)
|
||
- Added get_class_vars(string class_name) and get_object_vars(object obj)
|
||
functions. (Andrei, Zend Engine)
|
||
- Added pdf_set_parameter(), pdf_skew(), pdf_show_boxed() (Uwe)
|
||
- Fixed comparison of (string) "inf" with (string) "inf", which was erroneously
|
||
returning false (Zeev)
|
||
- Implemented default_charset and default_mimetype config directives (Stig)
|
||
- Ported T1lib support from PHP3. (Jouni)
|
||
- Fixed -DEAPI inheritance from APXS. (Sascha)
|
||
- Fixed possible crash in module-shutdown. (Thies)
|
||
- Fixed safe_mode_protected_env_vars INI directive (Zeev)
|
||
- Fixed getrusage() (Sascha)
|
||
- Fixed OCI8 crash when returning cursors from stored-procedures. (Thies)
|
||
|
||
21 February 2000 Version 4.0 Beta 4 patch level 1
|
||
- Fixed crash when magic_quotes were switched off. (Thies)
|
||
- Support for pdflib 2.30 (Uwe)
|
||
|
||
20 February 2000, Version 4.0 Beta 4
|
||
- Introduced $HTTP_POST_FILES[], that contains information about files uploaded
|
||
through HTTP upload (Zeev)
|
||
- Made PHP work under Microsoft Personal Web Server, under both Windows NT
|
||
workstation and Windows 95 (Zeev)
|
||
- Made multipart/form-data content obey to the variables_order directive (Zeev)
|
||
- Updated the browscap module to work with PHP 4.0 (Zeev)
|
||
- Recover gracefully in ISAPI after the client prematurely presses STOP (Andi)
|
||
- Fixed bug in unset() on array offsets which are referenced more than once
|
||
(Andi, Zend Engine)
|
||
- Improved ISAPI module - it should no longer be necessary to set PHP as
|
||
an ISAPI filter, only as an ISAPI extension, unless you wish to perform
|
||
authentication using PHP. This didn't yet get enough testing, but it
|
||
should work (Zeev)
|
||
- Fixed RFC1867 file upload under Windows (Zeev)
|
||
- Initital support for pdflib 2.20 (Uwe)
|
||
- Added PostgreSQL support for DB (Rui Hirokawa <louis@cityfujisawa.ne.jp>)
|
||
- Re-introduced "none" for disabling auto_prepend/append_file (Stig)
|
||
- Added DB/storage (Stig, PEAR)
|
||
- Introduced DB warnings (Stig, PEAR)
|
||
- Fixed overrun in strip_tags (Stas)
|
||
- Fixed crash in strip_tags() and related functions. (Thies)
|
||
- Workaround for bogus POST-Data from IE/Mac. (Thies)
|
||
Patch by Alain Malek <alain@virtua.ch>
|
||
- Finished the server abstraction layer; All of the PHP code is now shared
|
||
across different servers (Apache, CGI, IIS, etc.), except for thin
|
||
interface modules (Zeev)
|
||
- Added NULL-support in gettype(). (Thies)
|
||
- base64_decode() will decode POST data correct. (Thies)
|
||
Patch submitted by: Turadg Aleahmad <turadg@wise.berkeley.edu>
|
||
- Much more work on domxml. Build xml tree, create xml doc works (Uwe)
|
||
- Made foreach() work on objects. (Thies, Zend Engine)
|
||
- Added domxml extension based on libxml, still little functionality (Uwe)
|
||
- Fixed memory corruption in fgetss(), strip_tags() and gzgetss() (Zeev)
|
||
- Updated calendar dynamic library to work with PHP 4. (Evan)
|
||
- Added strncmp() function, courtesy of Walter. (Andrei)
|
||
- Made the output of var_dump() more informative. (Thies)
|
||
- Fixed some OCIBindByName() problems. (Thies)
|
||
- Protect the ISAPI module against exceptions. Stack overflows in scripts are
|
||
now nicely detected and handled (Zeev)
|
||
- Fixed possible buffer-overflow in base64_decode. (Thies)
|
||
- Fixed possible buffer-overflow in setcookie(). (Thies)
|
||
- Fixed signal() bug that could cause the Apache master process to
|
||
die. (Thies)
|
||
- Added session_set_cookie_params() function. (Andrei)
|
||
- If header information is sent after output has already been sent, the warning
|
||
message will now state the filename and line number at which the first output
|
||
was made (Zeev)
|
||
- Added the XML Expat library to the standard PHP source distribution thanks
|
||
to its author James Clark (Andi & Zeev)
|
||
- Added XML support to the default Win32 build (Andi & Zeev)
|
||
- Added socket_get_status() function. Renamed:
|
||
set_socket_timeout() -> socket_set_timeout()
|
||
set_socket_blocking() -> socket_set_blocking(). (Andrei)
|
||
- Added realpath() function. (Andrei)
|
||
- mktime interprets years in the range 0-70 now as 2000-2070. You can
|
||
continue to specify the complete year (i.e. 1920) (Sascha)
|
||
- Added the ability to control the environment variables the user is allowed
|
||
to change in Safe Mode, using INI directives (Zeev)
|
||
- Fixed a crash bug in strtr() working on large input strings (Zeev)
|
||
- Ora_GetColumn()/Ora_FetchInto() now return NULL for NULL-Columns. (Thies)
|
||
- OCI8 now supports binding of NULL-values. Module cleanups. (Thies)
|
||
- Added ability to set timeout on socket read operations through
|
||
set_socket_timeout() function. (Andrei)
|
||
- Added implicit_flush INI directive (Zeev)
|
||
- Added implicit_flush() to control whether flush() should be called
|
||
implicitly after any output (Zeev)
|
||
- Fixed a crash in pfsockopen() (Zeev)
|
||
- Fixed a possible crash in phpinfo() (Zeev)
|
||
- Added register_argc_argv INI directive, to allow to selectively disable
|
||
the declaration of the $argv and $argc variables for increased
|
||
performance (Zeev)
|
||
- Added $HTTP_ENV_VARS[] and $HTTP_SERVER_VARS[] support, which similarly
|
||
to $HTTP_GET_VARS[], contain environment and server variables. Setting
|
||
register_globals to Off will now also prevent registration of the
|
||
environment and server variables into the global scope (Zeev)
|
||
- Renamed gpc_globals INI directive to register_globals (Zeev)
|
||
- Introduced variables_order that deprecates gpc_order, and allows control
|
||
over the server and environment variables, in addition to GET/POST/Cookies
|
||
(Zeev)
|
||
- new function cpdf_set_document_limits() (Uwe)
|
||
- Applied safe-mode patch to popen(). (Patch by Kristian K<>hntopp)
|
||
- str_repeat() now returns correct length. (Thies)
|
||
- Don't assume libz and libpng are installed for the GD checks (Rasmus)
|
||
- Implemented support for <boolean> and <null> types according
|
||
to WDDX version 1.0 (Andrei)
|
||
- Made var_dump()/serialize()/unserialize() NULL aware. (Thies)
|
||
- Added new NULL constant (Zeev, Zend Engine)
|
||
- Fixed -c support in the standalone CGI binary (Zeev)
|
||
- Increased PHP's performance by 5-15% using a new memory cache (Andi & Zeev,
|
||
Zend Engine)
|
||
- Improved the php.ini reader to support constants and bitwise operators (Zeev)
|
||
- Fixed strrev() to no longer modify arg1. (Thies)
|
||
- Fixed buffer overruns in iptcembed(). (Thies)
|
||
- Fixed a bug in ODBC error reporting (Zeev)
|
||
- Added PHP_Logo_GUID() and Zend_Logo_GUID() functions, that return the GUIDs
|
||
of the PHP and Zend logos used in phpinfo() (Zeev)
|
||
- Added GNU Pth support (Sascha, TSRM library)
|
||
- Removed select(), fd_set() and fd_isset() - will be reimplemented soon! (Thies)
|
||
- Improved Win32 performance significantly by using different mutexes (Zeev,
|
||
TSRM library)
|
||
- Made quotemeta() and preg_quote() binary-safe. (Andrei)
|
||
- Added UDP support in fsockopen(). (Evan)
|
||
- Added --disable-pear option (Andrei)
|
||
- Renamed libzend repository to Zend (Zeev)
|
||
- Added support for thttpd (Sascha)
|
||
- Added session.cache_limiter and cache_expire options (Sascha)
|
||
- Restored the PHP_VERSION and PHP_OS constants (Zeev)
|
||
- Added get_loaded_extensions(), extension_loaded(), and
|
||
get_extension_funcs() functions. (Andrei)
|
||
- Added date/time stamping to PHP error log file. (Andrei, Joey)
|
||
- Added is_subclass_of() function (Andrei, Zend Engine)
|
||
- Implemented count_chars(). (Thies)
|
||
- Added class_exists() function (Andrei, Zend Engine)
|
||
- Made strspn() and strcspn() binary-safe. (Andrei)
|
||
- Added array_multisort() function. (Andrei)
|
||
- Made pageinfo.c thread-safe (Sascha)
|
||
- Made implode() binary-safe (Andrei)
|
||
- Made strstr(), stristr(), and ucwords() binary-safe() (Andrei)
|
||
- Made strtoupper(), strtolower(), substr_replace() binary-safe. (Andrei)
|
||
- Fixed a crash in the Apache syntax highlighting mode (Zeev)
|
||
- Report all ODBC error's not just the one on the top of the stack (lurcher)
|
||
- OCI8 now returns NULL values in LONG columns correct. (Thies)
|
||
- Added support for a C-like assert() function. (Thies)
|
||
- Added CyberCash support. (Evan)
|
||
- Made explode() binary-safe. (Thies)
|
||
- Made strpos() binary-safe. (Thies)
|
||
- Added XML_Set_Object() function, now you can use the XML-Parser from
|
||
within an object. (Thies)
|
||
- Session vars are now decoded into $HTTP_STATE_VARS[] array and the
|
||
globals, depending on track_vars and gpc_globals settings (Andrei)
|
||
- Added get_used_files() function - returns a hash mapping the use()'d files
|
||
to their full path (Zeev)
|
||
- PHP 4 scripts will now obey the max_execution_time setting and actually
|
||
time out (Rasmus)
|
||
- Added configure command to phpinfo() output (Stig)
|
||
- Added optional socket path to the mysql_?connect() functions (Rasmus)
|
||
- Made mysql and gd work as shared extensions again (Stig)
|
||
- Make the global GET/POST/Cookie variables and their $HTTP_*_VARS[] counterparts
|
||
be references to each other (Zeev)
|
||
- Added support for the 'use' keyword - behaves like 'require', but will not
|
||
use the same file more than once (Andi & Zeev, Zend Engine)
|
||
- Added check to see if a persistent connection is still valid with the
|
||
ODBC interface before reusing (nick@easysoft.com)
|
||
- Added DBMaker support (patch by Pax Tsai <paxtsai@lion.syscom.com.tw>)
|
||
- Renamed "PECL" to "PEAR" (PHP Extension and Add-on Repository) (Stig)
|
||
- buildconf now uses build.mk (Stig)
|
||
- Disable symlinks to urls (Rasmus)
|
||
- Informix driver now reflects version of ESQL/C used (Danny)
|
||
- Modified session_register() to take variable number of arguments (Andrei)
|
||
- Fixed file descriptor leak in thread safe mode (Zeev, Zend Engine)
|
||
- Added select(), fd_set() and fd_isset() (Evan)
|
||
- cpdf support has been ported from php3, needs ClibPDF 2.x (Uwe)
|
||
- Fixed a leak when using automatic output buffering (Zeev)
|
||
- Introduced PECL - PHP Extension and Code Library
|
||
(prounounced "pickle") (Stig)
|
||
- Fixed inconsistencies in the implementation of here-docs (Andi & Zeev, Zend
|
||
library)
|
||
- Fixed a problem with constant class-member initializations (Andi & Zeev,
|
||
Zend Engine)
|
||
- Fixed float-compare in min(),max(),a[r]sort(),[r]sort() (Thies)
|
||
- Implemented get_html_translation_table() function (Thies)
|
||
- Implemented array_flip() function. Returns input-array with key, value
|
||
flipped (Thies)
|
||
- Added Berkeley DB3 support in DBA (Sascha)
|
||
- Implemented 2-Arg version of strtr($str,$translation_array). This can be used
|
||
to revert what htmlspecialchars() did (Thies)
|
||
- Fixed mem-overwrite in XML_Parse_Into_Struct (Thies)
|
||
- Added substr_replace() function (Andrei)
|
||
|
||
November 16 1999, Version 4.0 Beta 3
|
||
- ucfirst()/ucwords() no longer modify arg1 (Thies)
|
||
- Fixed strtr() not to modify arg1 (Thies)
|
||
- Added Win32 build files for Informix driver and make it
|
||
compile with ZTS (danny)
|
||
- Added tmpfile() function (Stig)
|
||
- Upgraded regex library to alpha3.8 (Sascha)
|
||
- Fixed selecting nested-tables in OCI8. (Thies)
|
||
- RFC-854 fix for internal FTP-Code. Commands have to end in "\r\n" (Thies)
|
||
- Fixed OpenLink ODBC support (Stig)
|
||
- min(),max(),a[r]sort(),[r]sort(),k[r]sort() now work consistent with the
|
||
language-core. (Thies)
|
||
- tempnam() now uses mkstemp() if available (Stig)
|
||
- serialize() and var_dump() now honor the precision as set in php.ini
|
||
for doubles. (Thies)
|
||
- Improved the Win32 COM module to support [out] parameters (Boris Wedl)
|
||
- Fixed garbage returned at the end of certain Sybase-Columns (Thies)
|
||
Patch submitted by: neal@wanlink.com
|
||
- Added Microsoft SQL Server module for Win32 (Frank)
|
||
- Added support for forcing a variable number of internal function arguments
|
||
by reference. (Andi & Zeev, Zend Engine)
|
||
- Implemented getprotoby{name,number} (Evan)
|
||
- Added array_pad() function. (Andrei)
|
||
- Added new getservby{name,port} functions. (Evan)
|
||
- Added session.cookie_path and session.cookie_domain (Sascha)
|
||
- Continue processing PHP_INI_SYSTEM knownDirectives after extension=
|
||
(Sam Ruby)
|
||
- Enable IBM DB2 support - Tested against DB2 6.1 UDB on Linux (Rasmus)
|
||
- Added new str_repeat() function. (Andrei)
|
||
- Output-Buffering system is now Thread-Safe. (Thies)
|
||
- implemented OCI8 $lob->WriteToFile() function - very useful for streaming
|
||
large amounts of LOB-Data without to need of a huge buffer. (Thies)
|
||
- Added session.use_cookies option (Sascha)
|
||
- Added getcwd() function. (Thies)
|
||
- XML_Parse_Into_Struct no longer eats data. (Thies)
|
||
- Fixed parse_url('-') crash. (Thies)
|
||
- added === operator support. (Andi & Thies, Zend Engine)
|
||
- unserialize() now gives a notice when passed invalid data. (Thies)
|
||
- Fixed shuffle() so that it no longer breaks on Solaris. (Andrei)
|
||
- Added is_resource(), is_bool() functions. (Thies)
|
||
- Cleaned up File-Module (Thies)
|
||
- Upgraded math-funtions to use new Zend function API (Thies)
|
||
- Fixed zombie problem in shell_exec() and $a = `some_command`
|
||
constructs. (Thies)
|
||
- Thies introduced ZEND_FETCH_RESOURCE2 (Danny).
|
||
- Added Informix driver to list of maintained extensions. (Danny).
|
||
- Informix driver : Changed ifx.ec to use the new high-performance
|
||
ZEND API. (Danny)
|
||
- IXF_LIBDIR environment variable specifies alternate Informix library
|
||
path for configure (Danny).
|
||
- Fixed gmmktime() so that the following should always be true:
|
||
gmmktime([args]) == mktime([args]) + date('Z', mktime([args])) (Jouni)
|
||
- setlocale doesn't anymore screw up things if you forgot to change it back
|
||
to the original settings. (Jouni)
|
||
- Switched to new system where ChangeLog is automagically updated from commit
|
||
messages. NEWS file is now the place for public announcements. (Andrei)
|
||
- Fixed refcount problem in XML module. (Thies)
|
||
- Fixed crash in HTTP_RAW_POST_DATA handling (Thies)
|
||
- You can use resources as array-indices again (Thies, Zend Engine)
|
||
- Fixed pg_fetch_array() with three arguments (Sascha)
|
||
Patch submitted by: brian@soda.berkeley.edu
|
||
- Upgraded a lot internal functions to use new Zend function API (Thies)
|
||
- fdf support ported; not completely tested with latest version 4.0 for
|
||
glibc (Uwe)
|
||
- OCI8 connections are now kept open as long as they are referenced (Thies)
|
||
- Cleaned up Directory-Module (Thies)
|
||
- Small fix in Ora_Close (Thies)
|
||
- Ported range() and shuffle() from PHP 3 to PHP 4 (Andrei)
|
||
- Fixed header("HTTP/..."); behaviour (Sascha)
|
||
- Improved UNIX build system. Now utilizes libtool (Sascha)
|
||
- Upgrade some more internal functions to use new Zend function API. (Thies,
|
||
Zend Engine)
|
||
- Fixed backwards incompatibility with ereg() (Thies)
|
||
- Updated Zend garbage collection with a much more thorough method.
|
||
(Andi, Zend Engine)
|
||
- Added the ability to use variable references in the array() construct.
|
||
For example, array("foo" => &$foo). (Andi, Zend Engine)
|
||
- Added array_reverse() function (Andrei)
|
||
- Some more XML fixes/cleanups (Thies)
|
||
- Updated preg_replace() so that if any argument passed in is an array
|
||
it will make a copy of each entry before converting it to string so that
|
||
the original is intact. If the subject is an array then it will preserve
|
||
the keys in the output as well (Andrei)
|
||
- Updated OCI8 to use the new high-performance Zend function API. (Thies)
|
||
- Configure speedup (Stig)
|
||
- Fixed LOB/Persistent-Connection related OCI8-Crash (Thies)
|
||
- Generalized server-API build procedure on UNIX (Stig)
|
||
- Added '--disable-rpath' option (Sascha)
|
||
- Added AOLserver SAPI module (Sascha)
|
||
- Fixed XML Callbacks. (Thies)
|
||
- Updated ODBC to use the new high-performance Zend function API (kara)
|
||
- Updated zlib to use the new high-performance Zend function API. (Stefan)
|
||
- Updated preg_split() to allow returning only non-empty pieces (Andrei)
|
||
- Updated PCRE to use the new high-performance Zend function API (Andrei)
|
||
- Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use
|
||
the new high-performance Zend function API (Sascha)
|
||
- Extended var_dump to handle resource type somewhat (Andrei)
|
||
- Updated WDDX to use the new high-performance Zend function API (Andrei)
|
||
- Updated XML to use the new high-performance Zend function API. (Thies)
|
||
- Updated Oracle to use the new high-performance Zend function API. (Thies)
|
||
- Improved the performance of the MySQL module significantly by using the new
|
||
high-performance Zend function API. (Zeev)
|
||
- Added support for the Easysoft ODBC-ODCB Bridge (martin@easysoft.com)
|
||
- Fixed bug in odbc_setoption, getParameter call incorrect (martin@easysoft.com)
|
||
- Ora_Fetch_Into now resets the returned array in all cases (Thies)
|
||
- Fixed NULL-Column problem in Oracle-Driver (Thies)
|
||
- Added extra metadata functions to ODBC, SQLTables etc (nick@easysoft.com)
|
||
- Fixed SEGV in mcal make_event_object() and
|
||
typo in mcal_list_alarms() (Andrew Skalski)
|
||
- Fixed Ora_PLogon (Thies)
|
||
- Resourcified Oracle (Thies)
|
||
- Implemented object serialization/deserialization in WDDX (Andrei)
|
||
- Added krsort() function (Thies)
|
||
- Added func_num_args(), func_get_arg() and func_get_args() for standard
|
||
access to variable number of arguments functions (Zeev)
|
||
- Added FTP support (Andrew Skalski)
|
||
- Added optional allowable_tags arguments to strip_tags(), gzgetss() and
|
||
fgetss() to allow you to specify a string of tags that are not to be
|
||
stripped (Rasmus)
|
||
- Upgraded var_dump() to take multiple arguments (Andrei)
|
||
- Resourcified XML (Thies)
|
||
- Fixed a memory leak in the Apache per-directory directives handler (Zeev)
|
||
- Added array_count_values() function. (Thies)
|
||
- snmp, pgsql, mysql and gd modules can be built as dynamically loaded
|
||
modules (Greg)
|
||
- OCI8 fix for fetching empty LOBs (Thies)
|
||
- Added user-level callbacks for session module (Sascha)
|
||
- Added support for unknown POST content types (Zeev)
|
||
- Added "wddx" serialization handler for session module (Sascha)
|
||
(automatically enabled, if you compile with --with-wddx)
|
||
- Fixed unserializing objects (Thies)
|
||
- PHP 4.0 now serializes Objects as 'O' (not understood by PHP 3.0), but
|
||
unserializes PHP 3.0 serialized objects as expected. (Thies)
|
||
- Made serialize/unserialize work on classes. If the class is known at
|
||
unserialize() time, you'll get back a fully working object! (Thies)
|
||
- Reworked preg_* functions according to the new PCRE API, which also made
|
||
them behave much more like Perl ones (Andrei)
|
||
- Made it possible to specify external location of PCRE library (Andrei)
|
||
- Updated bundled PCRE library to version 2.08 (Andrei)
|
||
- count()/is_array/is_object... speedups. (Thies)
|
||
- OCI8 supports appending and positioning when saving LOBs (Thies)
|
||
- Added metaphone support (Thies)
|
||
- OCI8 doesn't use define callbacks any longer. (Thies)
|
||
- OCI8 Driver now supports LOBs like PHP 3.0. (Thies)
|
||
- var_dump now dumps the properties of an object (Thies)
|
||
- Rewrote the GET/POST/Cookie data reader to support multi-dimensional
|
||
arrays! (Zeev)
|
||
- Renamed allow_builtin_links to expose_php (defaults to On). This directive
|
||
tells PHP whether it may expose its existence to the outside world, e.g.
|
||
by adding itself to the Web server header (Zeev)
|
||
- Added support for transparent session id propagation (Sascha)
|
||
- Made WDDX serialize object properties properly (Andrei)
|
||
- Fixed WDDX mem leak when undefined variable is passed in
|
||
for serialization (Andrei)
|
||
- Added session_unset() function (Andrei)
|
||
- Fixed double session globals shutdown crash (Andrei)
|
||
- Fixed crash related to ignore_user_abort ini entry (Andrei)
|
||
- Added support for external entropy sources for session id creation
|
||
(on Unices /dev/random and /dev/urandom) (Sascha)
|
||
- Added gpc_globals variable directive to php.ini. By default it is On, but
|
||
if it is set to Off, GET, POST and Cookie variables will not be inserted
|
||
to the global scope. Mostly makes sense when coupled with track_vars (Zeev)
|
||
- Added versioning support for shared library (Sascha)
|
||
This allows concurrent use of PHP 3.0 and PHP 4.0 as Apache modules. See
|
||
the end of the INSTALL file for more information.
|
||
- Added second parameter to array_keys which specifies search value
|
||
for which the key should be returned (Andrei)
|
||
- Resourcified Informix driver (Danny)
|
||
- New resource handling for odbc, renamed to php_odbc.[ch]
|
||
- Make set_time_limit() work on Unix (Rasmus)
|
||
- Added connection handling support (Rasmus)
|
||
- Improved the Sybase-CT module to make use of resources (Zeev)
|
||
- Improved the mSQL module to make use of resources (Zeev)
|
||
- Changed mysql_query() and mysql_db_query() to return false in case of saving
|
||
the result set data fails (Zeev)
|
||
- Improved the resource mechanism - resources were not getting freed as soon
|
||
as they could (Zeev)
|
||
- Added shared memory module for session data storage (Sascha)
|
||
- Fixed session.auto_start (Sascha)
|
||
- Fixed several problems with output buffering and HEAD requests (Zeev)
|
||
- Fixed HTTP Status code issue with ISAPI module (Zeev)
|
||
- Fixed a problem that prevented $GLOBALS from working properly (Zeev, Zend
|
||
library)
|
||
- Ported newest GetImageSize (Thies)
|
||
- Added session compile support in Win32 (Andi)
|
||
- Added -d switch to the CGI binary that allows overriding php.ini values
|
||
from the command line (Zeev)
|
||
- Fixed a crash that would occur if wddx_deserialize did not receive
|
||
a valid packet (Andrei)
|
||
- Fixed a bugglet when redefining a class at run-time (Andi, Zend Engine)
|
||
- Fixed sem_get() on AIX (Sascha)
|
||
- Fixed fopen() to work with URL's in Win32 (Andi & Zeev)
|
||
- Fixed include_path for Win32 (Andi, Zend Engine)
|
||
- Fixed bug in ISAPI header sending function (Charles)
|
||
- Fixed memory leak when using undefined values (Andi & Zeev, Zend Engine)
|
||
- Added output_buffering directive to php.ini, to enable output buffering
|
||
for all PHP scripts - default is off (Zeev).
|
||
- Fixed some more class inheritance issues (Zeev, Zend Engine)
|
||
- Fixed Apache build wrt to shared modules on FreeBSD/Linux (Sascha)
|
||
- Added session.extern_referer_chk which checks whether session ids were
|
||
referred to by an external site and eliminates them (Sascha)
|
||
- Improved session id generation (Sascha)
|
||
- Improved speed of uniqid() by using the combined LCG and removing
|
||
the extra usleep() (Sascha)
|
||
- Introduced general combined linear congruential generator (Sascha)
|
||
- Made ldap_close back into an alias for ldap_unbind (Andrei)
|
||
- OciFetchInto now resets the returned array in all cases (Thies)
|
||
- Fixed mysql_errno() to work with recent versions of MySQL (Zeev)
|
||
- Fixed a problem with define() and boolean values (Zeev)
|
||
- Fixed inclusion of gd/freetype functions (Sascha)
|
||
- Fixed persistency of MHASH_* constants (Sascha)
|
||
- Oracle is now ZTS-Safe (Thies)
|
||
- Fixed flushing of cached information to disk in DBA's DB2 module (Sascha)
|
||
- OCI8 is now ZTS-Safe (Thies)
|
||
- Fixed is_writeable/is_writable problem; they are both defined now (Andrei)
|
||
- Imported PHP 3.0 diskfreespace() function (Thies)
|
||
- Fixed thread-safety issues in the MySQL module (Zeev)
|
||
- Fixed thread-safe support for dynamic modules (Zeev)
|
||
- Fixed Sybase CT build process (Zeev)
|
||
|
||
August 9 1999, Version 4.0 Beta 2
|
||
- Fixed a problem when sending HTTP/1.x header lines using header() (Zeev)
|
||
- Win32 builds now include the ODBC module built-in (Zeev)
|
||
- Fixed SYSV-SHM interface (Thies).
|
||
- Updated hyperwave module, made it thread safe
|
||
- Updated pdflib module, version 0.6 of pdflib no longer supported
|
||
- Updated fdf module
|
||
- Built-in phpinfo() links are now turned off by default. They can be turned
|
||
on using the allow_builtin_links INI directive (Zeev)
|
||
- Changed phpinfo() to list modules that have no info function (Zeev)
|
||
- Modified array_walk() function so that the userland callback is passed
|
||
a key and possible user data in addition to the value (Andrei)
|
||
- Fixed ldap_search(), ldap_read() and ldap_list() (Zeev)
|
||
- Fixed Apache information in phpinfo() (sam@breakfree.com)
|
||
- Improved register_shutdown_function() - you may now supply arguments that
|
||
will be passed to the shutdown function (Zeev)
|
||
- Improved call_user_func() and call_user_method() - they now support passing
|
||
arguments by reference (Zeev)
|
||
- Fixed usort() and uksort() (Zeev)
|
||
- Fixed md5() in the Apache module (Thies)
|
||
- Introduced build process for dynamic modules (Stig)
|
||
- Improved ISAPI module to supprt large server variables (Zeev)
|
||
- Imported PHP 3.0 fixes for problem with PHP as a dynamic module and Redhat
|
||
libc2.1 in zlib module (Stefan)
|
||
- Fixed sybase_fetch_object() (Zeev)
|
||
- Made the IMAP module work with PHP 4.0 (Zeev)
|
||
- Fixed a problem with include()/require() of URLs (Sascha, Zeev)
|
||
- Fixed a bug in implode() that caused it to corrupt its arguments (Zeev)
|
||
- Added get_class($obj), get_parent_class($obj) and method_exists($obj,"name")
|
||
(Andi & Zeev)
|
||
- Fixed various inheritance problems (Andi & Zeev, Zend Engine)
|
||
- Children now inherit their parent's constructor, if they do not supply a
|
||
constructor of their own.
|
||
- Fixed runtime inheritance of classes (parent methods/properties were
|
||
overriding their children) (Zeev, Zend Engine)
|
||
- Fixed backwards incompatibility with the "new" operator (Andi, Zend Engine)
|
||
- Fixed bugs in uksort() and ksort() sort ordering (Andrei)
|
||
- Fixed a memory leak when using assignment-op operators with lvalue of type
|
||
string (Zeev, Zend Engine)
|
||
- Fixed a problem in inheritance from classes that are defined in include()d
|
||
files (Zeev, Zend Engine)
|
||
- Fixed a problem with the PHP error handler that could result in a crash
|
||
on certain operating systems (Zeev)
|
||
- Apache php_flag values only recognized 'On' (case sensitive) - changed
|
||
to case insensitive (Zeev)
|
||
- Fixed a memory leak with switch statement containing return statements
|
||
(Andi & Zeev, Zend Engine)
|
||
- Fixed a crash problem in switch statements that had a string offset
|
||
as a conditional (Andi & Zeev, Zend Engine)
|
||
- Imported PHP 3.0 fixes for rand() and mt_rand() (Rasmus)
|
||
- Added function entries for strip_tags() and similar_text() (Andrei)
|
||
- Fixed a bug in WDDX that would cause a crash if a number was passed in
|
||
instead of a variable name (Andrei)
|
||
- Ported strtotime() function from PHP 3.0 (Andrei)
|
||
- Merged in gdttf stuff from PHP 3.0 (Sascha)
|
||
- buildconf now checks your installation (Stig)
|
||
- XML module now built dynamically with --with-xml=shared (Stig)
|
||
- Added a check for freetype.h - fixed build on RedHat 6.0 (Zeev)
|
||
- Fixed array_walk() to work in PHP 4.0 (Andrei)
|
||
- Ported all remaining date() format options from PHP 3.0 (Andrei)
|
||
- $php_errormsg now works (Andrei)
|
||
- Added locale support for Perl Compatible Regexp functions (Andrei)
|
||
- Informix module ported (Danny)
|
||
- Removed --with-shared-apache (Sascha)
|
||
- Added patch for reverse lookup table in base64_decode (Sascha)
|
||
Submitted by bfranklin@dct.com
|
||
- Merged in PHP 3.0 version of str_replace (Sascha)
|
||
- Added DBA module (Sascha)
|
||
- Added session id detection within REQUEST_URI (Sascha)
|
||
- Merged in HP-UX/ANSI compatibility switch from PHP 3.0 (Sascha)
|
||
- Fixed rpath handling for utilitites built during Apache build (Sascha)
|
||
- Added missing E_ error level constants (Zeev, Zend Engine)
|
||
- Fixed a bug in sending multiple HTTP Cookies under Apache (Zeev)
|
||
- Fixed implicit connect on the MySQL, mSQL, PostgreSQL and Sybase
|
||
modules (Zeev)
|
||
- Gave PHP 4.0's SNMP extension all the functionality of PHP 3.0.12 (SteveL)
|
||
|
||
July 19 1999, Version 4.0 Beta 1
|
||
- First public beta of PHP 4.0
|