# public cataphract /php-src forked from php/php-src

### Subversion checkout URL

You can clone with HTTPS or Subversion.

Fetching contributors…

Cannot retrieve contributors at this time

file 1054 lines (1042 sloc) 58.661 kb
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 PHP 4.0 NEWS|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||05 Oct 2000, Version 4.0.3- Fixed dirname() under certain conditions (Andi)- Add --with-imap-ssl to support SSL'ized imap library in RH7 and others  (Rasmus)- Fix possible crash bug in parse_url() (Andi)- Added support for trans sid under Win32 (Daniel)- IPv6 support in fopen (Stig Venaas)- Added the shmop extension. It allows more general ways of shared memory  access. (thanks to Ilia Alshanestky and Slava Poliakov   (Derick)- Added the ability for CURLOPT_POSTFIELDS to accept an associative array of   HTTP POST variables and values. (Sterling)- Added the CURLOPT_HTTPHEADER option to curl_setopt(). (Sterling)- Add the curl_error() and curl_errno() functions. (Sterling)- Changed ext/db not to be enabled by default (Jani)- Fixed building Apache SAPI module on SCO UnixWare (Sascha)- Fixed writing empty session sets to shared memory (tcarroll@chc-chimes.com)- Added support for BSD/OS make (Sascha)- Added improved URL rewriter (Sascha)- Fixed readdir_r() use on Solaris (Sascha)- Improved HTTP headers for private-caching (jon@csh.rit.edu, Sascha)- Added new function session_cache_limiter (jon@csh.rit.edu, Sascha)- Added ftp_exec to the ftp functions (thanks to )  (Derick)- PEAR: add last executed query as debug info in DB errors (Stig)- PEAR: allow multiple modes in PEAR_Error (Stig)- Made the Sybase CT module thread safe (Zeev)- Added second argument to array_reverse() that indicatese whether  the original array keys should be preserved. (Andrei)- Clean up htmlspecialchars/htmlentities inconsistencies. (Rasmus)- PEAR: renamed DB_GETMODE_* to DB_FETCHMODE_*, added setFetchMode()  in DB_common to set the default mode, added some MySQL tests (Stig)- Made eval() and several other runtime-evaluated code portions report the  nature and location of errors more accurately (Stas)- Added an optional parameter to wordwrap that cuts a string if the length of a  word is longer than the maximum allowed. (Derick)- Added functions pg_put_line and pg_end_copy (Dirk Elmendorf)- Added second parameter for parse_str to save result (John Bafford)- Fix bug with curl places extra data in the output. (medvitz@medvitz.net)- Added the pathinfo() function. (Sterling)- Updated sybase_ct module and its sybase_query to use high performance API.  (Joey)- Added a more configurable error reporting interface to DB. (Stig)- Added is_uploaded_file() and move_uploaded_file() (Zeev)- Added several directives to php.ini - post_max_size, file_uploads,  display_startup_errors - see php.ini-dist for further information (Zeev)- Worked around a bug in the libc5 implementation of readdir() (Stas)- Fixed some potential OpenBSD and NetBSD crash bugs when opening files. (Andi)- 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ø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 (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 - 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 (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 officially dead. It didn't work in PHP 4.0.0  either, but now it's gone for good (Zeev)- Make convert_cyr_string() binary safe and stop it from corrupting other  PHP variables. (Andi)- Added functions array_unique, array_intersect and array_diff (Stig Venaas)- Fixed problem when using uninitialized values in comparisons with strings.  They behave as empty strings again just like in PHP 3.  (Andi & Zeev, Zend Engine)- Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei)- Fixed var_dump() not to modify the internal order of array elements (Zeev)- Fixed stripcslashes() to remove to strip \ in unknown escapes instead of  leaving it. (Andrei)- Changed WDDX to always serialize arrays as structs. (Andrei)- Fixed include_once() to issue a warning in case the supplied file name is  not found (Zeev, Zend Engine)- Fixed a bug in get_declared_classes() which could return the same class  multiple times under certain circumstances (Zeev, Zend Engine)- Fixed a bug in rawurldecode() that would cause in rawurldecode() corrupting  its argument (Zeev)- Parse errors (or other errors) in the php.ini files under Windows will no  longer mess up the HTTP headers in CGI mode and are now displayed in a  message box (Zeev)- Fixed a crash in OCIFetchStatement() when trying to read after all data  has already been read. (Thies)- fopen_wrappers() are now extensible via modules (Hartmut Holzgraefe)- Make trim strip \0 to match php 3 (Rasmus)- Added function imagecreatefromxbm(). (Jouni)- Added function imagewbmp(). (Jouni, based on patch from Rune Nordbøe  Skillingstad)- Added str_pad() for padding a string with an arbitrary string on left or  right. (Andrei)- Made the short_tags, asp_tags and allow_call_time_pass_reference INI  directives work on a per-directory basis as well, e.g. from .htaccess  files. (Zeev)- Added fflush() function. (Eric Huss)- Fixed a problem with static variables, default function arguments and class  member variables, that contained array values. (Andi & Zeev, Zend Engine)- Fixed virtual() when used with output buffering (Marc Pohl)- Clean up constants in flock() function and add optional 3rd arg which  is set to true on EWOULDBLOCK (Rasmus)- Added functions pg_loimport(), pg_loexport(). (Jouni)- Added SWF support to getimagesize() function (Derick Rethans)- Added support for both indexed and non-indexed arrays of file uploads  eg. name="file[]" type="file" (Rasmus)- Added create_function(), which gives the ability to create functions  on-the-fly (Zeev, Zend Engine)- Added support for comparisons of arrays (with arrays) and objects (with  objects); The equality operator (==) performs an unordered comparison,  whereas the identity operator (===) performs an ordered comparison (Zeev,  Zend Engine)- Allow all functions that receive user-defined function callbacks to accept  an array that contains an object and a method name, in place of a function  name, e.g. usort($array, array($obj, "ObjSort")) (Zeev, Zend Engine)- Added set_error_handler() to allow custom error handling functions,  instead of the built-in error handling code (Zeev, Zend Engine)- Renamed user_error() to trigger_error(); user_error() remains  defined for compatibility (Zeev, Zend Engine)- Fixed the global/static statements to require a trailing terminating  semi-colon ';'. (Andi, Zend Engine)- Cleaned up PCRE extension and made it binary-safe. (Andrei)- Added third argument to in_array(). If it's true, then in_array()  will use strict comparison instead of the default one. (Andrei)- Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev)- ignore_user_abort=Off is now default. (Thies)- Added array_merge_recursive() that will recursively merge values  under the same keys. (Andrei)- fixed crash in OCIParse when parsing invalid SQL. (Thies)- Fixed a bug in mysql_connect() that made it ignore the socket argument, in  case of non-persistent connects (Zeev)- Added disable_functions php.ini directive, to allow administrators to disable  certain functions for security reasons (Zeev)- Fixed sessions on Win32. When setting the directory depth parameter in  save_path you need to now delimit it with a ';' instead of ':', e.g  "5;/tmp" instead of "5:/tmp" (Andi)- Changed the Apache handler's return status to 'Declined' when a requested  PHP file could not be found. Returning 'Not Found' caused problems  in the ErrorDocument handler stage in that $REDIRECT_REDIRECT_ERROR_NOTES was not getting set at all. Moving to 'Declined' should fix this and I can't see any other side effects. (Rasmus)- Fixed scanning decimal numbers in internationalized environments. They should always be in standard US format e.g. 23.3. (Andi, Zend Engine)- Added second argument to preg_quote() which allows quoting of one additional character, usually the regex delimiter. (Andrei)- Uncommitted outstanding OCI8 transactions are now rolled back before the connection is closed. (Thies)- ignore_user_abort() & friends should now work in CGI mode as well. (Patch by daniel.braun@ercom.fr)- Added extension YAZ (dickmeiss).- Fixed a crash bug triggered by certain cases of class redeclarations (Stas & Zeev, Zend Engine)- Fixed min()/max() segfault. (Andrei)- New module for reading EXIF header data from JPEG files. Most digital cameras will embed all sorts of information about a picture inside the jpeg images it generates. (Rasmus)- Fixed basename() bug where "file.ext///" would not return the same as "/path/file.ext///" (Rasmus)- Added the swf_ortho function. (Sterling)- Moved to virtual current working directory support. This highly improves the functionality and stability of multi-threaded versions of PHP (Andi, Sascha)22 May 2000, Version 4.0.0 Release- Allow the writing of flash files to stdout.- Fixed a crash bug in .phps syntax-highlighted files (Andi)- Improved round() to allow specification of rounding precision. (Andrei, Todd Kirby )- 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  . (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  . 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 (Andrei)- Added ftruncate() and fstat(), courtesy of Faisal Nasim (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 )- 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 - 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 - 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 and 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 )- 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
Something went wrong with that request. Please try again.