5.3 has reached end-of-life and will no longer receive
bugfixes or security patches from the PHP Project. Some downstream distributions may still continue to provide
backported fixes for a time, depending on their support policy.
Fixed bug #62146 com_dotnet cannot be built shared.
core
Fixed CVE-2012-2143.
Fixed missing bound check in iptcparse().
Fixed bug #62373 (serialize() generates wrong reference to the object).
Fixed bug #62005 (unexpected behavior when incrementally assigning to a member of a null object).
Fixed bug #61991 (long overflow in realpath_cache_get()).
Fixed bug #61764 ('I' unpacks n as signed if n > 2^31-1 on LP64).
Fixed bug #61730 (Segfault from array_walk modifying an array passed by reference).
Fixed bug #61713 (Logic error in charset detection for htmlentities).
Fixed bug #54197 ([PATH=] sections incompatibility with user_ini.filename set to null).
Changed php://fd to be available only for CLI.
fileinfo
Fixed bug #61812 (Uninitialised value used in libmagic).
iconv extension
Fixed a bug that iconv extension fails to link to the correct library when another extension makes use of a library that links to the iconv library. See https://bugs.gentoo.org/show_bug.cgi?id=364139 for detail.
intl
Fixed bug #62082 (Memory corruption in internal function get_icu_disp_value_src_php()).
Fixed memory leak when calling SplFileInfo's constructor twice.
Fixed bug #61418 (Segmentation fault when DirectoryIterator's or FilesystemIterator's iterators are requested more than once without having had its dtor callback called in between).
Fixed bug #61347 (inconsistent isset behavior of Arrayobject).
Fixed bug #60860 (session.save_handler=user without defined function core dumps).
Fixed bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()).
streams
Fixed bug #61371 (stream_context_create() causes memory leaks on use streams_socket_create).
Fixed bug #61253 (Wrappers opened with errors concurrency problem on ZTS).
Fixed bug #61115 (stream related segfault on fatal error in php_stream_context_link).
Fixed bug #60817 (stream_get_line() reads from stream even when there is already sufficient data buffered). stream_get_line() now behaves more like fgets(), as is documented.
Further fix for bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read).
Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths).
Fixed bug #55526 (Heartbeat causes a lot of unnecessary events).
Fixed bug #55486 (status show BIG processes number).
Enhanced security by limiting access to user defined extensions. FR #55181.
Added process.max to control the number of process FPM can fork. FR #55166.
Implemented FR #54577 (Enhanced status page with full status and details about each processes. Also provide a web page (status.html) for real-time FPM status.
Lowered default value for Process Manager. FR #54098.
Implemented FR #52569 (Add the "ondemand" process-manager to allow zero children).
Added partial syslog support (on error_log only). FR #52052.
postgres
Fixed bug #60244 (pg_fetch_* functions do not validate that row param is >0).
reflection
Fixed bug #60367 (Reflection and Late Static Binding).
session
Fixed bug #55267 (session_regenerate_id fails after header sent).
simplexml
Reverted the SimpleXML->query() behaviour to returning empty arrays instead of false when no nodes are found as it was since 5.3.3 (bug #48601).
SOAP
Fixed bug #54911 (Access to a undefined member in inherit SoapClient may cause Segmentation Fault).
Fixed bug #48216 (PHP Fatal error: SOAP-ERROR: Parsing WSDL: Extra content at the end of the doc, when server uses chunked transfer encoding with spaces after chunk size).
Fixed bug #44686 (SOAP-ERROR: Parsing WSDL with references).
Added xsl.security_prefs ini option to define forbidden operations within XSLT stylesheets, default is not to enable write operations. This option won't be in 5.4, since there's a new method. Fixes Bug #54446.
PHP 5.3.8
Released 23 Aug, 2011
core
Fixed bug #55439 (crypt() returns only the salt for MD5).
openssl
Reverted a change in timeout handling restoring PHP 5.3.6 behavior, as the new behavior caused mysqlnd SSL connections to hang (#55283).
PHP 5.3.7
Released 18 Aug, 2011
zend engine
Upgraded bundled PCRE to version 8.12.
Fixed bug #55156 (ReflectionClass::getDocComment() returns comment even though the class has none).
Fixed bug #55007 (compiler fail after previous fail).
Fixed bug #54910 (Crash when calling call_user_func with unknown function name).
Fixed bug #54804 (__halt_compiler and imported namespaces).
Fixed bug #54924 (assert.* is not being reset upon request shutdown).
Fixed bug #54895 (Fix compiling with older gcc version without need for membar_producer macro).
Fixed bug #54866 (incorrect accounting for realpath_cache_size).
Fixed bug #54723 (getimagesize() doesn't check the full ico signature).
Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size).
Fixed bug #54580 (get_browser() segmentation fault when browscap ini directive is set through php_admin_value).
Fixed bug #54332 (Crash in zend_mm_check_ptr // Heap corruption).
Fixed bug #54305 (Crash in gc_remove_zval_from_buffer).
Fixed bug #54238 (use-after-free in substr_replace()). (Stas)
Fixed bug #54204 (Can't set a value with a PATH section in php.ini).
Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment).
Fixed bug #54137 (file_get_contents POST request sends additional line break).
Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields).
Alternative fix for bug #52550, as applied to the round() function (signed overflow), as the old fix impacted the algorithm for numbers with magnitude smaller than 0.
Fixed bug #53727 (Inconsistent behavior of is_subclass_of with interfaces)
Fixed bug #52935 (call exit in user_error_handler cause stream relate core).
Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning).
Fixed bug #50816 (Using class constants in array definition fails).
Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter).
Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using TMPDIR on Windows).
apache2 handler sapi
Fixed bug #54529 (SAPI crashes on apache_config.c:197).
cli sapi
Fixed bug #52496 (Zero exit code on option parsing failure).
curl extension
Added ini option curl.cainfo (support for custom cert db).
Added CURLINFO_REDIRECT_URL support.
Added support for CURLOPT_MAX_RECV_SPEED_LARGE and CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815.
datetime extension
Fixed bug where the DateTime object got changed while using date_diff().
Fixed symbolic resolution support when the target is a DFS share.
Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with large amount of data) (CVE-2010-3710).
general improvements
Added stat support for zip stream.
Added follow_location (enabled by default) option for the http stream support.
Improved support for is_link and related functions on Windows.
Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al.
implemented feature requests
Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect zend multibyte at runtime.
Implemented FR #52173, added functions pcntl_get_last_error() and pcntl_strerror().
Implemented symbolic links support for open_basedir checks.
Implemented FR #51804, SplFileInfo::getLinkTarget on Windows.
Implemented FR #50692, not uploaded files don't count towards max_file_uploads limit. As a side improvement, temporary files are not opened for empty uploads and, in debug mode, 0-length uploads.
improved mysqlnd
Added new character sets to mysqlnd, which are available in MySQL 5.5
improved php-fpm sapi
Added '-p/--prefix' to php-fpm to use a custom prefix and run multiple instances.
Added custom process title for FPM.
Added '-t/--test' to php-fpm to check and validate FPM conf file.
Added statistics about listening socket queue length for FPM.
core
Fixed extract() to do not overwrite $GLOBALS and $this when using EXTR_OVERWRITE.
Fixed bug in the Windows implementation of dns_get_record, where the two last parameters wouldn't be filled unless the type were DNS_ANY .
Changed the $context parameter on copy() to actually have an effect.
Fixed htmlentities/htmlspecialchars accepting certain ill-formed UTF-8 sequences.
Fixed bug #53409 (sleep() returns NULL on Windows).
Fixed bug #53319 (strip_tags() may strip '<br />' incorrectly).
Fixed bug #53304 (quot_print_decode does not handle lower-case hex digits).
Fixed bug #53226 (file_exists fails on big filenames).
Fixed bug #53198 (changing INI setting "from" with ini_set did not have any effect).
Fixed bug #53180 (post_max_size=0 not disabling the limit when the content type is application/x-www-form-urlencoded or is not registered with PHP).
Fixed bug #53141 (autoload misbehaves if called from closing session).
Fixed bug #53021 (In html_entity_decode, failure to convert numeric entities with ENT_NOQUOTES and ISO-8859-1). Fixed and extended the fix of ENT_NOQUOTES in html_entity_decode that had introduced the bug (rev #185591) to other encodings. Additionaly, html_entity_decode() now doesn't decode " if ENT_NOQUOTES is given.
Fixed bug #52931 (strripos not overloaded with function overloading enabled).
Fixed bug #52772 (var_dump() doesn't check for the existence of get_class_name before calling it).
Fixed bug #52534 (var_export array with negative key).
Fixed bug #52327 (base64_decode() improper handling of leading padding in strict mode).
Fixed bug #52260 (dns_get_record fails with non-existing domain on Windows).
Fixed bug #50953 (socket will not connect to IPv4 address when the host has both IPv4 and IPv6 addresses, on Windows).
Fixed bug #50524 (proc_open on Windows does not respect cwd as it does on other platforms).
Fixed bug #49687 (utf8_decode vulnerabilities and deficiencies in the number of reported malformed sequences). (CVE-2010-3870)
Fixed bug #51003 (unaligned memory access in ext/hash/hash_tiger.c).
iconv extension
Fixed bug #52941 (The 'iconv_mime_decode_headers' function is skipping headers).
Fixed bug #52599 (iconv output handler outputs incorrect content type when flags are used).
Fixed bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded words).
intl extension
Fixed crashes on invalid parameters in intl extension. (CVE-2010-4409).
Added support for formatting the timestamp stored in a DateTime object.
Fixed bug #50590 (IntlDateFormatter::parse result is limited to the integer range).
mbstring extension
Fixed bug #53273 (mb_strcut() returns garbage with the excessive length parameter). (CVE-2010-4156)
Fixed bug #52981 (Unicode casing table was out-of-date. Updated with UnicodeData-6.0.0d7.txt and included the source of the generator program with the distribution) .
Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header).
mssql extension
Fixed possible crash in mssql_fetch_batch().
Fixed bug #52843 (Segfault when optional parameters are not passed in to mssql_connect).
mysql extension
Fixed bug #52636 (php_mysql_fetch_hash writes long value into int).
mysqli extension
Fixed bug #52891 (Wrong data inserted with mysqli/mysqlnd when using mysqli_stmt_bind_param and value> PHP_INT_MAX).
Fixed bug #52686 (mysql_stmt_attr_[gs]et argument points to incorrect type).
Fixed bug #52654 (mysqli doesn't install headers with structures it uses).
Fixed bug #52433 (Call to undefined method mysqli::poll() - must be static).
Fixed bug #52417 (MySQLi build failure with mysqlnd on MacOS X).
Fixed bug #52413 (MySQLi/libmysql build failure on OS X, FreeBSD).
Fixed bug #52390 (mysqli_report() should be per-request setting).
Fixed bug #52302 (mysqli_fetch_all does not work with MYSQLI_USE_RESULT).
Fixed bug #52221 (Misbehaviour of magic_quotes_runtime (get/set)).
Fixed bug #45921 (Can't initialize character set hebrew).
mysqlnd
Fixed bug #52613 (crash in mysqlnd after hitting memory limit).
odbc extension
Fixed bug #52512 (Broken error handling in odbc_execute).
openssl extension
Fixed possible blocking behavior in openssl_random_pseudo_bytes on Windows.
Fixed bug #53136 (Invalid read on openssl_csr_new()).
Fixed bug #52947 (segfault when ssl stream option capture_peer_cert_chain used).
oracle database extension (oci8)
Fixed bug #53284 (Valgrind warnings in oci_set_* functions)
Fixed bug #51610 (Using oci_connect causes PHP to take a long time to exit). Requires Oracle 11.2.0.2 client libraries (or Oracle bug fix 9891199) for this patch to have an effect.
pcntl extension
Fixed bug #52784 (Race condition when handling many concurrent signals).
pcre extension
Fixed bug #52971 (PCRE-Meta-Characters not working with utf-8).
Fixed bug #52732 (Docs say preg_match() returns FALSE on error, but it returns int(0)).
phar extension
Fixed bug #50987 (unaligned memory access in phar.c).
Fixed bug #53463 (sqlite3 columnName() segfaults on bad column_number).
streams
Fixed forward stream seeking emulation in streams that don't support seeking in situations where the read operation gives back less data than requested and when there was data in the buffer before the emulation started. Also made more consistent its behavior -- should return failure every time less data than was requested was skipped.
Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails with streams opened with, inter alia, the 'xb' mode).
Fixed bug #53006 (stream_get_contents has an unpredictable behavior when the underlying stream does not support seeking).
Fixed bug #52944 (Invalid write on second and subsequent reads with an inflate filter fed invalid data).
Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the stream).
wddx extension
Fixed bug #52468 (wddx_deserialize corrupts integer field value when left empty).
zlib extension
Fixed bug #52926 (zlib fopen wrapper does not use context).
PHP 5.3.3
Released 22 Jul, 2010
reset error state in pdo
Changed namespaced classes so that the ctor can only be named __construct now.
implemented fr#51295 (sqlite3
Implemented FR#35638 (Adding udate to imap_fetch_overview results).
Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs (CVE-2010-2531).
Fixed possible buffer overflows in mysqlnd_list_fields, mysqlnd_change_user.
Fixed possible buffer overflows when handling error packets in mysqlnd. Reported by Stefan Esser.
Fixed very rare memory leak in mysqlnd, when binding thousands of columns.
Fixed a crash when calling an inexistent method of a class that inherits PDOStatement if instantiated directly instead of doing by the PDO methods.
Fixed memory leak on error in mcrypt_create_iv on Windows.
Fixed a possible crash because of recursive GC invocation.
Fixed a possible resource destruction issues in shm_put_var(). Reported by Stefan Esser.
Fixed a possible information leak because of interruption of XOR operator. Reported by Stefan Esser.
Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks. Reported by Stefan Esser.
fixed a possible memory corruption in arrayobject
Fixed a possible memory corruption in parse_str(). Reported by Stefan Esser.
Fixed a possible memory corruption in pack(). Reported by Stefan Esser.
Fixed a possible memory corruption in substr_replace(). Reported by Stefan Esser.
Fixed a possible memory corruption in addcslashes(). Reported by Stefan Esser.
Fixed a possible stack exhaustion inside fnmatch(). Reported by Stefan Esser.
Fixed a possible dechunking filter buffer overflow. Reported by Stefan Esser.
Fixed a possible arbitrary memory access inside sqlite extension. Reported by Mateusz Kocielski.
Fixed string format validation inside phar extension. Reported by Stefan Esser.
Fixed handling of session variable serialization on certain prefix characters. Reported by Stefan Esser.
Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288).
Fixed 64-bit integer overflow in mhash_keygen_s2k().
Fixed bug #40013 (php_uname() does not return nodename on Netware
Fixed bug #38091 (Mail() does not use FQDN when sending SMTP helo).
Fixed bug #28038 (Sent incorrect RCPT TO commands to SMTP server)
Fixed bug #27051 (Impersonation with FastCGI does not exec process as impersonated user).
PHP 5.3.0
Released 30 Jun, 2009
moved extensions to pecl (derick, lukas, pierre, scott)
Upgraded bundled sqlite to version 3.6.15.
ext/dbase
ext/fbsql
ext/fdf
ext/ncurses
ext/mhash
ext/ming
ext/msql
ext/sybase
Removed the experimental RPL (master/slave) functions from mysqli.
Removed zend.ze1_compatibility_mode.
Removed all zend_extension_* php.ini directives. Zend extensions are now always loaded using zend_extension directive.
Removed special treatment of "/tmp" in sessions for open_basedir. Note: This undocumented behaviour was introduced in 5.2.2.
Removed shebang line check from CGI sapi (checked by scanner).
Changed PCRE, Reflection and SPL extensions to be always enabled.
Changed md5() to use improved implementation.
Changed HTTP stream wrapper to accept any code between and including 200 to 399 as successful.
Changed __call() to be invoked on private/protected method access, similar to properties and __get().
Changed dl() to be disabled by default. Enabled only when explicitly registered by the SAPI. Currently enabled with cli, cgi and embed SAPIs.
Changed opendir(), dir() and scandir() to use default context when no context argument is passed.
Changed open_basedir to allow tightening in runtime contexts.
Changed PHP/Zend extensions to use flexible build IDs.
Changed error level E_ERROR into E_WARNING in Soap extension methods parameter validation.
Changed openssl info to show the shared library version number.
Changed floating point behaviour to consistently use double precision on all platforms and with all compilers.
Changed round() to act more intuitively when rounding to a certain precision and round very large and very small exponents correctly.
Changed session_start() to return false when session startup fails.
Changed property_exists() to check the existence of a property independent of accessibility (like method_exists()).
Changed array_reduce() to allow mixed $initial
improved php syntax and semantics
Added lambda functions and closures.
Added "jump label" operator (limited "goto").
Added NOWDOC syntax.
Added HEREDOC syntax with double quotes.
Added support for using static HEREDOCs to initialize static variables and class members or constants.
Improved syntax highlighting and consistency for variables in double-quoted strings and literal text in HEREDOCs and backticks.
Added "?:" operator.
Added support for namespaces.
Added support for Late Static Binding.
Added support for __callStatic() magic method.
Added forward_static_call(_array) to complete LSB.
Added support for dynamic access of static members using $foo::myFunc().
Improved checks for callbacks.
Added __DIR__ constant.
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.
Added "request_order" INI variable to control specifically $_REQUEST behavior.
Added support for exception linking.
Added ability to handle exceptions in destructors.
improved php runtime speed and memory usage
Substitute global-scope, persistent constants with their values at compile time.
Optimized ZEND_SIGNED_MULTIPLY_LONG().
Removed direct executor recursion.
Use fastcall calling convention in executor on x86.
Use IS_CV for direct access to $this variable.
Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR).
Lazy EG(active_symbol_table) initialization.
Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not used.
Replaced all flex based scanners with re2c based scanners.
Added garbage collector. .
Improved PHP binary size and startup speed with GCC4 visibility control.
Improved engine stack implementation for better performance and stability.
Improved memory usage by moving constants to read only memory.
Changed exception handling. Now each op_array doesn't contain ZEND_HANDLE_EXCEPTION opcode in the end.
Optimized require_once() and include_once() by eliminating fopen(3) on second usage.
Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode.
Optimized string searching for a single character.
Optimized interpolated strings to use one less opcode.
improved php.ini handling
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.
improved windows support
Update all libraries to their latest stable version. .
Added Windows support for stat(), touch(), filemtime(), filesize() and related functions.
Re-added socket_create_pair() for Windows in sockets extension.
Added inet_pton() and inet_ntop() also for Windows platforms.
Added mcrypt_create_iv() for Windows platforms.
Added ACL Cache support on Windows.
Added constants based on Windows' GetVersionEx information. PHP_WINDOWS_VERSION_* and PHP_WINDOWS_NT_*.
Added support for ACL (is_writable, is_readable, reports now correct results) on Windows.
Added support for fnmatch() on Windows.
Added support for time_nanosleep() and time_sleep_until() on Windows.
Added support for symlink(), readlink(), linkinfo() and link() on Windows. They are available only when the running platform supports them.
the GMP extension now relies on MPIR instead of the GMP library.
Added Windows support for stream_socket_pair().
Drop all external dependencies for the core features.
Drastically improve the build procedure :
VC9 or later support
Initial experimental x64 support
MSI installer now supports all recent Windows versions, including Windows 7.
improved and cleaned cgi code
FastCGI is now always enabled and cannot be disabled. See sapi/cgi/CHANGES for more details.
Added CGI SAPI -T option which can be used to measure execution time of script repeated several times.
improved streams
Fixed confusing error message on failure when no errors are logged.
Added stream_supports_lock() function.
Added context parameter for copy() function.
Added "glob://" stream wrapper.
Added "params" as optional parameter for stream_context_create().
Added ability to use stream wrappers in include_path.
Improved DNS API
Added Windows support for dns_check_record(), dns_get_mx(), checkdnsrr() and getmxrr().
Added support for old style DNS functions (supports OSX and FBSD).
Added a new "entries" array in dns_check_record() containing the TXT elements.
improved hash extension
Changed mhash to be a wrapper layer around the hash extension.
Added hash_copy() function.
Added sha224 hash algorithm to the hash extension.
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().
Added new parameter $prepend to spl_autoload_register().
Added SplFixedArray.
Added delaying exceptions in SPL's autoload mechanism.
Added RecursiveTreeIterator.
Added MultipleIterator.
improved zend engine
Added "compact" handler for Zend MM storage.
Added "+" and "*" specifiers to zend_parse_parameters().
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.
improved crypt() function
Added Blowfish and extended DES support. .
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().
Deprecated define_syslog_variables().
Deprecated ereg extension.
added new extensions
Added Enchant extension as a way to access spell checkers.
Added fileinfo extension as replacement for mime_magic extension.
Added intl extension for Internationalization.
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
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:
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
Added msg_queue_exists() function to sysvmsg extension.
added firebird specific attributes that can be set via pdo
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.
Added stream_context_get_params() function.
Added optional parameter "new" to sybase_connect().
Added parse_ini_string() function.
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.
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 table info to pdo
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().
implemented fr #41712 (curl progress callback
Implemented FR #47739 (Missing cURL option do disable IPv6).