-
Added Enchant extension as a way to access spell checkers.
-
Added fileinfo extension as replacement for mime_magic extension.
-
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.
-
Added phar extension for handling PHP Archives.
-
Added SQLite3 extension.
-
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.
-
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.
-
Added array_replace() and array_replace_recursive() functions.
-
Added ReflectionProperty::setAccessible() method that allows non-public property's values to be read through ::getValue() and set through ::setValue().
-
Added msg_queue_exists() function to sysvmsg extension.
-
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.
-
Added gmp_testbit() function.
-
Added icon format support to getimagesize().
-
Added LDAP_OPT_NETWORK_TIMEOUT option for ldap_set_option() to allow setting network timeout (FR #42837).
-
Added optional escape character parameter to fgetcsv().
-
Added an optional parameter to strstr() and stristr() for retrieval of either the part of haystack before or after first occurrence of needle.
-
Added xsl->setProfiling() for profiling stylesheets.
-
Added long-option feature to getopt() and made getopt() available also on win32 systems by adding a common getopt implementation into core.
-
Added support for optional values, and = as separator, in getopt().
-
Added lcfirst() function.
-
Added PREG_BAD_UTF8_OFFSET_ERROR constant.
-
Added native support for asinh(), acosh(), atanh(), log1p() and expm1().
-
Added LIBXML_LOADED_VERSION constant (libxml2 version currently used).
-
Added JSON_FORCE_OBJECT flag to json_encode().
-
Added timezone_version_get() to retrieve the version of the used timezone database.
-
Added 'n' flag to fopen to allow passing O_NONBLOCK to the underlying open(2) system call.
-
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.
-
Added support for CP850 encoding in mbstring extension.
-
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.
-
Added header_remove() function.
chsc at peytz dot dk
Arnaud
-
Added stream_context_get_params() function.
-
Added optional parameter "new" to sybase_connect().
-
Added parse_ini_string() function.
grange at lemonde dot fr
Arnaud
-
Added str_getcsv() function.
-
Added openssl_random_pseudo_bytes() function.
-
Added ability to send user defined HTTP headers with SOAP request.
-
Added concatenation option to bz2.decompress stream filter.
Keisial at gmail dot com
Greg
-
Added support for using compressed connections with PDO_mysql.
-
Added the ability for json_decode() to take a user specified depth.
-
Added support for the mysql_stmt_next_result() function from libmysql.
-
Added function preg_filter() that does grep and replace in one go.
-
Added system independent realpath() implementation which caches intermediate directories in realpath-cache.
-
Added optional clear_realpath_cache and filename parameters to clearstatcache().
-
Added litespeed SAPI module.
-
Added ext/hash support to ext/session's ID generator.
-
Added quoted_printable_encode() function.
-
Added stream_context_set_default() function.
-
Added optional "is_xhtml" parameter to nl2br() which makes the function output <br> when false and <br /> when true (FR #34381).
-
Added PHP_MAXPATHLEN constant (maximum length of a path).
-
Added support for SSH via libssh2 in cURL.
-
Added support for gray levels PNG image with alpha in GD extension.
-
Added support for salsa hashing functions in HASH extension.
-
Added DOMNode::getLineNo to get line number of parsed node.
-
Added table info to PDO::getColumnMeta() with SQLite.
-
Added mail logging functionality that allows logging of mail sent via mail() function.
-
Added json_last_error() to return any error information from json_decode().
-
Added gethostname() to return the current system host name.
-
Added shm_has_var() function.
-
Added depth parameter to json_decode() to lower the nesting depth from the maximum if required.
-
Added pixelation support in imagefilter().
-
Added SplObjectStorage::addAll/removeAll.
-
Implemented FR
#41712 (curl progress callback: CURLOPT_PROGRESSFUNCTION).
sdteffen[at]gmail[dot].com
Pierre
-
Implemented FR
#47739 (Missing cURL option do disable IPv6).
-
Implemented FR
#39637 (Missing cURL option CURLOPT_FTP_FILEMETHOD).
-
Fixed an issue with ReflectionProperty::setAccessible().
-
Fixed html_entity_decode() incorrectly converting numeric html entities to different characters with cp1251 and cp866.
-
Fixed an issue in date() where a : was printed for the O modifier after a P modifier was used.
-
Fixed exec() on Windows to not eat the first and last double quotes.
-
Fixed readlink on Windows in thread safe SAPI (apache2.x etc.).
-
Fixed a bug causing miscalculations with the "last <weekday> of <n> month" relative time string.
-
Fixed bug causing the algorithm parameter of mhash() to be modified.
-
Fixed invalid calls to free when internal fileinfo magic file is used.
-
Fixed memory leak inside wddx_add_vars() function.
-
Fixed check in recode extension to allow builing of recode and mysql extensions when using a recent libmysql.
-
Fixed PECL bug
#12794 (PDOStatement->nextRowset() doesn't work).
-
Fixed PECL bug
#12401 (Add support for ATTR_FETCH_TABLE_NAMES).
-
Fixed bug
#48696 (ldap_read() segfaults with invalid parameters).
-
Fixed bug
#48643 (String functions memory issue).
-
Fixed bug
#48641 (tmpfile() uses old parameter parsing).
crrodriguez at opensuse dot org
-
Fixed bug
#48624 (.user.ini never gets parsed).
-
Fixed bug
#48620 (X-PHP-Originating-Script assumes no trailing CRLF in existing headers).
-
Fixed bug
#48578 (Can't build 5.3 on FBSD 4.11).
-
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).
-
Fixed bug
#48215 (Calling a method with the same name as the parent class calls the constructor).
-
Fixed bug
#48200 (compile failure with mbstring.c when --enable-zend-multibyte is used).
-
Fixed bug
#48188 (Cannot execute a scrollable cursors twice with PDO_PGSQL).
-
Fixed bug
#48185 (warning: value computed is not used in pdo_sqlite_stmt_get_col line 271).
-
Fixed bug
#48087 (call_user_method() invalid free of arguments).
-
Fixed bug
#48060 (pdo_pgsql - large objects are returned as empty).
-
Fixed bug
#48034 (PHP crashes when script is 8192 (8KB) bytes long).
-
Fixed bug
#48004 (Error handler prevents creation of default object).
-
Fixed bug
#47880 (crashes in call_user_func_array()).
-
Fixed bug
#47856 (stristr() converts needle to lower-case).
-
Fixed bug
#47851 (is_callable throws fatal error).
-
Fixed bug
#47816 (pcntl tests failing on NetBSD).
-
Fixed bug
#47779 (Wrong value for SIG_UNBLOCK and SIG_SETMASK constants).
-
Fixed bug
#47771 (Exception during object construction from arg call calls object's destructor).
-
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).
-
Fixed bug
#47745 (FILTER_VALIDATE_INT doesn't allow minimum integer).
-
Fixed bug
#47714 (autoloading classes inside exception_handler leads to crashes).
-
Fixed bug
#47671 (Cloning SplObjectStorage instances).
-
Fixed bug
#47664 (get_class returns NULL instead of FALSE).
-
Fixed bug
#47662 (Support more than 127 subpatterns in preg_match).
-
Fixed bug
#47596 (Bus error on parsing file).
-
Fixed bug
#47572 (Undefined constant causes segmentation fault).
-
Fixed bug
#47560 (explode()'s limit parameter odd behaviour).
-
Fixed bug
#47549 (get_defined_constants() return array with broken array categories).
-
Fixed bug
#47535 (Compilation failure in ps_fetch_from_1_to_8_bytes()).
-
Fixed bug
#47534 (RecursiveDiteratoryIterator::getChildren ignoring CURRENT_AS_PATHNAME).
-
Fixed bug
#47443 (metaphone('scratch') returns wrong result).
-
Fixed bug
#47438 (mysql_fetch_field ignores zero offset).
-
Fixed bug
#47398 (PDO_Firebird doesn't implements quoter correctly).
-
Fixed bug
#47390 (odbc_fetch_into - BC in php 5.3.0).
-
Fixed bug
#47359 (Use the expected unofficial mimetype for bmp files).
-
Fixed bug
#47343 (gc_collect_cycles causes a segfault when called within a destructor in one case).
-
Fixed bug
#47320 ($php_errormsg out of scope in functions).
-
Fixed bug
#47318 (UMR when trying to activate user config).
-
Fixed bug
#47243 (OCI8: Crash at shutdown on Windows) (Chris Jones/Oracle Corp.)
-
Fixed bug
#47231 (offsetGet error using incorrect offset).
-
Fixed bug
#47229 (preg_quote() should escape the '-' char).
-
Fixed bug
#47165 (Possible memory corruption when passing return value by reference).
-
Fixed bug
#47087 (Second parameter of mssql_fetch_array()).
-
Fixed bug
#47085 (rename() returns true even if the file in PHAR does not exist).
-
Fixed bug
#47050 (mysqli_poll() modifies improper variables).
-
Fixed bug
#47045 (SplObjectStorage instances compared with ==).
-
Fixed bug
#47038 (Memory leak in include).
-
Fixed bug
#47031 (Fix constants in DualIterator example).
-
Fixed bug
#47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked").
-
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).
-
Fixed bug
#46957 (The tokenizer returns deprecated values).
-
Fixed bug
#46944 (UTF-8 characters outside the BMP aren't encoded correctly).
-
Fixed bug
#46897 (ob_flush() should fail to flush unerasable buffers).
-
Fixed bug
#46849 (Cloning DOMDocument doesn't clone the properties).
-
Fixed bug
#46847 (phpinfo() is missing some settings).
-
Fixed bug
#46844 (php scripts or included files with first line starting with # have the 1st line missed from the output).
-
Fixed bug
#46817 (tokenizer misses last single-line comment (PHP 5.3+, with re2c lexer)).
-
Fixed bug
#46811 (ini_set() doesn't return false on failure).
-
Fixed bug
#46763 (mb_stristr() wrong output when needle does not exist).
-
Fixed bug
#46755 (warning: use statement with non-compound name).
-
Fixed bug
#46746 (xmlrpc_decode_request outputs non-suppressable error when given bad data).
-
Fixed bug
#46738 (Segfault when mb_detect_encoding() fails).
-
Fixed bug
#46731 (Missing validation for the options parameter of the imap_fetch_overview() function).
-
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).
-
Fixed bug
#46681 (mkdir() fails silently on PHP 5.3).
-
Fixed bug
#46653 (can't extend mysqli).
-
Fixed bug
#46646 (Restrict serialization on some internal classes like Closure and SplFileInfo using exceptions).
-
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).
-
Fixed bug
#46546 (Segmentation fault when using declare statement with non-string value).
-
Fixed bug
#46542 (Extending PDO class with a __call() function doesn't work as expected).
-
Fixed bug
#46421 (SplFileInfo not correctly handling /).
-
Fixed bug
#46347 (parse_ini_file() doesn't support * in keys).
-
Fixed bug
#46268 (DateTime::modify() does not reset relative time values).
-
Fixed bug
#46241 (stacked error handlers, internal error handling in general).
-
Fixed bug
#46238 (Segmentation fault on static call with empty string method).
-
Fixed bug
#46192 (ArrayObject with objects as storage serialization).
-
Fixed bug
#46185 (importNode changes the namespace of an XML element).
-
Fixed bug
#46178 (memory leak in ext/phar).
-
Fixed bug
#46160 (SPL - Memory leak when exception is thrown in offsetSet).
-
Fixed Bug #46147 (after stream seek, appending stream filter reads incorrect data).
-
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).
-
Fixed bug
#46110 (XMLWriter - openmemory() and openuri() leak memory on multiple calls).
-
Fixed bug
#46108 (DateTime - Memory leak when unserializing).
-
Fixed bug
#46106 (Memory leaks when using global statement).
-
Fixed bug
#46099 (Xsltprocessor::setProfiling - memory leak). (Felipe, Rob).
-
Fixed bug
#46087 (DOMXPath - segfault on destruction of a cloned object).
-
Fixed bug
#46048 (SimpleXML top-level @attributes not part of iterator).
-
Fixed bug
#46044 (Mysqli - wrong error message).
-
Fixed bug
#46042 (memory leaks with reflection of mb_convert_encoding()).
-
Fixed bug
#46039 (ArrayObject iteration is slow).
-
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).
-
Fixed bug
#45989 (json_decode() doesn't return NULL on certain invalid strings).
-
Fixed bug
#45976 (Moved SXE from SPL to SimpleXML).
-
Fixed bug
#45928 (large scripts from stdin are stripped at 16K border).
Christian Schneider
Arnaud
-
Fixed bug
#45911 (Cannot disable ext/hash).
-
Fixed bug
#45907 (undefined reference to 'PHP_SHA512Init').
-
Fixed bug
#45826 (custom ArrayObject serialization).
-
Fixed bug
#45820 (Allow empty keys in ArrayObject).
-
Fixed bug
#45791 (json_decode() doesn't convert 0e0 to a double).
-
Fixed bug
#45786 (FastCGI process exited unexpectedly).
-
Fixed bug
#45757 (FreeBSD4.11 build failure: failed include; stdint.h).
-
Fixed bug
#45743 (property_exists fails to find static protected member in child class).
-
Fixed bug
#45717 (Fileinfo/libmagic build fails, missing err.h and getopt.h).
-
Fixed bug
#45706 (Unserialization of classes derived from ArrayIterator fails).
-
Fixed bug
#45696 (Not all DateTime methods allow method chaining).
-
Fixed bug
#45682 (Unable to var_dump(DateInterval)).
-
Fixed bug
#45447 (Filesystem time functions on Vista and server 2008).
-
Fixed bug
#45432 (PDO: persistent connection leak).
-
Fixed bug
#45392 (ob_start()/ob_end_clean() and memory_limit).
-
Fixed bug
#45384 (parse_ini_file will result in parse error with no trailing newline).
-
Fixed bug
#45382 (timeout bug in stream_socket_enable_crypto).
vnegrier at optilian dot com
Ilia
-
Fixed bug
#45044 (relative paths not resolved correctly).
-
Fixed bug
#44861 (scrollable cursor don't work with pgsql).
-
Fixed bug
#44842 (parse_ini_file keys that start/end with underscore).
-
Fixed bug
#44575 (parse_ini_file comment # line problems).
-
Fixed bug
#44409 (PDO::FETCH_SERIALIZE calls __construct()).
-
Fixed bug
#44173 (PDO->query() parameter parsing/checking needs an update).
-
Fixed bug
#44154 (pdo->errorInfo() always have three elements in the returned array).
-
Fixed bug
#44153 (pdo->errorCode() returns NULL when there are no errors).
-
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).
-
Fixed bug
#43831 ($this gets mangled when extending PDO with persistent connection).
-
Fixed bug
#43817 (opendir() fails on Windows directories with parent directory unaccessible).
-
Fixed bug
#43069 (SoapClient causes 505 HTTP Version not supported error message).
-
Fixed bug
#43008 (php://filter uris ignore url encoded filternames and can't handle slashes).
-
Fixed bug
#42362 (HTTP status codes 204 and 304 should not be gzipped).
-
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).
-
Fixed bug
#38802 (max_redirects and ignore_errors).
patch by datibbaw@php.net
-
Fixed bug
#35980 (touch() works on files but not on directories).