Home » Releases » 5.3 » 5.3.29 »

PHP 5.3.0

PHP 5.3 is no longer officially supported by the PHP project.

Official support refers to that provided direct by the PHP Project.

If you install PHP via third-party packages, support timelines may be different. Please read the Release Support Policy for more information.

The latest release of PHP 5.3 is 5.3.29.

Source Code

Change Log

  • misc

    • 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

PHP 5.3


  Represents a security release