PHP

5.3.0

Released on 30 Jun 2009
Project description.
PHP is a popular general-purpose scripting language that is especially suited to web development
PHP 5.3.0 Changelog
  • Upgraded bundled PCRE to version 7.9. (Nuno)
  • Upgraded bundled sqlite to version 3.6.15. (Scott)
  • Moved extensions to PECL (Derick, Lukas, Pierre, Scott):
    • ext/dbase
    • ext/fbsql
    • ext/fdf
    • ext/ncurses
    • ext/mhash (BC layer is now entirely within ext/hash)
    • ext/ming
    • ext/msql
    • ext/sybase (not maintained anymore, sybase_ct has to be used instead)
  • Removed the experimental RPL (master/slave) functions from mysqli. (Andrey)
  • Removed zend.ze1_compatibility_mode. (Dmitry)
  • Removed all zend_extension_* php.ini directives. Zend extensions are now always loaded using zend_extension directive. (Derick)
  • Removed special treatment of "/tmp" in sessions for open_basedir. Note: This undocumented behaviour was introduced in 5.2.2. (Alexey)
  • Removed shebang line check from CGI sapi (checked by scanner). (Dmitry)
  • Changed PCRE, Reflection and SPL extensions to be always enabled. (Marcus)
  • Changed md5() to use improved implementation. (Solar Designer, Dmitry)
  • Changed HTTP stream wrapper to accept any code between and including 200 to 399 as successful. (Mike, Noah Fontes)
  • Changed __call() to be invoked on private/protected method access, similar to properties and __get(). (Andrei)
  • Changed dl() to be disabled by default. Enabled only when explicitly registered by the SAPI. Currently enabled with cli, cgi and embed SAPIs. (Dmitry)
  • Changed opendir(), dir() and scandir() to use default context when no context argument is passed. (Sara)
  • Changed open_basedir to allow tightening in runtime contexts. (Sara)
  • Changed PHP/Zend extensions to use flexible build IDs. (Stas)
  • Changed error level E_ERROR into E_WARNING in Soap extension methods parameter validation. (Felipe)
  • Changed openssl info to show the shared library version number. (Scott)
  • Changed floating point behaviour to consistently use double precision on all platforms and with all compilers. (Christian Seiler)
  • Changed round() to act more intuitively when rounding to a certain precision and round very large and very small exponents correctly. (Christian Seiler)
  • Changed session_start() to return false when session startup fails. (Jani)
  • Changed property_exists() to check the existence of a property independent of accessibility (like method_exists()). (Felipe)
  • Changed array_reduce() to allow mixed $initial (Christian Seiler)
  • Improved PHP syntax and semantics:
    • Added lambda functions and closures. (Christian Seiler, Dmitry)
    • Added "jump label" operator (limited "goto"). (Dmitry, Sara)
    • Added NOWDOC syntax. (Gwynne Raskind, Stas, Dmitry)
    • Added HEREDOC syntax with double quotes. (Lars Strojny, Felipe)
    • Added support for using static HEREDOCs to initialize static variables and class members or constants. (Matt)
    • Improved syntax highlighting and consistency for variables in double-quoted strings and literal text in HEREDOCs and backticks. (Matt)
    • Added "?:" operator. (Marcus)
    • Added support for namespaces. (Dmitry, Stas, Gregory, Marcus)
    • Added support for Late Static Binding. (Dmitry, Etienne Kneuss)
    • Added support for __callStatic() magic method. (Sara)
    • Added forward_static_call(_array) to complete LSB. (Mike Lively)
    • Added support for dynamic access of static members using $foo::myFunc(). (Etienne Kneuss)
    • Improved checks for callbacks. (Marcus)
    • Added __DIR__ constant. (Lars Strojny)
    • Added new error modes E_USER_DEPRECATED and E_DEPRECATED. E_DEPRECATED is used to inform about stuff being scheduled for removal in future PHP versions. (Lars Strojny, Felipe, Marcus)
    • Added "request_order" INI variable to control specifically $_REQUEST behavior. (Stas)
    • Added support for exception linking. (Marcus)
    • Added ability to handle exceptions in destructors. (Marcus)
  • Improved PHP runtime speed and memory usage:
    • Substitute global-scope, persistent constants with their values at compile time. (Matt)
    • Optimized ZEND_SIGNED_MULTIPLY_LONG(). (Matt)
    • Removed direct executor recursion. (Dmitry)
    • Use fastcall calling convention in executor on x86. (Dmitry)
    • Use IS_CV for direct access to $this variable. (Dmitry)
    • Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR). (Dmitry)
    • Lazy EG(active_symbol_table) initialization. (Dmitry)
    • Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not used. (Dmitry)
    • Replaced all flex based scanners with re2c based scanners. (Marcus, Nuno, Scott)
    • Added garbage collector. (David Wang, Dmitry).
    • Improved PHP binary size and startup speed with GCC4 visibility control. (Nuno)
    • Improved engine stack implementation for better performance and stability. (Dmitry)
    • Improved memory usage by moving constants to read only memory. (Dmitry, Pierre)
    • Changed exception handling. Now each op_array doesn't contain ZEND_HANDLE_EXCEPTION opcode in the end. (Dmitry)
    • Optimized require_once() and include_once() by eliminating fopen(3) on second usage. (Dmitry)
    • Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode. (Dmitry)
    • Optimized string searching for a single character. (Michal Dziemianko, Scott)
    • Optimized interpolated strings to use one less opcode. (Matt)
  • Improved php.ini handling: (Jani)
    • Added ".htaccess" style user-defined php.ini files support for CGI/FastCGI.
    • Added support for special [PATH=/opt/httpd/www.example.com/] and [HOST=www.example.com] sections. Directives set in these sections can not be overridden by user-defined ini-files or during runtime.
    • Added better error reporting for php.ini syntax errors.
    • Allowed using full path to load modules using "extension" directive.
    • Allowed "ini-variables" to be used almost everywhere ini php.ini files.
    • Allowed using alphanumeric/variable indexes in "array" ini options.
    • Added 3rd optional parameter to parse_ini_file() to specify the scanning mode of INI_SCANNER_NORMAL or INI_SCANNER_RAW. In raw mode option values and section values are treated as-is.
    • Fixed get_cfg_var() to be able to return "array" ini options.
    • Added optional parameter to ini_get_all() to only retrieve the current value. (Hannes)
  • Improved Windows support:
    • Update all libraries to their latest stable version. (Pierre, Rob, Liz, Garrett).
    • Added Windows support for stat(), touch(), filemtime(), filesize() and related functions. (Pierre)
    • Re-added socket_create_pair() for Windows in sockets extension. (Kalle)
    • Added inet_pton() and inet_ntop() also for Windows platforms. (Kalle, Pierre)
    • Added mcrypt_create_iv() for Windows platforms. (Pierre)
    • Added ACL Cache support on Windows. (Kanwaljeet Singla, Pierre, Venkat Raman Don)
    • Added constants based on Windows' GetVersionEx information. PHP_WINDOWS_VERSION_* and PHP_WINDOWS_NT_*. (Pierre)
    • Added support for ACL (is_writable, is_readable, reports now correct results) on Windows. (Pierre, Venkat Raman Don, Kanwaljeet Singla)
    • Added support for fnmatch() on Windows. (Pierre)
    • Added support for time_nanosleep() and time_sleep_until() on Windows. (Pierre)
    • Added support for symlink(), readlink(), linkinfo() and link() on Windows. They are available only when the running platform supports them. (Pierre)
    • the GMP extension now relies on MPIR instead of the GMP library. (Pierre)
    • Added Windows support for stream_socket_pair(). (Kalle)
    • Drop all external dependencies for the core features. (Pierre)
    • Drastically improve the build procedure (Pierre, Kalle, Rob):
      • VC9 (Visual C++ 2008) or later support
      • Initial experimental x64 support
    • MSI installer now supports all recent Windows versions, including Windows 7. (John, Kanwaljeet Singla)
  • Improved and cleaned CGI code:
    • FastCGI is now always enabled and cannot be disabled. See sapi/cgi/CHANGES for more details. (Dmitry)
    • Added CGI SAPI -T option which can be used to measure execution time of script repeated several times. (Dmitry)
  • Improved streams:
    • Fixed confusing error message on failure when no errors are logged. (Greg)
    • Added stream_supports_lock() function. (Benjamin Schulz)
    • Added context parameter for copy() function. (Sara)
    • Added "glob://" stream wrapper. (Marcus)
    • Added "params" as optional parameter for stream_context_create(). (Sara)
    • Added ability to use stream wrappers in include_path. (Gregory, Dmitry)
  • Improved DNS API
    • Added Windows support for dns_check_record(), dns_get_mx(), checkdnsrr() and getmxrr(). (Pierre)
    • Added support for old style DNS functions (supports OSX and FBSD). (Scott)
    • Added a new "entries" array in dns_check_record() containing the TXT elements. (Felipe, Pierre)
  • Improved hash extension:
    • Changed mhash to be a wrapper layer around the hash extension. (Scott)
    • Added hash_copy() function. (Tony)
    • Added sha224 hash algorithm to the hash extension. (Scott)
  • Improved IMAP support (Pierre):
    • Added imap_gc() to clear the imap cache
    • Added imap_utf8_to_mutf7() and imap_mutf7_to_utf8()
  • Improved mbstring extension:
    • Added "mbstring.http_output_conv_mimetypes" INI directive that allows common non-text types such as "application/xhtml+xml" to be converted by mb_output_handler(). (Moriyoshi)
  • Improved OCI8 extension (Chris Jones/Oracle Corp.):
    • Added Database Resident Connection Pooling (DRCP) and Fast Application Notification (FAN) support.
    • Added support for Oracle External Authentication (not supported on Windows).
    • Improve persistent connection handling of restarted DBs.
    • Added SQLT_AFC (aka CHAR datatype) support to oci_bind_by_name.
    • Fixed bug #45458 (Numeric keys for associative arrays are not handled properly)
    • Fixed bug #41069 (Segmentation fault with query over DB link).
    • Fixed define of SQLT_BDOUBLE and SQLT_BFLOAT constants with Oracle 10g ORACLE_HOME builds.
    • Changed default value of oci8.default_prefetch from 10 to 100.
    • Fixed PECL bug #16035 (OCI8: oci_connect without ORACLE_HOME defined causes segfault) (Chris Jones/Oracle Corp.)
    • Fixed PECL bug #15988 (OCI8: sqlnet.ora isn't read with older Oracle libraries) (Chris Jones/Oracle Corp.)
    • Fixed PECL bug #14268 (Allow "pecl install oci8" command to "autodetect" an Instant Client RPM install) (Chris Jones/Oracle Corp.)
    • Fixed PECL bug #12431 (OCI8 ping functionality is broken).
    • Allow building (e.g from PECL) the PHP 5.3-based OCI8 code with PHP 4.3.9 onwards.
    • Provide separate extensions for Oracle 11g and 10g on Windows. (Pierre, Chris)
  • Improved OpenSSL extension:
    • Added support for OpenSSL digest and cipher functions. (Dmitry)
    • Added access to internal values of DSA, RSA and DH keys. (Dmitry)
    • Fixed a memory leak on openssl_decrypt(). (Henrique)
    • Fixed segfault caused by openssl_pkey_new(). (Henrique)
    • Fixed bug caused by uninitilized variables in openssl_pkcs7_encrypt() and openssl_pkcs7_sign(). (Henrique)
    • Fixed error message in openssl_seal(). (Henrique)
  • Improved pcntl extension: (Arnaud)
    • Added pcntl_signal_dispatch().
    • Added pcntl_sigprocmask().
    • Added pcntl_sigwaitinfo().
    • Added pcntl_sigtimedwait().
  • Improved SOAP extension:
    • Added support for element names in context of XMLSchema's <any>. (Dmitry)
    • Added ability to use Traversable objects instead of plain arrays. (Joshua Reese, Dmitry)
    • Fixed possible crash bug caused by an uninitialized value. (Zdash Urf)
  • Improved SPL extension:
    • Added SPL to list of standard extensions that cannot be disabled. (Marcus)
    • Added ability to store associative information with objects in SplObjectStorage. (Marcus)
    • Added ArrayAccess support to SplObjectStorage. (Marcus)
    • Added SplDoublyLinkedList, SplStack, SplQueue classes. (Etienne)
    • Added FilesystemIterator. (Marcus)
    • Added GlobIterator. (Marcus)
    • Added SplHeap, SplMinHeap, SplMaxHeap, SplPriorityQueue classes. (Etienne)
    • Added new parameter $prepend to spl_autoload_register(). (Etienne)
    • Added SplFixedArray. (Etienne, Tony)
    • Added delaying exceptions in SPL's autoload mechanism. (Marcus)
    • Added RecursiveTreeIterator. (Arnaud, Marcus)
    • Added MultipleIterator. (Arnaud, Marcus, Johannes)
  • Improved Zend Engine:
    • Added "compact" handler for Zend MM storage. (Dmitry)
    • Added "+" and "*" specifiers to zend_parse_parameters(). (Andrei)
    • Added concept of "delayed early binding" that allows opcode caches to perform class declaration (early and/or run-time binding) in exactly the same order as vanilla PHP. (Dmitry)
  • Improved crypt() function: (Pierre)
    • Added Blowfish and extended DES support. (Using Blowfish implementation from Solar Designer).
    • Made crypt features portable by providing our own implementations for crypt_r and the algorithms which are used when OS does not provide them. PHP implementations are always used for Windows builds.
  • Deprecated session_register(), session_unregister() and session_is_registered(). (Hannes)
  • Deprecated define_syslog_variables(). (Kalle)
  • Deprecated ereg extension. (Felipe)
  • Added new extensions:
    • Added Enchant extension as a way to access spell checkers. (Pierre)
    • Added fileinfo extension as replacement for mime_magic extension. (Derick)
    • Added intl extension for Internationalization. (Ed B., Vladimir I., Dmitry L., Stanislav M., Vadim S., Kirti V.)
    • Added mysqlnd extension as replacement for libmysql for ext/mysql, mysqli and PDO_mysql. (Andrey, Johannes, Ulf)
    • Added phar extension for handling PHP Archives. (Greg, Marcus, Steph)
    • Added SQLite3 extension. (Scott)
  • Added new date/time functionality: (Derick)
    • date_parse_from_format(): Parse date/time strings according to a format.
    • date_create_from_format()/DateTime::createFromFormat(): Create a date/time object by parsing a date/time string according to a given format.
    • date_get_last_errors()/DateTime::getLastErrors(): Return a list of warnings and errors that were found while parsing a date/time string through:
      • strtotime() / new DateTime
      • date_create_from_format() / DateTime::createFromFormat()
      • date_parse_from_format().
    • support for abbreviation and offset based timezone specifiers for the 'e' format specifier, DateTime::__construct(), DateTime::getTimeZone() and DateTimeZone::getName().
    • support for selectively listing timezone identifiers by continent or country code through timezone_identifiers_list() / DateTimezone::listIdentifiers().
    • timezone_location_get() / DateTimezone::getLocation() for retrieving location information from timezones.
    • date_timestamp_set() / DateTime::setTimestamp() to set a Unix timestamp without invoking the date parser. (Scott, Derick)
    • date_timestamp_get() / DateTime::getTimestamp() to retrieve the Unix timestamp belonging to a date object.
    • two optional parameters to timezone_transitions_get() / DateTimeZone::getTranstions() to limit the range of transitions being returned.
    • support for "first/last day of <month>" style texts.
    • support for date/time strings returned by MS SQL.
    • support for serialization and unserialization of DateTime objects.
    • support for diffing date/times through date_diff() / DateTime::diff().
    • support for adding/subtracting weekdays with strtotime() and DateTime::modify().
    • DateInterval class to represent the difference between two date/times.
    • support for parsing ISO intervals for use with DateInterval.
    • date_add() / DateTime::add(), date_sub() / DateTime::sub() for applying an interval to an existing date/time.
    • proper support for "this week", "previous week"/"last week" and "next week" phrases so that they actually mean the week and not a seven day period around the current day.
    • support for "<xth> <weekday> of" and "last <weekday> of" phrases to be used with months - like in "last saturday of februari 2008".
    • support for "back of <hour>" and "front of <hour>" phrases that are used in Scotland.
    • DatePeriod class which supports iterating over a DateTime object applying DateInterval on each iteration, up to an end date or limited by maximum number of occurences.
  • Added compatibility mode in GD, imagerotate, image(filled)ellipse imagefilter, imageconvolution and imagecolormatch are now always enabled. (Pierre)
  • Added array_replace() and array_replace_recursive() functions. (Matt)
  • Added ReflectionProperty::setAccessible() method that allows non-public property's values to be read through ::getValue() and set through ::setValue(). (Derick, Sebastian)
  • Added msg_queue_exists() function to sysvmsg extension. (Benjamin Schulz)
  • Added Firebird specific attributes that can be set via PDO::setAttribute() to control formatting of date/timestamp columns: PDO::FB_ATTR_DATE_FORMAT, PDO::FB_ATTR_TIME_FORMAT and PDO::FB_ATTR_TIMESTAMP_FORMAT. (Lars W)
  • Added gmp_testbit() function. (Stas)
  • Added icon format support to getimagesize(). (Scott)
  • Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow setting network timeout (FR #42837). (Jani)
  • Added optional escape character parameter to fgetcsv(). (David Soria Parra)
  • Added an optional parameter to strstr() and stristr() for retrieval of either the part of haystack before or after first occurrence of needle. (Johannes, Felipe)
  • Added xsl->setProfiling() for profiling stylesheets. (Christian)
  • Added long-option feature to getopt() and made getopt() available also on win32 systems by adding a common getopt implementation into core. (David Soria Parra, Jani)
  • Added support for optional values, and = as separator, in getopt(). (Hannes)
  • Added lcfirst() function. (David C)
  • Added PREG_BAD_UTF8_OFFSET_ERROR constant. (Nuno)
  • Added native support for asinh(), acosh(), atanh(), log1p() and expm1(). (Kalle)
  • Added LIBXML_LOADED_VERSION constant (libxml2 version currently used). (Rob)
  • Added JSON_FORCE_OBJECT flag to json_encode(). (Scott, Richard Quadling)
  • Added timezone_version_get() to retrieve the version of the used timezone database. (Derick)
  • Added 'n' flag to fopen to allow passing O_NONBLOCK to the underlying open(2) system call. (Mikko)
  • Added "dechunk" filter which can decode HTTP responses with chunked transfer-encoding. HTTP streams use this filter automatically in case "Transfer-Encoding: chunked" header is present in response. It's possible to disable this behaviour using "http"=>array("auto_decode"=>0) in stream context. (Dmitry)
  • Added support for CP850 encoding in mbstring extension. (Denis Giffeler, Moriyoshi)
  • Added stream_cast() and stream_set_options() to user-space stream wrappers, allowing stream_select(), stream_set_blocking(), stream_set_timeout() and stream_set_write_buffer() to work with user-space stream wrappers. (Arnaud)
  • Added header_remove() function. (chsc at peytz dot dk, Arnaud)
  • Added stream_context_get_params() function. (Arnaud)
  • Added optional parameter "new" to sybase_connect(). (Timm)
  • Added parse_ini_string() function. (grange at lemonde dot fr, Arnaud)
  • Added str_getcsv() function. (Sara)
  • Added openssl_random_pseudo_bytes() function. (Scott)
  • Added ability to send user defined HTTP headers with SOAP request. (Brian J.France, Dmitry)
  • Added concatenation option to bz2.decompress stream filter. (Keisial at gmail dot com, Greg)
  • Added support for using compressed connections with PDO_mysql. (Johannes)
  • Added the ability for json_decode() to take a user specified depth. (Scott)
  • Added support for the mysql_stmt_next_result() function from libmysql. (Andrey)
  • Added function preg_filter() that does grep and replace in one go. (Marcus)
  • Added system independent realpath() implementation which caches intermediate directories in realpath-cache. (Dmitry)
  • Added optional clear_realpath_cache and filename parameters to clearstatcache(). (Jani, Arnaud)
  • Added litespeed SAPI module. (George Wang)
  • Added ext/hash support to ext/session's ID generator. (Sara)
  • Added quoted_printable_encode() function. (Tony)
  • Added stream_context_set_default() function. (Davey Shafik)
  • Added optional "is_xhtml" parameter to nl2br() which makes the function output <br> when false and <br /> when true (FR #34381). (Kalle)
  • Added PHP_MAXPATHLEN constant (maximum length of a path). (Pierre)
  • Added support for SSH via libssh2 in cURL. (Pierre)
  • Added support for gray levels PNG image with alpha in GD extension. (Pierre)
  • Added support for salsa hashing functions in HASH extension. (Scott)
  • Added DOMNode::getLineNo to get line number of parsed node. (Rob)
  • Added table info to PDO::getColumnMeta() with SQLite. (Martin Jansen, Scott)
  • Added mail logging functionality that allows logging of mail sent via mail() function. (Ilia)
  • Added json_last_error() to return any error information from json_decode(). (Scott)
  • Added gethostname() to return the current system host name. (Ilia)
  • Added shm_has_var() function. (Mike)
  • Added depth parameter to json_decode() to lower the nesting depth from the maximum if required. (Scott)
  • Added pixelation support in imagefilter(). (Takeshi Abe, Kalle)
  • Added SplObjectStorage::addAll/removeAll. (Etienne)
  • Implemented FR #41712 (curl progress callback: CURLOPT_PROGRESSFUNCTION). (sdteffen[at]gmail[dot].com, Pierre)
  • Implemented FR #47739 (Missing cURL option do disable IPv6). (Pierre)
  • Implemented FR #39637 (Missing cURL option CURLOPT_FTP_FILEMETHOD). (Pierre)
  • Fixed an issue with ReflectionProperty::setAccessible(). (Sebastian, Roman Borschel)
  • Fixed html_entity_decode() incorrectly converting numeric html entities to different characters with cp1251 and cp866. (Scott)
  • Fixed an issue in date() where a : was printed for the O modifier after a P modifier was used. (Derick)
  • Fixed exec() on Windows to not eat the first and last double quotes. (Scott)
  • Fixed readlink on Windows in thread safe SAPI (apache2.x etc.). (Pierre)
  • Fixed a bug causing miscalculations with the "last <weekday> of <n> month" relative time string. (Derick)
  • Fixed bug causing the algorithm parameter of mhash() to be modified. (Scott)
  • Fixed invalid calls to free when internal fileinfo magic file is used. (Scott)
  • Fixed memory leak inside wddx_add_vars() function. (Felipe)
  • Fixed check in recode extension to allow builing of recode and mysql extensions when using a recent libmysql. (Johannes)
  • Fixed PECL bug #12794 (PDOStatement->nextRowset() doesn't work). (Johannes)
  • Fixed PECL bug #12401 (Add support for ATTR_FETCH_TABLE_NAMES). (Johannes)
  • Fixed bug #48696 (ldap_read() segfaults with invalid parameters). (Felipe)
  • Fixed bug #48643 (String functions memory issue). (Dmitry)
  • Fixed bug #48641 (tmpfile() uses old parameter parsing). (crrodriguez at opensuse dot org)
  • Fixed bug #48624 (.user.ini never gets parsed). (Pierre)
  • Fixed bug #48620 (X-PHP-Originating-Script assumes no trailing CRLF in existing headers). (Ilia)
  • Fixed bug #48578 (Can't build 5.3 on FBSD 4.11). (Rasmus)
  • Fixed bug #48535 (file_exists returns false when impersonate is used). (Kanwaljeet Singla, Venkat Raman Don)
  • Fixed bug #48493 (spl_autoload_register() doesn't work correctly when prepending functions). (Scott)
  • Fixed bug #48215 (Calling a method with the same name as the parent class calls the constructor). (Scott)
  • Fixed bug #48200 (compile failure with mbstring.c when --enable-zend-multibyte is used). (Jani)
  • Fixed bug #48188 (Cannot execute a scrollable cursors twice with PDO_PGSQL). (Matteo)
  • Fixed bug #48185 (warning: value computed is not used in pdo_sqlite_stmt_get_col line 271). (Matteo)
  • Fixed bug #48087 (call_user_method() invalid free of arguments). (Felipe)
  • Fixed bug #48060 (pdo_pgsql - large objects are returned as empty). (Matteo)
  • Fixed bug #48034 (PHP crashes when script is 8192 (8KB) bytes long). (Dmitry)
  • Fixed bug #48004 (Error handler prevents creation of default object). (Dmitry)
  • Fixed bug #47880 (crashes in call_user_func_array()). (Dmitry)
  • Fixed bug #47856 (stristr() converts needle to lower-case). (Ilia)
  • Fixed bug #47851 (is_callable throws fatal error). (Dmitry)
  • Fixed bug #47816 (pcntl tests failing on NetBSD). (Matteo)
  • Fixed bug #47779 (Wrong value for SIG_UNBLOCK and SIG_SETMASK constants). (Matteo)
  • Fixed bug #47771 (Exception during object construction from arg call calls object's destructor). (Dmitry)
  • Fixed bug #47767 (include_once does not resolve windows symlinks or junctions) (Kanwaljeet Singla, Venkat Raman Don)
  • Fixed bug #47757 (rename JPG to JPEG in phpinfo). (Pierre)
  • Fixed bug #47745 (FILTER_VALIDATE_INT doesn't allow minimum integer). (Dmitry)
  • Fixed bug #47714 (autoloading classes inside exception_handler leads to crashes). (Dmitry)
  • Fixed bug #47671 (Cloning SplObjectStorage instances). (Etienne)
  • Fixed bug #47664 (get_class returns NULL instead of FALSE). (Dmitry)
  • Fixed bug #47662 (Support more than 127 subpatterns in preg_match). (Nuno)
  • Fixed bug #47596 (Bus error on parsing file). (Dmitry)
  • Fixed bug #47572 (Undefined constant causes segmentation fault). (Felipe)
  • Fixed bug #47560 (explode()'s limit parameter odd behaviour). (Matt)
  • Fixed bug #47549 (get_defined_constants() return array with broken array categories). (Ilia)
  • Fixed bug #47535 (Compilation failure in ps_fetch_from_1_to_8_bytes()). (Johannes)
  • Fixed bug #47534 (RecursiveDiteratoryIterator::getChildren ignoring CURRENT_AS_PATHNAME). (Etienne)
  • Fixed bug #47443 (metaphone('scratch') returns wrong result). (Felipe)
  • Fixed bug #47438 (mysql_fetch_field ignores zero offset). (Johannes)
  • Fixed bug #47398 (PDO_Firebird doesn't implements quoter correctly). (Felipe)
  • Fixed bug #47390 (odbc_fetch_into - BC in php 5.3.0). (Felipe)
  • Fixed bug #47359 (Use the expected unofficial mimetype for bmp files). (Scott)
  • Fixed bug #47343 (gc_collect_cycles causes a segfault when called within a destructor in one case). (Dmitry)
  • Fixed bug #47320 ($php_errormsg out of scope in functions). (Dmitry)
  • Fixed bug #47318 (UMR when trying to activate user config). (Pierre)
  • Fixed bug #47243 (OCI8: Crash at shutdown on Windows) (Chris Jones/Oracle Corp.)
  • Fixed bug #47231 (offsetGet error using incorrect offset). (Etienne)
  • Fixed bug #47229 (preg_quote() should escape the '-' char). (Nuno)
  • Fixed bug #47165 (Possible memory corruption when passing return value by reference). (Dmitry)
  • Fixed bug #47087 (Second parameter of mssql_fetch_array()). (Felipe)
  • Fixed bug #47085 (rename() returns true even if the file in PHAR does not exist). (Greg)
  • Fixed bug #47050 (mysqli_poll() modifies improper variables). (Johannes)
  • Fixed bug #47045 (SplObjectStorage instances compared with ==). (Etienne)
  • Fixed bug #47038 (Memory leak in include). (Dmitry)
  • Fixed bug #47031 (Fix constants in DualIterator example). (Etienne)
  • Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked"). (Dmitry)
  • Fixed bug #46994 (OCI8: CLOB size does not update when using CLOB IN OUT param in stored procedure) (Chris Jones/Oracle Corp.)
  • Fixed bug #46979 (use with non-compound name *has* effect). (Dmitry)
  • Fixed bug #46957 (The tokenizer returns deprecated values). (Felipe)
  • Fixed bug #46944 (UTF-8 characters outside the BMP aren't encoded correctly). (Scott)
  • Fixed bug #46897 (ob_flush() should fail to flush unerasable buffers). (David C.)
  • Fixed bug #46849 (Cloning DOMDocument doesn't clone the properties). (Rob)
  • Fixed bug #46847 (phpinfo() is missing some settings). (Hannes)
  • Fixed bug #46844 (php scripts or included files with first line starting with # have the 1st line missed from the output). (Ilia)
  • Fixed bug #46817 (tokenizer misses last single-line comment (PHP 5.3+, with re2c lexer)). (Matt, Shire)
  • Fixed bug #46811 (ini_set() doesn't return false on failure). (Hannes)
  • Fixed bug #46763 (mb_stristr() wrong output when needle does not exist). (Henrique M. Decaria)
  • Fixed bug #46755 (warning: use statement with non-compound name). (Dmitry)
  • Fixed bug #46746 (xmlrpc_decode_request outputs non-suppressable error when given bad data). (Ilia)
  • Fixed bug #46738 (Segfault when mb_detect_encoding() fails). (Scott)
  • Fixed bug #46731 (Missing validation for the options parameter of the imap_fetch_overview() function). (Ilia)
  • Fixed bug #46711 (cURL curl_setopt leaks memory in foreach loops). (magicaltux [at] php [dot] net)
  • Fixed bug #46701 (Creating associative array with long values in the key fails on 32bit linux). (Shire)
  • Fixed bug #46681 (mkdir() fails silently on PHP 5.3). (Hannes)
  • Fixed bug #46653 (can't extend mysqli). (Johannes)
  • Fixed bug #46646 (Restrict serialization on some internal classes like Closure and SplFileInfo using exceptions). (Etienne)
  • Fixed bug #46623 (OCI8: phpinfo doesn't show compile time ORACLE_HOME with phpize) (Chris Jones/Oracle Corp.)
  • Fixed bug #46578 (strip_tags() does not honor end-of-comment when it encounters a single quote). (Felipe)
  • Fixed bug #46546 (Segmentation fault when using declare statement with non-string value). (Felipe)
  • Fixed bug #46542 (Extending PDO class with a __call() function doesn't work as expected). (Johannes)
  • Fixed bug #46421 (SplFileInfo not correctly handling /). (Etienne)
  • Fixed bug #46347 (parse_ini_file() doesn't support * in keys). (Nuno)
  • Fixed bug #46268 (DateTime::modify() does not reset relative time values). (Derick)
  • Fixed bug #46241 (stacked error handlers, internal error handling in general). (Etienne)
  • Fixed bug #46238 (Segmentation fault on static call with empty string method). (Felipe)
  • Fixed bug #46192 (ArrayObject with objects as storage serialization). (Etienne)
  • Fixed bug #46185 (importNode changes the namespace of an XML element). (Rob)
  • Fixed bug #46178 (memory leak in ext/phar). (Greg)
  • Fixed bug #46160 (SPL - Memory leak when exception is thrown in offsetSet). (Felipe)
  • Fixed bug #46147 (after stream seek, appending stream filter reads incorrect data). (Greg)
  • Fixed bug #46127 (php_openssl_tcp_sockop_accept forgets to set context on accepted stream) (Mark Karpeles, Pierre)
  • Fixed bug #46115 (Memory leak when calling a method using Reflection). (Dmitry)
  • Fixed bug #46110 (XMLWriter - openmemory() and openuri() leak memory on multiple calls). (Ilia)
  • Fixed bug #46108 (DateTime - Memory leak when unserializing). (Felipe)
  • Fixed bug #46106 (Memory leaks when using global statement). (Dmitry)
  • Fixed bug #46099 (Xsltprocessor::setProfiling - memory leak). (Felipe, Rob).
  • Fixed bug #46087 (DOMXPath - segfault on destruction of a cloned object). (Ilia)
  • Fixed bug #46048 (SimpleXML top-level @attributes not part of iterator). (David C.)
  • Fixed bug #46044 (Mysqli - wrong error message). (Johannes)
  • Fixed bug #46042 (memory leaks with reflection of mb_convert_encoding()). (Ilia)
  • Fixed bug #46039 (ArrayObject iteration is slow). (Arnaud)
  • Fixed bug #46033 (Direct instantiation of SQLite3stmt and SQLite3result cause a segfault.) (Scott)
  • Fixed bug #45991 (Ini files with the UTF-8 BOM are treated as invalid). (Scott)
  • Fixed bug #45989 (json_decode() doesn't return NULL on certain invalid strings). (magicaltux, Scott)
  • Fixed bug #45976 (Moved SXE from SPL to SimpleXML). (Etienne)
  • Fixed bug #45928 (large scripts from stdin are stripped at 16K border). (Christian Schneider, Arnaud)
  • Fixed bug #45911 (Cannot disable ext/hash). (Arnaud)
  • Fixed bug #45907 (undefined reference to 'PHP_SHA512Init'). (Greg)
  • Fixed bug #45826 (custom ArrayObject serialization). (Etienne)
  • Fixed bug #45820 (Allow empty keys in ArrayObject). (Etienne)
  • Fixed bug #45791 (json_decode() doesn't convert 0e0 to a double). (Scott)
  • Fixed bug #45786 (FastCGI process exited unexpectedly). (Dmitry)
  • Fixed bug #45757 (FreeBSD4.11 build failure: failed include; stdint.h). (Hannes)
  • Fixed bug #45743 (property_exists fails to find static protected member in child class). (Felipe)
  • Fixed bug #45717 (Fileinfo/libmagic build fails, missing err.h and getopt.h). (Derick)
  • Fixed bug #45706 (Unserialization of classes derived from ArrayIterator fails). (Etienne, Dmitry)
  • Fixed bug #45696 (Not all DateTime methods allow method chaining). (Derick)
  • Fixed bug #45682 (Unable to var_dump(DateInterval)). (Derick)
  • Fixed bug #45447 (Filesystem time functions on Vista and server 2008). (Pierre)
  • Fixed bug #45432 (PDO: persistent connection leak). (Felipe)
  • Fixed bug #45392 (ob_start()/ob_end_clean() and memory_limit). (Ilia)
  • Fixed bug #45384 (parse_ini_file will result in parse error with no trailing newline). (Arnaud)
  • Fixed bug #45382 (timeout bug in stream_socket_enable_crypto). (vnegrier at optilian dot com, Ilia)
  • Fixed bug #45044 (relative paths not resolved correctly). (Dmitry)
  • Fixed bug #44861 (scrollable cursor don't work with pgsql). (Matteo)
  • Fixed bug #44842 (parse_ini_file keys that start/end with underscore). (Arnaud)
  • Fixed bug #44575 (parse_ini_file comment # line problems). (Arnaud)
  • Fixed bug #44409 (PDO::FETCH_SERIALIZE calls __construct()). (Matteo)
  • Fixed bug #44173 (PDO->query() parameter parsing/checking needs an update). (Matteo)
  • Fixed bug #44154 (pdo->errorInfo() always have three elements in the returned array). (David C.)
  • Fixed bug #44153 (pdo->errorCode() returns NULL when there are no errors). (David C.)
  • Fixed bug #44135 (PDO MySQL does not support CLIENT_FOUND_ROWS). (Johannes, chx1975 at gmail dot com)
  • Fixed bug #44100 (Inconsistent handling of static array declarations with duplicate keys). (Dmitry)
  • Fixed bug #43831 ($this gets mangled when extending PDO with persistent connection). (Felipe)
  • Fixed bug #43817 (opendir() fails on Windows directories with parent directory unaccessible). (Dmitry)
  • Fixed bug #43069 (SoapClient causes 505 HTTP Version not supported error message). (Dmitry)
  • Fixed bug #43008 (php://filter uris ignore url encoded filternames and can't handle slashes). (Arnaud)
  • Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped). (Scott, Edward Z. Yang)
  • Fixed bug #41874 (separate STDOUT and STDERR in exec functions). (Kanwaljeet Singla, Venkat Raman Don, Pierre)
  • Fixed bug #41534 (SoapClient over HTTPS fails to reestablish connection). (Dmitry)
  • Fixed bug #38802 (max_redirects and ignore_errors). (patch by datibbaw@php.net)
  • Fixed bug #35980 (touch() works on files but not on directories). (Pierre)