diff options
author | Zeev Suraski <zeev@php.net> | 1999-04-07 21:05:13 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 1999-04-07 21:05:13 +0000 |
commit | aceaabceffd537a0ed83fa25e189b08eae585f4a (patch) | |
tree | bcef55f16a2ae57c1c883b34347f9e6906ca6dfe /ChangeLog | |
parent | d94f3e22ae6fe17d82b189dc362e975a906f919a (diff) | |
download | php-git-aceaabceffd537a0ed83fa25e189b08eae585f4a.tar.gz |
PHP 4.0
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 859 |
1 files changed, 859 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000000..76e826b96b --- /dev/null +++ b/ChangeLog @@ -0,0 +1,859 @@ +PHP 3.0 CHANGE LOG ChangeLog +||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +December 24 1998, Version 3.0.6 +- Fix GetImageSize() to work with non-standard jpg images +- Add Mersenne Twister functions (mt_rand, mt_srand, etc) +- Add str_replace() function +- Add chunk_split() function +- Fixed a bug in the memory limit code, in cases where $php_errormsg was + also used. +- Add iptcparse() function +- Adobe FDF supported +- getallheaders() NULL string fix <michale@utko.fee.vutbr.cz> +- Add all configuration directives to phpinfo() page +- Functions pack() and unpack() rewritten to be binary and buffer overrun + safe and behave like the Perl functions for all implemented format codes. +- Ensured that msql_error() will not return error messages generated by + previously-run scripts. +- Add base_convert() function +- Make sprintf() and printf() output binary safe +- Made gzgetc binary safe +- Add convert_cyr_string() and quoted_printable_decode() functions +- Fix ldap_free_result() core dump bug +- Add support for current OpenLDAP-2.0-devel library +- Add php3_asp_tags directive so it can be set from Apache config files +- Added UTF-8 support in the XML extension +- Make rand(min,max) safer on older platforms where the low-order bits have + short cycles. +- Added new pdf (Portable Document Format) module +- Added an XML parsing extension using James Clark's "expat" library +- Optimized parts of the token cache code. +- Terminate on out-of-memory errors. Until now, PHP could crash in out of + memory situations (clean-up, no real effect). +- Unterminated comments in include files were being reported with the wrong line + number. Fixed. +- Added ImageCopy() and ImageColorDeallocate(). ImageCopy() is about + 20% faster than ImageCopyResized(). ImageColorDeallocate() marks + palette entries free for reuse (by <mka@satama.com>). +- In the CGI version, it was impossible to access resources (e.g. SQL links, + images) from user-defined shutdown functions. Fixed. +- Added optional third parameter to strpos() to specify the offset to + start searching from. +- Fixed a crash bug in unset() when unsetting illegal variables (rare). +- Made ImageInterlace and ImageTransparentColor parameters optional, and made + them return the current/new settings. +- Optimized GetImageSize() <thies@digicol.de>. +- Made odbc_autocommit() without args return status +- Added connect workaround for OpenLink ODBC +- Added minimal InterBase support. Tested only on 4.0 & Linux. +- Fixed some memory leaks and bogus error messages in the URL handler of + the various file open functions. Should only affect error handling + in bad URLs. + +October 5 1998 Version 3.0.5 +- mysql_field_flags now reports all MySQL flags and the result is suitable + for automatic parsing. Compatibility warning: The result format has + changed. If you have scripts parsing the result of this function, you + may need to adapt them. +- Made nl2br() binary safe (not that it's of much use). +- Fixed a bug in the API function getThis(). It affected mostly the dir + functions, if nested within objects. +- Fixed a problem in require() in conjunction with switch(), and in some other + cases. Also fixed an identical problem with the call_user_function() API + function. +- Removed -lpthread when compiling with MySQL support. It caused various + serious problems when compiled into Apache. +- Add serialize() and unserialize() functions from jkl@njet.net +- Fix in_addr_t check for systems with in_addr_t in netinet/in.h +- Add atan2() function + +September 22 1998 Version 3.0.4 +- Added uksort() - array key sort using a user defined comparison function. +- Added 'j' support to date() - generates the day of the month, without + possible leading zeros. +- Added support for multiple crypt() encryptions if the system supports it +- Added optional support for ASP-style <% %> and <%= tags +- Fixed data loss problems with very large numeric array indices on 64-bit + platforms (e.g. DEC UNIX). +- 2 cursor_type parameters for ifx_query() and ifx_prepare changed + to 1 (bitmask). Added a few constants for use in Informix module. +- Added php3.ini option ifx.charasvarchar. If set, trailing blanks + are stripped from fixed-length char columns. (Makes life easier + for people using Informix SE.) +- Static SNMP module which compiles with ucd-snmp 3.5.2 +- fixed imap_header & header_info from crashing when a header line + is > 1024 characters. +- Added patch for rfc822_parse_adr to return an array of objects instead + of a single object. +- Informix Online 7.x & SE 7.x support now fairly complete and stable +- Add dbase_get_record_with_names() function +- Added a special case for open_basedir. When open_basedir is set to "." + the directory in which the script is stored will be used as basedir. +- Include alloca.c in the distribution for platforms without alloca(). +- Improved stripping of URL passwords from error messages - the length of the + username/password isn't obvious now, and all protocols are handled properly + (most importantly, http). +- Copying objects that had member functions with static variables produced + undetermined results. Fixed. +- Added function lstat() and cleaned up the status functions, + added tests for file status functions (this may break on some plattforms) +- Fixed is_link() - it was returning always false. +- Fixed apache_note() - it was corrupting memory. +- New Function. void get_meta_tags(string filename); Parses filename until + closing head tag and turns all meta tags into variables prefixed with 'meta_'. + The below meta tag would produce $meta_test="some string here" + <meta name="test" content="some string here"> +- Generalized some internal functions in order to better support calling + user-level functions from C code. Fixes a few sporadic problems related + to constructors inside eval() and more. +- Fixed an endless loop in explode(), strstr() and strpos() in case of an + invalid empty delimiter. +- rand() now accepts two optional arguments, which denote the requested range + of the generated number. E.g., rand(3,7) would generate a random number + between 3 and 7. +- Added M_PI constant. +- Added deg2rad() and rad2deg() for converting radians<->degrees. +- ImageArc() misbehaved when given negative angles, fixed. +- Fixed a bug in ereg() that may have caused buglets under some circumstances. +- Added imap_status +- Shutdown functions, registered via register_shutdown_function(), could never + generate output in the Apache module version. Fixed. +- Brought IMAP docs into sync with acutal imap code +- imap_fetchstructure now takes in optional flags +- Fix potential core dumps in imap_append and imap_fetchtext_full +- Fix problem in SetCookie() function related to long cookies +- Add uasort() function to go along with usort (like sort() and asort()) +- Add port number to Host header as per section 14.23 of the HTTP 1.1 RFC +- Fix imap_reopen to only take 2 arguments with an optional 3rd flags arg +- Add optional 2nd argument to imap_close +- Add CL_EXPUNGE flag to imap_open() flags +- Fix 4th arg on imap_append(). It was getting converted to a long by mistake. +- Fix shutdown warning in the LDAP module +- *COMPATIBILITY WARNING* imap_fetchstructure() "parametres" object and property + name changed to "parameters" to match the documentation and to be consistent + with the rest of the API. +- Delete uploaded temporary files automatically at the end of a request +- Add upload_max_filesize and correponsing php3_upload_max_filesize directive + to control the maximum size of an uploaded file. Setting this to 0 would + completely eliminate file uploads. +- Force $PHP_SELF to PATH_INFO value when running in CGI FORCE_CGI_REDIRECT mode +- Add apache_lookup_uri() function which does an internal sub-request lookup + and returns an object containing the request_rec fields for the URI. (Yes, + you have to be a bit of a gearhead to figure this one out) +- Fix a few signed char problems causing functions like ucfirst() not to work + correctly with non-English charsets +- md5() function not binary safe - fixed + +August 15 1998 Version 3.0.3 +- Changed the name of fopen_basedir to open_basedir, to be a little more + accurate about what it does. +- Added Hyperwave module +- Added config-option (php3_)enable_dl <on/off>. This enables/disables the + dl() function. In safe-mode dl() is always disabled. +- Auto-prepended files were crashing under some circumstances - fixed. +- Win32 mail fixes provided by walton@nordicdms.com +- Comparing between arrays and/or objects now generates a warning (it always + returns false, as it used to; no comparison is made) +- Fixed a bug in the syntax highlighting code, that made ending-double-quotes + appear twice under certain circumstances. +- Fix bug in filetype() function related to symlinks +- Started integrating Informix SE support to PHP configure/makefile setup. +- gdttf roundoff fixes from ellson@lucent.com +- Added initial Informix SE support files from Danny Heijl - This code still + needs to be integrated into the PHP configure/makefile setup and the code + itself needs more work. +- return in the global scope now terminates the execution of the current file. +- Added the ability to register shutdown function(s), via + register_shutdown_function($function_name). +- Clean up const warnings +- Add write support to ftp fopen wrappers +- Add strspn() and strcspn() functions +- On systems without strerror use Apache version if compiling as Apache module +- The PHP start tag was being ignored under some circumstances - fixed. +- The db, dbase and filepro functions are now Safe-Mode aware. +- Added config-option (php3_)fopen_basedir <path>. This limits the directory- + tree scripts can open files in to <path>. +- Fixed pg_loreadall that didn't always return all the contents in a PostgreSQL + large object. Also, doesn't pass through anything if method is HEAD. +- configure fix to create target Apache module dir +- Fix core dump in imageTTFtext() function +- Added static IMAP support +- Syntax highlighting was generating additional whitespace - fixed. +- Added ucwords. Works like ucfirst, but works on all words within a string. +- Added array_walk() - apply user function to every element of an array +- Added usort() - array sort that accepts a user defined comparison function! +- Added the ability to call user-level functions and object methods on demand + from the C source using a completely generalized, slick API function. + Miracles do happen every once in a while. +- Added constructors. Don't even squeek about destructors! :) (we mean that) +- Make pg_lowrite() binary safe +- Fixed mod_charset option in ./setup +- Fixed rewinddir() and dir()::rewind() under Win32 (they didn't work before). +- Add Win32 COM support! By-name referencing is supported using the IDispatch + interface (automation). Available functions - COM_Load(), COM_Invoke(), + COM_PropGet() and COM_PropSet(). + +July 20 1998 Version 3.0.2a +- Fix a quirk in the configuration file parser, the endless fountain of joy + and fun. +- Fix a bug in the API function add_method() that made dir() crash. + +July 18 1998 Version 3.0.2 +- Compile cleanups for *BSD +- Add support for the OpenLink ODBC Drivers +- Add PHP_SELF, PHP_AUTH_* and HTTP_*_VARS PHP variables to phpinfo() output +- Add workaround for broken makes +- Add Apache 1.3.1 support (some Apache header files were moved around) +- Added apache_note() function. +- Fix order of system libraries and detect libresolv correctly +- Fixed a bug in the Sybase-DB module. Several numeric field types were + getting truncated when having large values. +- Added testpages for unified odbc +- Fix php -s seg fault when filename was missing +- Made getdate() without args default to current time +- Added ImageColorResolve() and some fixes to the freetype support. +- Added strcasecmp() +- Added error_prepend_string and error_append_string .ini and .conf directives + to make it possible to configure the look of error messages displayed by PHP + to some extent +- Added E_ERROR, E_WARNING, E_NOTICE, E_PARSE and E_ALL constants, that can be + used in conjunction with error_reporting() + (e.g. error_reporting(E_ERROR|E_WARNING|E_NOTICE); +- Fixed a crash problem with classes that contained function(s) with default + values. +- Fixed a problem in the browscap module. Browscap files weren't being read + properly. +- Fix -L path in libphp3.module to make ApacheSSL compile without errors +- Fix StripSlashes so it correctly decodes a \0 to a NUL + +July 04 1998 Version 3.0.1 +- echo/print of empty strings don't trigger sending the header anymore. +- Implemented shift left and shift right operators (<< and >>) +- Compile fix for cc on HP-UX. +- Look for beta-version Solid libraries as well. +- Make GD module show more info in phpinfo(). +- Compile fix for NextStep 3.0. +- Fix for Oracle extension on OSF/1. +- Fix gd 1.3 bug in ImageColorAt(). +- pg_loread() hopefully handles binary data now. +- Turned off some warnings in dns.c +- Added ImageTTFBBox() and made ImageTTFText() return bounding box. +- Added constants for Ora_Bind()'s modes. +- Renamed all hash_*() routines to _php3_hash_*() to avoid clashes with other + libraries. +- Changed uodbc default LONG behaviour: longreadlen 4096 bytes, binmode 1. + The module now actually uses the php.ini settings. +- New PostgreSQL functions: pg_fetch_row(), pg_fetch_array() + and pg_fetch_object() +- Fix a segmentation fault when calling invalid functions in certain + circumstances +- Fix bug that caused link-related functions to not pay attention to + run-time safe mode setting (it was using whatever was set at compile time). +- Fix bug in exec() function when used in safe mode + +June 6 1998 Version 3.0 +- Add checkdnsrr function (check availability DNS records) +- Add getmxrr function (get MX hostnames and weights) +- Fixed bug in nl2br() function +- Fix for an RC5 related problem in the Sybase module, when dealing + with very long data types. +- Speed up string concatenation by roughly a factor of 2 +- Add escape-handling to date function +- Make base64 functions binary safe +- Add strrpos function to complement strpos function added in RC5 +- Add ltrim function (strips only at the start of string) +- Add rtrim as an alias to chop() for completeness sake +- Add trim function (similar to chop, except it strips at the start as well) +- Added 2 optional args to fsockopen function - errno and errstr +- Fixed bug in split() function related to leading matches +- Fixed problem in error_log() function (thanks to Jan Legenhausen) +- empty("0") was returning true - fixed +- Removed the old sybsql module. Use the new sybase_*() functions instead. +- Several fixes to the configuration file parser +- LDAP fixes - fixed return values on several functions + +May 23 1998 Version 3.0RC5 +- The BC math library functions now compile in by default. +- Fixed a bug in virtual() and other types of SSI's (e.g. <!--#exec). Under + certain circumstances, this used to result in random problems. +- Fixed a bug in virtual(). It was misbehaving if it was called before any + other output. +- Added mysql.default_port, mysql.default_host, mysql.default_user and + mysql.default_password ini-file directives. +- Improved handling of the MySQL default port. It now honors /etc/services + and $MYSQL_TCP_PORT. +- Fixed a crash in opening of broken ftp:// URLs, and improved error reporting + in opening of URLs. +- Fixed several non-critical scanner issues with syntax highlighting mode and + the <script language=php> tag. +- Fixed fseek on windows. (windows only): fseek will not return proper results + on files opened as text mode. PHP uses binary mode as the default for file + operations, but this can be overiden by fopen. Do not open files in text + mode and use fseek on them! +- Add strpos() function +- Added zlib module, requires zlib >= 1.0.9 +- Improved the module API implementation. Dynamic modules may now register + persistent resources (not that it makes much sense, but at least PHP + won't crash). The API itself remains unchanged. +- bcmod() wasn't always behaving like modulus should behave (it was behaving + exactly like GNU bc's % operator). Fixed. +- Changed the Sybase-DB module to always return strings, instead of auto-typing + result sets. This was done for consistency with the other database modules, + and in order to avoid overflows due to the platform-dependant limitations + of the numeric data types of PHP. You can turn compatability mode on using + the sybase.compatability_mode directive in the php3.ini file. +- Fixed problems with the TINYINT field in the Sybase-CT module. +- Applied some small speed optimizations to the Sybase-DB module querying code. +- Added 'numeric' and 'type' properties to the object returned by + sybase_fetch_field(). +- The 'new' operator doesn't accept all expressions anymore. Instead, it + accepts a class name, or a variable reference (scalar, array element, etc). +- Add ora_numcols() function +- Add ora_do() and ora_fetch_into() functions to Oracle driver +- Add persistent connection support to Oracle driver +- Make Oracle driver clean up open connections and open cursors automatically +- Added fread() and fwrite() that properly handle binary data. +- Add Ora_ColumnSize() to Oracle code +- The string "0" means FALSE again. This was done in order to maintain type + conversion consistency. +- Added solid_fetch_prev() for fetching the previous result row from Solid. +- Huge integers are now automatically converted to floating point numbers + (that have a wider range). +- Floating point numbers are now displayed using scientific notation when + they're extremely big or extremely small. The 'precision' php3.ini directive + no longer designates the number of decimal digits, but rather, the maximum + number of significant digits required. +- Added support for scientific notation for floating point numbers (e.g. 1E7) + throughout the entire language. +- Fixed a potential/probable memory corruption problem with HEAD request + handling. +- Using un-encapsulated strings now generates a NOTICE-level warning + (e.g. $a = foo; instead of $a = "foo";) +- Added defined("name") function to check if a certain constant is defined + or not. +- Support new Apache mechanism for setting SERVER_SUBVERSION +- Added PHP_OS and PHP_VERSION constants +- Added the ability to define constants in runtime! Constants are script-wide, + (there's no scope, once the constant is defined, it's valid everywhere). + Syntax is define("name", $value [, $case_insensitive]). 'name' can be any name + that is a valid variable name, *without* the $ prefix. 'value' can be + any *scalar* value. If the optional 'case_insensitive' parameter is 1, + then the constant is created case-insensitive (the default is case + sensitive). Note: define() is currently *NOT* supported in preprocessed + scripts. +- Added general support for constants. The Syslog constants (e.g. + LOG_ERR, LOG_CRIT, etc.) should be accessed as constants from now on (that + is, without a $ prefix). You can still set define_syslog_variables to On + in the php3.ini file if you want to define the various $ variables. The + default for this directive in the php3.ini-dist file has been changed to + Off. +- The configuration file path variable now expands . and .. into their + respective directories. You can obtain the path of the php3.ini file + that was used by printing get_cfg_var("cfg_file_path"). +- Fixed a crash-recovery parser crash ($a=7; $a[3]+=5;) +- Add gmmktime() function +- Fixed a crash with implode() and empty arrays. +- Fixed a bug that, under fairly rare circumstances, caused PHP not to + recognize if(), require() and other statements as statements, and + to complain about them as being unsupported functions. +- Beautified php3.ini-dist and added more comments to it. Also changed + the behavior of the configuration file parser to be brighter about + the various constants (TRUE/FALSE/ON/OFF etc). +- Fixed a bug in openlog() - the specified device name was being mangled. +- Memory leaks were sometimes reported erroneously - fixed. +- Improved the convertor to handle some quirks of the PHP/FI 2 parser with + comments. +- Fixed number_format() to properly handle negative numbers, and optimized it + a bit. +- Fixed static variables inside class member functions. Note that using such + static variables inside member functions usually defeats the purpose of + objects, so it is not recommended. +- Fixed a bug in fpassthru() (the file was being closed twice). +- Added strftime(). +- Add set_socket_blocking() function to control blocking on socket fd's +- The sendmail_path in php3.ini was being ignored - fixed. +- Fixed a bug with file upload, with files that contained the MIME boundary + inside them. +- Fixed a bug with form variables of type array, with spaces in their + index (e.g. name="foo[bar bar]"). +- gd-1.3 autodetect and support +- Year 2000 compliance is now togglable from the php3.ini file. Setting PHP + to be y2k compliant effects the way it creates cookies, and means it'll + NOT work with many browsers out there that are not y2k compliant! For + that reason, the default for this option is off. +- safe mode / fix from monti@vesatec.com +- Integrated the FreeType support in the GD extension. +- Added --with-gd=DIR and --without-gd options to configure + +April 18 1998 Version 3.0 Release Candidate 4 +- Auto-prepended and auto-appended files were reporting the wrong filename + in errors and in __FILE__ - fixed. +- Fix GPC problem related to mixed scalar and array vars with the same name +- Made putenv() Apache-safe. Environment variables may no longer leak in + between requests. +- The trailing semicolon is no longer required in class declarations. +- Fixed a memory leak in the (array) and (object) operators under certain + conditions. +- <script> tags weren't working unless short tags were enabled - Fixed. +- Fixed a bug in certain array indices that weren't treated as numbers + even though they looked like numbers (e.g. "10", "20"). +- Changes to support renamed API functions in Apache-1.3 +- Fixed the -p and -e command line switches +- Fix a segfault when calling command line version without parameters +- Fix for feof() when used on a socket +- Fix off-by-one error in fgets() when used on a socket +- Fix bug in ImageSetPixel() (Thanks to ecain@Phosphor.net) + +March 31 1998 Version 3.0 Release Candidate 3 +- Tiny bugfix for magic_quotes_sybase +- Fix Apache build problems introduced in RC2 +- $a["0"]==$a[0] fix +- Apache-1.3 build changes to support 100% automatic builds and shared library + module builds. See INSTALL file. + +March 30 1998 Version 3.0 Release Candidate 2 +- Changed the socket implementation under UNIX to not use FILE pointers, in + order to work around the buggy Solaris libc (and possibly buggy libc's + in other platforms). +- Fixed a bug in min() and max() with certain arrays. +- *WARNING* Move Apache 1.3 php3 file install to src/modules/php3 instead of + src/modules/extra. Make sure you change your AddModule line correctly + in your Apache Configuration file. This change is to take advantage of + new Apache-1.3 configuration mechanism which makes it easier to build an + Apache server with PHP automatically enabled. It will also help building + a shared library module version of PHP soon. +- Fixed a crash bug with auto-appended files. +- Made --enable-discard-path work on all Unix servers #!/path/php CGI scripts + should now work everywhere. I have tested on Apache, WN and Netscape 2.0 +- Made $a["123"] and $a[123] be identical. $a["0123"] is still different, + though. +- Added 'precision' ini directive, to set the number of decimal digits + displayed for floating point numbers (default - 6). +- Made integer/integer divisions evaluate to floating point numbers when + applicable (e.g., 5/2==2.5(float), but 4/2==2(int)) +- Get rid of reliance on tied streams and move all socket reads and writes + to recv/send calls +- Cleaned up head.c a bit and fixed CGI SetCookie order problem +- Changed default variable parsing order to Get-Cookie-Post (GPC) +- Fixed setup so it has all configure options and defaults. +- Added optional decimal point and thousands seperator to number_format() + e.g., number_format(1500,2,',','.') == 1.500,00 +- Fixed cgi bug in windows that prevented files from being parsed on many + systems and servers. + +March 23 1998 Version 3.0 Release Candidate +- Added support for the Raima database (ALPHA) +- Fixed a bug in persistent PostgreSQL links and the connection-string method. +- Added EXTENSION_STATUS file, that specifies the stability and status of + every module in the distribution. +- Added optional parameters to user functions with default values, variables + that are forced to be passed by reference and variables that can be + optionally passed by reference. The ini file directive + 'ignore_missing_userfunc_args' is no longer supported. +- Added fhttpd support (by Alex Belits) +- Improved performance by approximately 20-30%. +- Added mysql_error(), mysql_errno() (if available) and msql_error(). + Errors coming back from the database backend no longer issue warnings. + Instead, use these functions to retreive the error. +- Patched count(), each(), prev(), next(), reset() and end() to work around + the implementation side effects of unset(). As far as the users are + concerned, this should be transparent now (even though it's slower now, + until it's thoroughly fixed in 3.1). +- Added number_format(). number_format(2499,2)=='2,499.00'. +- error_reporting() now sets the error reporting level to the supplied + argument, without any interpretations. +- Fixed a lookahead parser bug that occured under rare circumstances. +- Change the comparison operators to compare numeric strings as numbers. If + you want to compare them as strings, you can use the new C-like strcmp() +- Fixed Ora_GetColumn() bug when fetching strings +- Added Ora_ColumnName() and Ora_ColumnType() +- Preliminary LONG and LONG RAW support in Oracle extension +- Add \123 and \xAB style octal and hex escapes to "" and `` strings +- Add "-c" command line flag for specifying path to php3.ini file +- Improved list() so that elements can be skipped, for example: + list($name,,,$realname) = explode(":",fgets($passwd_file)); +- Fixed a tiny bug in the hash initialization which caused excessive use of + memory. Report and fix by short@k332.feld.cvut.cz +- Fixed strtolower() and strtoupper() to work with 8-bit chars +- Fixed to compile and run on SunOS 4.1 +- Fixed a crash in soundex() of an empty string +- Fixed parse_str() - it wasn't always defining the right variables, + and didn't work with arrays. +- Made [m,My]SQL create/drop database functions return success status +- Fixed some memory leak/crash problems in the Adabas module +- Added each() in order to allow for easy and correct array traversing. +- Make Apache module version respect LOCALE setting +- Add support for Apache 1.3b6+ ap_config.h file +- Fixed a nasty corruption bug in eval() and show_source() that resulted in + script termination (e.g. eval("exit();"). +- Fixed a syntax highlighting problem with keywords used as variable + names. +- Fixed a possible crash and/or file descriptor leak +- Fixed line number being off by one in #! shell style execution +- Made it possible to disable auto_prepend/append with "none" filename +- Allow safe CGI calling through #!php style scripts + +March 2 1998 Version 3.0b6 +- Made [s]printf handle %ld +- Changed CGI version to only open regular files as input script +- Added ignore_missing_userfunc_args directive to suppress warnings messages + about missing arguments to user-defined functions +- Added Postgres function - pg_cmdtuples(), by Vladimir Litovka +- Disabled command line options if used as CGI +- Changed CGI version to use PATH_TRANSLATED as the script file name +- Link with solid shared library instead of static one +- Fixed a crash with functions that aren't being called correctly +- Fixed file descriptor leak in auto-prepend/append +- Imap module is usable. See README in dl/imap. + +February 24 1998 Version 3.0b5 +- Made the URL aware file functions be enabled by default +- Fixed an unlikely crash bug in the parser, with uninitialized array elements + which are refered to as objects. +- Fixed several fields that were being incorrectly read in Sybase CT. +- Fix Apache-1.3 related SIGHUP problem which was preventing php3.ini from + getting re-read on a SIGHUP +- *** WARNING *** Downwards incompatible change: The plus operator (+) is not + longer overloaded as concatenation for strings. Instead, it converts its + arguments to numbers and performs numeric addition. +- Add Stig and Tin's bdf2gdfont script to extra/gd directory +- Added join() as an alias to implode() +- Made implode() accept arguments in the order used by explode() as well +- Made $php_errormsg local in function calls +- Fixed Apache configuration directive bugs +- Added a number of .ini directives to Apache .conf directive list +- Fixed a 'memory leak' with strtok() +- echo/print now handle binary data correctly. +- NEW now accepts any expression for the class name argument. +- Add ImageDashedLine() GD function +- Add arg_separator .ini directive so the '&' GET method separator can be + changed to ';' for example. Corresponding php3_arg_separator Apache .conf + directive works as well. +- Walked around an implementation side effect of switch(). <? switch(expr) { ?> + now works. +- Added memory caching, resulting in a significant performance boost +- Added support for for(): .. endfor; loops +- Added a new predicate - empty($var). Returns true if $var is not set, + or is FALSE. Returns false otherwise. +- Added is_integer() (same as is_long()) and is_real() (same as is_double()). +- Added sizeof() as an alias to the count() function +- Added --enable-force-cgi-redirect, to prevent the CGI from working if + someone directly accesses PHP not through Apache's CGI redirect + (off by default). +- Fixed marking of deleted dBase records. Noticed by Simon Gornall + <simon@oyster.co.uk>. +- Fixed fixed "%%" bug in [s]printf +- Fixed a UMR (initialized memory read) in the Oracle code +- Potential fix for mysql-related SIGPIPE problem which caused httpd to spin +- Made PHP responsive to the Apache link status (stop executing if the link + dies). +- Fixed a crash bug with StrongHold and secure pages +- Fixed StrongHold installation +- Optimized the function call sequence a bit. +- Fixed Sybase/CT date/datetime/money fields work to correctly. +- Fixed Apache module startup problems - php3_module_startup should only be + called once. +- Fixed ord() with characters >127 +- Fixed bug in file_exists() function +- Fixed stripslashes() to remove the escaping quote (instead of backslash) + in case magic_quotes_sybase is true. +- Also make echo and print automatically remove trailing decimal zeros. +- Added htmlentities(), currently handling only ISO-8859-1 entities +- "0" is no longer considered false, the only string which is false is the + empty string "". +- Added 'true' and 'false' keywords +- Added 'xor' (logical exclusive or) +- Automatic conversion from double to string removes decimal trailing zeros. +- Added arsort() and rsort() to sort in descending order. +- Turned on "XLATOPT_NOCNV" by default for uODBC/Solid. +- Added support for a port number in the mysql_(p)connect() functions +- Fixed a file descriptor leak in the configuration parser. +- Fixed a few buglets with syntax highlighting with certain language keywords +- Added functions to control minimum severity level of Sybase messages to + display. +- Added highlight_string() - behaves like highlight_file(), only instead + of highlighting a file, it syntax highlights the contents of its + argument. +- Renamed show_source() to highlight_file(). show_source() is still + supported for downwards compatability. +- Fixed a bug in class inheritence - member functions with upper case + letters in their names couldn't be redefined. +- Made chown(), chgrp() and chmod() return TRUE/FALSE instead of 0/-1. + +February 02 1998 Version 3.0b4 +- Fixed a segfault bug in one of the unified ODBC error messages. +- Set default file modes to binary on Win32 (solved a lot of bs) +- Fixed file copy on Win32 +- MIME file uploads fixed on Win32 +- Added contributed icons by Colin Viebrock (undex extra/icons) +- Fixed the debugger enough to call it "beta code". +- Fixed some leaks in the Oracle module, tidied up the code a bit. +- Added __FILE__ and __LINE__ which evaluate to the currently parsed file + and currently parsed line respectively. +- Added ImageColorAt(), ImageColorSet(), ImageColorsForIndex(), and + ImageColorsTotal() to allow manipulating the palette of GIF images. +- Rename '--enable-url-includes' option to '--enable-url-fopen-wrapper' to + better describe what it does, and pay attention to the setting. +- Added optional parameter to the file(), readfile() and fopen() functions + to look for files located in the include path. +- Fixed bug that allowed the file() and readfile() to open files in the + include path inadvertantly. +- Fixed a (documented) bug in printf()/sprintf() with hard limited strings + and alignment (e.g. %-.20s). +- Optimized several quoted string routines. +- Added error_log ini directive to select where errors get logged when + log_errors is turned on or the error_log() function is used. +- Added the ability to direct errors to log files instead of or in addition + to the script output. Use the new display_errors and log_errors + php3.ini directives. +- Made environment variables uneraseable by POST/GET/Cookie variables. +- Fixed a bug in the elseif() construct. The expression was being evaluated + even if a previous if/elseif already evaluated to true and got executed. +- Fixed a bug in the exit code parameter of system() +- Tighten up all exec() related functions in safe mode +- Added error_log() function to log messages to the server error log, or + stderr for the CGI version. +- Added support for a general memory limit of scripts. +- Fixed a segfault bug that occured under certain circumstances with shell + escapes ($foo = `...`) +- Made keywords be valid property names of objects. +- Fixed a segfault bug when creating new objects of an unknown class. +- Fixed a problem with the maximum execution time limit, that may have + prevented this feature from working on certain platforms. +- PHP would now warn you with E_NOTICE about unknown escape characters, + e.g. "\f". It would still be considered as a backslash followed by f, + but the proper way of writing this is "\\f" or '\f'. +- Added support for ${...} inside encapsulated strings. Supported: ${foo}, + ${foo[bar]}, ${foo[0]}, ${$foo[$bar]}, ${$foo->bar} and ${$foo} +- Fixed a bug in automatic persistent link reconnect of the Sybase/DB module. + Thanks to Steve Willer for finding that 'stealth' bug! +- Fixed a crash bug in the GET/POST/Cookie parser in case of regular + and array variables with the same name. +- Added round() function. +- Can't use encapsed strings as variable names anymore, ie. $"blah blah". +- Fixed bug in gethostby*() functions that resulted in a core dump. + (Noticed by torben@coastnet.com.) +- Fixed bug in dbase_get_record that prevented number and date fields + from being properly decoded. (Thanks again to colins@infofind.com.) +- Make dbase_get_record include a 'deleted' field that indicates whether + that record had been marked for deletion. +- Fixed bug in dbase library that stomped on the deleted flag of the first + record in the file if it was set. (Thanks to colins@infofind.com.) +- Fixed putenv() to not report a memory leak and possibly prevent a bug + from that memory being freed. +- Added setlocale() +- Added pg_fieldisnull() (by Stephan Duehr) +- Changed pg_exec() to always return a result identifier on succees +- Solid linking fixes (tries to find the right library) +- Fixed a but with date() and the 'w' element. +- Tried to eliminate unimportant memory leak notifications. +- Made min() and max() backwards compatible and able to handle doubles. +- Add fgetc() function +- Fixed bug in getmyuid(), getmyinode() and getlastmod(). Thanks to + khim@sch57.msk.ru for pointing this out. +- Fixed http:// URL includes with no path specified send request for /. +- Added GetAllHeaders() (Apache-only) +- Added workaround that made the Image text functions 8-bit clean +- Made snmp internally compilable for Win32 (not the unix one though), + only adds 2k to binary size, so no reason not to have it there. +- Fixed ldap loading on Win32 +- Fixed MySQL Info function on Win32 platform +- Fixed compilation of syntax highlighting mode + +January 17 1998 Version 3.0b3 +- Added mysql support under windows ;) happy happy joy joy +- Fixed dbase.dll for Win32 to actualy load now. +- Enhanced the convertor to recognize ?> as a php-close-block as well. +- Fixed potential SetCookie() core dumps +- Changed print to be an expression instead of a statement. That means you can + now do stuff like foobar() or print("Unable to foobar!"). echo has NOT been + changed. +- Removed the flex optimization flags to reduce the size of the scanner +- Added memory leak logging into apache log files (apache module only) +- Fixed a nasty bug in one of the internal stacks. This may have caused + random crashes in several occassions. +- Fixed bug in ImageGif() making it hang sometimes +- Added ImageLoadFont(), ImageFontWidth() and ImageFontHeight() +- error_reporting() now returns the old error reporting level +- Fixed url includes/opens not working under Win32 +- Fixed errorneous handling of multipart/form-data input +- Added rawurlencode(), rawurldecode() and changed urlencode() and urldecode() + a bit too. +- Fixed a bug in [s]printf, sign was forgotten for doubles. +- Fixed a segfault bug in pg_fieldprtlen(), and made it accept field names + in addition to field offsets. +- Made the setup script a little more user-friendly. +- Added is_long(), is_double(), is_string(), is_array() and is_object() +- Fixed a bug in freeing of mSQL results. +- Improved pg_exec() to properly return true or false with queries that don't + return rows (i.e. insert, update, create, etc) +- Added get_cfg_var() to enable checking cfg file directives from within + a script. +- Fixed a bug with urlencode() and characters 0x80-0xff +- Changed the behaviour of ereg_replace to more intuitive. The + backslashes other than valid existing back references in the second + argument are no more evaluated as escape sequences. +- Fixed a bug in the configuration file loader and safe mode. +- Fixed a bug with configuration variables taken from the environment. +- Added <script language=php> </script> as PHP open/close tags, to allow + the use of editors such as Microsoft Frontpage. +- Fixed a bug in the default php3.ini directory - it wasn't defaulting to + /usr/local/lib properly. +- Added support for \r\n line endings +- Fixed a bug that may have prevented POST method variables from working + with certain scripts when using the CGI version. +- Convertor: Added support for single-quoted strings +- Fixed segfault bug in the Adabas module, with queries that don't return + rows (update, insert, etc). + +December 22 1997 Version 3.0b2 +- Changed variable type conversions that do not specify base to always use + base 10. "010" is no more 8, it is 10. Use intval ($x, 0) to get C-style + octal and hex numbers recognized. +- Fixed a possible segfault bug in several functions, when using the concat + operator and possibly other operators/functions. +- # is no longer accepted as a comment in php3.ini. Use ; instead. +- Added browscap support +- Configuration file directives are now case-sensitive +- Fixed msql_tablename() and msql_dbname() +- Added a PHP/FI 2.0 -> PHP 3.0 convertor +- Added support for shell/perl-style single quotes +- Added support for execution of external programs using backquotes ($a=`ls -l`) +- fixed mail() on windows, also fixed memory leaks in mail on windows +- added sendmail_from to handle return route on windows +- Changed the way the config file is searched. The file name is now + php3.ini (hardcoded), and it'll be looked for in: local directory, $PHPRC + and builtin path designated by ./configure under UNIX or Windows directory + under Windows. +- Fixed ereg_replace replacing empty matches and a one off buffer overflow +- Fixed File upload on windows platform +- Fixed a bug that caused 'HTTP/1.1 100 Continue' messages with + Internet Explorer 4.0 and certain scripts that receive POST variables +- Get/POST/Cookie data variables are from now *ALWAYS* strings. If you want + to use them in integer/real context, you must explicitly change their types. + This was done in order to avoid possible loss of data when doing these + conversions automatically. +- Variables named as keywords are now allowed (e.g. $function, $class, etc) +- Fixed a problem with msql() and mysql() with NULL fields +- Fixed a segfault bug with class declarations +- Fixed bugs with FOR loops and include() from within eval() +- Changed include() to be executed conditionally. PHP-3.0 efficient + unconditional include is now require() + +December 08 1997 Version 3.0b1 +- Switched to public beta test phase +- Generalized unset() and isset() to work on any type of variables, including + specific array indices or object properties (e.g., unset($a[4]) now works). +- Added support for object references inside encapsulated strings + (for example, 'echo "Username: $user->name"' now works) +- Added arbitary precision math support (basic operations with + unlimited range numbers, and support for unlimited decimal digits) +- Apache module can now handle preprocessed scripts (by using: + AddType application/x-httpd-php3-preprocessed .php3p + in the Apache configuration) +- Made settype() pass its first parameter by value. Improved it to be able + to convert to arrays and objects (originally by Steve Willer) +- Implemented CPU time limit on scripts when setitimer() is available +- Computed field names in the Sybase/CT and Sybase/DB modules are now named + computed, computed1, computed2, ... +- Added Sybase/CT client/server message handlers and updated the Sybase/DB ones +- Made the regexp function automatically take arguments by reference + when necessary +- Added builtin support for auto append and prepend in the parser level +- Improved the Sybase/CT sybase_query(). Should be more stable now, and + hopefully work with a wider range of queries. It's difficult to work + without docs, though, so it may still not be 100% right... +- Changed error messages to show error type, file and line with bold +- Added support for autoprepend and autoprepend +- Added some more warning flags if gcc is used + +December 03 1997 Version 3.0a4 +- Improved the internal functions API - no need to explicitly pass + parameters by reference to internal functions that specifically + require them, e.g. sort(), ksort(), reset(), count(), etc. + This is *STILL* downwards compatible with the previous alphas, + in the sense that you can explicitly pass the arguments by reference + if you want to. +- use srandom/random instead of srand/rand if available +- Added [m,My]sql_listfields() for downwards compatability +- -p now replaces .php3 extension with .php3p (otherwise it adds .php3p) +- Added C++ style comments (// comment) +- Fixed # commenting to terminate at a close PHP tag +- Added \0 back reference for full string match to *reg*_replace and + added backslash escaping to replace string +- Fixed a few bugs in the Sybase DB-library module. +- Added Sybase CT-library support. It should be considered experimental. + Syntax is identical to the one of the DB-library. Allows people to + connect to MS-SQL servers from Linux without having to pay for a + library! +- Beautified phpinfo() +- Add ImageColorClosest() and ImageColorExact() GD functions +- Make all .ini directives work as Apache .conf directives as well +- Added PHP2-like File() function with PHP3 URL support +- Upgraded the Sybase interface. It's practically MySQL compatible now! + Among other things, added sybase_fetch_array() and sybase_fetch_object(). +- Fixed problem in multi dimensional array handling and self modifying + operators (+=, -=, etc). +- Safe Mode file open implementation +- SVR3 portability problem fix + +November 23 1997 Version 3.0a3 +- Made the global statement behave like PHP 2 with undefined variables +- Added msql_fetch_object() and msql_fetch_array() +- Switched between the 1st and 2nd parameters to explode(), so that it acts + like split() +- Fixed passthru(), exec() and system() functions +- Implemented second optional parameter to intval() to specify conversion base + (The default is to assume you want to do a base 10 conversion.) +- Implemented SQL safe mode for MySQL +- Read UploadTmpDir from php3.ini instead of apache conf files +- Added mysql_fetch_object() and mysql_fetch_array() +- Changed function->old_function. function is now an alias to cfunction. +- Split the magic_quotes directive to get/post/data and other +- Added generic copy() function +- Added a $GLOBALS[] array, which contains all global variables +- Fix broken getimagesize() function +- Made mysql_fetch_field() and msql_fetch_field() optionally accept a 2nd argument +- Fixed mysql_data_seek() and msql_data_seek() +- Changed list assignment to list(...) and array init to array(...) +- Made <?php_track_vars?> work +- cgi when not in debug mode uses regular malloc(), free() functions now +- Added preliminary support for perl-style list assignments +- Fixed a bug in mysql_result() and msql_result() when specifying table +- renamed internal error-handling function and levels +- Added basename and dirname functions similar to sh counterparts +- Added base64_encode() and base64_decode() +- Support Basic authorization for http url includes +- Added parse_url() function to extract url components +- Made it possible to use anonymous ftp on URL includes +- Fixed url includes to handle different URLs better +- Fixed mysql_field*() functions +- Made mysql_connect() smarter, after a mysql_close() (applies to msql and pgsql too) + +November 6 1997 Version 3.0a2 +- Fixed a segfault bug caused by non-persistent connect in [m,My,Postgres]SQL modules +- Fix command line argument handling +- Made empty array list assignments work ($a=({});) +- Made '$' escaping optional when a variable name parsing isn't possible +- Added support for mysql_[p]connect(host) and mysql_[p]connect(host,user) +- New layout in phpinfo() +- Update Oracle extension to use php3_list functions +- Add includepath support +- Add #!php shell script escape support +- Change name of CGI/command line version from php3.cgi to php +- Add SNMP extension +- show_source() support +- Parsing of command-line args for CGI version +- Support for backreferences in ereg_replace +- Support for hexadecimal numbers directly at the scanner level +- Support octal numbers directly at the scanner level +- Fixed problem with huge html files (with little or no php code) +- Fix eval() empty string argument core dump +- renamed 'install' to 'setup' to be more accurate and avoid name conflict +- Fixed Oracle compilation +- Fixed mSQL 1.0 compilation +- Fixed a problem in the mSQL, MySQL and PostgresSQL drivers and NULL fields. +- Fixed the GLOBAL statement to be able to declare an array. + +October 29 1997 Version 3.0a1 +- Start with excellent new parser from Andi and Zeev |