PHP

4.2.0

Released on 22 Apr 2002
Project description.
PHP is a popular general-purpose scripting language that is especially suited to web development
PHP 4.2.0 Changelog
  • ATTENTION!! register_globals defaults to 'off' now !!!
  • Note: Apache2 support is EXPERIMENTAL.
  • Moved ext/mailparse to PECL. See http://thebrainroom.com/opensource/php/ for more information and to download the extension. (Wez/Jim)
  • Fixed pg_last_notice() crash. (Yasuo)
  • Modified the mysql extension to disable 'LOAD LOCAL' when safe mode is enabled. (Jason)
  • Fixed HTTP file upload support to handle big files better. (Jani)
  • Major modifications to the Sockets Extension and its API (Jason):
    • Fixed numerous bugs.
    • Added automatic host lookup capability to all functions that take addr's. example: socket_connect($sock, 'www.yahoo.com', 80);
    • Corrected and standardized host lookup errors
    • Modified socket_recv() behavior. [$r=socket_recv($sock, $buf, $len, $flags)]
    • Added socket_set_block() which changes a socket into blocking IO mode
    • Modified socket_last_error() to not clear the last error
    • Added socket_clear_error() which clears the last error on a socket
    • Removed all code pertaining to fd_sets (socket_fd_*)
    • Modified/Improved socket_select() to accept array of resources instead of fd_sets. example:
          <?php
      $wfds=$rfds=array($sock1, $sock2, $sock3, $sock7);
      $r=socket_select($rfds, $wfds, NULL, 1);
      print "Ready to read:\n"; var_dump($rfds);
      ?>
  • Fixed segfault in ibase_close() if user does not free the resultset. Bugs #15419, #15992. (daniela)
  • Fixed pg_last_notice() crash. (Yasuo)
  • Added optional 3rd parameter "int encoding_mode" to gzencode() and fixed parameters to conform documentation. (Stefan)
  • Changed read_exif_data() to be an alias of exif_read_data(). (Marcus)
  • Added exif_tagname() function which returns the names of tags and exif_thumbnail() function to extract embedded thumbnails. (Marcus)
  • Fixed iconv support with FreeBSD. (kalowsky)
  • Cleaned up the posix extension: (Markus)
    • Removed unwanted warning messages
    • Added posix_errno() and posix_strerror() for fetching error messages
    • Changed the way posix_getgrnam() and posix_getgrgid() return their values (breaks BC but makes more sense)
    • Does not include functions in symbol table which aren't supported on host system.
  • Added TIFF support for getimagesize() and read_exif_data(). (Marcus)
  • Changed the Velocis extension namespace to Birdstep to reflect new product name. Added aliases for BC. (James)
  • Added safe_mode checks for opendir(). (jflemer)
  • Changed the 2nd parameter in pgsql_fetch_*() functions to support NULL if all 3 parameters are supplied, but you do not want to provide a row number. (Derick)
  • Improved iconv() when using libc's iconv. (Yasuo)
  • Added PHP_SAPI constant which contains the name of running SAPI. (Edin)
  • Added ob_get_status() which returns an array of buffers with their status. (Yasuo)
  • Fixed a crash bug in ob_end_*() functions. ob_end_*() will not delete buffers that may not be deleted. (Yasuo)
  • Added 3rd parameter "bool erase" to ob_start(). If FALSE, the buffer may not be deleted until script finishes. (Yasuo)
  • Changed ob_*() functions to return TRUE for success, FALSE for failure. (Yasuo)
  • Added sybase_ct support to dbx module. (Marc)
  • Fixed error message handling with PostgreSQL 7.2. (Rui)
  • Added object aggregation capability, see aggregation_*() functions. (Andrei)
  • Added debug_zval_dump() which works similarly to var_dump, but displays extra internal information such as refcounts and true type names. (Jason)
  • Added Andrei's tokenizer extension. (Stig)
  • Fixed a bug in the COM extension which caused php to crash in php_COM_get_ids_of_names(). (Paul, Harald)
  • Removed ext/satellite. It is now part of PEAR. (eriksson)
  • Changed php.ini directive 'safe_mode_include_dir' to accept a (semi)colon separated path (like 'include_path') rather than a single directory. (jflemer)
  • Added is_a() function that can be used to test whether object is of a certain class or is derived from it. (Andrei, Zend Engine)
  • Added optional parameter to highlight_string() and highlight_file() which makes these functions to return a highlighted string instead of dumping it to standard output. (Derick)
  • Added EXTR_IF_EXISTS and EXTR_PREFIX_IF_EXISTS flags to extract(). (Rasmus)
  • Fixed a segfault in pg_pconnect(). If PostgreSQL server is restarted, broken connection is detected and reconnected. (Yasuo)
  • Fixed --enable-safe-mode configure option. (Yasuo)
  • Added function domxml_dump_node($doc,$node). Dumps a node plus all children into a string. (chregu)
  • Added function domxml_node_get_content(). (chregu)
  • Added function domxml_dump_file($filename,[$compression]). Dumps XML to a file and uses compression, if specified. (chregu)
  • Added exslt integration to domxml extension (http://exslt.org/ for details). Configure with --with-dom-exslt[=DIR] (and --with-dom-xslt). (chregu,jaroslaw)
  • Fixed session_unset() to not touch any globals if register_globals is off. (Thies)
  • Added 3 new optional parameters to OCIFetchStatement(). They control the number of rows to skip at the beginning of the cursor, the maximun numer of rows that should be fetched and the format of the returned array. (Thies)
  • Updated the XSLT extension to support Sablotron 0.8. (Petr Cimprich)
  • Fixed a bug in preg_match() and preg_match_all() when matching strings contain null bytes. (Andrei)
  • Added xpath_register_ns() function. This makes it possible to issue XPath queries with namespaces like for example: "//namespace:sampletag". (Chris Jarecki)
  • Added multi-byte enabled regular expression functions. (Rui)
  • Added optional second parameter to count() which can be used to specify either normal or recursive counting. (patch by Vlad Bosinceanu <glipy@fx.ro>)
  • Added mb_get_info() to get internal settings of mbstring. (Rui)
  • Added async query functions to PostgreSQL module. (Yasuo)
  • Added pg_copy_to()/pg_copy_from() for PostgreSQL module. (Youichi, Yasuo)
  • Added IPv6 support for FTP extension. (Stig Venaas)
  • Improved the speed of wordwrap() significantly. (Jim)
  • Fixed pow()'s incorrect behaviour when dealing with powers of 0. (Jim)
  • Added is_finite(), is_infinite() and is_nan(). (Jim)
  • Fixed segfault in wordwrap() when wrapping to zero width and using multi-character break or trying to force cut (bug #12768). (Jim)
  • Fixed several bugs in dbase extension (dbase_pack() truncate file to right size, fix #6852 #1 and #2). (Vlad)
  • Fixed bug in krsort() where an extra character was being compared. (Andi)
  • Fixed bug that made pspell include pspell.h from a wrong location. (Vlad)
  • Added function overload in mbstring to add multibyte support for string and mail functions. (Rui)
  • Added flags parameter to preg_grep(). The only flag currently is PREG_GREP_INVERT that will make the function return entries that did not match. (Andrei)
  • Fixed several crash bugs in the xslt extension. (Markus, Derick)
  • Fixed problem with dbase not returning very large (larger than long) integers properly. (Vlad)
  • Added concepts to IRCG: bailout-on-trivial issue, write output to files, fetch a resource upon connection end. (Sascha)
  • Fixed POST-related bugs in thttpd, added QUERY_STRING, HTTP_HOST, HTTP_ACCEPT_LANGUAGE to the script environment, improved patch to send correct MIME types, and added support for /nocache/. (Sascha)
  • Fixed several bugs and memleaks in the domxml extension. (Markus)
  • Added var_export() which outputs a representation of a variable as reusable PHP code. (Derick)
  • Added -w option to the CGI-version to strip all comments and whitespace from the script. (Thies)
  • Added support for SO_RCVTIMEO and SO_SNDTIMEO to ext/sockets. (Jason)
  • Added ob_get_level() which returns the nesting level of the output buffering mechanism. (Yasuo, Derick)
  • Added ob_flush() and ob_clean() functions which flush and clean an output buffer without destroying the buffer. (Derick)
  • Added new optional parameter to mysql_connect() which forces a new database link to be created. (Markus, Derick)
  • Added ldap_sort() function. (Stig Venaas)
  • Added md5_file() function which calculates the MD5 sum of a file. Patch by Alessandro Astarita <aleast@capri.it> (Derick)
  • Added support for parsing recordsets contained in WDDX packets. (Andrei)
  • Renamed key_exists() to array_key_exists(). (Derick)
  • Fixed ImageColorsForIndex() and ImageColorAt() to work for TrueColor images. (Rasmus)
  • Added support for bind_textdomain_codeset(). <rudib@email.si>
  • Added generic Win 32 API extension. (jmoore)
  • Removed warning message about NONEXISTENT character set from mysql_connect() when the server's default character set != latin1. (MySQL Team)
  • Added Direct I/O extension for lowlevel access to the POSIX layer. (Sterling)
  • Added SAPI module for the WebJames server on RISC OS. (Alex Waugh)
  • Fixed ldap_add() and ldap_modify() functions to throw a warning with illegal value arrays. Previously segfaulted or added wrong value. (Stig Venaas)
  • Added udm_check_charset() function into mnoGoSearch extension. (gluke)
  • Fixed mnoGoSearch extension to support mnogosearch-3.2.x. (gluke)
  • Made fbsql_num_rows() to return the correct value on all select statements. (Frank)
  • Added array_chunk() function which splits an array into chunks of specified size. (Andrei)
  • Fixed $HTTP_RAW_POST_DATA to be populated on a missing content-type when always_populate_raw_post_data is on. (Rasmus)
  • Added session_cache_expire() function. (patch by <anuradha@gnu.org>) (Andrei)
  • Added array_fill() function. (Rasmus)
  • Made Authorization header to be hidden from phpinfo() output in safe_mode. (Rasmus)
  • Re-instated safe-mode realm mangling. (Rasmus)
  • Fixed a bug in preg_replace() that would change the type of the replacement array entries to string. (Andrei)
  • Added user-space object overloading extension. (Andrei)
  • Added ldap_start_tls() function. (Stig Venaas, patch by <kuenne@rentec.com>)
  • Changed rand() and mt_rand() to be seed automatically if srand() or mt_srand() has not been called. (Sterling)
  • Changed the seed options to srand() and mt_srand() to be optional. If the seed is not specified the most random seed possible is generated. (Sterling)
  • Added array_change_key_case() function which returns an array with all string keys lowercased or uppercased. (Edin)
  • Added parameter to ircg_pconnect to suppress treating non-fatal errors as fatal, and added conversion of Windows quotes to &quot;. (Sascha)
  • Added pcntl_exec() function which behaves similar to the system execve. (Jason)
  • Fixed segfault and check for truecolor image in ImageColorAt(). (Rasmus)
  • Fixed nl2br() to handle all styles of line-endings in one string. (Boian, Derick)
  • Added mcrypt_generic_deinit() to replace mcrypt_generic_end(). (Derick)
  • Added apache_setenv() function for injecting variables into Apache's subprocess_env table. (Rasmus)
  • Added support for 'int', 'bool', 'float' and 'null' in settype(). (Jeroen)
  • Added IPv6 support to gethostbyaddr(). (Patch by Matthias Wimmer <matthias@charente.de> and venaas)
  • Fixed LONG_VARCHAR type crashing in ODBC extension. Patch by Walter Franzini. (kalowsky)
  • Changed in_array() and search_array() to allow the needle to be an array in itself. (Andrei)
  • Added ini_get_all() function which returns all registered ini entries or entries for the specified extension. (Jani)
  • Added support for chinese encodings in htmlentities() and htmlspecialchars(). (Patch by Alan Knowles <alan_k@hklc.com> and Wez)
  • Improved support for autoconf-2.50+/libtool 1.4b+. (Jan Kneschke, Sascha)