diff --git a/.docker/dev/Dockerfile b/.docker/dev/Dockerfile new file mode 100644 index 0000000000..d0ed2d5312 --- /dev/null +++ b/.docker/dev/Dockerfile @@ -0,0 +1,15 @@ +# Development Docker +# +# Provides the main runtime engine as well as tooling for running +# during development +# +# NOTES: +# - Does not copy and files in as it is expected to be handled via a mount + +FROM php:8.4-cli + +# Codebase doesn't have production flag so we negate it instead with +# the DEVELOPMENT flag +ENV DEVELOPMENT=1 + +WORKDIR /app diff --git a/.docker/prod/Dockerfile b/.docker/prod/Dockerfile new file mode 100644 index 0000000000..7ea4a9def1 --- /dev/null +++ b/.docker/prod/Dockerfile @@ -0,0 +1,15 @@ +# "Production" Docker +# +# Provides the main runtime for PHP when deploying to a "Production" +# or "Testing" environment that needs a full container using +# the inbuilt server (not recommended). + +FROM php:8.2-cli + +# All of the files from the source location are copied into +# the /app folder +RUN mkdir /app +WORKDIR /app +COPY . /app + +RUN php -S 8080 .router diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..e77124dc23 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +# .dockerignore +.git +.gitmodules +.gitattributes +.idea +build-deploy.sh diff --git a/.router.php b/.router.php index c204ce635e..98ce5a1773 100644 --- a/.router.php +++ b/.router.php @@ -4,12 +4,19 @@ $filename = $_SERVER["PATH_INFO"] ?? $_SERVER["SCRIPT_NAME"]; +//die(print_r($_SERVER, true)); + +//$_SERVER['HTTP_HOST'] = ''; +//$_SERVER['BASE_PAGE'] = '/'; +//$_SERVER['SERVER_NAME'] = 'localhost'; + if (!file_exists($_SERVER["DOCUMENT_ROOT"] . $filename)) { require_once __DIR__ . '/error.php'; return; } + /* This could be an image or whatever, so don't try to compress it */ ini_set("zlib.output_compression", 0); return false; diff --git a/bin/bumpRelease b/bin/bumpRelease index f03c2c6da9..728685bc30 100755 --- a/bin/bumpRelease +++ b/bin/bumpRelease @@ -34,7 +34,7 @@ $OLDRELEASES[$major] = array_merge( ); file_put_contents(__DIR__ . "/../include/releases.inc", [ - "> $headers + */ + public function __construct( + public array $headers, + public string $body, + ) { + } + + public function getSingleHeader(string $key, mixed $default = null): mixed + { + return $this->headers[$key][0] ?? $default; + } + + public function getHeader(string $key): array + { + return $this->headers[$key] ?? []; + } +} + +/** + * @return array + */ +function readSegmentedFile(string $path): array +{ + $contents = file_get_contents($path) + ?: throw new ValueError('Unable to read ' . $path); + $contents = str_replace("\r\n", "\n", $contents); + $contentSections = explode('==============================================', $contents); + $grouped = []; + + foreach($contentSections as $section) { + $blocks = explode("\n\n", trim($section), 2); + + /* like HTTP, blocks are a set of key-values, followed by a double newline, followed by */ + $headers = []; + foreach (explode("\n", $blocks[0]) as $headerLine) { + $parts = explode(":", trim($headerLine), 2); + if (count($parts) !== 2) { + continue; + } + + [$id, $value] = $parts; + $headers[$id][] = trim($value); + } + + $body = $blocks[1] ?? ''; + $grouped[$headers['type'][0] ?? '_'][] = new Segment( + headers: $headers, + body: $body, + ); + } + + return $grouped; +} + +/** + * @param array $segments + */ +function parseSegments(array $segments): array +{ + $meta = $segments['meta'][0] ?? throw new ValueError('Segment "meta" cannot be found'); + + $examples = []; + foreach ($segments['example'] ?? [] as $example) { + $label = $example->getSingleHeader('label', ''); + $target = $example->getSingleHeader('target', ''); + + if ($label === '' && $target !== '') { + $targetFilters = [ + '<=' => '%s or Before', + '>=' => '%s or Later', + '<' => 'Before %s', + '>' => 'After %s', + ]; + + foreach ($targetFilters as $searchKey => $englishKey) { + if (str_starts_with($target, $searchKey)) { + $label = str_replace('%s', 'PHP ' . substr($target, strlen($searchKey)), $englishKey); + break; + } + } + } + + if ($label === '' && $target !== '') { + $label = $target . ' or Later'; + } + + if ($label === '') { + $label = 'Example'; + } + + $examples[] = [ + 'label' => $label, + 'target' => $target, + 'format' => $example->getSingleHeader('format', 'php'), + 'body' => $example->body, + ]; + } + + return [ + 'title' => $meta->getSingleHeader('title', 'Example'), + 'about' => ($segments['about'][0] ?? null)?->body, + 'short' => ($segments['short'][0] ?? null)?->body, + 'rfs' => $meta->getHeader('rfc'), + 'examples' => $examples, + ]; +} + +function parseDirectory(string $path): array +{ + $examples = []; + + foreach (scandir($path) as $fileName) { + if (!str_ends_with($fileName, '.txt')) { + continue; + } + + $examples[] = parseSegments(readSegmentedFile($path . '/' . $fileName)); + } + + return $examples; +} + +$baseDir = __DIR__ . '/../data/releases'; +$releaseComparisons = []; + +foreach (scandir($baseDir) as $fileName) { + $dirName = $baseDir . '/' . $fileName; + if ($fileName[0] === '.') { + continue; + } + + $releaseComparisons[$fileName] = parseDirectory($dirName . '/highlights'); +} + +file_put_contents( + __DIR__ . '/../include/releases-comparisons.inc', + 'setSummary($summary); + } + return $entry; } diff --git a/bin/createReleaseEntry b/bin/createReleaseEntry index a9dcf1e658..0b1605e596 100755 --- a/bin/createReleaseEntry +++ b/bin/createReleaseEntry @@ -5,6 +5,7 @@ PHP_SAPI == 'cli' or die("Please run this script using the cli sapi"); require_once __DIR__ . '/../src/autoload.php'; use phpweb\News\Entry; +use phpweb\ProjectGlobals; if (!file_exists(Entry::ARCHIVE_FILE_ABS)) { fwrite(STDERR, "Can't find " . Entry::ARCHIVE_FILE_REL . ", are you sure you are in phpweb/?\n"); @@ -50,21 +51,34 @@ $entry = (new Entry) $entry->save()->updateArchiveXML(); $addedFiles = [Entry::ARCHIVE_ENTRIES_REL . $entry->getId() . '.xml']; +$nameWithUnderscores = strtr($version, '.', '_'); + +/* + * Release announcements are stored as HTML within the data/releases/major.minor/announcements + * folder as plain HTML files, and are then included as part of other page templates + */ +$announcementsDir = ProjectGlobals::getDataPathForRelease($branch); +$announcementPath = $announcementsDir . '/' . $nameWithUnderscores . '.html'; + +is_dir($announcementsDir) or mkdir($announcementsDir, recursive: true); +file_put_contents($announcementPath, $template); +$addedFiles[] = $announcementPath; + // Mint the releases/x_y_z.php archive. const RELEASES_REL = 'releases/'; const RELEASES_ABS = __DIR__ . '/../' . RELEASES_REL; if (isset($opts['r'])) { - $release = strtr($version, '.', '_') . '.php'; - file_put_contents(RELEASES_ABS . $release, " -

PHP $version Release Announcement

+ /* + * The announcement content is no longer embedded straight into a page, instead we + * invoke a page template helper, passing in the release version, and it figures + * the rest out itself + */ + $release = $nameWithUnderscores . '.php'; + file_put_contents( + RELEASES_ABS . $release, + str_replace('{{version}}', $version, file_get_contents(__DIR__ . '/templates/announcement-archive.txt')) + ); -$template -'; + $htmlStartPosition = strpos($content, $htmlStartToken); + if ($htmlStartPosition === false) { + throw new RuntimeException('Unable to find PHP closing tag in ' . $fullPath); + } + + $htmlStartPosition+= strlen($htmlStartToken); + + $htmlEndToken = ' $version) { + [$major, $minor] = explode('.', $releaseId); + + $br = $major . '.' . $minor; + $branches[$br] = (!isset($branches[$br]) || version_compare($releaseId, $branches[$br]) > 0) + ? $releaseId + : $branches[$br]; + } +} + +/* dont concern ourselves with this one */ +unset($branches['3.0']); + +foreach ($branches as $release) { + $cachePath = sys_get_temp_dir() . '/php-news-' . $release . '.txt'; + + [$major, $minor, $patch] = explode('.', $release); + $branch = $major . '.' . $minor; + + if (!file_exists($cachePath)) { + $options = [ + /* normal branch */ + 'https://raw.githubusercontent.com/php/php-src/refs/heads/PHP-' . $release . '/NEWS', + + /* tag */ + 'https://raw.githubusercontent.com/php/php-src/refs/tags/php-' . $release . '/NEWS', + ]; + + foreach ($options as $fetchUrl) { + $content = @file_get_contents($fetchUrl); + if (!$content) { + fwrite(STDERR, "Could not read raw data for $fetchUrl\n"); + continue; + } + + fwrite(STDOUT, "Successfully imported read data from $fetchUrl\n"); + file_put_contents($cachePath, $content); + } + + if (!$content) { + fwrite(STDERR, "Could not find a suitable data source for $release\n"); + continue; + } + } else { + $content = file_get_contents($cachePath); + } + + NewsParsingHelper::writeChangeMetaToBranch( + branch: $branch, + data: NewsParsingHelper::parseNewsFileStringToReleases($content), + ); +} diff --git a/bin/sync-pregen.php b/bin/sync-pregen.php new file mode 100644 index 0000000000..a210d62688 --- /dev/null +++ b/bin/sync-pregen.php @@ -0,0 +1,49 @@ + $varPath . '/pregen-events.inc', + 'include/pregen-news.inc' => $varPath . '/pregen-news.inc', + 'include/pregen-confs.inc' => $varPath . '/pregen-confs.inc', +]; + +fwrite(STDOUT, "Copying data from production server into local directories:\n"); +fwrite(STDOUT, "Do not commit these files!\n"); + +foreach ($overridePaths as $sourcePath => $saveTo) { + $url = 'https://www.php.net/' . $sourcePath; + $source = @file_get_contents($url); + if ($source === false) { + fwrite(STDERR, "Unable to read " . $url . "\n"); + exit(1); + } + + $success = file_put_contents($saveTo, $source); + if ($success === false) { + fwrite(STDERR, "Unable to write to " . $saveTo . "\n"); + exit(1); + } + + fwrite(STDOUT, "Copied " . $url . " to " . $saveTo . "\n"); +} diff --git a/bin/templates/announcement-archive.txt b/bin/templates/announcement-archive.txt new file mode 100644 index 0000000000..9342e3cbed --- /dev/null +++ b/bin/templates/announcement-archive.txt @@ -0,0 +1,3 @@ +}[] + */ +final class NewsParsingHelper +{ + public static function parseNewsFileToString(string $branch, string $path): array + { + $content = file_get_contents($path) + ?: throw new ValueError('Unable to read NEWS file from ' . $path); + + return self::parseNewsFileStringToReleases($content); + } + + public static function writeChangeMetaToBranch(string $branch, array $data): void + { + $saveDir = __DIR__ . '/../include/releases/' . $branch; + if (!file_exists($saveDir)) { + mkdir($saveDir, recursive: true); + } + + /* the data may have releases from something _other_ than the latest branch */ + $data = array_filter($data, fn(string $key) => str_starts_with($key, $branch . '.'), ARRAY_FILTER_USE_KEY); + + file_put_contents($saveDir . '/changelist.inc', ' $date, + 'modules' => [], + ]; + + $currentVersion = $version; + $currentModule = null; // Reset module state for new version + continue; + } + + // 2. Match Module header (e.g., "- CLI:" or "- Opcache:") + if (preg_match('/^\-\s+([^:]+):/', $normalizedLine, $matches)) { + $commitMessage(); + $currentModule = strtolower(trim($matches[1])); + + // Ensure the module array exists under the current version + if ($currentVersion !== null && !isset($parsed[$currentVersion]['modules'][$currentModule])) { + $parsed[$currentVersion]['modules'][$currentModule] = []; + } + continue; + } + + // 3. Match new message start (e.g., " . Fixed bug GH-22004...") + if (preg_match('/^\s*\.\s+(.+)/', $normalizedLine, $matches)) { + $commitMessage(); + $currentMessage = $matches[1]; + continue; + } + + // 4. Handle empty lines or purely decorative file headers + if ($trimmedLine === '' || str_starts_with($trimmedLine, '|||')) { + $commitMessage(); + continue; + } + + // 5. Handle message continuation (runs onto multiple lines) + if ($currentMessage !== null) { + // Append the trimmed continuation text to the current message string + $currentMessage .= ' ' . $trimmedLine; + } + } + + // Ensure the very last message in the file gets committed + $commitMessage(); + + return $parsed; + } + + /** + * Extracts functional parameters based on formatting + * + * @return array{ + * message: string, + * raw: string, + * references: array<{ + * authors: string[], + * bugs: string[], + * peclbugs: string[], + * featurerequests: string[], + * cves: string[], + * } + * } + */ + static function parseChangeLineToArray(string $input): array + { + $references = []; + $raw = $input; + + if (preg_match('/.* \(([^)]+)\)/', $input, $nameMatches)) { + foreach (explode(',', $nameMatches[1]) as $name) { + $references['authors'][] = trim($name); + } + + /* author gets cropped off */ + $input = trim(str_replace('(' . $nameMatches[1] . ')', '', $input)); + } + + if (preg_match('/Fixed bug GH-([0-9]+)/', $input, $m)) { + $references['bugs'][] = $m[1]; + } + + if (preg_match('/Fixed bug #([0-9]+)/', $input, $m)) { + $references['bugs'][] = $m[1]; + } + + if (preg_match('/Fixed PECL bug #([0-9]+)/', $input, $m)) { + $references['peclbug'][] = $m[1]; + } + + if (preg_match('/Implemented FR #([0-9]+)/', $input, $m)) { + $references['featurerequest'][] = $m[1]; + } + + if (preg_match('/\(CVE-\d+-\d+\)/', $input, $m)) { + $references['cves'][] = str_replace(['(', ')'], '', $m[0]); + } + + return [ + 'message' => $input, + 'raw' => $raw, +// 'references' => $references, + ]; + } +} diff --git a/data/releases/4.1/announcements/4_1_0.html b/data/releases/4.1/announcements/4_1_0.html new file mode 100644 index 0000000000..b4e33d61a9 --- /dev/null +++ b/data/releases/4.1/announcements/4_1_0.html @@ -0,0 +1,62 @@ +

PHP 4.1.0 Release Announcement

+ +

+ After a lengthy QA process, PHP 4.1.0 is finally out!
+ [ Version Française ] +

+ +

PHP 4.1.0 includes several other key improvements:

+ + +

+ As some of you may notice, this version is quite historic, as it's + the first time in history we actually incremented the middle digit! :) + The two key reasons for this unprecedented change were the new input + interface, and the broken binary compatibility of modules due to the + versioning support. +

+ +

+ Following is a description of the new input mechanism. For a full list of + changes in PHP 4.1.0, see the ChangeLog. +

+ +
+ +

SECURITY: NEW INPUT MECHANISM

+ +

+ First and foremost, it's important to stress that regardless of + anything you may read in the following lines, PHP 4.1.0 still + supports the old input mechanisms from older versions. + Old applications should go on working fine without modification! +

+ +

Now that we have that behind us, let's move on :)

+ +

+ For various reasons, PHP setups which rely on register_globals + being on (i.e., on form, server and environment variables becoming + a part of the global namespace, automatically) are very often + exploitable to various degrees. For example, the piece of code: +

\ No newline at end of file diff --git a/data/releases/4.1/announcements/4_1_0_fr.html b/data/releases/4.1/announcements/4_1_0_fr.html new file mode 100644 index 0000000000..d26a2c5467 --- /dev/null +++ b/data/releases/4.1/announcements/4_1_0_fr.html @@ -0,0 +1,68 @@ +

Annonce de publication de PHP 4.1.0

+ +

+ Après un long processus "QA", PHP 4.1.0 est enfin sorti!
+ [ English Version ] +

+ +

+ PHP 4.1.0 inclut beaucoup d'améliorations importantes: +

+ + +

+ Comme certains l'ont noté, cette version est quelque peu historique, + comme c'est la première fois dans l'histoire que nous incrémentons + le numéro du milieu ! + Les deux principales raisons à cela sont d'un côté les changements sans + précédent de la nouvelle interface d'entrée, et de l'autre l'incompatibilité + des modules dus au support des versions. +

+ +

+ Ce qui suit concerne une description du nouveau mécanisme d'entrée. + Pour une liste complète des changements voir le + ChangeLog. +

+ +
+ +

SECURITE: NOUVEAU MECANISME D'ENTREE

+ +

+ Avant tout, il est important de signaler que, sans tenir compte de ce + que vous pourriez lire dans les lignes qui suivent, PHP 4.1.0 gère + encore les anciens mécanismes d'entrée des anciennes versions. + D'anciennes applications devraient bien fonctionner sans modifications ! +

+ +

Passsons à la suite mainenant que cela est dit :)

+ +

+ Pour différentes raisons, PHP qui se repose sur register_globals ON + (ex. sur les formulaires, les variables serveur et d'environnement + deviennent partie de la portée globale d'un script [namespace], et + ce automatiquement) sont très souvent exploitable à des degrés + divers. Par exemple le code suivant: +

\ No newline at end of file diff --git a/data/releases/4.1/announcements/4_1_1.html b/data/releases/4.1/announcements/4_1_1.html new file mode 100644 index 0000000000..6adaaf6e0d --- /dev/null +++ b/data/releases/4.1/announcements/4_1_1.html @@ -0,0 +1,55 @@ +

PHP 4.1.1 Release Announcement

+ +

+ Due to a few bugs in PHP 4.1.0, we decided to release PHP 4.1.1. The bugs + that were fixed are not major ones but minor ones, which could be annoying + if you get bitten by them. +

+ +

+ Our recommendation is that people who already upgraded to PHP 4.1.0 do + not upgrade to PHP 4.1.1, + unless they're experiencing one of the described bugs. +

+ +

+ No new features or security updates are available + in this release. +

+ +

Full list of fixes:

+ + \ No newline at end of file diff --git a/data/releases/4.2/announcements/4_2_0.html b/data/releases/4.2/announcements/4_2_0.html new file mode 100644 index 0000000000..7f9615a48e --- /dev/null +++ b/data/releases/4.2/announcements/4_2_0.html @@ -0,0 +1,75 @@ +

PHP 4.2.0 Release Announcement

+ +

+ After an orderly QA process, PHP 4.2.0 is out!
+ [ Version Française ] +

+ +

External variables

+ +

+ The biggest change in PHP 4.2.0 concerns variable handling. External + variables (from the environment, the HTTP request, cookies or the web server) + are no longer registered in the global scope by default. The preferred + method of accessing these external variables is by using the new Superglobal + arrays, introduced in PHP 4.1.0. More information about this change:

+ + + +

Compatibility

+ +

+ The Apache Software Foundation recently released their first + General Availability version of Apache 2. PHP 4.2.0 will have + EXPERIMENTAL support for this version. You can + build a DSO module for Apache 2 with --with-apxs2. We do + not recommend that you use this in a production + environment. +

+

+ PHP 4.2.0 still lacks certain key features on Mac OS X and + Darwin, and isn't officially supported by the PHP Group on + these platforms. Specifically, building PHP as a dynamically + loaded Apache module isn't supported at this time. PHP 4.3.0, + due to be released in August, 2002, will be the first PHP + release to officially support Mac OS X. It, along with future + Mac OS X and Apache releases, will enable full feature parity + with other PHP platforms. Update: + Instructions on + overcoming these limitations +

+ +

Improvements

+ +

PHP 4.2.0 includes several improvements:

+ + + +

+ For a full list of changes in PHP 4.2.0, + see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.2/announcements/4_2_0_fr.html b/data/releases/4.2/announcements/4_2_0_fr.html new file mode 100644 index 0000000000..a21a19ae13 --- /dev/null +++ b/data/releases/4.2/announcements/4_2_0_fr.html @@ -0,0 +1,83 @@ +

Annonce de publication de PHP 4.2.0

+ +

[ English Version ]

+ +

+ Après avoir passé avec succès le processus + qualité, PHP 4.2.0 est officiellement publié! +

+ +

Variables externes

+ +

+ Le changement le plus important de PHP 4.2.0 concerne la gestion des + variables. Les variables externes (issues de l'environnement d'exécution, + des requêtes HTTP, des cookies ou du serveur web) ne sont plus enregistrées + dans l'environnement d'exécution global par défaut. + La méthode recommandée pour accéder aux variables + externes est d'utiliser les nouveaux tableaux globaux, introduits en + PHP 4.1.0. Pour plus d'informations sur ces modifications: +

+ + +

Compatibilité

+ +

+ L'ASF (Apache Software Foundation) a récemment publié sa première + version publique d'Apache 2. PHP 4.2.0 dispose du support + EXPERIMENTAL d'Apache 2. Vous pouvez compiler un module + DSO pour Apache 2 avec l'option --with-apxs2. Nous recommandons + de ne pas utiliser cette combinaison en environnement de + production. +

+

+ Il manque encore à PHP 4.2.0 des fonctionnalités clés + sur MacOSX et sur Darwin. PHP n'est donc pas officiellement + supporté par le PHP group sur ces plates-formes. Spécifiquement, + compiler PHP comme module Apache dynamiquement chargé n'est pas + encore supporté. PHP 4.3.0, dont la publication est prévue pour + Août 2002, sera la première version qui supportera officiellement + Mac OS X. Cette version, aussi bien pour les futures versions de + Mac OS X et Apache, sera totalement synchronisé avec les autres + plates-formes PHP. +

+ +

Améliorations

+ +

PHP 4.2.0 inclut de nombreuses innovations:

+ + +

+ Pour une liste complète de changements en PHP 4.2.0, voyez le fichier + NEWS, dans la distribution. +

\ No newline at end of file diff --git a/data/releases/4.2/announcements/4_2_1.html b/data/releases/4.2/announcements/4_2_1.html new file mode 100644 index 0000000000..3681d32046 --- /dev/null +++ b/data/releases/4.2/announcements/4_2_1.html @@ -0,0 +1,57 @@ +

PHP 4.2.1 Release Announcement

+ +

[ Version Française ]

+ +

Bugfix release

+ +

+ This bug fix release solves a few bugs found in PHP 4.2.0. + PHP 4.2.1 includes the following fixes: +

+ + + +

+ For a full list of changes in PHP 4.2.1, see the + ChangeLog. +

+ +

Compatibility

+ +

+ PHP 4.2.1 also has improved (but still experimental) support for Apache version 2. + We do not recommend that you use this in a production environment, + but feel free to test it and report bugs to the bug + system. +

+ +

External variables

+ +

+ We would also like to attend you on a big change in PHP 4.2.0 concerning + variable handling. External variables (from the environment, the HTTP + request, cookies or the web server) are no longer registered in the global + scope by default. The preferred method of accessing these external + variables is by using the new Superglobal arrays, introduced in PHP 4.1.0. + More information about this change: +

+ + \ No newline at end of file diff --git a/data/releases/4.2/announcements/4_2_1_fr.html b/data/releases/4.2/announcements/4_2_1_fr.html new file mode 100644 index 0000000000..a47f56917f --- /dev/null +++ b/data/releases/4.2/announcements/4_2_1_fr.html @@ -0,0 +1,69 @@ +

Annonce de publication de PHP 4.2.1

+ +

[ English Version ]

+ +

Version mineure de correction de bugs

+ +

+ Cette version intermédiaire corrige quelques bugs + trouvés dans PHP 4.2.0. PHP 4.2.1 inclut les + améliorations suivantes: +

+ + + +

+ Pour une liste complète des modifications de PHP 4.2.1, voyez le fichier + ChangeLog. +

+ +

Compatibilité

+ +

+ PHP 4.2.1 dispose aussi d'une compatibilité améliorée + (mais toujours expérimentale) avec Apache 2. Nous ne + recommandons pas son utilisation dans un environnement de + production. Testez-le intensivement, et rapportez tous les bugs dans le + système. +

+ +

Variables externes

+ +

+ Nous attirons votre attention sur l'évolution majeure de PHP 4.2.0 concernant + l'utilisation des variables. Les variables externes (celles d'environnement + ou du serveur web, les requêtes HTTP, les cookies) ne sont plus enregistrées + par défaut comme variables globales. La méthode + recommandée pour accéder à ces variables est d'utiliser les + super globales, introduits en PHP 4.1.0. Plus d'informations sur ces modifications: +

+ + \ No newline at end of file diff --git a/data/releases/4.2/announcements/4_2_2.html b/data/releases/4.2/announcements/4_2_2.html new file mode 100644 index 0000000000..1c712cedf3 --- /dev/null +++ b/data/releases/4.2/announcements/4_2_2.html @@ -0,0 +1,92 @@ +

+ PHP Security Advisory: Vulnerability in PHP versions 4.2.0 and 4.2.1 +

+ +

[ Version Française ]

+ +
+
Issued on:
+
July 22, 2002
+
Software:
+
PHP versions 4.2.0 and 4.2.1
+
Platforms:
+
All
+
+ +

+ The PHP Group has learned of a serious security vulnerability in PHP + versions 4.2.0 and 4.2.1. An intruder may be able to execute arbitrary + code with the privileges of the web server. This vulnerability may be + exploited to compromise the web server and, under certain conditions, + to gain privileged access. +

+ +

Description

+ +

+ PHP contains code for intelligently parsing the headers of HTTP POST + requests. The code is used to differentiate between variables and files + sent by the user agent in a "multipart/form-data" request. This parser + has insufficient input checking, leading to the vulnerability. +

+ +

+ The vulnerability is exploitable by anyone who can send HTTP POST + requests to an affected web server. Both local and remote users, even + from behind firewalls, may be able to gain privileged access. +

+ +

Impact

+ +

+ Both local and remote users may exploit this vulnerability to compromise + the web server and, under certain conditions, to gain privileged access. + So far only the IA32 platform has been verified to be safe from the + execution of arbitrary code. The vulnerability can still be used on IA32 + to crash PHP and, in most cases, the web server. +

+ +

Solution

+ +

+ The PHP Group has released a new PHP version, 4.2.2, which incorporates + a fix for the vulnerability. All users of affected PHP versions are + encouraged to upgrade to this latest version. The + downloads page has the new 4.2.2 source tarballs, Windows binaries + and source patches from 4.2.0 and 4.2.1 available for download. +

+ +

Workaround

+ +

+ If the PHP applications on an affected web server do not rely on HTTP + POST input from user agents, it is often possible to deny POST requests + on the web server. +

+ +

+ In the Apache web server, for example, this is possible with the + following code included in the main configuration file or a top-level + .htaccess file: +

+ +
+<Limit POST>
+   Order deny,allow
+   Deny from all
+</Limit>
+
+ +

+ Note that an existing configuration and/or .htaccess file may have + parameters contradicting the example given above. +

+ +

Credits

+ +

+ The PHP Group would like to thank Stefan Esser of e-matters GmbH for + discovering this vulnerability. e-matters GmbH has also released an + independent + advisory, describing the vulnerability in more detail. +

\ No newline at end of file diff --git a/data/releases/4.2/announcements/4_2_2_fr.html b/data/releases/4.2/announcements/4_2_2_fr.html new file mode 100644 index 0000000000..3e9160b965 --- /dev/null +++ b/data/releases/4.2/announcements/4_2_2_fr.html @@ -0,0 +1,96 @@ +

+Alerte de sécurité PHP : Vulnérabilité dans +les versions 4.2.0 et 4.2.1 de PHP +

+ +

[ English Version ]

+ +
+
Date:
+
22 Juillet 2002
+
Logiciel:
+
PHP versions 4.2.0 et 4.2.1
+
Plates-formes:
+
Toutes
+
+ +

+ Le PHP Group a pris connaissance d'un trou de sécurité sérieux en PHP + version 4.2.0 et 4.2.1. Un intrus pourrait exécuter un code arbitraire sur + le serveur, avec les mêmes privilèges que celui qui exécute le serveur web. + Cette vulnérabilité peut être exploitée pour compromettre le serveur web, + et dans certaines circonstances, obtenir des droits spéciaux. +

+ +

Description

+ +

+ PHP contient du code qui analyse finement les entêtes des requêtes + HTTP POST. Le code est utilisé pour différencier les variables des + fichiers qui sont envoyés par le navigateur, avec l'encodage + "multipart/form-data". Cet analyseur ne vérifie pas suffisamment + les données d'entrée, ce qui conduit à une + vulnérabilité. +

+ +

+ La vulnérabilité est exploitable par quiconque peut envoyer des requêtes + HTTP POST à un serveur web utilisant PHP versions 4.2.0 et 4.2.1. Des + utilisateurs, locaux ou distants, même derrière un pare-feu, pourraient + obtenir des autorisations indues sur la machine. +

+ +

Impact

+ +

+ Les utilisateurs, tant locaux que distants, peuvent exploiter cette + vulnérabilité pour compromettre le serveur web, et, dans certaines circonstances, + obtenir des autorisations indues. Jusqu'à présent, seule la plate-forme + IA32 a pu passer les tests de sécurité. Cette vulnérabilité peut être utilisée + sous IA32 pour crasher PHP et, dans la plupart des cas, le serveur web. +

+ +

Solution

+ +

+ Le PHP Group a publié une nouvelle version PHP version, 4.2.2, qui inclus + une correction pour cette vulnérabilité. Tous les utilisateurs des versions de PHP + affectées sont encouragés à passer à cette nouvelle version. L'URL de + téléchargement est : + http://www.php.net/downloads.php + sous forme de sources (tarballs), exécutable Windows et source patches + pour les versions 4.2.0 et 4.2.1. +

+ +

Autre solution

+ +

+ Si les applications PHP n'utilisent pas la méthode POST sur un serveur + affecté, il est possible de simplement interdire les requêtes POST sur le + serveur. +

+ +

+ Sous Apache, par exemple, il est possible d'utiliser le code suivant + dans le fichier de configuration principal, ou avec un fichier .htaccess + placé suffisamment près de la racine : +

+ +
+<Limit POST>
+   Order deny,allow
+   Deny from all
+</Limit>
+
+ +

+ Notez qu'une autre configuration ou/et un autre fichier .htaccess avec + certains paramètres, peuvent annuler l'effet de l'exemple ci-dessus. +

+ +

Crédits

+ +

+ Le PHP Group remercie Stefan Esser de e-matters GmbH pour la découverte + de cette vulnérabilité. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_0.html b/data/releases/4.3/announcements/4_3_0.html new file mode 100644 index 0000000000..6f86134802 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_0.html @@ -0,0 +1,92 @@ +

PHP 4.3.0 Release Announcement

+ +

[ Version Française ]

+ +

+ After a long and arduous 8 months of development and testing, PHP 4.3.0 is + out! With regard to scope, time, and effort, this + is the largest 4.x release of PHP, and it further elevates PHP's standing as a + serious contender in the general purpose scripting language arena. +

+ +

Command line interface

+ +

+ This version finalizes the separate command line interface (CLI) that can be + used for developing shell and desktop applications (with + PHP-GTK). The CLI is always built, but + installed automatically only if CGI version is disabled via --disable-cgi + switch during configuration. Alternatively, one can use make + install-cli target. On Windows CLI can be found in + cli folder. +

+ +

+ CLI has a number of differences compared to other server APIs. More information + can be found in the PHP Manual: + Using PHP from the command line +

+ +

Streams

+ +

+ A very important "under the hood" feature is the streams API. It introduces a + unified approach to the handling of files, pipes, sockets, and other I/O + resources in the PHP core and extensions. +

+

+ What this means for users is that any I/O function that works with streams + (and that is almost all of them) can access built-in protocols, such as + HTTP/HTTPS and FTP/FTPS, as well as custom protocols registered from PHP + scripts. For more information please see: List + of Supported Protocols/Wrappers +

+ +

New build system

+ +

+ This iteration of the build system, among other things, replaces the slow + recursive make with one global Makefile and eases the integration of proper + dependencies. Automake is only needed for its aclocal tool. The build process is + now more portable and less resource-consuming. +

+ +

Improvements

+ +

PHP 4.3.0 has many improvements and enhancements:

+ + + +

+ For the full list of changes in PHP 4.3.0, see the + ChangeLog file. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_0_fr.html b/data/releases/4.3/announcements/4_3_0_fr.html new file mode 100644 index 0000000000..df8d8851d3 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_0_fr.html @@ -0,0 +1,123 @@ +

Annonce de publication de PHP 4.3.0

+ +

[ English version ]

+ +

+ Après un long et difficile 8 mois de développement et de + test, PHP 4.3.0 est publié! Au vue + des évolutions, du temps consacré et des efforts + consentis, cette version est la plus importante version de la + série des PHP 4.x. Elle contribue largement a améliorer + les capacités de PHP en tant que langage + généraliste de scripts. +

+ +

Utilisation en ligne de commande

+ +

+ PHP 4.3.0 achève la séparation du mode d'utilisation en + ligne de commande (dit CLI) qui permet de développer des + applications shell ou graphiques (avec PHP-GTK). + La version CLI de PHP est toujours compilées, mais elle n'est + installée que si la version CGI est désactivée + avec l'option --disable-cgi. De plus, vous pouvez utilisez la commande + make install-cli. Sous Windows, la version CLI est + disponible dans le dossier cli. +

+ +

+ CLI dispose de fonctionnalités différentes, par rappot + à la version interfacée avec les serveurs web. Pour + plus de détails, reportez vous à + Utiliser PHP en ligne de commande +

+ +

Flôts (Streams)

+ +

+ Une nouveauté très importante, mais cachée a été + introduite : les flôts. Les flôts unifient la gestion des pipes, + fichiers, sockets et autres ressources d'entrées/sorties du coeur de + PHP et de ses extensions. +

+

+ Cela signifie, pour les utilisateurs, est que les fonctions d'entrées/sorties + fonctionnent désormais avec les flôts (c'est à dire presque + toutes), peuvent utiliser des protocoles internes tels que HTTP/HTTPS et FTP/FTPS, + ainsi que des protocoles personnalisés, enregistrés comme tels depuis + les scripts PHP. Pour plus d'informations, voyez: + Liste des protocoles supportés +

+ +

Nouveaus système de compilation

+ +

+ Cette version du système de compilation de PHP, entre autre choses, remplace + la version récursive lente par un Makefile global, et facilite + l'intégration des librairies connexes. Automake est uniquement + nécessaire pour l'utilitaire aclocal. Le processus de compilation est rendu + plus portable, et moins consommateur de ressources. +

+ +

Améliorations

+ +

PHP 4.3.0 propose de nombreuses améliorations et évolutions :

+ + + +

+ Pour la liste complète des modifications de PHP 4.3.0, voyez le fichier + d'historique. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_1.html b/data/releases/4.3/announcements/4_3_1.html new file mode 100644 index 0000000000..bb70d9e329 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_1.html @@ -0,0 +1,68 @@ +

+PHP Security Advisory: CGI vulnerability in PHP version 4.3.0 +

+ +
+
Issued on:
+
February 17, 2003
+
Software:
+
PHP version 4.3.0
+
Platforms:
+
All
+
+ +

+ The PHP Group has learned of a serious security vulnerability in + the CGI SAPI of PHP version 4.3.0. +

+ +

Description

+ +

+ PHP contains code for preventing direct access to the CGI binary with + configure option "--enable-force-cgi-redirect" and php.ini option + "cgi.force_redirect". In PHP 4.3.0 there is a bug which renders these + options useless. +

+ +

+ NOTE: This bug does NOT affect any of the other SAPI modules. + (such as the Apache or ISAPI modules, etc.) +

+ +

Impact

+ +

+ Anyone with access to websites hosted on a web server which employs + the CGI module may exploit this vulnerability to gain access to any file + readable by the user under which the webserver runs. +

+ +

+ A remote attacker could also trick PHP into executing arbitrary PHP code + if attacker is able to inject the code into files accessible by the CGI. + This could be for example the web server access-logs. +

+ +

Solution

+ +

+ The PHP Group has released a new PHP version, 4.3.1, which incorporates + a fix for the vulnerability. All users of affected PHP versions are + encouraged to upgrade to this latest version. The + downloads page has the new 4.3.1 source tarballs, Windows binaries + and source patch from 4.3.0 available for download. You will only need + to upgrade if you're using the CGI module of PHP 4.3.0. There are no + other bugfixes contained in this release. +

+ +

Workarounds

+ +

None.

+ +

Credits

+ +

+ The PHP Group would like to thank Kosmas Skiadopoulos for discovering + this vulnerability. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_10.html b/data/releases/4.3/announcements/4_3_10.html new file mode 100644 index 0000000000..d970955a53 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_10.html @@ -0,0 +1,47 @@ +

PHP 4.3.10 Release Announcement

+

[ Version Française ]

+

+PHP Development Team would like to announce the immediate release of PHP 4.3.10. This is a +maintenance release that in addition to over 30 non-critical bug fixes addresses several very +serious security issues. +

+

+These include the following: +

+

+CAN-2004-1018 - shmop_write() out of bounds memory write access.
+CAN-2004-1018 - integer overflow/underflow in pack() and unpack() functions.
+CAN-2004-1019 - possible information disclosure, double free and negative reference index array underflow in deserialization code.
+CAN-2004-1020 - addslashes() not escaping \0 correctly.
+CAN-2004-1063 - safe_mode execution directory bypass.
+CAN-2004-1064 - arbitrary file access through path truncation.
+CAN-2004-1065 - exif_read_data() overflow on long sectionname.
+magic_quotes_gpc could lead to one level directory traversal with file uploads. +

+

All Users of PHP are strongly encouraged to upgrade to this release as soon as possible.

+ +

Bugfix release

+ +

+ Aside from the above mentioned issues this release includes the following important fixes: +

+ + + +

+ For a full list of changes in PHP 4.3.10, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_10_fr.html b/data/releases/4.3/announcements/4_3_10_fr.html new file mode 100644 index 0000000000..c192e04575 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_10_fr.html @@ -0,0 +1,48 @@ +

Annonce de publication de PHP 4.3.10

+

[ English Version ]

+

+L'équipe de développement PHP a le plaisir de vous annoncer +la publication de PHP 4.3.10. C'est une version +de maintenance, destinée à corriger une trentaine de bogues +non-critiques et ainsi que plusieurs problèmes de sécurité sérieux. +

+

+Cela inclut notamment: +

+

+CAN-2004-1018 - shmop_write() écrit hors des limites de la mémoire.
+CAN-2004-1018 - dépassement de capacité avec pack() et unpack().
+CAN-2004-1019 - publication possible d'informations, dépassement de capacité dans les index négatif lors de délinéarisation de données.
+CAN-2004-1020 - addslashes() ne protège pas correctement \0.
+CAN-2004-1063 - contournement de la directive de dossier d'exécution.
+CAN-2004-1064 - accès arbitraire à un fichier via une troncature.
+CAN-2004-1065 - dépassement de capacité avec exif_read_data() sur un long nom de section.
+magic_quotes_gpc peut mener à la lecture d'un dossier via le téléchargement de fichiers. +

+

Tous les utilisateurs sont encouragés à utiliser cette version.

+ +

Version de correction de bogues

+ +

+En plus des fonctionnalités ci-dessus, PHP 4.3.9 contient notamment les corrections, ajouts et améliorations suivantes : +

+ + + +

+ Pour une liste exhaustive des modifications de PHP 4.3.10, voyez + le ChangeLog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_11.html b/data/releases/4.3/announcements/4_3_11.html new file mode 100644 index 0000000000..e3fb1dc2d4 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_11.html @@ -0,0 +1,31 @@ +

PHP 4.3.11 Release Announcement

+

[ Version Française ]

+

+PHP Development Team is would like to announce the immediate release of PHP 4.3.11. +This is a maintenance release that in addition to over 70 non-critical bug fixes addresses several +security issues inside the exif and fbsql extensions as well as the unserialize(), +swf_definepoly() and getimagesize() functions. +

+ +

All Users of PHP are strongly encouraged to upgrade to this release.

+ +

Bugfix release

+ + + +

+ For a full list of changes in PHP 4.3.11, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_11_fr.html b/data/releases/4.3/announcements/4_3_11_fr.html new file mode 100644 index 0000000000..96827b7288 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_11_fr.html @@ -0,0 +1,28 @@ +

Annonce de publication de PHP 4.3.11

+

[ English Version ]

+

+L'équipe de développement PHP a le plaisir de vous annoncer la publication de PHP 4.3.11. C'est une version de maintenance, destinée à corriger environ 70 bogues non-critiques, plusieurs problèmes avec les extensions exif et fbsql ainsi que les fonctions unserialize(), swf_definepoly() et getimagesize(). +

+

+Tous les utilisateurs sont encouragés à utiliser cette version. +

+ +

Version de correction de bogues

+ + +

+ Pour une liste exhaustive des modifications de PHP 4.3.11, voyez + le ChangeLog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_2.html b/data/releases/4.3/announcements/4_3_2.html new file mode 100644 index 0000000000..57c57c121b --- /dev/null +++ b/data/releases/4.3/announcements/4_3_2.html @@ -0,0 +1,42 @@ +

PHP 4.3.2 Release Announcement

+ +

[ Version Française ]

+ +

+ After a lengthy QA process, PHP 4.3.2 is finally out!
+ This maintenance release solves a lot of bugs found in earlier PHP versions + and is a strongly recommended upgrade for all users of PHP. +

+ +

Bugfix release

+ +

+ PHP 4.3.2 contains, among others, following important fixes, additions and improvements: +

+ + + +

+ For a full list of changes in PHP 4.3.2, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_2_fr.html b/data/releases/4.3/announcements/4_3_2_fr.html new file mode 100644 index 0000000000..5b434704cf --- /dev/null +++ b/data/releases/4.3/announcements/4_3_2_fr.html @@ -0,0 +1,47 @@ +

Annonce de publication de PHP 4.3.2

+ +

[ English version ]

+ +

+ Après une longue étape de tests d'assurance Qualité, + PHP 4.3.2 est finalement disponible!
+ Cette version de maintenance résout un grand nombre de bugs trouvés dans + des versions plus anciennes de PHP, et il est recommandé + de faire la mise à jour pour tous les utilisateurs PHP. +

+ +

Version mineure, corrections de bugs

+ +

+ PHP 4.3.2 contient notamment les corrections, ajouts et améliorations suivantes : +

+ + + +

+ Pour une liste complète des modifications de PHP 4.3.2, reportez-vous au fichier + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_3.html b/data/releases/4.3/announcements/4_3_3.html new file mode 100644 index 0000000000..14af036cf1 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_3.html @@ -0,0 +1,39 @@ +

PHP 4.3.3 Release Announcement

+ +

[ Version Française ]

+ +

+ After a lengthy QA process, PHP 4.3.3 is finally out!
+ This maintenance release solves a fair number of bugs found in prior PHP versions and + addresses several security issues. All users are strongly advised to + upgrade to 4.3.3 as soon as possible. +

+ +

Bugfix release

+ +

+ PHP 4.3.3 contains, among others, following important fixes, additions and improvements: +

+ + + +

+ For a full list of changes in PHP 4.3.3, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_3_fr.html b/data/releases/4.3/announcements/4_3_3_fr.html new file mode 100644 index 0000000000..a81fc489af --- /dev/null +++ b/data/releases/4.3/announcements/4_3_3_fr.html @@ -0,0 +1,40 @@ +

Annonce de publication de PHP 4.3.3

+ +

[ English version ]

+ +

+Après avoir suivi un long processus qualité, PHP 4.3.3 est disponible!
+Cette version de maintenance résout un bon nombre de bugs découverts +dans des versions antérieures de PHP. Elle corrige aussi plusieurs +problèmes de sécurité. Il est vivement recommandé à tous les +utilisateurs d'utiliser cette version aussitôt que possible. +

+ +

Corrections et nouveautés

+ +

+PHP 4.3.3 contient la liste suivante et non exhaustive de corrections, +améliorations et ajouts : +

+ + + +

+ Pour une liste exhaustive des modifications de PHP 4.3.3, voyez + le changelog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_4.html b/data/releases/4.3/announcements/4_3_4.html new file mode 100644 index 0000000000..e2a532c5eb --- /dev/null +++ b/data/releases/4.3/announcements/4_3_4.html @@ -0,0 +1,31 @@ +

PHP 4.3.4 Release Announcement

+ +

[ Version Française ]

+ +

+ After a lengthy QA process, PHP 4.3.4 is finally out!
+ This is a medium size maintenance release, with a fair number of bug fixes. All users + are encouraged to upgrade to 4.3.4. +

+ +

Bugfix release

+ +

+ PHP 4.3.4 contains, among others, following important fixes, additions and improvements: +

+ + + +

+ For a full list of changes in PHP 4.3.4, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_4_fr.html b/data/releases/4.3/announcements/4_3_4_fr.html new file mode 100644 index 0000000000..2e36ebfcc6 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_4_fr.html @@ -0,0 +1,33 @@ +

Annonce de publication de PHP 4.3.4

+ +

[ English version ]

+ +

+ Après un long processus d'assurance qualité, + PHP 4.3.4 est désormais disponible!
+ C'est une version mineure d'entretien, avec de nombreuses corrections de bogues. + Tous les utilisateurs sont invités à passer à cette nouvelle version. +

+ +

Version de correction de bogues

+ +

+ PHP 4.3.4 contient notamment les corrections, ajouts et + améliorations suivantes : +

+ + + +

+ Pour la liste exhaustive des modifications de PHP 4.3.4, voyez + le changelog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_5.html b/data/releases/4.3/announcements/4_3_5.html new file mode 100644 index 0000000000..0b99421742 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_5.html @@ -0,0 +1,38 @@ +

PHP 4.3.5 Release Announcement

+ +

[ Version Française ]

+ +

+ PHP Development Team is proud to announce the release of PHP 4.3.5. + This is primarily a bug fix release, without any new features or additions. PHP 4.3.5 + is by far the most stable release of PHP to date and it is recommended that + all users upgrade to this release whenever possible. +

+ +

Bugfix release

+ +

+ PHP 4.3.5 contains, among others, following important fixes, additions and improvements: +

+ + + +

+ For a full list of changes in PHP 4.3.5, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_5_fr.html b/data/releases/4.3/announcements/4_3_5_fr.html new file mode 100644 index 0000000000..608d6162c7 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_5_fr.html @@ -0,0 +1,38 @@ +

Annonce de publication de PHP 4.3.5

+ +

[ English Version ]

+ +

+L'équipe de développement PHP a le plaisir de vous annoncer +la publication de PHP 4.3.5. C'est une version +de maintenance, destinée à corriger des erreurs, et sans aucun +ajout de fonctionnalité. PHP 4.3.5 est, de loin, la version de PHP +la plus stable, et il est recommandé à tous les utilisateurs +d'adopter cette version dès que possible. +

+ +

Version de correction de bogues

+ +

+ PHP 4.3.5 contient notamment les corrections, ajouts et améliorations suivantes : +

+ + + +

+ Pour une liste exhaustive des modifications de PHP 4.3.5, voyez + le changelog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_6.html b/data/releases/4.3/announcements/4_3_6.html new file mode 100644 index 0000000000..4115ea89e7 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_6.html @@ -0,0 +1,35 @@ +

PHP 4.3.6 Release Announcement

+ +

[ Version Française ]

+ +

+ PHP Development Team is proud to announce the release of PHP PHP 4.3.6. + This is is a bug fix release whose primary goal is to address two bugs which may + result in crashes in PHP builds with thread-safety enabled. All users of PHP + in a threaded environment (Windows) are strongly encouraged to upgrade to + this release. +

+ +

Bugfix release

+ +

+ Aside from the above mentioned issues this release includes the following important fixes: +

+ + + +

+ For a full list of changes in PHP 4.3.6, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_6_fr.html b/data/releases/4.3/announcements/4_3_6_fr.html new file mode 100644 index 0000000000..d3b30f38fe --- /dev/null +++ b/data/releases/4.3/announcements/4_3_6_fr.html @@ -0,0 +1,36 @@ +

Annonce de publication de PHP 4.3.6

+ +

[ English Version ]

+ +

+L'équipe de développement PHP a le plaisir de vous annoncer +la publication de PHP 4.3.6. C'est une version +de maintenance, destinée à corriger deux bogues qui +peuvent conduire à des crashs de PHP si la sécurité threads est activée. +Il est recommandé à tous les utilisateurs d'adopter cette +version dès que possible. +

+ +

Version de correction de bogues

+ +

+ PHP 4.3.6 contient notamment les corrections, ajouts et améliorations suivantes : +

+ + + +

+ Pour une liste exhaustive des modifications de PHP 4.3.6, voyez + le changelog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_7.html b/data/releases/4.3/announcements/4_3_7.html new file mode 100644 index 0000000000..a702c0ee30 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_7.html @@ -0,0 +1,34 @@ +

PHP 4.3.7 Release Announcement

+ +

[ Version Française ]

+ +

+ PHP Development Team is proud to announce the release of PHP PHP 4.3.7. + This is a maintenance release that in addition to several non-critical bug fixes, addresses an input + validation vulnerability in escapeshellcmd() and escapeshellarg() functions on the Windows platform. + Users of PHP on Windows are encouraged to upgrade to this release as soon as possible. +

+ +

Bugfix release

+ +

+ Aside from the above mentioned issues this release includes the following important fixes: +

+ + + +

+ For a full list of changes in PHP 4.3.7, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_7_fr.html b/data/releases/4.3/announcements/4_3_7_fr.html new file mode 100644 index 0000000000..31e270b641 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_7_fr.html @@ -0,0 +1,36 @@ +

Annonce de publication de PHP 4.3.7

+ +

[ English Version ]

+ +

+L'équipe de développement PHP a le plaisir de vous annoncer +la publication de PHP 4.3.7. C'est une version +de maintenance, destinée à corriger des bogues non-critiques, +corriger une vulnérabilité de validation dans les fonctions escapeshellcmd() et +escapeshellarg() sur la plate-forme Windows. Les utilisateurs de PHP sont encouragés +à changer de version aussitôt que possible. +

+ +

Version de correction de bogues

+ +

+ PHP 4.3.7 contient notamment les corrections, ajouts et améliorations suivantes : +

+ + + +

+ Pour une liste exhaustive des modifications de PHP 4.3.7, voyez + le changelog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_8.html b/data/releases/4.3/announcements/4_3_8.html new file mode 100644 index 0000000000..465c1bb55d --- /dev/null +++ b/data/releases/4.3/announcements/4_3_8.html @@ -0,0 +1,22 @@ +

PHP 4.3.8 Release Announcement

+ + + +

+ PHP Development Team is would like to announce the immediate availability of PHP 4.3.8. + This release is made in response to several security issues that have been discovered since the + 4.3.7 release. All users of PHP are strongly encouraged to upgrade to PHP 4.3.8 as soon as possible. +

+ +

Security Fixes release

+ +

+ This release addresses several important security issues. +

+ +

+ For a full list of changes in PHP 4.3.8, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_9.html b/data/releases/4.3/announcements/4_3_9.html new file mode 100644 index 0000000000..1f8c492ba6 --- /dev/null +++ b/data/releases/4.3/announcements/4_3_9.html @@ -0,0 +1,38 @@ +

PHP 4.3.9 Release Announcement

+

[ Version Française ]

+

+ PHP Development Team is proud to announce the immediate release of PHP PHP 4.3.9. + This is a maintenance release that in addition to over 50 non-critical bug fixes, addresses a problem + with GPC input processing. This release also re-introduces ability to write + GIF images via the bundled GD extension. + All Users of PHP are encouraged to upgrade to this release as soon as possible. +

+ +

Bugfix release

+ +

+ Aside from the above mentioned issues this release includes the following important fixes: +

+ + + +

+ For a full list of changes in PHP 4.3.9, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.3/announcements/4_3_9_fr.html b/data/releases/4.3/announcements/4_3_9_fr.html new file mode 100644 index 0000000000..39e36a635b --- /dev/null +++ b/data/releases/4.3/announcements/4_3_9_fr.html @@ -0,0 +1,39 @@ +

Annonce de publication de PHP 4.3.9

+

[ English Version ]

+

+L'équipe de développement PHP a le plaisir de vous annoncer +la publication de PHP 4.3.9. C'est une version +de maintenance, destinée à corriger une cinquantaine de bogues non-critiques, +et corriger le traitement des valeurs GPC. Cette version inclut aussi la possibilité +d'écrire des images GIF via la bibliothèque GD interne. Tous les utilisateurs +sont encouragés à utiliser cette version. +

+ +

Version de correction de bogues

+ +

+En plus des fonctionnalités ci-dessus, PHP 4.3.9 contient notamment les corrections, +ajouts et améliorations suivantes : +

+ + + +

+ Pour une liste exhaustive des modifications de PHP 4.3.9, voyez + le ChangeLog, en anglais. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_0.html b/data/releases/4.4/announcements/4_4_0.html new file mode 100644 index 0000000000..f420e29799 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_0.html @@ -0,0 +1,39 @@ +

PHP 4.4. Release Announcement

+

+The PHP Development Team would like to announce the immediate release of +PHP 4.4.0. +

+

+This is a maintenance release that addresses a serious memory corruption +problem within PHP concerning references. If references were used in a wrong +way, PHP would often create memory corruptions which would not always surface +or be visible. In other cases it could cause variables and objects to change +type or class unexpectedly. If you encountered strange behavior like this, this +release might fix it. The increased middle digit was required because the fix that +corrected the problem with references changed PHP's internal API, breaking +binary compatibility with the PHP 4.3.* series. This means that all binary +extension modules need to be recompiled in order to work with this release. +

+

+As part of the solution for the reference bug, you are very likely to find that +your own or third-party PHP scripts, considered 'clean' code under previous +versions of PHP, will now throw an E_NOTICE when references are incorrectly used +in the script. This is intended to alert developers to minor errors in their +approach, and does not affect the script's performance in any other way. +

+

+Besides the reference problem, this release also fixes numerous other bugs, +including a small security problem with our bundled shtool. +

+ +

Bugfix release

+ + + +

+ For a full list of changes in PHP 4.4.0, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_1.html b/data/releases/4.4/announcements/4_4_1.html new file mode 100644 index 0000000000..8243e75633 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_1.html @@ -0,0 +1,43 @@ +

PHP 4.4.1. Release Announcement

+

+The PHP Development Team would like to announce the immediate release of +PHP 4.4.1. +

+

+This is a bug fix release, which addresses some security problems too. The +security issues that this release fixes are: +

+

+

+This release also fixes 35 other defects, where the most important is the +the fix that removes a notice when passing a by-reference result of a function +as a by-reference value to another function. (Bug #33558). +

+

+ For a full list of changes in PHP 4.4.1, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_2.html b/data/releases/4.4/announcements/4_4_2.html new file mode 100644 index 0000000000..e83391ef20 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_2.html @@ -0,0 +1,23 @@ +

PHP 4.4.2. Release Announcement

+

+The PHP Development Team would like to announce the immediate release of +PHP 4.4.2. +

+

+This is a bug fix release, which addresses some security problems too. The +major points that this release corrects are: +

+

+

+This release also fixes about 30 other defects. +

+

+ For a full list of changes in PHP 4.4.2, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_3.html b/data/releases/4.4/announcements/4_4_3.html new file mode 100644 index 0000000000..72910ce1e3 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_3.html @@ -0,0 +1,27 @@ +

PHP 4.4.3. Release Announcement

+

+The PHP development team is proud to announce the release of PHP 4.4.3. +This release combines small number of bug fixes and resolves a number of security issues. +All PHP 4.x users are encouraged to upgrade to this release as soon as possible. +

+ +

+The security issues resolved include the following: +

+

+ +

+The release also includes about 20 bug fixes and an upgraded PCRE library +(version 6.6). +

+ +

+ For a full list of changes in PHP 4.4.3, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_4.html b/data/releases/4.4/announcements/4_4_4.html new file mode 100644 index 0000000000..cad0503086 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_4.html @@ -0,0 +1,27 @@ +

PHP 4.4.4 Release Announcement

+

+This release address a series of locally exploitable security problems +discovered since PHP 4.4.3. All PHP users are encouraged to upgrade to this +release as soon as possible. +

+ +

+This release provides the following security fixes: +

+

+ +

+In addition to the security fixes, both releases include a small number of non-security related bug fixes. +

+ +

+ For a full list of changes in PHP 4.4.4, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_5.html b/data/releases/4.4/announcements/4_4_5.html new file mode 100644 index 0000000000..321c40b23c --- /dev/null +++ b/data/releases/4.4/announcements/4_4_5.html @@ -0,0 +1,47 @@ +

PHP 4.4.5 Release Announcement

+

+The PHP development team would like to announce the immediate availability of +PHP 4.4.5. This release is a stability and security enhancement of the 4.4.X +branch, and all users are strongly encouraged to upgrade to it as soon as +possible. +

+ +

+Security Enhancements and Fixes in PHP 4.4.5: +

+ + +

+The majority of the security vulnerabilities discovered and resolved can in +most cases be only abused by local users and cannot be triggered remotely. +However, some of the above issues can be triggered remotely in certain +situations, or exploited by malicious local users on shared hosting setups +utilizing PHP as an Apache module. Therefore, we strongly advise all users of +PHP, regardless of the version to upgrade to 4.4.5 release as soon as possible. +PHP 5.2.1 with equivalent security corrections is available as well. +

+ +

+In addition to the security fixes, this release includes a number of +non-security related bug fixes. +

+ +

+ For a full list of changes in PHP 4.4.5, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_6.html b/data/releases/4.4/announcements/4_4_6.html new file mode 100644 index 0000000000..afae243164 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_6.html @@ -0,0 +1,13 @@ +

PHP 4.4.6 Release Announcement

+

+The PHP development team would like to announce the immediate availability of +PHP 4.4.6. This release addresses a crash problem with the session extension +when register_globals is turned on that was introduced in PHP 4.4.5. This +release comes also with the new version 7.0 of PCRE and it addresses a number +of minor bugs. +

+ +

+ For a full list of changes in PHP 4.4.6, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_7.html b/data/releases/4.4/announcements/4_4_7.html new file mode 100644 index 0000000000..60b9624b11 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_7.html @@ -0,0 +1,42 @@ +

PHP 4.4.7 Release Announcement

+

+The PHP development team would like to announce the immediate availability of +PHP 4.4.7. This release continues to improve the security and the stability of +the 4.4 branch and all users are strongly encouraged to upgrade to it as soon +as possible. +

+ +

+Security Enhancements and Fixes in PHP 4.4.7: +

+ + +

+While majority of the issues outlined above are local, few issues such as the +XML-RPC overflows can be triggered remotely and therefor should be considered +critical. If you use the XML-RPC extension consider upgrading as soon as +possible. +

+ +

+Other improvements of PHP 4.4.7 include: +

+ + +

+ For a full list of changes in PHP 4.4.7, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_8.html b/data/releases/4.4/announcements/4_4_8.html new file mode 100644 index 0000000000..a3d94aa397 --- /dev/null +++ b/data/releases/4.4/announcements/4_4_8.html @@ -0,0 +1,27 @@ +

PHP 4.4.8 Release Announcement

+

+The PHP development team would like to announce the immediate availability of +PHP 4.4.8. It continues to improve the security and the stability of the 4.4 +branch and all users are strongly encouraged to upgrade to it as soon as +possible. This release wraps up all the outstanding patches for the PHP 4.4 +series, and is therefore the last normal PHP 4.4 release. If necessary, +releases to address security issues could be made until 2008-08-08. +

+ +

+Security Enhancements and Fixes in PHP 4.4.8: +

+ + +

+ For a full list of changes in PHP 4.4.8, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/4.4/announcements/4_4_9.html b/data/releases/4.4/announcements/4_4_9.html new file mode 100644 index 0000000000..9d4db77f1a --- /dev/null +++ b/data/releases/4.4/announcements/4_4_9.html @@ -0,0 +1,23 @@ +

PHP 4.4.9 Release Announcement

+

+The PHP development team would like to announce the immediate availability of +PHP 4.4.9. It continues to improve the security and the stability of the 4.4 +branch and all users are strongly encouraged to upgrade to it as soon as +possible. This release wraps up all the outstanding patches for the PHP 4.4 +series, and is therefore the last PHP 4.4 release. +

+ +

+Security Enhancements and Fixes in PHP 4.4.9: +

+ + +

+ For a full list of changes in PHP 4.4.9, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_0.html b/data/releases/5.1/announcements/5_1_0.html new file mode 100644 index 0000000000..a01ceb6bee --- /dev/null +++ b/data/releases/5.1/announcements/5_1_0.html @@ -0,0 +1,58 @@ +

PHP 5.1.0. Release Announcement

+

+The PHP development team is proud to announce the release of PHP PHP 5.1.0.
+Some of the key features of PHP 5.1.0 include: +

+

+

+

+ +

+ For a full list of changes in PHP 5.1.0, see the + ChangeLog. +

+ +

+In addition to new features, this release includes a number of important security fixes: +

+

+ +

+All users of PHP 5.0 and early adopters of 5.1 betas are strongly advised to upgrade to 5.1 as soon as +possible. Furthermore, 5.1 branch obsoletes the 5.0 PHP branch. +

+ +

Upgrading Guide is available to ease the transition from prior PHP versions.

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_1.html b/data/releases/5.1/announcements/5_1_1.html new file mode 100644 index 0000000000..87842c7548 --- /dev/null +++ b/data/releases/5.1/announcements/5_1_1.html @@ -0,0 +1,22 @@ +

PHP 5.1.1. Release Announcement

+

+The PHP Development Team would like to announce the immediate release of +PHP 5.1.1. +

+

+This is a regression correction release aimed at addressing several issues +that may cause issues for certain applications. The main fixes found in this +release include the following: +

+

+

+ For a full list of changes in PHP 5.1.1, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_2.html b/data/releases/5.1/announcements/5_1_2.html new file mode 100644 index 0000000000..10d97fc311 --- /dev/null +++ b/data/releases/5.1/announcements/5_1_2.html @@ -0,0 +1,52 @@ +

PHP 5.1.2. Release Announcement

+

+The PHP development team is proud to announce the release of PHP 5.1.2. +This release combines small feature enhancements with a fair number of +bug fixes and addresses three security issues. All PHP 5 users are encouraged to +upgrade to this release. +

+ +

+The security issues resolved include the following: +

+

+ +

+The feature enhancements include the following notables: +

+

+ +

+The release also includes over 85 bug fixes with a focus on: +

+

+ +

+ For a full list of changes in PHP 5.1.2, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_3.html b/data/releases/5.1/announcements/5_1_3.html new file mode 100644 index 0000000000..fd93df9272 --- /dev/null +++ b/data/releases/5.1/announcements/5_1_3.html @@ -0,0 +1,55 @@ +

PHP 5.1.3. Release Announcement

+

+The PHP development team is proud to announce the release of PHP 5.1.3. +This release combines small number of feature enhancements with a significant amount of bug fixes and resolves a number of security issues. +All PHP users are encouraged to upgrade to this release as soon as possible. +

+ +

+The security issues resolved include the following: +

+

+ +

+The feature enhancements include the following notables: +

+

+ +

+The release also includes over 120 bug fixes with a focus on: +

+

+ +

+ For a full list of changes in PHP 5.1.3, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_4.html b/data/releases/5.1/announcements/5_1_4.html new file mode 100644 index 0000000000..bfb97f3353 --- /dev/null +++ b/data/releases/5.1/announcements/5_1_4.html @@ -0,0 +1,21 @@ +

PHP 5.1.4 Release Announcement

+

+A critical bug with file uploads as well as the fastcgi sapi has been discovered in PHP 5.1.3 and a new PHP release 5.1.4 has been + made available to address these two issues. All PHP users are encouraged to upgrade to this release as soon as possible. +

+ +

+This release provides fixes for the following bugs: +

+

+ +

+ For a full list of changes in PHP 5.1.4, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_5.html b/data/releases/5.1/announcements/5_1_5.html new file mode 100644 index 0000000000..53fa9e6182 --- /dev/null +++ b/data/releases/5.1/announcements/5_1_5.html @@ -0,0 +1,27 @@ +

PHP 5.1.5 Release Announcement

+

+This release address a series of locally exploitable security problems discovered since PHP 5.1.4. +All PHP users are encouraged to upgrade to this release as soon as possible. +

+ +

+This release provides the following security fixes: +

+

+ +

+In addition to the security fixes, both releases include a small number of non-security related bug fixes. +

+ +

+ For a full list of changes in PHP 5.1.5, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.1/announcements/5_1_6.html b/data/releases/5.1/announcements/5_1_6.html new file mode 100644 index 0000000000..b83b6887ec --- /dev/null +++ b/data/releases/5.1/announcements/5_1_6.html @@ -0,0 +1,10 @@ +

PHP 5.1.6 Release Announcement

+

+This release is a re-release of PHP 5.1.5, which was missing the fix for memory_limit restriction +on 64 bit systems. If you rely on this functionality and use 64bit machines, you are advised to upgrade. +

+ +

+ For a full list of changes in PHP 5.1.6, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_0.html b/data/releases/5.2/announcements/5_2_0.html new file mode 100644 index 0000000000..c1f71d5c4f --- /dev/null +++ b/data/releases/5.2/announcements/5_2_0.html @@ -0,0 +1,55 @@ +

PHP 5.2.0 Release Announcement

+

+The PHP development team is proud to announce the immediate release of PHP +5.2.0. This release is a major improvement in the 5.X series, which includes a +large number of new features, bug fixes and security enhancements. +

+ +

+The key features of PHP 5.2.0 include: +

+ +

+Security Enhancements and Fixes in PHP 5.2.0: +

+ + +

+All users of PHP, especially those using earlier PHP 5 releases are advised +to upgrade to this release as soon as possible. This release also obsoletes +the 5.1 branch of PHP. +

+ +

+For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide +available here, detailing the changes between those releases +and PHP 5.2.0. +

+ +

+ For a full list of changes in PHP 5.2.0, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_1.html b/data/releases/5.2/announcements/5_2_1.html new file mode 100644 index 0000000000..515f29ce48 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_1.html @@ -0,0 +1,61 @@ +

PHP 5.2.1 Release Announcement

+

+The PHP development team would like to announce the immediate availability of PHP 5.2.1. +This release is a major stability and security enhancement of the 5.X branch, and all +users are strongly encouraged to upgrade to it as soon as possible. +

+ +

+Security Enhancements and Fixes in PHP 5.2.1: +

+ + +

+The majority of the security vulnerabilities discovered and resolved can in most cases be only abused by local users and cannot be triggered +remotely. However, some of the above issues can be triggered remotely in certain situations, or exploited by malicious local users on shared hosting setups +utilizing PHP as an Apache module. Therefore, we strongly advise all users of PHP, regardless of the version to upgrade to 5.2.1 release +as soon as possible. PHP 4.4.5 with equivalent security corrections is available as well. +

+ +

+The key improvements of PHP 5.2.1 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.1. +

+ +

+ For a full list of changes in PHP 5.2.1, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_10.html b/data/releases/5.2/announcements/5_2_10.html new file mode 100644 index 0000000000..7ae30a357b --- /dev/null +++ b/data/releases/5.2/announcements/5_2_10.html @@ -0,0 +1,42 @@ +

PHP 5.2.10 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.10. This release focuses on improving the stability of +the PHP 5.2.x branch with over 100 bug fixes, one of which is security related. +All users of PHP are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.10: +

+ + +

+Key enhancements in PHP 5.2.10 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.10. +

+ +

+ For a full list of changes in PHP 5.2.10, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_11.html b/data/releases/5.2/announcements/5_2_11.html new file mode 100644 index 0000000000..40d9986efd --- /dev/null +++ b/data/releases/5.2/announcements/5_2_11.html @@ -0,0 +1,42 @@ +

PHP 5.2.11 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.11. This release focuses on improving the stability of +the PHP 5.2.x branch with over 75 bug fixes, some of which are security related. +All users of PHP 5.2 are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.11: +

+ + +

+Key enhancements in PHP 5.2.11 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.11. +

+ +

+ For a full list of changes in PHP 5.2.11, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_12.html b/data/releases/5.2/announcements/5_2_12.html new file mode 100644 index 0000000000..4a390dee90 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_12.html @@ -0,0 +1,47 @@ +

PHP 5.2.12 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.12. This release focuses on improving the stability of +the PHP 5.2.x branch with over 60 bug fixes, some of which are security related. +All users of PHP 5.2 are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.12: +

+ + +

+Key enhancements in PHP 5.2.12 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.12. +

+ +

+ For a full list of changes in PHP 5.2.12, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_13.html b/data/releases/5.2/announcements/5_2_13.html new file mode 100644 index 0000000000..74cc129620 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_13.html @@ -0,0 +1,40 @@ +

PHP 5.2.13 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.13. This release focuses on improving the stability of +the PHP 5.2.x branch with over 40 bug fixes, some of which are security related. +All users of PHP 5.2 are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.13: +

+ + +

+Key enhancements in PHP 5.2.13 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.13. +

+ +

+ For a full list of changes in PHP 5.2.13, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_14.html b/data/releases/5.2/announcements/5_2_14.html new file mode 100644 index 0000000000..7f2945d21f --- /dev/null +++ b/data/releases/5.2/announcements/5_2_14.html @@ -0,0 +1,52 @@ +

PHP 5.2.14 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.14. This release focuses on improving the +stability of the PHP 5.2.x branch with over 60 bug fixes, some of which +are security related.

+ +

+This release marks the end of the active support for PHP +5.2. Following this release the PHP 5.2 series will receive no further +active bug maintenance. Security fixes for PHP 5.2 might be published on a +case by cases basis. All users of PHP 5.2 are encouraged to upgrade to +PHP 5.3.

+ +

+Security Enhancements and Fixes in PHP 5.2.14: +

+ + +

+Key enhancements in PHP 5.2.14 include: +

+ + +

To prepare for upgrading to PHP 5.3, now that PHP 5.2's support ended, a +migration guide available on http://php.net/migration53, details the changes between +PHP 5.2 and PHP 5.3.

+ +

For a full list of changes in PHP 5.2.14 see the ChangeLog at +.

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_15.html b/data/releases/5.2/announcements/5_2_15.html new file mode 100644 index 0000000000..cfa60194ae --- /dev/null +++ b/data/releases/5.2/announcements/5_2_15.html @@ -0,0 +1,38 @@ +

PHP 5.2.15 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.15. This release marks the end of support +for PHP 5.2. All users of PHP 5.2 are encouraged to upgrade to PHP 5.3. +

+ +

+This release focuses on improving the security and stability of the +PHP 5.2.x branch with a small number, of predominatly security fixes. +

+ +

+Security Enhancements and Fixes in PHP 5.2.15: +

+ + +

+Key enhancements in PHP 5.2.15 include: +

+ + +

To prepare for upgrading to PHP 5.3, now that PHP 5.2's support ended, a +migration guide available on http://php.net/migration53, details the changes between +PHP 5.2 and PHP 5.3.

+ +

For a full list of changes in PHP 5.2.15 see the ChangeLog at +http://www.php.net/ChangeLog-5.php#5.2.15.

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_16.html b/data/releases/5.2/announcements/5_2_16.html new file mode 100644 index 0000000000..ba9697bbbd --- /dev/null +++ b/data/releases/5.2/announcements/5_2_16.html @@ -0,0 +1,20 @@ +

PHP 5.2.16 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.16. This release marks the end of support +for PHP 5.2. All users of PHP 5.2 are encouraged to upgrade to PHP 5.3. +

+ +

+This release focuses on addressing a regression in open_basedir implementation +introduced in 5.2.15 in addition to fixing a crash inside PDO::pgsql +on data retrieval when the server is down. All users who have upgraded to 5.2.15 and are +utilizing open_basedir are strongly encouraged to upgrade to 5.2.16 or 5.3.4. +

+ +

To prepare for upgrading to PHP 5.3, now that PHP 5.2's support ended, a +migration guide available on http://php.net/migration53, details the changes between +PHP 5.2 and PHP 5.3.

+ +

For a full list of changes in PHP 5.2.16 see the ChangeLog at +http://www.php.net/ChangeLog-5.php#5.2.16.

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_17.html b/data/releases/5.2/announcements/5_2_17.html new file mode 100644 index 0000000000..d62b4e9332 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_17.html @@ -0,0 +1,23 @@ +

PHP 5.2.17 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.17.

+ +

This release resolves a critical issue, reported as PHP bug #53632, +where conversions from string to double might cause the PHP interpreter +to hang on systems using x87 FPU registers.

+ +

The problem is known to only affect x86 32-bit PHP processes, regardless +of whether the system hosting PHP is 32-bit or 64-bit. You can test +whether your system is affected by running this script +from the command line.

+ +

All users of PHP are strongly advised to update to these versions +immediately.

+ +

+Security Enhancements and Fixes in PHP 5.2.17: +

+ \ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_2.html b/data/releases/5.2/announcements/5_2_2.html new file mode 100644 index 0000000000..65863ac0ee --- /dev/null +++ b/data/releases/5.2/announcements/5_2_2.html @@ -0,0 +1,53 @@ +

PHP 5.2.2 Release Announcement

+

+The PHP development team would like to announce the immediate availability of PHP 5.2.2. +This release continues to improve the security and the stability of the 5.X +branch and all users are strongly encouraged to upgrade to it as soon as possible. +

+ +

+Security Enhancements and Fixes in PHP 5.2.2: +

+ + +

+While majority of the issues outlined above are local, in some circumstances given specific code paths they can be +triggered externally. Therefor, we strongly recommend that if you use code utilizing the functions and extensions identified as +having had vulnerabilities in them, you consider upgrading your PHP. +

+ +

+The key improvements of PHP 5.2.2 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.2. +

+ +

+ For a full list of changes in PHP 5.2.2, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_3.html b/data/releases/5.2/announcements/5_2_3.html new file mode 100644 index 0000000000..7fa2a86183 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_3.html @@ -0,0 +1,52 @@ +

PHP 5.2.3 Release Announcement

+

+The PHP development team would like to announce the immediate availability +of PHP 5.2.3. This release continues to improve the security and the +stability of the 5.X branch as well as addressing two regressions introduced +by the previous 5.2 releases. These regressions relate to the timeout +handling over non-blocking SSL connections and the lack of +HTTP_RAW_POST_DATA in certain conditions. All users are encouraged to +upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.3: +

+ + +

+The key improvements of PHP 5.2.3 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.3. +

+ +

+ For a full list of changes in PHP 5.2.3, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_4.html b/data/releases/5.2/announcements/5_2_4.html new file mode 100644 index 0000000000..8511cbe225 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_4.html @@ -0,0 +1,52 @@ +

PHP 5.2.4 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.4. This release focuses on improving the stability +of the PHP 5.2.X branch with over 120 various bug fixes in +addition to resolving several low priority security bugs. All +users of PHP are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.4: +

+ + +

+Key enhancements in PHP 5.2.4 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.4. +

+ +

+ For a full list of changes in PHP 5.2.4, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_5.html b/data/releases/5.2/announcements/5_2_5.html new file mode 100644 index 0000000000..b953661049 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_5.html @@ -0,0 +1,44 @@ +

PHP 5.2.5 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.5. This release focuses on improving the stability of +the PHP 5.2.x branch with over 60 bug fixes, several of which are security related. +All users of PHP are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.5: +

+ + +

+Key enhancements in PHP 5.2.5 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.5. +

+ +

+ For a full list of changes in PHP 5.2.5, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_6.html b/data/releases/5.2/announcements/5_2_6.html new file mode 100644 index 0000000000..edac8ca97e --- /dev/null +++ b/data/releases/5.2/announcements/5_2_6.html @@ -0,0 +1,47 @@ +

PHP 5.2.6 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.6. This release focuses on improving the stability of +the PHP 5.2.x branch with over 120 bug fixes, several of which are security related. +All users of PHP are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.6: +

+ + +

+Key enhancements in PHP 5.2.6 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.6. +

+ +

+ For a full list of changes in PHP 5.2.6, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_7.html b/data/releases/5.2/announcements/5_2_7.html new file mode 100644 index 0000000000..da3e31e456 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_7.html @@ -0,0 +1,45 @@ +

PHP 5.2.7 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.7. This release focuses on improving the stability of +the PHP 5.2.x branch with over 120 bug fixes, several of which are security related. +All users of PHP are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.7: +

+ + +

+Key enhancements in PHP 5.2.7 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.7. +

+ +

+ For a full list of changes in PHP 5.2.7, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_8.html b/data/releases/5.2/announcements/5_2_8.html new file mode 100644 index 0000000000..5a47b2a2fe --- /dev/null +++ b/data/releases/5.2/announcements/5_2_8.html @@ -0,0 +1,19 @@ +

PHP 5.2.8 Release Announcement

+

+The PHP development team would like to announce the immediate availability +of PHP 5.2.8. This release addresses a regression introduced by 5.2.7 in +regard to the magic_quotes functionality, that was broken by an incorrect fix +to the filter extension. All users who have upgraded to 5.2.7 are encouraged +to upgrade to this release, alternatively you can apply a work-around for +the bug by changing "filter.default_flags=0" in php.ini +

+ +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.8. +

+ +

+ For a full list of changes in PHP 5.2.8, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.2/announcements/5_2_9.html b/data/releases/5.2/announcements/5_2_9.html new file mode 100644 index 0000000000..87cb146124 --- /dev/null +++ b/data/releases/5.2/announcements/5_2_9.html @@ -0,0 +1,45 @@ +

PHP 5.2.9 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.2.9. This release focuses on improving the stability of +the PHP 5.2.x branch with over 50 bug fixes, several of which are security related. +All users of PHP are encouraged to upgrade to this release. +

+ +

+Security Enhancements and Fixes in PHP 5.2.9: +

+ + +

+Key enhancements in PHP 5.2.9 include: +

+ + +

+For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available +here, detailing the changes between those releases +and PHP 5.2.9. +

+ +

+ For a full list of changes in PHP 5.2.9, see the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_0.html b/data/releases/5.3/announcements/5_3_0.html new file mode 100644 index 0000000000..df02346eb8 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_0.html @@ -0,0 +1,73 @@ +

PHP 5.3.0 Release Announcement

+

+The PHP development team is proud to announce the immediate release of PHP +5.3.0. This release is a major improvement in the 5.X series, which includes a +large number of new features and bug fixes. +

+ +

+The key features of PHP 5.3.0 include: +

+ +

This release also drops several extensions and unifies the usage of internal APIs. +Users should be aware of the following known backwards compatibility breaks:

+ + +

+For users upgrading from PHP 5.2 there is a migration guide +available here, detailing +the changes between those releases and PHP 5.3.0. +

+ +

+ For a full list of changes in PHP 5.3.0, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_1.html b/data/releases/5.3/announcements/5_3_1.html new file mode 100644 index 0000000000..b8cd062722 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_1.html @@ -0,0 +1,42 @@ +

PHP 5.3.1 Release Announcement

+

+The PHP development team is proud to announce the immediate release of PHP +5.3.1. This is a maintenance release in the 5.3 series, which includes a +large number of bug fixes. +

+ +

+Security Enhancements and Fixes in PHP 5.3.1: +

+ + +

+Key Bug Fixes in PHP 5.3.1 include: +

+ + +

+For users upgrading from PHP 5.2 there is a migration guide +available here, detailing +the changes between those releases and PHP 5.3. +

+ +

+ For a full list of changes in PHP 5.3.1, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_10.html b/data/releases/5.3/announcements/5_3_10.html new file mode 100644 index 0000000000..9d8dbc1be1 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_10.html @@ -0,0 +1,14 @@ +

PHP 5.3.10 Release Announcement

+ +

The PHP development team would like to announce the immediate +availability of PHP 5.3.10. This release delivers a critical security +fix.

+ +

Security Fixes in PHP 5.3.10:

+ + + +

All users are strongly encouraged to upgrade to PHP 5.3.10.

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_11.html b/data/releases/5.3/announcements/5_3_11.html new file mode 100644 index 0000000000..a8167177ad --- /dev/null +++ b/data/releases/5.3/announcements/5_3_11.html @@ -0,0 +1,31 @@ +

PHP 5.3.11 Release Announcement

+ +

The PHP development team announces the immediate availability of +PHP 5.3.11. This release focuses on improving the stability of the +PHP 5.3 branch with over 60 bug fixes, some of which are security related.

+ +

Security Enhancements for PHP 5.3.11:

+ + + +

Key enhancements in PHP 5.3.11 include:

+ + + +

For a full list of changes in PHP 5.3.11, see the ChangeLog. For source downloads please visit +our downloads page, Windows binaries can be found +on windows.php.net/download/.

+ +

All users of PHP 5.3 are strongly encouraged to upgrade to PHP 5.3.11.

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_12.html b/data/releases/5.3/announcements/5_3_12.html new file mode 100644 index 0000000000..8d81f58299 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_12.html @@ -0,0 +1,56 @@ +

PHP 5.3.12 Release Announcement

+ +

The PHP development team would like to announce the immediate +availability of PHP 5.3.12. This release delivers a security fix.

+ +

There is a vulnerability in certain CGI-based setups that has gone +unnoticed for at least 8 years. Section +7 of the CGI spec states:

+ + + Some systems support a method for supplying a array of strings to the + CGI script. This is only used in the case of an `indexed' query. This + is identified by a "GET" or "HEAD" HTTP request with a URL search + string not containing any unencoded "=" characters. + + +

So requests that do not have a "=" in the query string are treated +differently from those who do in some CGI implementations. For PHP this +means that a request containing ?-s may dump the PHP source code for the +page, but a request that has ?-s&a=1 is fine.

+ +

A large number of sites run PHP as either an Apache module through +mod_php or using php-fpm under nginx. Neither of these setups are +vulnerable to this. Straight shebang-style CGI also does not appear to +be vulnerable.

+ +

If you are using Apache mod_cgi to run PHP you may be vulnerable. To see +if you are just add ?-s to the end of any of your URLs. If you see your +source code, you are vulnerable. If your site renders normally, you are not.

+ +

Making a bad week worse, we had a bug in our bug system that toggled the +private flag of a bug report to public on a comment to the bug report +causing this issue to go public before we had time to test solutions to +the level we would like.

+ +

To fix this update to PHP 5.3.12 or PHP 5.4.2. We recognize that since +this is a rather outdated way to run PHP it may not be feasible to +upgrade these sites to a modern version of PHP, so an alternative is to +configure your web server to not let these types of requests with query +strings starting with a "-" and not containing a "=" through. Adding a +rule like this should not break any sites. For Apache using mod_rewrite +it would look like this:

+ +
+    RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
+    RewriteRule ^(.*) $1? [L]
+
+ +

If you are writing your own rule, be sure to take the urlencoded ?%2ds +version into account.

+ +

For source downloads of PHP 5.3.12 please visit +our downloads page, Windows binaries can be found +on windows.php.net/download/. A +ChangeLog exists.

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_13.html b/data/releases/5.3/announcements/5_3_13.html new file mode 100644 index 0000000000..89e07caed3 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_13.html @@ -0,0 +1,13 @@ +

PHP 5.3.13 Release Announcement

+ +

The PHP development team would like to announce the immediate +availability of PHP 5.3.13. This release delivers a security fix. +All users of PHP 5.3 are encouraged to upgrade to this release

+ +

PHP 5.3.13 completes a fix for a vulnerability in CGI-based setups +(CVE-2012-2311). Note: mod_php and php-fpm are not vulnerable to this +attack.

+ +

For source downloads of PHP 5.3.13 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog.

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_14.html b/data/releases/5.3/announcements/5_3_14.html new file mode 100644 index 0000000000..69ac743387 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_14.html @@ -0,0 +1,15 @@ +

PHP 5.3.14 Release Announcement

+ +

The PHP development team would like to announce the immediate +availability of PHP 5.3.14. This release fixes two security related +issues. All users of PHP 5.3 are encouraged to upgrade to this release.

+ +

PHP 5.3.14 fixes an security issue in the implementation of crypt() and a +heap overflow in the Phar extension. Over 30 bugs were fixed

+ +

Please note that php://fd is now only available if the CLI SAPI is used

+ +

For source downloads of PHP 5.3.14 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_15.html b/data/releases/5.3/announcements/5_3_15.html new file mode 100644 index 0000000000..b7228879b4 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_15.html @@ -0,0 +1,11 @@ +

PHP 5.3.15 Release Announcement

+ +

The PHP development team would like to announce the immediate +availability of PHP 5.3.15. Over 30 bugs were fixed, including a security +related overflow issue in the stream implementation. All users of PHP +are encouraged to upgrade to this release.

+ +

For source downloads of PHP 5.3.15 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_16.html b/data/releases/5.3/announcements/5_3_16.html new file mode 100644 index 0000000000..3815342099 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_16.html @@ -0,0 +1,11 @@ +

PHP 5.3.16 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP +5.3.16. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to +PHP 5.4.6. Alternatively, PHP 5.3.16 is recommended for those wishing to remain +on the 5.3 series.

+ +

For source downloads of PHP 5.3.16 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_17.html b/data/releases/5.3/announcements/5_3_17.html new file mode 100644 index 0000000000..cf6e12c13f --- /dev/null +++ b/data/releases/5.3/announcements/5_3_17.html @@ -0,0 +1,11 @@ +

PHP 5.3.17 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP +5.3.17. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to +PHP 5.4.7. Alternatively, PHP 5.3.17 is recommended for those wishing to remain +on the 5.3 series.

+ +

For source downloads of PHP 5.3.17 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_18.html b/data/releases/5.3/announcements/5_3_18.html new file mode 100644 index 0000000000..5001304c07 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_18.html @@ -0,0 +1,11 @@ +

PHP 5.3.18 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP +5.3.18. About 10 bugs were fixed. All users of PHP are encouraged to upgrade to +PHP 5.4.8. Alternatively, PHP 5.3.18 is recommended for those wishing to remain +on the 5.3 series.

+ +

For source downloads of PHP 5.3.18 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_19.html b/data/releases/5.3/announcements/5_3_19.html new file mode 100644 index 0000000000..5d91c0a650 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_19.html @@ -0,0 +1,11 @@ +

PHP 5.3.19 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP +5.3.19. About 10 bugs were fixed. All users of PHP are encouraged to upgrade to +PHP 5.4.9. Alternatively, PHP 5.3.19 is recommended for those wishing to remain +on the 5.3 series.

+ +

For source downloads of PHP 5.3.19 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_2.html b/data/releases/5.3/announcements/5_3_2.html new file mode 100644 index 0000000000..b38fbb6c72 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_2.html @@ -0,0 +1,44 @@ +

PHP 5.3.2 Release Announcement

+

+The PHP development team is proud to announce the immediate release of PHP +5.3.2. This is a maintenance release in the 5.3 series, which includes a +large number of bug fixes. +

+ +

+Security Enhancements and Fixes in PHP 5.3.2: +

+ + +

+Key Bug Fixes in PHP 5.3.2 include: +

+ + +

+For users upgrading from PHP 5.2 there is a migration guide +available here, detailing +the changes between those releases and PHP 5.3. +

+ +

+ For a full list of changes in PHP 5.3.2, see the + ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_20.html b/data/releases/5.3/announcements/5_3_20.html new file mode 100644 index 0000000000..775783fc68 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_20.html @@ -0,0 +1,9 @@ +

PHP 5.3.20 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP +5.3.20. About 15 bugs were fixed. Please note that the PHP 5.3 series will enter an end of life cycle and receive only critical fixes as of March 2013. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.20 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.20 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_21.html b/data/releases/5.3/announcements/5_3_21.html new file mode 100644 index 0000000000..bb0da49527 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_21.html @@ -0,0 +1,9 @@ +

PHP 5.3.21 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP +5.3.21. About 5 bugs were fixed All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.21 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.21 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_22.html b/data/releases/5.3/announcements/5_3_22.html new file mode 100644 index 0000000000..c911d50baf --- /dev/null +++ b/data/releases/5.3/announcements/5_3_22.html @@ -0,0 +1,8 @@ +

PHP 5.3.22 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.22. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.22 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.22 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_23.html b/data/releases/5.3/announcements/5_3_23.html new file mode 100644 index 0000000000..4f2f542ca8 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_23.html @@ -0,0 +1,8 @@ +

PHP 5.3.23 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.23. About 7 bugs were fixed, including fixes for CVE-2013-1643 and CVE-2013-1635. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.23 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.23 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_24.html b/data/releases/5.3/announcements/5_3_24.html new file mode 100644 index 0000000000..2cd9348e54 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_24.html @@ -0,0 +1,8 @@ +

PHP 5.3.24 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.24. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.24 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.24 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_25.html b/data/releases/5.3/announcements/5_3_25.html new file mode 100644 index 0000000000..eb827f8d97 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_25.html @@ -0,0 +1,8 @@ +

PHP 5.3.25 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.25. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.25 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.25 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_26.html b/data/releases/5.3/announcements/5_3_26.html new file mode 100644 index 0000000000..840d793c95 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_26.html @@ -0,0 +1,8 @@ +

PHP 5.3.26 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.25. About 6 bugs were fixed, including CVE 2013-2110. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.26 is recommended for those wishing to remain on the 5.3 series.

+ +

For source downloads of PHP 5.3.26 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_27.html b/data/releases/5.3/announcements/5_3_27.html new file mode 100644 index 0000000000..981eece0ee --- /dev/null +++ b/data/releases/5.3/announcements/5_3_27.html @@ -0,0 +1,10 @@ +

PHP 5.3.27 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.27. About 10 bugs were fixed, including a security fix in the XML parser (Bug #65236).

+ +

Please Note: This will be the last regular release of the PHP 5.3 series. All users of PHP are encouraged to upgrade to PHP 5.4 or PHP 5.5. The PHP 5.3 series will receive only security fixes for the next year.

+ +

For source downloads of PHP 5.3.27 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_28.html b/data/releases/5.3/announcements/5_3_28.html new file mode 100644 index 0000000000..6ad04feff5 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_28.html @@ -0,0 +1,8 @@ +

PHP 5.3.28 Release Announcement

+ +

The PHP development team announces the immediate availability of PHP 5.3.28. This release fixes two security issues in OpenSSL module in PHP 5.3 - CVE-2013-4073 and CVE-2013-6420. All PHP 5.3 users are encouraged to upgrade to PHP 5.3.28 or latest versions of PHP 5.4 or PHP 5.5.

+ +

For source downloads of PHP 5.3.28 please visit our downloads page, +Windows binaries can be found on windows.php.net/download/. +The list of changes is recorded in the ChangeLog. +

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_29.html b/data/releases/5.3/announcements/5_3_29.html new file mode 100644 index 0000000000..db3642fb65 --- /dev/null +++ b/data/releases/5.3/announcements/5_3_29.html @@ -0,0 +1,19 @@ +

PHP 5.3.29 Release Announcement

+ +

The PHP development team announces the immediate availability of + PHP 5.3.29. This release marks the end of life of the PHP 5.3 series. + Future releases of this series are not planned. All PHP 5.3 users are + encouraged to upgrade to the current stable version of PHP 5.5 or + previous stable version of PHP 5.4, which are supported till at least + 2016 and 2015 respectively.

+ +

PHP 5.3.29 contains about 25 potentially security related fixes + backported from PHP 5.4 and 5.5.

+ +

For source downloads of PHP 5.3.29, please visit our downloads page. Windows + binaries can be found on windows.php.net/download/. The list of changes is recorded in + the ChangeLog.

+ +

For helping your migration to newer versions please refer to our migration + guides for updates from PHP 5.3 to + 5.4 and from PHP 5.4 to 5.5.

\ No newline at end of file diff --git a/data/releases/5.3/announcements/5_3_3.html b/data/releases/5.3/announcements/5_3_3.html new file mode 100644 index 0000000000..bbfe1d2f2a --- /dev/null +++ b/data/releases/5.3/announcements/5_3_3.html @@ -0,0 +1,18 @@ +

PHP 5.3.3 Release Announcement

+

+The PHP development team would like to announce the immediate +availability of PHP 5.3.3. This release focuses on improving the +stability and security of the PHP 5.3.x branch with over 100 bug +fixes, some of which are security related. All users are encouraged +to upgrade to this release. +

+ +

+Backwards incompatible change: +

+ - + ', 'intro' => '
start submittingConference website

… read full article

', ), - 82 => + 82 => array ( 'title' => 'PHP 7.1.24 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-08-3', 'published' => '2018-11-08T15:28:08+00:00', 'updated' => '2018-11-08T15:28:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-08-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-08-3', 'rel' => 'via', @@ -4422,12 +4441,12 @@ the upgrade ), 'content' => '

PHP 7.1.24 Release Announcement

- +

The PHP development team announces the immediate availability of PHP 7.1.24. This is a bugfix release.

- +

All PHP 7.1 users are encouraged to upgrade to this version.

- +

For source downloads of PHP 7.1.24 please visit our downloads page, Windows source and binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeLog. @@ -4437,34 +4456,34 @@ the upgrade 'intro' => '

PHP 7.1.24 Release Announcement

The PHP development team announces the immediate availability of PHP 7.1.24. This is a bugfix release.

… read full article

', ), - 83 => + 83 => array ( 'title' => 'PHP 7.2.12 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-08-2', 'published' => '2018-11-08T10:28:15+00:00', 'updated' => '2018-11-08T10:28:15+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-08-2', 'rel' => 'via', @@ -4486,29 +4505,29 @@ the upgrade 'intro' => '

The PHP development team announces the immediate availability of PHP 7.2.12. This is a bugfix release.

All PHP 7.2 users are encouraged to upgrade to this version.

… read full article

', ), - 84 => + 84 => array ( 'title' => 'PHP 7.3.0RC5 Released', 'id' => 'http://php.net/archive/2018.php#id2018-11-08-1', 'published' => '2018-11-08T11:11:26+01:00', 'updated' => '2018-11-08T11:11:26+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-11-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-11-08-1', 'rel' => 'via', @@ -4567,29 +4586,29 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

… read full article

', ), - 85 => + 85 => array ( 'title' => 'PHP 7.3.0RC4 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-25-1', 'published' => '2018-10-25T11:07:32+02:00', 'updated' => '2018-10-25T11:07:32+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-25-1', 'rel' => 'via', @@ -4648,37 +4667,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

… read full article

', ), - 86 => + 86 => array ( 'title' => 'International PHP Conference 2019 - Spring Edition', 'id' => 'http://php.net/archive/2018.php#id2018-10-12-2', 'published' => '2018-10-12T16:20:54-04:00', 'updated' => '2018-10-12T16:20:54-04:00', 'finalTeaserDate' => '2019-06-03', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-10-12-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -4718,37 +4737,37 @@ the upgrade ', 'intro' => '

The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale taking place at the same time.

… read full article

', ), - 87 => + 87 => array ( 'title' => 'Longhorn PHP 2019 CFP is open!', 'id' => 'http://php.net/archive/2018.php#id2018-10-12-1', 'published' => '2018-10-12T18:08:06+00:00', 'updated' => '2018-10-12T18:08:06+00:00', 'finalTeaserDate' => '2018-12-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-10-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.longhornphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.longhornphp.com/', @@ -4767,34 +4786,34 @@ the upgrade ', 'intro' => '

Longhorn PHP is back for another exciting weekend of fun and learning!

At Longhorn PHP you\'ll get to learn from and alongside a diverse group of developers from all over the region, country, and even the globe. The conference will consist of a tutorial day with in-depth workshops, followed by two main conference days with multiple tracks of traditional 1 hour sessions, and new 30 minute sessions! Register now to take the next step toward leveling up your development career!

… read full article

', ), - 88 => + 88 => array ( 'title' => 'PHP 7.1.23 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-11-3', 'published' => '2018-10-11T14:11:47+00:00', 'updated' => '2018-10-11T14:11:47+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-11-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-11-3', 'rel' => 'via', @@ -4816,34 +4835,34 @@ the upgrade 'intro' => '

The PHP development team announces the immediate availability of PHP 7.1.23. This is a bugfix release.

All PHP 7.1 users are encouraged to upgrade to this version.

… read full article

', ), - 89 => + 89 => array ( 'title' => 'PHP 7.2.11 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-11-2', 'published' => '2018-10-11T14:11:19+00:00', 'updated' => '2018-10-11T14:11:19+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-11-2', 'rel' => 'via', @@ -4865,29 +4884,29 @@ the upgrade 'intro' => '

The PHP development team announces the immediate availability of PHP 7.2.11. This is a bugfix release.

All PHP 7.2 users are encouraged to upgrade to this version.

… read full article

', ), - 90 => + 90 => array ( 'title' => 'PHP 7.3.0RC3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-10-11-1', 'published' => '2018-10-11T13:47:50+02:00', 'updated' => '2018-10-11T13:47:50+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-10-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-10-11-1', 'rel' => 'via', @@ -4946,29 +4965,29 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

… read full article

', ), - 91 => + 91 => array ( 'title' => 'PHP 7.3.0RC2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-28-1', 'published' => '2018-09-28T10:31:16+02:00', 'updated' => '2018-09-28T10:31:16+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-28-1', 'rel' => 'via', @@ -5027,34 +5046,34 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

… read full article

', ), - 92 => + 92 => array ( 'title' => 'PHP 5.6.38 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-5', 'published' => '2018-09-13T19:56:28+02:00', 'updated' => '2018-09-13T19:56:28+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-5', 'rel' => 'via', @@ -5083,34 +5102,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

', ), - 93 => + 93 => array ( 'title' => 'PHP 7.1.22 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-4', 'published' => '2018-09-13T13:21:55+00:00', 'updated' => '2018-09-13T13:21:55+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-4', 'rel' => 'via', @@ -5140,34 +5159,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

', ), - 94 => + 94 => array ( 'title' => 'PHP 7.0.32 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-3', 'published' => '2018-09-13T13:00:00+01:00', 'updated' => '2018-09-13T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-3', 'rel' => 'via', @@ -5196,29 +5215,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

', ), - 95 => + 95 => array ( 'title' => 'PHP 7.3.0RC1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-2', 'published' => '2018-09-13T10:57:40+02:00', 'updated' => '2018-09-13T10:57:40+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-2', 'rel' => 'via', @@ -5277,34 +5296,34 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

… read full article

', ), - 96 => + 96 => array ( 'title' => 'PHP 7.2.10 Released', 'id' => 'http://php.net/archive/2018.php#id2018-09-13-1', 'published' => '2018-09-13T08:44:08+00:00', 'updated' => '2018-09-13T08:44:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-09-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-09-13-1', 'rel' => 'via', @@ -5326,37 +5345,37 @@ the upgrade 'intro' => '

The PHP development team announces the immediate availability of PHP 7.2.10. This is a security release which also contains several minor bug fixes.

All PHP 7.2 users are encouraged to upgrade to this version.

… read full article

', ), - 97 => + 97 => array ( 'title' => 'PHP Day Curitiba 2018', 'id' => 'http://php.net/archive/2018.php#id2018-09-03-1', 'published' => '2018-09-03T21:49:30+00:00', 'updated' => '2018-09-03T21:49:30+00:00', 'finalTeaserDate' => '2018-10-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-09-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpdaycuritiba.com.br', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpdaycuritiba.com.br', @@ -5384,29 +5403,29 @@ the upgrade
  • Free Admission + Coffee-break + A lot of networking
  • … read full article

    ', ), - 98 => + 98 => array ( 'title' => 'PHP 7.3.0.beta3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-30-1', 'published' => '2018-08-30T17:37:34+02:00', 'updated' => '2018-08-30T17:37:34+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-30-1', 'rel' => 'via', @@ -5465,37 +5484,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 99 => + 99 => array ( 'title' => 'PHP UK Conference 2019 CFP is Open', 'id' => 'http://php.net/archive/2018.php#id2018-08-28-1', 'published' => '2018-08-28T19:02:06+00:00', 'updated' => '2018-08-28T19:02:06+00:00', 'finalTeaserDate' => '2018-08-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.co.uk', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.co.uk', @@ -5516,37 +5535,37 @@ the upgrade ', 'intro' => '

    Dates announced for PHP UK 2019

    We are pleased to announce that PHP UK is back in 2019 for our 14th annual conference. As always PHP UK will feature an optional workshop day followed by two days of amazing talks, plentiful networking opportunities and great social events.

    … read full article

    ', ), - 100 => + 100 => array ( 'title' => 'Cascadia PHP', 'id' => 'http://php.net/archive/2018.php#id2018-08-21-1', 'published' => '2018-08-21T22:29:36+00:00', 'updated' => '2018-08-21T22:29:36+00:00', 'finalTeaserDate' => '2018-09-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.cascadiaphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.cascadiaphp.com/', @@ -5559,34 +5578,34 @@ the upgrade ', 'intro' => '
    ', ), - 101 => + 101 => array ( 'title' => 'PHP 7.1.21 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-17-1', 'published' => '2018-08-17T14:52:00+00:00', 'updated' => '2018-08-17T14:52:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-17-1', 'rel' => 'via', @@ -5615,34 +5634,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 102 => + 102 => array ( 'title' => 'PHP 7.2.9 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-16-3', 'published' => '2018-08-16T19:14:25+00:00', 'updated' => '2018-08-16T19:14:25+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-16-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-16-2', 'rel' => 'via', @@ -5664,37 +5683,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.9. This is a bugfix release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 103 => + 103 => array ( 'title' => 'php[world] 2018', 'id' => 'http://php.net/archive/2018.php#id2018-08-16-2', 'published' => '2018-08-16T14:31:44+00:00', 'updated' => '2018-08-16T14:31:44+00:00', 'finalTeaserDate' => '2018-11-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -5714,29 +5733,29 @@ the upgrade ', 'intro' => '

    We are excited to announce the 5th annual php[world] conference, produced by the publishers of php[architect] magazine. As always, it is taking place over two days in November (14th-15th) in the Washington D.C. area.

    This year we have streamlined our event schedule to add in even more content for you! 40 sessions, 6 workshops, and 12 birds of a feather sessions are waiting for you at this year\'s php[world] conference.

    … read full article

    ', ), - 104 => + 104 => array ( 'title' => 'PHP 7.3.0.beta2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-16-1', 'published' => '2018-08-16T14:11:38+02:00', 'updated' => '2018-08-16T14:11:38+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-16-1', 'rel' => 'via', @@ -5795,37 +5814,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 105 => + 105 => array ( 'title' => 'SunshinePHP 2019 CFP Started', 'id' => 'http://php.net/archive/2018.php#id2018-08-14-1', 'published' => '2018-08-14T00:00:01+00:00', 'updated' => '2018-08-14T12:23:00+00:00', 'finalTeaserDate' => '2018-09-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -5842,37 +5861,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2019 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 15th, 2018.

    SunshinePHP hit it\'s 7th year and will happen from February 7th to 9th, 2019 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 106 => + 106 => array ( 'title' => 'Northeast PHP Boston 2018', 'id' => 'http://php.net/archive/2018.php#id2018-08-09-1', 'published' => '2018-08-09T21:41:10-04:00', 'updated' => '2018-08-09T21:41:10-04:00', 'finalTeaserDate' => '2018-09-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-08-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2018.northeastphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2018.northeastphp.org/', @@ -5889,29 +5908,29 @@ the upgrade ', 'intro' => '

    Join us September 19-21 for this year\'s PHP, Web Development, and UX Conference by Northeast PHP. We\'re returning to Boston and will be hosted at Wayfair HQ in historic Copley Square.

    Our schedule has been announced and this year\'s has another great lineup of talks for the PHP community, including a security hackathon, IBM sponsored event night, keynote by PJ Hagerty, and a full day workshop covering application development using containers by Red Hat.

    … read full article

    ', ), - 107 => + 107 => array ( 'title' => 'PHP 7.3.0.beta1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-08-02-1', 'published' => '2018-08-02T11:44:58+02:00', 'updated' => '2018-08-02T11:44:58+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-08-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-08-02-1', 'rel' => 'via', @@ -5969,34 +5988,34 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 108 => + 108 => array ( 'title' => 'PHP 7.1.20 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-20-2', 'published' => '2018-07-20T08:13:03+00:00', 'updated' => '2018-07-20T08:13:03+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-20-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-20-2', 'rel' => 'via', @@ -6027,34 +6046,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 109 => + 109 => array ( 'title' => 'PHP 5.6.37 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-20-1', 'published' => '2018-07-20T04:41:46+02:00', 'updated' => '2018-07-20T04:41:46+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-20-1', 'rel' => 'via', @@ -6083,34 +6102,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 110 => + 110 => array ( 'title' => 'PHP 7.0.31 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-19-3', 'published' => '2018-07-19T13:00:00+01:00', 'updated' => '2018-07-19T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-19-2', 'rel' => 'via', @@ -6139,34 +6158,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 111 => + 111 => array ( 'title' => 'PHP 7.2.8 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-19-2', 'published' => '2018-07-19T09:42:31+00:00', 'updated' => '2018-07-19T09:42:31+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-19-2', 'rel' => 'via', @@ -6188,29 +6207,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.8. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 112 => + 112 => array ( 'title' => 'PHP 7.3.0alpha4 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-19-1', 'published' => '2018-07-19T11:02:21+02:00', 'updated' => '2018-07-19T11:02:21+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-19-1', 'rel' => 'via', @@ -6266,29 +6285,29 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 113 => + 113 => array ( 'title' => 'PHP 7.3.0 alpha 3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-07-05-1', 'published' => '2018-07-05T11:41:41+02:00', 'updated' => '2018-07-05T11:41:41+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-07-05-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-07-05-1', 'rel' => 'via', @@ -6344,37 +6363,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 114 => + 114 => array ( 'title' => 'ZendCon & OpenEnterprise 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-26-1', 'published' => '2018-06-26T08:41:29+00:00', 'updated' => '2018-06-26T08:41:29+00:00', 'finalTeaserDate' => '2018-10-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.zendcon.com', @@ -6395,37 +6414,37 @@ the upgrade business leaders, strategists, and developers will assemble to discuss case studies and best practices around the application of PHP and open source to transform business.

    ', ), - 115 => + 115 => array ( 'title' => 'SymfonyCon Lisbon 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-4', 'published' => '2018-06-25T14:46:40+02:00', 'updated' => '2018-06-25T14:46:40+02:00', 'finalTeaserDate' => '2018-12-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-25-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://lisbon2018.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://lisbon2018.symfony.com/', @@ -6454,37 +6473,37 @@ the upgrade serious work around Symfony and its environment, then sharing this very special Portuguese atmosphere... And of course, celebrate the community reunion!

    ', ), - 116 => + 116 => array ( 'title' => 'SymfonyLive Berlin 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-3', 'published' => '2018-06-25T13:29:40+02:00', 'updated' => '2018-06-25T13:29:40+02:00', 'finalTeaserDate' => '2018-10-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-25-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://berlin2018.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://berlin2018.live.symfony.com/', @@ -6503,37 +6522,37 @@ the upgrade 26th of October there will be two workshop days and a conference day with two tracks.

    Symfony German-speaking fans, don\'t miss the opportunity to attend inspiring and exciting talks and hands-on workshops!

    ', ), - 117 => + 117 => array ( 'title' => 'SymfonyLive USA 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-2', 'published' => '2018-06-25T13:17:59+02:00', 'updated' => '2018-06-25T13:17:59+02:00', 'finalTeaserDate' => '2018-10-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-25-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://usa2018.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://usa2018.live.symfony.com/', @@ -6557,34 +6576,34 @@ the upgrade from October 11th-12th. We are excited to return to the city by the bay and host the American Symfony community.

    … read full article

    ', ), - 118 => + 118 => array ( 'title' => 'PHP 7.1.19 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-25-1', 'published' => '2018-06-25T07:02:15+00:00', 'updated' => '2018-06-25T07:02:15+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-25-1', 'rel' => 'via', @@ -6613,34 +6632,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 119 => + 119 => array ( 'title' => 'PHP 7.2.7 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-21-2', 'published' => '2018-06-21T15:12:22+00:00', 'updated' => '2018-06-21T15:12:22+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-21-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-21-2', 'rel' => 'via', @@ -6662,29 +6681,29 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.7. This is a primarily a bugfix release which includes a segfault fix for opcache.

    PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 120 => + 120 => array ( 'title' => 'PHP 7.3.0 alpha 2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-21-1', 'published' => '2018-06-21T11:46:20+02:00', 'updated' => '2018-06-21T11:46:20+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-21-1', 'rel' => 'via', @@ -6740,37 +6759,37 @@ the upgrade Windows sources and binaries can be found on windows.php.net/qa/.

    … read full article

    ', ), - 121 => + 121 => array ( 'title' => 'SymfonyLive London 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-18-1', 'published' => '2018-06-18T10:37:31+02:00', 'updated' => '2018-06-18T10:37:31+02:00', 'finalTeaserDate' => '2018-09-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://london2018.live.symfony.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://london2018.live.symfony.com/', @@ -6794,37 +6813,37 @@ the upgrade professionals will meet at Westminster, for SymfonyLive London 2018.

    … read full article

    ', ), - 122 => + 122 => array ( 'title' => 'php Central Europe Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-14-1', 'published' => '2018-06-14T20:49:21+02:00', 'updated' => '2018-06-14T20:49:21+02:00', 'finalTeaserDate' => '2018-06-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpce.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpce.eu/', @@ -6855,37 +6874,37 @@ the upgrade ', 'intro' => '

    New season and new challenges! As conference organisers we understand perfectly that you can stay with peleton only when you focus on development. That is why phpCE, as an event aimed at a wide group of PHP programmers from Central Europe, leaves Poland for the first time. We are stronger than before thanks to the organisers of Brno PHP Conference and volunteers from the Pehapkaři group. Together we have been working for the success of this year’s edition and we are inviting you to Prague.

    Our Special Guest this year will be Rasmus Lerdorf, The PHP Language Creator.

    … read full article

    ', ), - 123 => + 123 => array ( 'title' => 'php[world] 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-06-13-1', 'published' => '2018-06-13T12:00:51+00:00', 'updated' => '2018-06-13T12:00:51+00:00', 'finalTeaserDate' => '2018-07-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -6929,37 +6948,37 @@ the upgrade Ideas surrounding the entire software life cycle are often big hits for our attendees. Finally, we do welcome non-technical proposals that will appeal to a developer audience.

    … read full article

    ', ), - 124 => + 124 => array ( 'title' => 'LaravelConf Taiwan 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-11-1', 'published' => '2018-06-11T11:00:00+00:00', 'updated' => '2018-06-11T11:00:00+00:00', 'finalTeaserDate' => '2018-07-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laravelconf.tw/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laravelconf.tw/', @@ -6978,29 +6997,29 @@ the upgrade ', 'intro' => '

    As the biggest PHP and Laravel community in Taiwan, we are proud to announce LaravelConf Taiwan will take place on July 8, 2018.

    Come and enjoy inspirational talks and making friends with enthusiastic developers like you!

    … read full article

    ', ), - 125 => + 125 => array ( 'title' => 'PHP 7.3.0 alpha 1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-06-07-1', 'published' => '2018-06-07T18:36:37+00:00', 'updated' => '2018-06-07T18:36:37+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-06-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-06-07-1', 'rel' => 'via', @@ -7047,37 +7066,37 @@ the upgrade PHP Wiki.

    For source downloads of PHP 7.3.0 Alpha 1 please visit the download page.

    … read full article

    ', ), - 126 => + 126 => array ( 'title' => 'PHPSC Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-06-3', 'published' => '2018-06-06T13:14:56-03:00', 'updated' => '2018-06-06T13:14:56-03:00', 'finalTeaserDate' => '2018-06-09', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conf.phpsc.com.br', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conf.phpsc.com.br', @@ -7098,37 +7117,37 @@ the upgrade ', 'intro' => '

    The Santa Catarina PHP user group (PHPSC) announce the 8th edition of the PHPSC Conference, taking place on June 8-9th, 2018 in Florianópolis, Brazil.

    This Conference aims to discuss best practices in PHP technology and related areas such as design, development techniques, database, open source, agile methodologies, design patterns, etc.

    … read full article

    ', ), - 127 => + 127 => array ( 'title' => 'Madison PHP Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-06-06-2', 'published' => '2018-06-06T20:10:02+00:00', 'updated' => '2018-06-06T20:10:02+00:00', 'finalTeaserDate' => '2018-06-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.MadisonPHPConference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.MadisonPHPConference.com', @@ -7143,36 +7162,36 @@ the upgrade ', 'intro' => '

    Join us on Friday, November 2nd, 2018 for a full day of tutorials followed by multiple tracks of amazing talks on Saturday, November 3rd, 2018. Now in its sixth year, Madison PHP Conference in Madison, Wisconsin, USA focuses on PHP, related web technologies, and professional development - everything you need to energize your career. This event is organized by the locally-run Madison PHP user group and is designed to offer something for attendees at all skill levels. Madison PHP Conference 2018 will be two days of networking, learning, sharing, and great fun!

    The Call for Papers will be open until May 31st, 2018. Madison PHP Conference offers reimbursement for travel and accommodations. To view the full speaker package and to submit a talk, please visit: https://cfp.MadisonPHPConference.com.

    ', ), - 128 => + 128 => array ( 'title' => 'Southeast PHP Conference', 'id' => 'http://php.net/archive/2018.php#id2018-06-06-1', 'published' => '2018-06-06T11:02:22+00:00', 'finalTeaserDate' => '2018-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-06-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://southeastphp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://southeastphp.com', @@ -7187,34 +7206,34 @@ the upgrade ', 'intro' => '

    Southeast PHP is a two-day, regional PHP conference that brings the community together to learn and grow. We\'re bringing the community conference to Nashville, TN which hasn\'t had a conference since the old PHP Community Conference back in 2011! We will have two full days of amazing talks from members of our community talking about security, framework-less php, deployment and more!

    The conference is scheduled to run August 16th - August 17th, at the beautiful Hotel Preston. We welcome developers and enthusiasts of all skill levels to come join us while we discuss the latest trends and technologies in our industry. You can use the code `SOUTHEAST` to reserve a room today!

    … read full article

    ', ), - 129 => + 129 => array ( 'title' => 'PHP 7.1.18 Released', 'id' => 'http://php.net/archive/2018.php#id2018-05-25-1', 'published' => '2018-05-25T12:43:22+00:00', 'updated' => '2018-05-25T12:43:22+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-05-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-05-25-1', 'rel' => 'via', @@ -7243,34 +7262,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 130 => + 130 => array ( 'title' => 'PHP 7.2.6 Released', 'id' => 'http://php.net/archive/2018.php#id2018-05-24-1', 'published' => '2018-05-24T21:55:35+00:00', 'updated' => '2018-05-24T21:55:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-05-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-05-24-1', 'rel' => 'via', @@ -7292,37 +7311,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.6. This is a primarily a bugfix release which includes a memory corruption fix for EXIF.

    PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 131 => + 131 => array ( 'title' => 'phpDay 2018', 'id' => 'http://php.net/archive/2018.php#id2018-05-02-1', 'published' => '2018-05-02T14:39:18+02:00', 'updated' => '2018-05-02T14:39:18+02:00', 'finalTeaserDate' => '2018-05-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-05-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.phpday.it/', @@ -7339,37 +7358,37 @@ the upgrade ', 'intro' => '

    The Italian PHP user group GrUSP is pleased to announce the 15th edition of phpday, taking place on May 11-12th, 2018 in Verona, Italy.

    It is the first historic Italian conference dedicated solely to PHP development, technologies and management. It is aimed to IT managers, developers and innovators. Each year it renews the opportunity to link to new business partners.

    … read full article

    ', ), - 132 => + 132 => array ( 'title' => 'ZendCon & OpenEnterprise 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-04-29-1', 'published' => '2018-04-29T08:41:29+00:00', 'updated' => '2018-04-29T08:41:29+00:00', 'finalTeaserDate' => '2018-05-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.zendcon.com', @@ -7384,34 +7403,34 @@ the upgrade ', 'intro' => '

    The Call For Papers for ZendCon & OpenEnterprise 2018 is now open!

    ZendCon & OpenEnterprise is the premier open source conference designed to teach and share practical experiences from the front lines of business critical and enterprise environments, giving you the opportunity to speak in front of technical business leaders, strategists, and developers seeking the best knowledge around the operational advantages of open source. This is your chance to tell everyone what you’ve learned and enrich our community of enterprise technology practitioners.

    … read full article

    ', ), - 133 => + 133 => array ( 'title' => 'PHP 5.6.36 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-4', 'published' => '2018-04-26T13:29:24-07:00', 'updated' => '2018-04-26T13:29:24-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-4', 'rel' => 'via', @@ -7440,34 +7459,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 134 => + 134 => array ( 'title' => 'PHP 7.1.17 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-3', 'published' => '2018-04-26T16:11:23+00:00', 'updated' => '2018-04-26T16:11:23+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-3', 'rel' => 'via', @@ -7496,34 +7515,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 135 => + 135 => array ( 'title' => 'PHP 7.0.30 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-2', 'published' => '2018-04-26T13:00:00+01:00', 'updated' => '2018-04-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-2', 'rel' => 'via', @@ -7552,34 +7571,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 136 => + 136 => array ( 'title' => 'PHP 7.2.5 Released', 'id' => 'http://php.net/archive/2018.php#id2018-04-26-1', 'published' => '2018-04-26T09:12:18+00:00', 'updated' => '2018-04-26T09:12:18+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-04-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-04-26-1', 'rel' => 'via', @@ -7601,37 +7620,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.5. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 137 => + 137 => array ( 'title' => 'Mid-Atlantic Developer Conference', 'id' => 'http://php.net/archive/2018.php#id2018-04-25-1', 'published' => '2018-04-25T19:31:27+00:00', 'updated' => '2018-04-25T19:31:27+00:00', 'finalTeaserDate' => '2018-07-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.middevcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.middevcon.com/', @@ -7650,37 +7669,37 @@ the upgrade ', 'intro' => '

    We are excited to announce the schedule for the 1st annual Mid-Atlantic Developer Conference taking place this summer on July 13-14 near Baltimore, MD.

    This is a brand new polyglot developer event designed to bring together programmers from the region for two full days of learning. We\'ve put together an electic set of sessions and workshops for you. You\'ll recognize some names from the PHP community, as well as see brand new speakers at this event. We are including sessions on Caching, Hiring, Polymer, Bots, Security, Encryption, SVG, WebAssembly, GraphQL, Accessibility, Mentorship, Augmented Reality, Testing, AWS, Docker, Troubleshooting, Gherkin, Ethereum, Health and much more!

    … read full article

    ', ), - 138 => + 138 => array ( 'title' => 'International PHP Conference 2018 - Fall Edition', 'id' => 'http://php.net/archive/2018.php#id2018-04-23-1', 'published' => '2018-04-23T09:44:54-04:00', 'updated' => '2018-04-23T09:44:54-04:00', 'finalTeaserDate' => '2018-10-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -7719,37 +7738,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the International JavaScript Conference taking place at the same time.

    … read full article

    ', ), - 139 => + 139 => array ( 'title' => 'CoderCruise 2018 - The Bahamas!', 'id' => 'http://php.net/archive/2018.php#id2018-04-11-1', 'published' => '2018-04-11T13:40:58+00:00', 'updated' => '2018-04-11T13:40:58+00:00', 'finalTeaserDate' => '2018-08-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/', @@ -7766,37 +7785,37 @@ the upgrade ', 'intro' => '

    The team behind the original php[cruise] is once again bringing a conference to the open seas. CoderCruise 2018 is be a premiere conference experience, giving you have an exclusive connection to your fellow community members. It is setting sail from Ft. Lauderdale on August 30th for an extended weekend 5-day cruise that also visits Half Moon Cay and Nassau!

    This year we\'ve managed to negotiate a much cheaper overall rate for our participants, starting as low as $410 per person (including the 5-day cruise, food, drink, the conference, and all taxes and fees wrapped into one package!)

    … read full article

    ', ), - 140 => + 140 => array ( 'title' => 'PHP Developer Days 2018 • Dresden, Germany', 'id' => 'http://php.net/archive/2018.php#id2018-04-09-1', 'published' => '2018-04-09T16:29:11+00:00', 'updated' => '2018-04-09T16:29:11+00:00', 'finalTeaserDate' => '2018-09-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.phpdd.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.phpdd.org', @@ -7812,37 +7831,37 @@ the upgrade ', 'intro' => '

    The 4th annual PHP community event – September 21st & 22nd in Dresden, Germany

    The PHP USERGROUP DRESDEN e.V. is proud to host an international 2-day event with workshops, a single track conference and awesome side events.

    … read full article

    ', ), - 141 => + 141 => array ( 'title' => 'PHPConf.Asia 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-04-08-1', 'published' => '2018-04-08T19:09:50+00:00', 'updated' => '2018-04-08T19:09:50+00:00', 'finalTeaserDate' => '2018-06-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-04-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.phpconf.asia', @@ -7858,34 +7877,34 @@ the upgrade ', 'intro' => '

    Announcing PHPConf.Asia 2018 - The Pan-Asian PHP Conference - CFP Opens Now

    The third pan-Asian PHP conference will take place between 26th to 29th September 2018 in Singapore - the Garden City of the East! This is a single track, 2 days Conference (27th to 28th September 2018). Followed by 1 day of Tutorials on 29th September 2018.

    … read full article

    ', ), - 142 => + 142 => array ( 'title' => 'PHP 7.1.16 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-30-2', 'published' => '2018-03-30T05:35:50+00:00', 'updated' => '2018-03-30T05:35:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-30-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-30-2', 'rel' => 'via', @@ -7914,37 +7933,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 143 => + 143 => array ( 'title' => 'The 6th Annual China PHP Conference', 'id' => 'http://php.net/archive/2018.php#id2018-03-30-1', 'published' => '2018-03-30T10:00:21+00:00', 'updated' => '2018-03-30T10:00:21+00:00', 'finalTeaserDate' => '2018-05-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com', @@ -7963,34 +7982,34 @@ the upgrade ', 'intro' => '

    The 6th Annual China PHP Conference – May 19 to 20, Shanghai

    We will be hosting a 2-day event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, AI and Blockchain more.

    … read full article

    ', ), - 144 => + 144 => array ( 'title' => 'PHP 5.6.35 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-29-3', 'published' => '2018-03-29T16:26:07-07:00', 'updated' => '2018-03-29T16:26:07-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-29-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-29-3', 'rel' => 'via', @@ -8019,34 +8038,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 145 => + 145 => array ( 'title' => 'PHP 7.2.4 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-29-2', 'published' => '2018-03-29T10:58:52+00:00', 'updated' => '2018-03-29T10:58:52+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-29-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-29-2', 'rel' => 'via', @@ -8068,34 +8087,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.4. This is a security release which also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 146 => + 146 => array ( 'title' => 'PHP 7.0.29 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-29-1', 'published' => '2018-03-29T13:00:00+01:00', 'updated' => '2018-03-29T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-29-1', 'rel' => 'via', @@ -8124,37 +8143,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 147 => + 147 => array ( 'title' => 'International PHP Conference 2018 - Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-03-23-1', 'published' => '2018-03-23T15:44:54-04:00', 'updated' => '2018-03-23T15:44:54-04:00', 'finalTeaserDate' => '2018-04-18', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -8192,37 +8211,37 @@ the upgrade 'intro' => '

    IPC Spring will take place in June 4th to 8th in Berlin and we are looking very much forward to it!
    But at the same time we are already preparing for the fall edition of IPC 2018, that is going to take place together with the international JavaScript Conference again. The conferenceís date is October 15th to 19th and the location will be Munich again.

    The International PHP Conference is the worldís first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. Internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies.

    … read full article

    ', ), - 148 => + 148 => array ( 'title' => 'Darkmira Tour PHP 2018', 'id' => 'http://php.net/archive/2018.php#id2018-03-13-1', 'published' => '2018-03-13T11:35:08-03:00', 'updated' => '2018-03-13T11:35:08-03:00', 'finalTeaserDate' => '2018-04-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://php.darkmiratour.rocks/2018', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://php.darkmiratour.rocks/2018', @@ -8238,34 +8257,34 @@ the upgrade ', 'intro' => '

    With a lot of PHP\'s Rockstars, Darkmira Tour PHP 2018 is a conference focused on security and quality in PHP\'s ecosystems, in Brazil\'s capital in April 14-15. During the two days of Darkmira, you can interact with all the 400 participants along the coffee breaks, demonstrations and networking, and learn a lot about the PHP\'s ecosystems!

    For more information, visit https://php.darkmiratour.rocks/2018.

    ', ), - 149 => + 149 => array ( 'title' => 'PHP 7.1.15 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-02-1', 'published' => '2018-03-02T05:54:19+00:00', 'updated' => '2018-03-02T05:54:19+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-02-1', 'rel' => 'via', @@ -8294,37 +8313,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 150 => + 150 => array ( 'title' => 'PHPDetroit Conference 2018 - Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-5', 'published' => '2018-03-01T19:09:18+00:00', 'updated' => '2018-03-01T19:09:18+00:00', 'finalTeaserDate' => '2018-03-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-01-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpdetroit.io', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpdetroit.io', @@ -8340,37 +8359,37 @@ the upgrade ', 'intro' => '

    We\'re happy to announce that the Call for Papers has commenced for PHPDetroit 2018. We will be accepting submissions through March 22nd, 2018.

    The conference will consist of a tutorial day featuring 4 separate 3-4 hour tutorials, 2 in the morning, and 2 in the afternoon, followed by 2 days of 1 hour sessions. We\'re also having an opening keynote on the first conference day, and a closing keynote on the last day. We\'re inviting world-class PHP speakers from around the world to submit their best talks to put together an event that will forever be remembered.

    … read full article

    ', ), - 151 => + 151 => array ( 'title' => 'PHPDetroit Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-4', 'published' => '2018-03-01T18:53:16+00:00', 'updated' => '2018-03-01T18:53:16+00:00', 'finalTeaserDate' => '2018-07-26', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-03-01-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpdetroit.io', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpdetroit.io', @@ -8385,34 +8404,34 @@ the upgrade ', 'intro' => '

    PHPDetroit is a three-day, regional PHP conference that brings the community together to learn and grow. We\'re preceding the conference with a 2 track tutorial day that will feature 4 sessions covering various topics. We will also be running an UnCon alongside the main tracks on Friday and Saturday, where attendees can share unscheduled talks.

    The conference is scheduled to run July 26th - July 28th, at the beautiful Detroit Marriott Livonia. We welcome developers and enthusiasts of all skill levels to come join us while we discuss the latest trends and technologies in our industry.

    … read full article

    ', ), - 152 => + 152 => array ( 'title' => 'PHP 5.6.34 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-3', 'published' => '2018-03-01T15:48:47-08:00', 'updated' => '2018-03-01T15:48:47-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-01-3', 'rel' => 'via', @@ -8441,34 +8460,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 153 => + 153 => array ( 'title' => 'PHP 7.2.3 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-2', 'published' => '2018-03-01T19:43:30+00:00', 'updated' => '2018-03-01T19:43:30+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-01-2', 'rel' => 'via', @@ -8490,34 +8509,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.3. This is a security release with also contains several minor bug fixes.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 154 => + 154 => array ( 'title' => 'PHP 7.0.28 Released', 'id' => 'http://php.net/archive/2018.php#id2018-03-01-1', 'published' => '2018-03-01T11:45:00+01:00', 'updated' => '2018-03-01T11:45:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-03-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-03-01-1', 'rel' => 'via', @@ -8546,37 +8565,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 155 => + 155 => array ( 'title' => 'CakeFest 2018 Nashville, The Official CakePHP Conference', 'id' => 'http://php.net/archive/2018.php#id2018-02-26-1', 'published' => '2018-02-26T12:21:11+00:00', 'updated' => '2018-02-26T12:21:11+00:00', 'finalTeaserDate' => '2018-06-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cakefest.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cakefest.org', @@ -8620,37 +8639,37 @@ the upgrade will be an event not to miss.

    … read full article

    ', ), - 156 => + 156 => array ( 'title' => 'Northeast PHP 2018 Boston - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-02-22-1', 'published' => '2018-02-22T22:41:47-05:00', 'updated' => '2018-02-22T22:41:47-05:00', 'finalTeaserDate' => '2018-04-11', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://cfp.northeastphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://cfp.northeastphp.org/', @@ -8663,37 +8682,37 @@ the upgrade ', 'intro' => '

    The team at Northeast PHP is excited to annouce that we\'re returning to Boston, September 19-21 2018, and the Call for Speakers is now open until April 11.

    We\'re pleased to announce our conference, the 2018 Web Development and UX Conference by Northeast PHP, where community members come together to learn and share information about the latest trends and technologies in professional PHP development, User Experience design, and Web Technologies.

    … read full article

    ', ), - 157 => + 157 => array ( 'title' => 'Mid-Atlantic Developer Conference - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-02-16-1', 'published' => '2018-02-16T13:07:48+00:00', 'updated' => '2018-02-16T13:07:48+00:00', 'finalTeaserDate' => '2018-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.middevcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.middevcon.com/', @@ -8710,37 +8729,37 @@ the upgrade ', 'intro' => '

    Mid-Atlantic Dev Con is a brand new polyglot event taking place July 13th and 14th, 2018 near Baltimore, MD. It is designed to bring together programmers from the region for two full days of learning from each other and building a stronger regional community. We are currently hosting an open Call for Speakers, which will end on March 31st at Midnight UTC!

    We are looking for a broad range of submissions covering a wide range of topics that are of interest to today’s computer developers. This means not only programming topics, such as various sessions on PHP, but also broader topics related to development such as: deployment, DevOps, databases, caching, performance, scalability, APIs, etc — We also are looking for non-technical proposals that will appeal to a tech audience: open source, leadership, mentoring, health, work-life balance, management, customer service, and more!

    … read full article

    ', ), - 158 => + 158 => array ( 'title' => 'ConFoo: THE web development conference you don’t want to miss!', 'id' => 'http://php.net/archive/2018.php#id2018-02-14-1', 'published' => '2018-02-14T17:46:24+00:00', 'updated' => '2018-02-14T17:46:24+00:00', 'finalTeaserDate' => '2018-03-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yul2018', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yul2018', @@ -8768,37 +8787,37 @@ the upgrade ', 'intro' => '

    ConFoo is a multi-technology conference specifically crafted for web developers. With 150+ presentations by local and international speakers, this conference offers outstanding diversity of content to expand your knowledge, increase your productivity and boost your development skills.

    See you in Montreal on March 7-8-9!

    … read full article

    ', ), - 159 => + 159 => array ( 'title' => 'php[tek] 2018', 'id' => 'http://php.net/archive/2018.php#id2018-02-07-2', 'published' => '2018-02-07T17:27:41+00:00', 'updated' => '2018-02-07T17:27:41+00:00', 'finalTeaserDate' => '2018-05-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-07-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -8824,37 +8843,37 @@ the upgrade ', 'intro' => '

    We are excited to announce the full schedule for the 13th annual php[tek], the premier PHP conference experience. The 2018 edition will be better than ever, now taking place in Downtown Atlanta, GA. The main conference is two days: May 31 and June 1, while we will have a workshop day on May 30, and a day of Training Classes on May 29th.

    There is an amazing list of sessions that have been put together for you, including:

    … read full article

    ', ), - 160 => + 160 => array ( 'title' => 'WavePHP 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-02-06-1', 'published' => '2018-02-06T17:20:49+00:00', 'updated' => '2018-02-06T17:20:49+00:00', 'finalTeaserDate' => '2018-02-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-02-06-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.wavephp.com/', @@ -8871,37 +8890,37 @@ the upgrade ', 'intro' => '
    WavePHPCall for Speakers

    … read full article

    ', ), - 161 => + 161 => array ( 'title' => 'PHP Experience 2018', 'id' => 'http://php.net/archive/2018.php#id2018-02-01-3', 'published' => '2018-02-01T10:20:29-02:00', 'updated' => '2018-02-01T10:20:29-02:00', 'finalTeaserDate' => '2018-03-05', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-02-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://eventos.imasters.com.br/phpexperience/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://eventos.imasters.com.br/phpexperience/', @@ -8918,34 +8937,34 @@ the upgrade ', 'intro' => '

    With big names from PHP community, the sixth edition of PHP Experience brings together about 1200 PHP developers in São Paulo/SP - Brazil from March 05 to 06, 2018.

    In two days of content we will have: international keynotes, three tracks, in addition to several actions to exchange experiences and networking.

    … read full article

    ', ), - 162 => + 162 => array ( 'title' => 'PHP 7.1.14 Released', 'id' => 'http://php.net/archive/2018.php#id2018-02-01-2', 'published' => '2018-02-01T14:54:13+00:00', 'updated' => '2018-02-01T14:54:13+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-02-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-02-01-2', 'rel' => 'via', @@ -8968,29 +8987,29 @@ the upgrade 7.1.14. This is a bugfix release. Several bugs were fixed in this release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 163 => + 163 => array ( 'title' => 'PHP 7.2.2 Released', 'id' => 'http://php.net/archive/2018.php#id2018-02-01-1', 'published' => '2018-02-01T09:12:34+00:00', 'updated' => '2018-02-01T09:12:34+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-02-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-02-01-1', 'rel' => 'via', @@ -9012,37 +9031,37 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.2. This is a bugfix release, with several bug fixes included.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 164 => + 164 => array ( 'title' => 'CoderCruise 2018 - Call for Speakers', 'id' => 'http://php.net/archive/2018.php#id2018-01-31-1', 'published' => '2018-01-31T21:00:37+00:00', 'updated' => '2018-01-31T21:00:37+00:00', 'finalTeaserDate' => '2018-02-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-01-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/', @@ -9055,37 +9074,37 @@ the upgrade ', 'intro' => '
    ', ), - 165 => + 165 => array ( 'title' => 'Dutch PHP Conference 2018 – Call for Papers', 'id' => 'http://php.net/archive/2018.php#id2018-01-09-2', 'published' => '2018-01-09T13:35:18+00:00', 'updated' => '2018-01-09T13:35:18+00:00', 'finalTeaserDate' => '2018-01-28', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-01-09-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpconference.nl/', @@ -9102,37 +9121,37 @@ the upgrade ', 'intro' => '
    ', ), - 166 => + 166 => array ( 'title' => 'Dutch PHP Conference 2018', 'id' => 'http://php.net/archive/2018.php#id2018-01-09-1', 'published' => '2018-01-09T13:30:36+00:00', 'updated' => '2018-01-09T13:30:36+00:00', 'finalTeaserDate' => '2018-06-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2018-01-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.phpconference.nl/', @@ -9151,34 +9170,34 @@ the upgrade ', 'intro' => '
    ', ), - 167 => + 167 => array ( 'title' => 'PHP 5.6.33 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-4', 'published' => '2018-01-04T12:21:10-08:00', 'updated' => '2018-01-04T12:21:10-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-4', 'rel' => 'via', @@ -9207,34 +9226,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 168 => + 168 => array ( 'title' => 'PHP 7.1.13 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-3', 'published' => '2018-01-04T15:27:53+00:00', 'updated' => '2018-01-04T15:27:53+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-3', 'rel' => 'via', @@ -9257,34 +9276,34 @@ the upgrade 7.1.13. This is a security release. Several security bugs were fixed in this release.

    All PHP 7.1 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 169 => + 169 => array ( 'title' => 'PHP 7.2.1 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-2', 'published' => '2018-01-04T15:26:15+00:00', 'updated' => '2018-01-04T15:26:15+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-2', 'rel' => 'via', @@ -9308,34 +9327,34 @@ the upgrade 7.2.1. This is a security release. Several security bugs were fixed in this release.

    All PHP 7.2 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 170 => + 170 => array ( 'title' => 'PHP 7.0.27 Released', 'id' => 'http://php.net/archive/2018.php#id2018-01-04-1', 'published' => '2018-01-04T15:00:00+01:00', 'updated' => '2018-01-04T15:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2018-01-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2018.php#id2018-01-04-1', 'rel' => 'via', @@ -9373,37 +9392,37 @@ the upgrade is a good time to plan the migration to PHP 7.1 or 7.2.

    … read full article

    ', ), - 171 => + 171 => array ( 'title' => 'PHP Serbia Conference 2018', 'id' => 'http://php.net/archive/2017.php#id2017-12-23-1', 'published' => '2017-12-23T21:54:52+01:00', 'updated' => '2017-12-23T21:54:52+01:00', 'finalTeaserDate' => '2018-05-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-12-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conf2018.phpsrbija.rs', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conf2018.phpsrbija.rs', @@ -9420,34 +9439,34 @@ the upgrade ', 'intro' => '

    "PHP Srbija" is happy to announce a brand new PHP Serbia Conference 2018!

    This year\'s edition features Workshop Day prior to the main 2-day event of awesome talks on PHP and related technologies presented by best speakers from all over the globe.

    … read full article

    ', ), - 172 => + 172 => array ( 'title' => 'PHP 7.2.0 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-30-1', 'published' => '2017-11-30T10:04:21+00:00', 'updated' => '2017-11-30T10:04:21+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-30-1', 'rel' => 'via', @@ -9485,34 +9504,34 @@ the upgrade 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.2.0. This release marks the second feature update to the PHP 7 series.

    PHP 7.2.0 comes with numerous improvements and new features such as

    … read full article

    ', ), - 173 => + 173 => array ( 'title' => 'PHP 7.1.12 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-24-1', 'published' => '2017-11-24T06:02:50+00:00', 'updated' => '2017-11-24T06:02:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-24-1', 'rel' => 'via', @@ -9541,34 +9560,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 174 => + 174 => array ( 'title' => 'PHP 7.0.26 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-23-2', 'published' => '2017-11-23T13:00:00+01:00', 'updated' => '2017-11-23T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-23-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-23-2', 'rel' => 'via', @@ -9597,37 +9616,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 175 => + 175 => array ( 'title' => 'PHPKonf Istanbul PHP Conference 2018 - Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-11-22-2', 'published' => '2017-11-22T09:00:00+00:00', 'updated' => '2017-11-22T09:00:00+00:00', 'finalTeaserDate' => '2018-01-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpkonf.org/', @@ -9646,37 +9665,37 @@ the upgrade ', 'intro' => '

    PHPKonf 2018 is an annual PHP oriented conference in Istanbul, Turkey and will take place on Sunday, 20th of May, 2018.

    The call for papers for the PHPKonf 2018 Istanbul PHP conference is open! If you have a burning desire to hold forth about PHP, DevOps, databases, JavaScript, or any other web development topics, we want to see your proposals. Call for Papers is open only from November 20, 2017 to January 31, 2018, so hurry. An added benefit: we will cover your travel and hotel.

    … read full article

    ', ), - 176 => + 176 => array ( 'title' => 'International PHP Conference 2018 - spring edition', 'id' => 'http://php.net/archive/2017.php#id2017-11-22-1', 'published' => '2017-11-22T09:54:24+01:00', 'updated' => '2017-11-22T09:54:24+01:00', 'finalTeaserDate' => '2018-06-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -9715,37 +9734,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale \'18 taking place at the same time.

    … read full article

    ', ), - 177 => + 177 => array ( 'title' => 'php[tek] 2018 : Call for Speakers', 'id' => 'http://php.net/archive/2017.php#id2017-11-20-1', 'published' => '2017-11-20T21:55:38+00:00', 'updated' => '2017-11-20T21:55:38+00:00', 'finalTeaserDate' => '2017-12-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -9771,37 +9790,37 @@ the upgrade ', 'intro' => '
    php[tek]Call for Speakers

    … read full article

    ', ), - 178 => + 178 => array ( 'title' => 'Longhorn PHP 2018', 'id' => 'http://php.net/archive/2017.php#id2017-11-16-1', 'published' => '2017-11-16T04:42:00+00:00', 'updated' => '2017-11-16T04:42:00+00:00', 'finalTeaserDate' => '2018-04-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.longhornphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.longhornphp.com/', @@ -9819,34 +9838,34 @@ the upgrade ', 'intro' => '

    The Austin PHP Meetup, the longest-running tech meetup in Texas’ capital, is excited to announce a brand-new PHP conference: Longhorn PHP. 2018 will be the inaugural year for Longhorn PHP, which follows in the tradition of the now-retired Lone Star PHP conference in Dallas.

    At Longhorn PHP you’ll get to learn from and alongside a diverse group of developers from all over the region, country, and even the globe. The conference will consist of one tutorial day with in-depth workshops, and two main conference days with multiple tracks of traditional 1 hour sessions. Register now to take the next step toward leveling up your development career!

    … read full article

    ', ), - 179 => + 179 => array ( 'title' => 'PHP 7.2.0RC6 Released', 'id' => 'http://php.net/archive/2017.php#id2017-11-09-1', 'published' => '2017-11-09T13:57:49+00:00', 'updated' => '2017-11-09T13:57:49+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-11-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-11-09-1', 'rel' => 'via', @@ -9891,37 +9910,37 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 180 => + 180 => array ( 'title' => 'SunshinePHP 2018 Conference', 'id' => 'http://php.net/archive/2017.php#id2017-11-08-1', 'published' => '2017-11-08T00:00:01+00:00', 'updated' => '2017-11-15T09:40:00+00:00', 'finalTeaserDate' => '2018-12-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -9955,37 +9974,37 @@ the upgrade ', 'intro' => '

    In February 2018 come to Miami, Florida and escape the cold to learn more about PHP and speak with other developers, like you, to see what others are doing. The SunshinePHP 2018 speaker list has been announced, and we\'ve assembled a great line-up with the most current PHP related topics for you.

    Topics include:

    … read full article

    ', ), - 181 => + 181 => array ( 'title' => 'International PHP Conference Spring Edition 2018 - Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-11-06-1', 'published' => '2017-11-06T11:44:54-04:00', 'updated' => '2017-11-06T11:44:54-04:00', 'finalTeaserDate' => '2017-11-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-11-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -10017,34 +10036,34 @@ the upgrade ', 'intro' => '
    ', ), - 182 => + 182 => array ( 'title' => 'PHP 7.1.11 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-27-1', 'published' => '2017-10-27T05:52:49+00:00', 'updated' => '2017-10-27T05:52:49+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-27-1', 'rel' => 'via', @@ -10073,34 +10092,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 183 => + 183 => array ( 'title' => 'PHP 5.6.32 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-26-3', 'published' => '2017-10-26T13:32:22-07:00', 'updated' => '2017-10-26T13:32:22-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-26-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-26-3', 'rel' => 'via', @@ -10129,34 +10148,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 184 => + 184 => array ( 'title' => 'PHP 7.2.0 Release Candidate 5 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-26-2', 'published' => '2017-10-26T16:26:36+00:00', 'updated' => '2017-10-26T16:26:36+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-26-2', 'rel' => 'via', @@ -10203,34 +10222,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 185 => + 185 => array ( 'title' => 'PHP 7.0.25 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-26-1', 'published' => '2017-10-26T13:00:00+01:00', 'updated' => '2017-10-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-26-1', 'rel' => 'via', @@ -10259,37 +10278,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 186 => + 186 => array ( 'title' => 'ScotlandPHP', 'id' => 'http://php.net/archive/2017.php#id2017-10-19-1', 'published' => '2017-10-19T17:46:40+00:00', 'updated' => '2017-10-19T17:46:40+00:00', 'finalTeaserDate' => '2017-11-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-10-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conference.scotlandphp.co.uk/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conference.scotlandphp.co.uk/', @@ -10327,29 +10346,29 @@ the upgrade ', 'intro' => '

    Scotland\'s Original and Best PHP Conference

    Saturday 4th November 2017, EICC, Edinburgh

    … read full article

    ', ), - 187 => + 187 => array ( 'title' => 'PHP 7.2.0 Release Candidate 4 Released', 'id' => 'http://php.net/archive/2017.php#id2017-10-12-1', 'published' => '2017-10-12T11:46:49+02:00', 'updated' => '2017-10-12T11:46:49+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-10-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-10-12-1', 'rel' => 'via', @@ -10396,34 +10415,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 188 => + 188 => array ( 'title' => 'PHP 7.1.10 Release Announcement', 'id' => 'http://php.net/archive/2017.php#id2017-09-29-1', 'published' => '2017-09-29T08:10:14+00:00', 'updated' => '2017-09-29T08:10:14+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-29-1', 'rel' => 'via', @@ -10452,29 +10471,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 189 => + 189 => array ( 'title' => 'PHP 7.2.0 Release Candidate 3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'published' => '2017-09-28T12:58:56+02:00', 'updated' => '2017-09-28T12:58:56+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-28-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'rel' => 'via', @@ -10521,34 +10540,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 190 => + 190 => array ( 'title' => 'PHP 7.0.24 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'published' => '2017-09-28T13:00:00+01:00', 'updated' => '2017-09-28T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-28-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-28-2', 'rel' => 'via', @@ -10577,34 +10596,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 191 => + 191 => array ( 'title' => 'PHP 7.2.0 Release Candidate 2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-14-1', 'published' => '2017-09-14T16:07:16+00:00', 'updated' => '2017-09-14T16:07:16+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-14-1', 'rel' => 'via', @@ -10651,37 +10670,37 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 192 => + 192 => array ( 'title' => 'PHP North West 2017 (PHPNW17)', 'id' => 'http://php.net/archive/2017.php#id2017-09-13-1', 'published' => '2017-09-13T19:00:00+00:00', 'updated' => '2017-09-13T19:00:00+00:00', 'finalTeaserDate' => '2017-09-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-09-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conference.phpnw.org.uk/phpnw17/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conference.phpnw.org.uk/phpnw17/', @@ -10698,34 +10717,34 @@ the upgrade ', 'intro' => '

    One of the largest and most popular PHP Conferences in Europe, PHPNW17 is a long-running community-based conference, held in Manchester, UK and run on a not-for-profit basis. It is overwhelmingly supported by industry leaders, code experts, web developers and businesses across the world. This year, we are celebrating our 10th conference year, and we aim to be bigger and better than ever before.

    The PHPNW Conference has a reputation within the PHP community as a "go to" conference due to its inspiring content, friendly atmosphere and networking opportunities. Our delegates come to our Conference because they are specifically interested in new technologies and ways to improve their skills through our tutorials and talks, as well as the awesome (unofficial) corridor track!

    … read full article

    ', ), - 193 => + 193 => array ( 'title' => 'PHP 7.1.9 Released', 'id' => 'http://php.net/archive/2017.php#id2017-09-01-1', 'published' => '2017-09-01T06:31:35+00:00', 'updated' => '2017-09-01T06:31:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-09-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-09-01-1', 'rel' => 'via', @@ -10754,29 +10773,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 194 => + 194 => array ( 'title' => 'PHP 7.2.0 Release Candidate 1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-31-1', 'published' => '2017-08-31T10:53:58+02:00', 'updated' => '2017-08-31T10:53:58+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-31-1', 'rel' => 'via', @@ -10823,34 +10842,34 @@ the upgrade and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 195 => + 195 => array ( 'title' => 'PHP 7.0.23 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-31-2', 'published' => '2017-08-31T13:00:00+01:00', 'updated' => '2017-08-31T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-31-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-31-2', 'rel' => 'via', @@ -10879,29 +10898,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 196 => + 196 => array ( 'title' => 'PHP 7.2.0 Beta 3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-17-1', 'published' => '2017-08-17T10:17:44+02:00', 'updated' => '2017-08-17T10:17:44+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-17-1', 'rel' => 'via', @@ -10948,37 +10967,37 @@ the upgrade bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 197 => + 197 => array ( 'title' => 'SunshinePHP 2018 CFP Started', 'id' => 'http://php.net/archive/2017.php#id2017-08-16-1', 'published' => '2017-08-16T00:00:01+00:00', 'updated' => '2017-08-16T12:23:00+00:00', 'finalTeaserDate' => '2017-09-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-08-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -10995,37 +11014,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2018 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 30th, 2017.

    SunshinePHP hit it\'s 6th year and will happen from February 8th to 10th, 2018 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 198 => + 198 => array ( 'title' => 'Midwest PHP Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-08-13-1', 'published' => '2017-08-13T19:56:28+00:00', 'updated' => '2017-08-13T19:56:28+00:00', 'finalTeaserDate' => '2017-11-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-08-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2018.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2018.midwestphp.org', @@ -11051,34 +11070,34 @@ the upgrade 'intro' => '

    The Minnesota PHP User Group is proud to announce that the Call for Papers for the Midwest PHP 2018 Conference is now open through November 20, 2017. Abstracts can be submitted to https://cfp.midwestphp.org. Whether you are a seasoned speaker or someone just looking to speak at your first conference, we want to see your submissions.

    This year\'s speaker package includes:

    … read full article

    ', ), - 199 => + 199 => array ( 'title' => 'PHP 7.1.8 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-03-3', 'published' => '2017-08-03T14:35:42+00:00', 'updated' => '2017-08-03T14:35:42+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-03-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-03-3', 'rel' => 'via', @@ -11107,34 +11126,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 200 => + 200 => array ( 'title' => 'PHP 7.2.0 Beta 2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-03-2', 'published' => '2017-08-03T12:48:35+00:00', 'updated' => '2017-08-03T12:48:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-03-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-03-2', 'rel' => 'via', @@ -11181,34 +11200,34 @@ the upgrade bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 201 => + 201 => array ( 'title' => 'PHP 7.0.22 Released', 'id' => 'http://php.net/archive/2017.php#id2017-08-03-1', 'published' => '2017-08-03T13:00:00+01:00', 'updated' => '2017-08-03T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-08-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-08-03-1', 'rel' => 'via', @@ -11237,37 +11256,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 202 => + 202 => array ( 'title' => 'Calling all proposals for PHPBenelux Conference 2018', 'id' => 'http://php.net/archive/2017.php#id2017-07-31-1', 'published' => '2017-07-31T11:25:07+02:00', 'updated' => '2017-07-31T11:25:07+02:00', 'finalTeaserDate' => '2017-10-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-07-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpbenelux.eu/?utm_source=php_net&utm_medium=phpbnl18_logo&utm_campaign=phpbnl18&utm_term=php%2Bconference%2Bcfp&utm_content=cfp_announcement', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpbenelux.eu/?utm_source=php_net&utm_medium=phpbnl18_logo&utm_campaign=phpbnl18&utm_term=php%2Bconference%2Bcfp&utm_content=cfp_announcement', @@ -11282,34 +11301,34 @@ the upgrade ', 'intro' => '

    PHPBenelux Conference is an annual PHP oriented conference in Antwerp, Belgium and will take place on January 26 & 27 2018. We offer two days of stellar tutorials and talks, epic social events and a lineup of the best local and international businesses involved with PHP.

    We like to invite speakers to submit their tutorials and talks at PHPBenelux CfP. Speakers have until Monday, October 2, 2017 to submit their proposals.

    … read full article

    ', ), - 203 => + 203 => array ( 'title' => 'PHP 7.2.0 Beta 1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-20-1', 'published' => '2017-07-20T12:00:00+00:00', 'updated' => '2017-07-21T02:21:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-20-1', 'rel' => 'via', @@ -11366,37 +11385,37 @@ the upgrade bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 204 => + 204 => array ( 'title' => 'php[world] 2017', 'id' => 'http://php.net/archive/2017.php#id2017-07-10-1', 'published' => '2017-07-10T17:14:04-04:00', 'updated' => '2017-07-10T17:14:04-04:00', 'finalTeaserDate' => '2017-11-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-07-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -11415,37 +11434,37 @@ the upgrade ', 'intro' => '

    From the publishers of php[architect] magazine comes the 4th annual php[world] conference! As always this November in the Washington D.C. area.

    This year a number of changes have been made based upon attendee feedback, the biggest being an over 50% a drop in cost, with tickets available now as low as $325. The conference also is now just 2 days long, running on November 15th & 16th, and includes workshops as well as regular sessions.

    … read full article

    ', ), - 205 => + 205 => array ( 'title' => 'php Central Europe Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-07-07-1', 'published' => '2017-07-07T00:04:38+02:00', 'updated' => '2017-07-07T00:04:38+02:00', 'finalTeaserDate' => '2017-07-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-07-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2017.phpce.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2017.phpce.eu/', @@ -11491,34 +11510,34 @@ the upgrade ', 'intro' => '

    phpCE is a first edition of the community conference for PHP programmers and enthusiasts. The meeting was stablished by merging two nation-wide events: PHPCon Poland and Brno PHP Conference. This edition will take place in the Ossa Congress & Spa Hotel near Rawa Mazowicka, Poland on November 3rd - 5th.

    The unique feature of the php Central Europe Conference is three-path split of agenda, according to difficulty level of talks: Relaxing, Intermediate and Geek. Submitting a talk you must point a proper level and suggest the Program Committee, which one do you prefer. In general, talks given in the Relaxing path should be done in native language of hosting country (Polish this year).

    … read full article

    ', ), - 206 => + 206 => array ( 'title' => 'PHP 5.6.31 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-4', 'published' => '2017-07-06T15:03:21-07:00', 'updated' => '2017-07-06T15:03:21-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-4', 'rel' => 'via', @@ -11547,34 +11566,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 207 => + 207 => array ( 'title' => 'PHP 7.1.7 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-3', 'published' => '2017-07-06T17:35:10+00:00', 'updated' => '2017-07-06T17:35:10+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-3', 'rel' => 'via', @@ -11603,29 +11622,29 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 208 => + 208 => array ( 'title' => 'PHP 7.2.0 Alpha 3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-2', 'published' => '2017-07-06T12:25:08+02:00', 'updated' => '2017-07-06T12:25:08+02:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-2', 'rel' => 'via', @@ -11661,34 +11680,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 209 => + 209 => array ( 'title' => 'PHP 7.0.21 Released', 'id' => 'http://php.net/archive/2017.php#id2017-07-06-1', 'published' => '2017-07-06T13:00:00+01:00', 'updated' => '2017-07-06T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-07-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-07-06-1', 'rel' => 'via', @@ -11717,37 +11736,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 210 => + 210 => array ( 'title' => 'PHP Developer Day 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-29-1', 'published' => '2017-06-29T17:24:31+02:00', 'updated' => '2017-06-29T17:24:31+02:00', 'finalTeaserDate' => '2017-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpug-dresden.org/en/phpdd17.html', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpug-dresden.org/en/phpdd17.html', @@ -11789,30 +11808,30 @@ the upgrade We have 6 talks covering the following topics:

    … read full article

    ', ), - 211 => + 211 => array ( 'title' => 'Forum PHP 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-23-1', 'published' => '2017-06-23T14:33:24+00:00', 'updated' => '2017-06-23T14:33:24+00:00', 'finalTeaserDate' => '2017-10-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-23-1', 'rel' => 'via', @@ -11839,34 +11858,34 @@ the upgrade pros and PHP lovers.

    … read full article

    ', ), - 212 => + 212 => array ( 'title' => 'PHP 7.2.0 Alpha 2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-22-1', 'published' => '2017-06-22T11:00:00+00:00', 'updated' => '2017-06-22T11:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-22-1', 'rel' => 'via', @@ -11902,37 +11921,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 213 => + 213 => array ( 'title' => 'LaravelConf Taiwan 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-17-1', 'published' => '2017-06-17T18:48:00+00:00', 'updated' => '2017-06-17T18:48:00+00:00', 'finalTeaserDate' => '2017-07-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://laravelconf.tw/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://laravelconf.tw/', @@ -11961,37 +11980,37 @@ the upgrade ', 'intro' => '

    The first Laravel conference in Taiwan awaits you at LaravelConf Taiwan 2017 at Taipei, Taiwan.

    LaravelConf Taiwan 2017 is for anyone who is passionate about building web-application, or anyone who is trying to make better experience on teamwork.

    … read full article

    ', ), - 214 => + 214 => array ( 'title' => 'ZendCon 2017', 'id' => 'http://php.net/archive/2017.php#id2017-06-14-1', 'published' => '2017-06-14T00:00:01+00:00', 'updated' => '2017-09-13T19:06:00+01:00', 'finalTeaserDate' => '2017-09-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://zendcon.com', @@ -12013,37 +12032,37 @@ the upgrade ', 'intro' => '

    With over 250 million PHP applications driven by a global community of more than 5 million active developers and all enterprises adopting open source software, ZendCon 2017 brings you a curated selection of the best experts, training, and networking opportunities to embrace this vast ecosystem.

    Take advantage of unique opportunities to attend a wide variety of in-depth technical sessions, participate in exhibit hall activities, and connect with experts. Learn about the best in enterprise PHP and open source development, focusing on the latest for PHP 7, the evolution of frameworks and tools, API excellence, and innovation on many open source technologies related to the web.

    … read full article

    ', ), - 215 => + 215 => array ( 'title' => 'International PHP Conference 2017 - fall edition', 'id' => 'http://php.net/archive/2017.php#id2017-06-09-1', 'published' => '2017-06-09T09:54:24+01:00', 'updated' => '2017-06-09T09:54:24+01:00', 'finalTeaserDate' => '2017-06-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -12082,34 +12101,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the International JavaScript Conference taking place at the same time.

    … read full article

    ', ), - 216 => + 216 => array ( 'title' => 'PHP 7.1.6 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-08-3', 'published' => '2017-06-08T19:40:06+00:00', 'updated' => '2017-06-08T19:40:06+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-08-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-08-3', 'rel' => 'via', @@ -12129,34 +12148,34 @@ the upgrade ', 'intro' => '
    ', ), - 217 => + 217 => array ( 'title' => 'PHP 7.2.0 Alpha 1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-08-2', 'published' => '2017-06-08T17:03:24+00:00', 'updated' => '2017-07-13T10:02:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-08-2', 'rel' => 'via', @@ -12192,34 +12211,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 218 => + 218 => array ( 'title' => 'PHP 7.0.20 Released', 'id' => 'http://php.net/archive/2017.php#id2017-06-08-1', 'published' => '2017-06-08T13:00:00+01:00', 'updated' => '2017-06-08T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-06-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-08-1', 'rel' => 'via', @@ -12248,37 +12267,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 219 => + 219 => array ( 'title' => 'China PHP Developer Conference', 'id' => 'http://php.net/archive/2017.php#id2017-06-06-1', 'published' => '2017-06-06T19:36:21+00:00', 'updated' => '2017-06-06T19:36:21+00:00', 'finalTeaserDate' => '2017-06-10', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-06-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-06-06-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://php2017.devlink.cn/', @@ -12294,37 +12313,37 @@ the upgrade ', 'intro' => '

    China PHP Developer Conference which organized by the DevLink will hold in Beijing on June 10th and 11th.

    After “The High Performance PHP”, It’s the another global developer interchange activity that DevLink hosts.

    … read full article

    ', ), - 220 => + 220 => array ( 'title' => 'The 5th Annual China PHP Conference ', 'id' => 'http://php.net/archive/2017.php#id2017-05-22-1', 'published' => '2017-05-22T11:50:21+00:00', 'updated' => '2017-05-22T11:50:21+00:00', 'finalTeaserDate' => '2017-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-05-22-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com/', @@ -12342,37 +12361,37 @@ the upgrade ', 'intro' => '

    The 5th Annual China PHP Conference – June 17 to 18, Shanghai

    We will be hosting a 2-days event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, and MySQL 5.7/8.0 more.

    … read full article

    ', ), - 221 => + 221 => array ( 'title' => 'DevCOnf 2017', 'id' => 'http://php.net/archive/2017.php#id2017-05-18-1', 'published' => '2017-05-18T13:43:56+00:00', 'updated' => '2017-05-18T13:43:56+00:00', 'finalTeaserDate' => '2017-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://devconf.ru', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devconf.ru', @@ -12427,37 +12446,37 @@ the upgrade This year the conference will take place in Izmaylovo.

    … read full article

    ', ), - 222 => + 222 => array ( 'title' => 'php[world] 2017: Call for Speakers', 'id' => 'http://php.net/archive/2017.php#id2017-05-16-1', 'published' => '2017-05-16T18:08:03-04:00', 'updated' => '2017-05-16T18:08:03-04:00', 'finalTeaserDate' => '2017-06-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com', @@ -12486,34 +12505,34 @@ the upgrade ', 'intro' => '

    The teams at php[architect] and One for All Events are excited to announce we have opened up our Call for Speakers for the 4th annual edition of php[world].

    This year we are refactoring php[world] into a more focused PHP conference concentrating on providing our attendees deep-dive content which teach core lessons about PHP. We also want talks covering advanced topics in applications and frameworks built in PHP (such as Drupal, WordPress, Laravel, Symfony, and Magento). We encourage submissions on technologies crucial to modern Web development such as HTML5, JavaScript, and emerging technologies. Ideas surrounding the entire software life cycle are often big hits for our attendees. Finally, we do welcome non-technical proposals that will appeal to a developer audience.

    … read full article

    ', ), - 223 => + 223 => array ( 'title' => 'PHP 7.1.5 Released', 'id' => 'http://php.net/archive/2017.php#id2017-05-11-2', 'published' => '2017-05-11T17:44:29+00:00', 'updated' => '2017-05-11T12:03:00-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-05-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-05-11-2', 'rel' => 'via', @@ -12542,34 +12561,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 224 => + 224 => array ( 'title' => 'PHP 7.0.19 Released', 'id' => 'http://php.net/archive/2017.php#id2017-05-11-1', 'published' => '2017-05-11T13:00:00+01:00', 'updated' => '2017-05-11T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-05-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-05-11-1', 'rel' => 'via', @@ -12598,37 +12617,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 225 => + 225 => array ( 'title' => 'International PHP Conference 2017 Fall - Call for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-05-09-1', 'published' => '2017-05-09T15:44:54-04:00', 'updated' => '2017-05-09T15:44:54-04:00', 'finalTeaserDate' => '2017-05-09', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-05-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -12691,37 +12710,37 @@ the upgrade ', 'intro' => '
    ', ), - 226 => + 226 => array ( 'title' => 'Dutch PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-04-14-1', 'published' => '2017-04-14T13:21:13+00:00', 'updated' => '2017-04-14T13:21:13+00:00', 'finalTeaserDate' => '2017-06-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-04-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.phpconference.nl/', @@ -12769,37 +12788,37 @@ the upgrade presenters can respond to individual questions, and as a result places are limited.

    … read full article

    ', ), - 227 => + 227 => array ( 'title' => 'ConFoo Vancouver 2017 Calling for Papers', 'id' => 'http://php.net/archive/2017.php#id2017-04-13-3', 'published' => '2017-04-13T15:58:29-04:00', 'updated' => '2017-04-13T15:58:29-04:00', 'finalTeaserDate' => '2017-05-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-04-13-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yvr2017/call-for-papers', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yvr2017/call-for-papers', @@ -12816,34 +12835,34 @@ the upgrade ', 'intro' => '

    Want to get your web development ideas in front of a live audience? The call for papers for the ConFoo Vancouver 2017 web developer conference is open! If you have a burning desire to hold forth about PHP, databases, JavaScript, or any other web development topics, we want to see your proposals. The window is open only from April 10 to May 8, 2017, so hurry. An added benefit: If your proposal is selected and you live outside of the Vancouver area, we will cover your travel and hotel.

    You’ll have 45 minutes for the talk, with 35 minutes for your topic and 10 minutes for Q&A. We can’t wait to see your proposals!

    … read full article

    ', ), - 228 => + 228 => array ( 'title' => 'PHP 7.1.4 Released', 'id' => 'http://php.net/archive/2017.php#id2017-04-13-2', 'published' => '2017-04-13T16:12:01+00:00', 'updated' => '2017-04-13T16:12:01+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-04-13-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-04-13-2', 'rel' => 'via', @@ -12872,34 +12891,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 229 => + 229 => array ( 'title' => 'PHP 7.0.18 Released', 'id' => 'http://php.net/archive/2017.php#id2017-04-13-1', 'published' => '2017-04-13T13:00:00+01:00', 'updated' => '2017-04-13T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-04-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-04-13-1', 'rel' => 'via', @@ -12928,37 +12947,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 230 => + 230 => array ( 'title' => 'PNWPHP 2017 CfP', 'id' => 'http://php.net/archive/2017.php#id2017-03-30-2', 'published' => '2017-03-30T07:49:46-04:00', 'updated' => '2017-03-30T07:49:46-04:00', 'finalTeaserDate' => '2017-05-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-30-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.pnwphp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.pnwphp.com', @@ -12975,37 +12994,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the dates for *Pacific Northwest PHP Conference (PNWPHP) 2017 are September 7-9, and will held at University of Washington in Seattle! The CFP site - http://cfp.pnwphp.com - has launched, where talk submissions will accepted through May 15th, 2017.

    The Pacific Northwest PHP Conference is a 3-day event in Seattle, Washington for PHP and Web developers. Our past conferences have included world renown speakers from the PHP community, about a wide range of topics — from APIs and CMS to unit testing and version control

    … read full article

    ', ), - 231 => + 231 => array ( 'title' => 'Northeast PHP Conference CfP', 'id' => 'http://php.net/archive/2017.php#id2017-03-30-1', 'published' => '2017-03-30T07:40:09-04:00', 'updated' => '2017-03-30T07:40:09-04:00', 'finalTeaserDate' => '2017-04-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.northeastphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2017.northeastphp.org', @@ -13029,34 +13048,34 @@ the upgrade The conference will take place August 9-11, and Early Bird Tickets are now available.

    ', ), - 232 => + 232 => array ( 'title' => 'PHP 7.1.3 Released', 'id' => 'http://php.net/archive/2017.php#id2017-03-16-2', 'published' => '2017-03-16T15:34:44+00:00', 'updated' => '2017-03-16T15:34:44+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-03-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-03-16-2', 'rel' => 'via', @@ -13085,34 +13104,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 233 => + 233 => array ( 'title' => 'PHP 7.0.17 Released', 'id' => 'http://php.net/archive/2017.php#id2017-03-16-1', 'published' => '2017-03-16T13:00:00+01:00', 'updated' => '2017-03-16T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-03-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-03-16-1', 'rel' => 'via', @@ -13141,37 +13160,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 234 => + 234 => array ( 'title' => 'PHP Unicorn Conference (Online)', 'id' => 'http://php.net/archive/2017.php#id2017-03-15-1', 'published' => '2017-03-15T02:45:21+00:00', 'updated' => '2017-03-15T02:45:21+00:00', 'finalTeaserDate' => '2017-04-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpunicorn.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpunicorn.com', @@ -13200,37 +13219,37 @@ the upgrade It is true there are many great PHP conferences happening around the world and you should go to as many as can, but if you have a hard time getting to one or can’t spare the time, why not let the conference come to you? The PHP Unicorn Conference comes streaming right to your computer, wherever in the world you might be.

    … read full article

    ', ), - 235 => + 235 => array ( 'title' => 'ZendCon 2017 CFP Started', 'id' => 'http://php.net/archive/2017.php#id2017-03-14-1', 'published' => '2017-03-14T00:00:01+00:00', 'updated' => '2017-03-14T12:23:00+00:00', 'finalTeaserDate' => '2017-04-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://zendcon.com', @@ -13254,37 +13273,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for ZendCon 2017 has launched at https://cfp.zendcon.com where we will accept talk submissions until April 14th, 2017.

    With over 250 million PHP applications driven by a global community of more than 5 million active developers and all enterprises adopting open source software, ZendCon 2017 brings you a curated selection of the best experts, training, and networking opportunities to embrace this vast ecosystem.

    … read full article

    ', ), - 236 => + 236 => array ( 'title' => 'Conferência PHPRS 2017', 'id' => 'http://php.net/archive/2017.php#id2017-03-04-1', 'published' => '2017-03-04T16:33:51-03:00', 'updated' => '2017-03-04T16:33:51-03:00', 'finalTeaserDate' => '2017-05-12', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-03-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conf.phprs.com.br/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conf.phprs.com.br/', @@ -13302,37 +13321,37 @@ the upgrade ', 'intro' => '

    An event for the PHP Developer community of Rio Grande do Sul, focused on professional growth, exchange of experiences and networking. Strengthening language and the labor market.

    From May 12 to 13, 2017, in Porto Alegre / RS-Brazil, the first day will be held workshops and the second lectures.

    … read full article

    ', ), - 237 => + 237 => array ( 'title' => 'Madison PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-02-24-1', 'published' => '2017-02-24T16:59:19+00:00', 'updated' => '2017-02-24T16:59:19+00:00', 'finalTeaserDate' => '2017-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.madisonphpconference.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.madisonphpconference.com/', @@ -13352,37 +13371,37 @@ the upgrade ', 'intro' => '

    Join us on Friday, September 22nd, 2017 for a full day of tutorials followed by three tracks of amazing talks on Saturday, September 23rd, 2017. Now in its fifth year, Madison PHP Conference in Madison, Wisconsin, USA focuses on PHP, related web technologies, and professional development - everything you need to energize your career. This event is organized by the locally-run Madison PHP user group and is designed to offer something for attendees at all skill levels. Madison PHP Conference 2017 will be two days of networking, learning, sharing, and great fun!

    The Call for Papers will be open until April 30th, 2017. Madison PHP Conference offers reimbursement for travel and accommodations. To view the full speaker package and to submit a talk, please visit: http://cfp.madisonphpconference.com.

    … read full article

    ', ), - 238 => + 238 => array ( 'title' => 'Madison PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-02-24-1', 'published' => '2017-02-24T16:59:19+00:00', 'updated' => '2017-02-24T16:59:19+00:00', 'finalTeaserDate' => '2017-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.madisonphpconference.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.madisonphpconference.com/', @@ -13396,42 +13415,42 @@ the upgrade ', 'intro' => '

    Join us on Friday, September 22nd, 2017 for a full day of tutorials followed by three tracks of amazing talks on Saturday, September 23rd, 2017. Now in its fifth year, Madison PHP Conference in Madison, Wisconsin, USA focuses on PHP, related web technologies, and professional development - everything you need to energize your career. This event is organized by the locally-run Madison PHP user group and is designed to offer something for attendees at all skill levels. Madison PHP Conference 2017 will be two days of networking, learning, sharing, and great fun!

    ', ), - 239 => + 239 => array ( 'title' => 'CakeFest 2017 NYC, the Official CakePHP Conference', 'id' => 'http://php.net/archive/2017.php#id2017-02-21-1', 'published' => '2017-02-21T09:19:04+00:00', 'updated' => '2017-02-21T09:19:04+00:00', 'finalTeaserDate' => '2017-06-08', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cakefest.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cakefest.org', @@ -13472,34 +13491,34 @@ the upgrade will be an event not to miss.

    … read full article

    ', ), - 240 => + 240 => array ( 'title' => 'PHP 7.1.2 Released', 'id' => 'http://php.net/archive/2017.php#id2017-02-17-1', 'published' => '2017-02-17T06:00:25+00:00', 'updated' => '2017-02-17T06:00:25+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-02-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-02-17-1', 'rel' => 'via', @@ -13528,34 +13547,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 241 => + 241 => array ( 'title' => 'PHP 7.0.16 Released', 'id' => 'http://php.net/archive/2017.php#id2017-02-16-1', 'published' => '2017-02-16T13:00:00+01:00', 'updated' => '2017-02-16T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-02-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-02-16-1', 'rel' => 'via', @@ -13584,37 +13603,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 242 => + 242 => array ( 'title' => 'PHP Experience 2017', 'id' => 'http://php.net/archive/2017.php#id2017-02-15-1', 'published' => '2017-02-15T02:35:13+00:00', 'updated' => '2017-02-15T02:35:13+00:00', 'finalTeaserDate' => '2017-03-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-02-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpexperience2017.imasters.com.br/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpexperience2017.imasters.com.br/?paref=phpnet&utm_campaign=phpnet', @@ -13626,37 +13645,37 @@ the upgrade ', 'intro' => '
    ', ), - 243 => + 243 => array ( 'title' => 'php[tek] 2017: Atlanta', 'id' => 'http://php.net/archive/2017.php#id2017-01-23-1', 'published' => '2017-01-23T08:25:57-05:00', 'updated' => '2017-01-23T08:25:57-05:00', 'finalTeaserDate' => '2017-05-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-01-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -13680,34 +13699,34 @@ the upgrade ', 'intro' => '
    ', ), - 244 => + 244 => array ( 'title' => 'PHP 5.6.30 Released', 'id' => 'http://php.net/archive/2017.php#id2017-01-19-3', 'published' => '2017-01-19T13:30:25-08:00', 'updated' => '2017-01-19T13:30:25-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-01-19-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-01-19-3', 'rel' => 'via', @@ -13757,34 +13776,34 @@ the upgrade

    ', ), - 245 => + 245 => array ( 'title' => 'PHP 7.0.15 Released', 'id' => 'http://php.net/archive/2017.php#id2017-01-19-2', 'published' => '2017-01-19T13:00:00+01:00', 'updated' => '2017-01-19T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-01-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-01-19-2', 'rel' => 'via', @@ -13813,34 +13832,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 246 => + 246 => array ( 'title' => 'PHP 7.1.1 Released', 'id' => 'http://php.net/archive/2017.php#id2017-01-19-1', 'published' => '2017-01-19T09:56:45+00:00', 'updated' => '2017-01-19T09:56:45+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2017-01-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2017.php#id2017-01-19-1', 'rel' => 'via', @@ -13869,37 +13888,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 247 => + 247 => array ( 'title' => 'PHPKonf: Istanbul PHP Conference 2017', 'id' => 'http://php.net/archive/2017.php#id2017-12-27-1', 'published' => '2017-03-27T18:00:00+00:00', 'updated' => '2017-03-27T18:00:00+00:00', 'finalTeaserDate' => '2017-05-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2017-12-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpkonf.org/', @@ -13914,42 +13933,42 @@ the upgrade ', 'intro' => '

    Istanbul PHP User Group is proud to announce that the PHPKonf 2017! We\'ll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. Join us on 20th of May for a multi-track conference in ancient city Istanbul! We’ve something for every level of PHP developer with 1 keynotes, 14 talks.

    http://phpkonf.org
    ', ), - 248 => + 248 => array ( 'title' => 'PHPSerbia Conference 2017', 'id' => 'http://php.net/archive/2016.php#id2016-12-20-1', 'published' => '2016-12-20T13:08:01+00:00', 'updated' => '2016-12-20T13:08:01+00:00', 'finalTeaserDate' => '2017-05-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conf2017.phpsrbija.rs/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conf2017.phpsrbija.rs', @@ -13966,34 +13985,34 @@ the upgrade ', 'intro' => '

    Conference that delivers high-value technical content about PHP and related web technologies, architecture, best practices and testing. Two days of amazing talks by some of the most prominent experts and professionals in the PHP world in a comfortable and professional setting.

    At PHPSerbia Conference, you’ll have the unique opportunity to learn about the latest development trends and innovations, as well as to network with fellow attendees and the speakers.

    … read full article

    ', ), - 249 => + 249 => array ( 'title' => 'PHP 5.6.29 Released', 'id' => 'http://php.net/archive/2016.php#id2016-12-08-2', 'published' => '2016-12-08T19:00:37-08:00', 'updated' => '2016-12-08T19:00:37-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-12-08-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-12-08-2', 'rel' => 'via', @@ -14022,34 +14041,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 250 => + 250 => array ( 'title' => 'PHP 7.0.14 Released', 'id' => 'http://php.net/archive/2016.php#id2016-12-08-1', 'published' => '2016-12-08T13:00:00+01:00', 'updated' => '2016-12-08T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-12-08-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-12-08-1', 'rel' => 'via', @@ -14078,37 +14097,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 251 => + 251 => array ( 'title' => 'CoderCruise', 'id' => 'http://php.net/archive/2016.php#id2016-12-07-1', 'published' => '2016-12-07T14:31:23-05:00', 'updated' => '2016-12-07T14:31:23-05:00', 'finalTeaserDate' => '2017-01-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://www.codercruise.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://www.codercruise.com/?paref=phpnet&utm_campaign=phpnet', @@ -14123,34 +14142,34 @@ the upgrade ', 'intro' => '

    CoderCruise is the spiritual successor to php[cruise] that was run in 2016. The PHP community had so much fun that we decided we needed to expand the idea to the greater web tech community! This will be a 7-day cruise out of the port of New Orleans that will include 3 days of conference (while at sea) and 3 days at the ports of Montego Bay, Grand Cayman, and Cozumel. Yes, you read that right. This is a conference on a cruise ship.

    We currently have our Call for Speakers open until January 6th, 2017. For CoderCruise we are looking for submissions covering a wide range of web technology topics including coding, design, content, and more. Given the scope of this conference, emphasis will be given to talks that appeal to all web technologists regardless of their programming language of choice (or lack thereof). We also welcome non-technical proposals that will appeal to a tech audience, and most importantly of all, we would love to have family-friendly sessions designed to teach kids to code or use related technologies.

    ', ), - 252 => + 252 => array ( 'title' => 'PHP 7.1.0 Released', 'id' => 'http://php.net/archive/2016.php#id2016-12-01-3', 'published' => '2016-12-01T17:55:05+00:00', 'updated' => '2016-12-01T17:55:05+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-12-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-12-01-3', 'rel' => 'via', @@ -14181,37 +14200,37 @@ the upgrade ', 'intro' => '

    The PHP development team announces the immediate availability of PHP 7.1.0. This release is the first point release in the 7.x series.

    PHP 7.1.0 comes with numerous improvements and new features such as

    … read full article

    ', ), - 253 => + 253 => array ( 'title' => 'PHP South Coast 2017 - CFP opened', 'id' => 'http://php.net/archive/2016.php#id2016-12-01-2', 'published' => '2016-12-01T22:48:54+00:00', 'updated' => '2016-12-01T22:48:54+00:00', 'finalTeaserDate' => '2017-01-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2017.phpsouthcoast.co.uk/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2017.phpsouthcoast.co.uk/', @@ -14224,37 +14243,37 @@ the upgrade ', 'intro' => '
    call for papers sitePHP South Coast
    ', ), - 254 => + 254 => array ( 'title' => 'Web Summer Camp 2017', 'id' => 'http://php.net/archive/2016.php#id2016-12-01-1', 'published' => '2016-12-01T14:20:42+00:00', 'updated' => '2016-12-01T14:20:42+00:00', 'finalTeaserDate' => '2017-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-12-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2017.websummercamp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2017.websummercamp.com', @@ -14283,37 +14302,37 @@ the upgrade http://2016.websummercamp.com/PHP

    ', ), - 255 => + 255 => array ( 'title' => 'International PHP Conference 2017', 'id' => 'http://php.net/archive/2016.php#id2016-11-24-1', 'published' => '2016-11-24T09:54:24+01:00', 'updated' => '2016-11-24T09:54:24+01:00', 'finalTeaserDate' => '2016-12-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -14353,37 +14372,37 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale \'17 taking place at the same time.

    … read full article

    ', ), - 256 => + 256 => array ( 'title' => 'php[tek] 2017 — Call for Speakers', 'id' => 'http://php.net/archive/2016.php#id2016-11-11-1', 'published' => '2016-11-11T16:01:34-05:00', 'updated' => '2016-11-11T16:01:34-05:00', 'finalTeaserDate' => '2016-12-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -14413,34 +14432,34 @@ the upgrade ', 'intro' => '

    The 12th annual edition of php[tek], the longest running community focused PHP conference, will be taking place May 24-26, 2017 in Atlanta! We have opened up our Call for Speakers and look forward to seeing all the amazing proposals that you will submit to us.

    This year we hope for a broad range of topics to share with our attendees. Besides core PHP matters such as PHP7, Security, and Testing, we want talks on the technologies crucial to modern Web development as well such as HTML5, JavaScript, mobile development, and emerging technologies. We also welcome non-technical proposals that will appeal to a developer audience.

    … read full article

    ', ), - 257 => + 257 => array ( 'title' => 'PHP 5.6.28 Released', 'id' => 'http://php.net/archive/2016.php#id2016-11-10-3', 'published' => '2016-11-10T19:24:41+00:00', 'updated' => '2016-11-10T19:24:41+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-11-10-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-11-10-3', 'rel' => 'via', @@ -14469,34 +14488,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 258 => + 258 => array ( 'title' => 'PHP 7.1.0 Release Candidate 6 Released', 'id' => 'http://php.net/archive/2016.php#id2016-11-10-2', 'published' => '2016-11-10T17:00:00+00:00', 'updated' => '2016-11-10T17:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-11-10-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-11-10-2', 'rel' => 'via', @@ -14532,34 +14551,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 259 => + 259 => array ( 'title' => 'PHP 7.0.13 Released', 'id' => 'http://php.net/archive/2016.php#id2016-11-10-1', 'published' => '2016-11-10T13:00:00+01:00', 'updated' => '2016-11-10T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-11-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-11-10-1', 'rel' => 'via', @@ -14588,37 +14607,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 260 => + 260 => array ( 'title' => 'International PHP Conference 2017 - Call for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-11-02-1', 'published' => '2016-11-02T15:44:54-04:00', 'updated' => '2016-11-02T15:44:54-04:00', 'finalTeaserDate' => '2016-11-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://callforpapers.sandsmedia.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://callforpapers.sandsmedia.com', @@ -14647,37 +14666,37 @@ the upgrade ', 'intro' => '
    ', ), - 261 => + 261 => array ( 'title' => 'SunshinePHP 2017 Schedule Announced', 'id' => 'http://php.net/archive/2016.php#id2016-11-01-1', 'published' => '2016-11-01T00:00:01+00:00', 'updated' => '2016-11-01T12:23:00+00:00', 'finalTeaserDate' => '2016-11-01', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-11-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -14698,37 +14717,37 @@ the upgrade ', 'intro' => '

    We are pleased to announce the 2017 SunshinePHP Schedule. Our highly diverse lineup of 45 speakers will be delivering 5 keynotes, 8 in-depth 3-hour tutorials, and 40 talks 1-hour in length over this 3 day event.

    SunshinePHP hit it\'s 5th year and will happen from February 2nd to 4th, 2017 in sunny Miami, Florida. As one of the largest community conferences in the U.S. the schedule is amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 262 => + 262 => array ( 'title' => 'ConFoo Vancouver & Montreal', 'id' => 'http://php.net/archive/2016.php#id2016-10-28-1', 'published' => '2016-10-28T12:22:24-04:00', 'updated' => '2016-10-28T12:22:24-04:00', 'finalTeaserDate' => '2016-12-05', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-10-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en', @@ -14747,34 +14766,34 @@ the upgrade ', 'intro' => '

    We recently released the presentations for ConFoo Montreal. This giant conference will be held on March 8-10, 2017.

    It\'s also the last chance to get tickets for ConFoo Vancouver, held on December 5-7, 2016.

    … read full article

    ', ), - 263 => + 263 => array ( 'title' => 'PHP 7.1.0 Release Candidate 5 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-27-1', 'published' => '2016-10-27T15:00:00+00:00', 'updated' => '2016-10-27T15:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-27-1', 'rel' => 'via', @@ -14814,37 +14833,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 264 => + 264 => array ( 'title' => 'PhpConference Brasil 2016', 'id' => 'http://php.net/archive/2016.php#id2016-10-26-1', 'published' => '2016-10-26T10:22:11-02:00', 'updated' => '2016-10-26T10:22:11-02:00', 'finalTeaserDate' => '2016-12-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-10-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpconference.com.br/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconference.com.br/', @@ -14885,34 +14904,34 @@ the upgrade The 11th edition of PhpConference Brasil will happen between December 7th (Wednesday) and December 11th (Sunday).

    … read full article

    ', ), - 265 => + 265 => array ( 'title' => 'PHP 7.1.0 Release Candidate 4 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-19-1', 'published' => '2016-10-19T14:00:00+00:00', 'updated' => '2016-10-19T14:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-19-1', 'rel' => 'via', @@ -14952,37 +14971,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 266 => + 266 => array ( 'title' => 'Midwest PHP 2017 Conference Call for Papers is Open', 'id' => 'http://php.net/archive/2016.php#id2016-10-18-1', 'published' => '2016-10-18T10:46:00-06:00', 'updated' => '2016-10-18T10:46:00-06:00', 'finalTeaserDate' => '2016-11-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-10-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2017.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2017.midwestphp.org', @@ -15014,34 +15033,34 @@ the upgrade is launching into its fifth year at the Radisson Blu at Mall of America on March 17-18. With the growth of the Midwest PHP conference this is the one conference you cannot afford to miss in 2017.

    … read full article

    ', ), - 267 => + 267 => array ( 'title' => 'PHP 5.6.27 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-14-1', 'published' => '2016-10-14T21:29:35+00:00', 'updated' => '2016-10-14T21:29:35+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-14-1', 'rel' => 'via', @@ -15070,34 +15089,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 268 => + 268 => array ( 'title' => 'PHP 7.0.12 Released', 'id' => 'http://php.net/archive/2016.php#id2016-10-13-1', 'published' => '2016-10-13T23:00:00+01:00', 'updated' => '2016-10-13T23:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-10-13-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-10-13-1', 'rel' => 'via', @@ -15126,34 +15145,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 269 => + 269 => array ( 'title' => 'PHP 7.1.0 Release Candidate 3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-29-1', 'published' => '2016-09-29T17:46:09+00:00', 'updated' => '2016-09-29T17:46:09+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-29-1', 'rel' => 'via', @@ -15193,37 +15212,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 270 => + 270 => array ( 'title' => 'PHP UK Conference 2017 Call for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-09-22-2', 'published' => '2016-09-22T09:00:00+00:00', 'updated' => '2016-09-22T09:00:00+00:00', 'finalTeaserDate' => '2016-10-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-09-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpconference.co.uk', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpconference.co.uk', @@ -15251,34 +15270,34 @@ the upgrade Open until: October 17th 2016 6pm GMT

    The PHP UK Conference 2017 Call for Papers is now open!

    … read full article

    ', ), - 271 => + 271 => array ( 'title' => 'PHP 7.1.0 Release Candidate 2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-16-2', 'published' => '2016-09-16T23:33:30+00:00', 'updated' => '2016-09-16T23:33:30+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-16-2', 'rel' => 'via', @@ -15318,34 +15337,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 272 => + 272 => array ( 'title' => 'PHP 5.6.26 is released', 'id' => 'http://php.net/archive/2016.php#id2016-09-16-1', 'published' => '2016-09-16T06:39:08+00:00', 'updated' => '2016-09-16T06:39:08+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-16-1', 'rel' => 'via', @@ -15374,34 +15393,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 273 => + 273 => array ( 'title' => 'PHP 7.0.11 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-15-1', 'published' => '2016-09-15T13:00:00+01:00', 'updated' => '2016-09-15T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-15-1', 'rel' => 'via', @@ -15430,37 +15449,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 274 => + 274 => array ( 'title' => 'php[world] 2016', 'id' => 'http://php.net/archive/2016.php#id2016-09-09-1', 'published' => '2016-09-09T08:05:18-04:00', 'updated' => '2016-09-09T08:05:18-04:00', 'finalTeaserDate' => '2016-11-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-09-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/?paref=phpnet&utm_campaign=phpnet', @@ -15487,37 +15506,37 @@ the upgrade ', 'intro' => '

    The team behind php[architect] magazine are excited to announce the full schedule for our Fall conference: php[world] 2016 coming up from November 14-18 in Washington, D.C.

    This conference will be our biggest yet, featuring 60 sessions, 10 workshops, and 5 one and two-day training classes. Not to mention 5 amazing keynotes from leaders in the PHP community, and a special keynote by developers from NPR Radio to talk about their experiences with PHP.

    … read full article

    ', ), - 275 => + 275 => array ( 'title' => 'PHPBenelux Conference 2017 CfP Opened', 'id' => 'http://php.net/archive/2016.php#id2016-09-06-1', 'published' => '2016-09-06T01:53:15+02:00', 'updated' => '2016-09-06T01:53:15+02:00', 'finalTeaserDate' => '2016-10-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-09-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cfp.phpbenelux.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cfp.phpbenelux.eu/', @@ -15539,34 +15558,34 @@ the upgrade We like to invite speakers to submit their tutorials and talks at PHPBenelux CFP. Follow us on Twitter or like us on Facebook to stay updated with news from the PHPBenelux crew.

    ', ), - 276 => + 276 => array ( 'title' => 'PHP 7.1.0 Release Candidate 1 Released', 'id' => 'http://php.net/archive/2016.php#id2016-09-01-1', 'published' => '2016-09-01T15:18:32+00:00', 'updated' => '2016-09-01T15:18:32+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-09-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-09-01-1', 'rel' => 'via', @@ -15606,37 +15625,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 277 => + 277 => array ( 'title' => 'ScotlandPHP 2016', 'id' => 'http://php.net/archive/2016.php#id2016-08-27-1', 'published' => '2016-08-27T12:14:42+00:00', 'updated' => '2016-08-29T20:00:00+01:00', 'finalTeaserDate' => '2016-10-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conference.scotlandphp.co.uk', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conference.scotlandphp.co.uk', @@ -15674,37 +15693,37 @@ the upgrade and bookended by keynotes from world class speakers: Anthony Ferrara and Jessica Rose.

    … read full article

    ', ), - 278 => + 278 => array ( 'title' => 'ConFoo Montreal 2017 Calling for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-08-22-2', 'published' => '2016-08-22T16:50:54-04:00', 'updated' => '2016-08-22T16:50:54-04:00', 'finalTeaserDate' => '2016-09-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yul2017/call-for-papers', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yul2017/call-for-papers', @@ -15719,37 +15738,37 @@ the upgrade ', 'intro' => '
    ', ), - 279 => + 279 => array ( 'title' => 'Bulgaria PHP Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-08-22-1', 'published' => '2016-08-22T18:00:00+03:00', 'updated' => '2016-08-22T18:00:00+03:00', 'finalTeaserDate' => '2016-10-07', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.bgphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.bgphp.org', @@ -15778,34 +15797,34 @@ the upgrade ', 'intro' => '

    Bulgaria PHP Conference is the premier PHP conference, gathering PHP and frontend developers and engineers from all around Europe. Co-organized by the Bulgaria PHP User Group and SiteGround web hosting, the conference is bringing internationally renowned experts from the PHP industry to talk about APIs, Frameworks, Security, Testing, Continuous Integration, and much more!

    Highlights:

    … read full article

    ', ), - 280 => + 280 => array ( 'title' => 'PHP 7.1.0 Beta 3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-08-18-3', 'published' => '2016-08-18T23:10:34+00:00', 'updated' => '2016-08-18T23:10:34+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-18-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-18-3', 'rel' => 'via', @@ -15845,34 +15864,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 281 => + 281 => array ( 'title' => 'PHP 5.6.25 is released', 'id' => 'http://php.net/archive/2016.php#id2016-08-18-2', 'published' => '2016-08-18T16:43:25-07:00', 'updated' => '2016-08-19T13:19:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-18-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-18-2', 'rel' => 'via', @@ -15901,34 +15920,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 282 => + 282 => array ( 'title' => 'PHP 7.0.10 Released', 'id' => 'http://php.net/archive/2016.php#id2016-08-18-1', 'published' => '2016-08-18T23:59:00+01:00', 'updated' => '2016-08-18T23:59:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-18-1', 'rel' => 'via', @@ -15957,37 +15976,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 283 => + 283 => array ( 'title' => 'SunshinePHP 2017 CFP Started', 'id' => 'http://php.net/archive/2016.php#id2016-08-16-2', 'published' => '2016-08-16T00:00:01+00:00', 'updated' => '2016-08-16T12:23:00+00:00', 'finalTeaserDate' => '2016-09-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://sunshinephp.com', @@ -16004,37 +16023,37 @@ the upgrade ', 'intro' => '

    We are happy to announce the CFP for SunshinePHP 2017 has launched at https://cfp.sunshinephp.com where we will accept talk submissions until September 30th, 2016.

    SunshinePHP hit it\'s 5th year and will happen from February 2nd to 4th, 2017 in sunny Miami, Florida. As one of the largest community conferences in the U.S. there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 284 => + 284 => array ( 'title' => 'ZendCon 2016', 'id' => 'http://php.net/archive/2016.php#id2016-08-16-1', 'published' => '2016-08-16T00:00:01+00:00', 'updated' => '2016-08-16T12:23:00+00:00', 'finalTeaserDate' => '2016-10-18', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-08-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://zendcon.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://zendcon.com', @@ -16053,34 +16072,34 @@ the upgrade ', 'intro' => '

    With over 250 million PHP applications and websites driven by a global community of more than 5 million active developers, ZendCon 2016 brings you a curated selection of the best experts, training, and networking opportunities to help you become a PHP authority.

    In its 12th year, ZendCon offers authoritative sessions, in-depth technical tutorials, exhibit hall activities, and informal opportunities to spotlight the best in enterprise PHP development, the latest for PHP 7, and innovations on many open source technologies related to the web.

    … read full article

    ', ), - 285 => + 285 => array ( 'title' => 'PHP 7.1.0 Beta 2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-08-04-1', 'published' => '2016-08-04T09:00:07+00:00', 'updated' => '2016-08-04T09:00:07+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-08-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-08-04-1', 'rel' => 'via', @@ -16120,37 +16139,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 286 => + 286 => array ( 'title' => 'Early Bird Ticket Sale for PHPConf.Asia 2016', 'id' => 'http://php.net/archive/2016.php#id2016-07-24-1', 'published' => '2016-07-24T14:38:59+08:00', 'updated' => '2016-07-24T14:38:59+08:00', 'finalTeaserDate' => '2016-08-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-07-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2016.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2016.phpconf.asia', @@ -16167,34 +16186,34 @@ the upgrade ', 'intro' => '

    PHPConf.Asia 2016 is happening in Singapore on 22-24 August 2016. Tutorial Day on 22 Aug. 2 day single track conference on 23 and 24 August.

    Keynote Speakers: Davey Shafik (@dshafik) and Samantha Quiñones (@ieatkillerbees)

    … read full article

    ', ), - 287 => + 287 => array ( 'title' => 'PHP 5.6.24 is released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-4', 'published' => '2016-07-21T19:49:46+00:00', 'updated' => '2016-07-21T19:49:46+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-4', 'rel' => 'via', @@ -16225,34 +16244,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 288 => + 288 => array ( 'title' => 'PHP 5.5.38 is released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-2', 'published' => '2016-07-21T16:01:29+00:00', 'updated' => '2016-07-21T16:01:29+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-2', 'rel' => 'via', @@ -16280,34 +16299,34 @@ the upgrade some security related bugs.

    All PHP 5.5 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 289 => + 289 => array ( 'title' => 'PHP 7.0.9 Released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-3', 'published' => '2016-07-21T13:00:00+01:00', 'updated' => '2016-07-21T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-3', 'rel' => 'via', @@ -16336,34 +16355,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 290 => + 290 => array ( 'title' => 'PHP 7.1.0 Beta 1 Released', 'id' => 'http://php.net/archive/2016.php#id2016-07-21-1', 'published' => '2016-07-21T09:32:07+00:00', 'updated' => '2016-07-21T09:32:07+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-21-1', 'rel' => 'via', @@ -16416,34 +16435,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 291 => + 291 => array ( 'title' => 'PHP 7.1.0 Alpha 3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-07-07-1', 'published' => '2016-07-07T19:40:54+00:00', 'updated' => '2016-07-07T19:40:54+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-07-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-07-07-1', 'rel' => 'via', @@ -16508,34 +16527,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 292 => + 292 => array ( 'title' => 'PHP 7.1.0 Alpha 2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-06-24-1', 'published' => '2016-06-27T16:00:00+00:00', 'updated' => '2016-06-27T16:00:00+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-24-1', 'rel' => 'via', @@ -16574,34 +16593,34 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 293 => + 293 => array ( 'title' => 'PHP 5.5.37 is released', 'id' => 'http://php.net/archive/2016.php#id2016-06-23-3', 'published' => '2016-06-23T18:11:22+00:00', 'updated' => '2016-06-23T18:11:22+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-23-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-23-3', 'rel' => 'via', @@ -16630,34 +16649,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 294 => + 294 => array ( 'title' => 'PHP 5.6.23 is released', 'id' => 'http://php.net/archive/2016.php#id2016-06-23-2', 'published' => '2016-06-23T17:36:17+00:00', 'updated' => '2016-06-23T17:36:17+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-23-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-23-2', 'rel' => 'via', @@ -16686,34 +16705,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 295 => + 295 => array ( 'title' => 'PHP 7.0.8 Released', 'id' => 'http://php.net/archive/2016.php#id2016-06-23-1', 'published' => '2016-06-23T13:00:00+01:00', 'updated' => '2016-06-23T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-23-1', 'rel' => 'via', @@ -16742,37 +16761,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 296 => + 296 => array ( 'title' => 'International PHP Conference 2016 - fall edition', 'id' => 'http://php.net/archive/2016.php#id2016-06-15-1', 'published' => '2016-06-15T09:54:24+01:00', 'updated' => '2016-06-15T09:54:24+01:00', 'finalTeaserDate' => '2016-10-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -16818,34 +16837,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the WebTechCon taking place at the same time.

    … read full article

    ', ), - 297 => + 297 => array ( 'title' => 'PHP 7.1.0 Alpha 1 Released', 'id' => 'http://php.net/archive/2016.php#id2016-06-09-1', 'published' => '2016-06-09T12:39:55-04:00', 'updated' => '2016-06-09T12:39:55-04:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-06-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-06-09-1', 'rel' => 'via', @@ -16922,37 +16941,37 @@ the upgrade THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 298 => + 298 => array ( 'title' => 'DevConf 2016', 'id' => 'http://php.net/archive/2016.php#id2016-06-06-1', 'published' => '2016-06-06T09:10:08+00:00', 'updated' => '2016-06-06T09:10:08+00:00', 'finalTeaserDate' => '2016-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://devconf.ru', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devconf.ru', @@ -16997,37 +17016,37 @@ the upgrade This year the conference will take place in Skolkovo Moscow School of Management.

    … read full article

    ', ), - 299 => + 299 => array ( 'title' => 'Madison PHP Conference 2016 Call For Papers', 'id' => 'http://php.net/archive/2016.php#id2016-06-03-1', 'published' => '2016-06-03T21:05:00-04:00', 'updated' => '2016-06-03T21:05:00-04:00', 'finalTeaserDate' => '2016-06-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.madisonphpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.madisonphpconference.com/', @@ -17047,37 +17066,37 @@ the upgrade Join us on Friday, September 30th, 2016 for a full day of tutorials followed by a three tracks of talks on Saturday, October 1st, 2016. Madison PHP Conference in Madison, Wisconsin focuses on PHP and related web technologies. This event is organized by Madison PHP and is designed to offer something to attendees at all skill levels. It will be two days of networking, learning, sharing, and great fun!

    ', ), - 300 => + 300 => array ( 'title' => 'php[world] 2016 Call for Speakers', 'id' => 'http://php.net/archive/2016.php#id2016-06-02-1', 'published' => '2016-06-02T11:36:27-04:00', 'updated' => '2016-06-02T11:36:27-04:00', 'finalTeaserDate' => '2016-06-24', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-06-02-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -17104,37 +17123,37 @@ the upgrade

    Now in its 3rd year, php[world] is the conference designed to bring the entire world of PHP together in one place, with dedicated tracks for the biggest applications and frameworks in the PHP community such as WordPress, Drupal, Magento, Joomla!, Symfony, Zend Framework, CakePHP, and Laravel.

    … read full article

    ', ), - 301 => + 301 => array ( 'title' => 'The 4th Annual China PHP Conference', 'id' => 'http://php.net/archive/2016.php#id2016-05-30-1', 'published' => '2016-05-30T15:53:21+00:00', 'updated' => '2016-05-30T15:53:21+00:00', 'finalTeaserDate' => '2016-06-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-05-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com/', @@ -17153,34 +17172,34 @@ the upgrade ', 'intro' => '

    The 4th Annual China PHP Conference – June 25 to 26, Shanghai

    We will be hosting a 2-days event filled with high quality, technical sessions about PHP Core, PHP High Performance, PHP Engineering, and PHP more.

    … read full article

    ', ), - 302 => + 302 => array ( 'title' => 'PHP 5.6.22 is available', 'id' => 'http://php.net/archive/2016.php#id2016-05-26-3', 'published' => '2016-05-26T12:59:08-07:00', 'updated' => '2016-05-26T12:59:08-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-05-26-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-26-3', 'rel' => 'via', @@ -17211,34 +17230,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 303 => + 303 => array ( 'title' => 'PHP 5.5.36 is available', 'id' => 'http://php.net/archive/2016.php#id2016-05-26-2', 'published' => '2016-05-26T12:50:50+00:00', 'updated' => '2016-05-26T12:50:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-05-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-26-2', 'rel' => 'via', @@ -17269,34 +17288,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 304 => + 304 => array ( 'title' => 'PHP 7.0.7 Released', 'id' => 'http://php.net/archive/2016.php#id2016-05-26-1', 'published' => '2016-05-26T13:00:00+01:00', 'updated' => '2016-05-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-05-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-05-26-1', 'rel' => 'via', @@ -17327,37 +17346,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 305 => + 305 => array ( 'title' => 'ConFoo Vancouver 2016 Calling for Papers', 'id' => 'http://php.net/archive/2016.php#id2016-05-12-1', 'published' => '2016-05-12T20:03:15-04:00', 'updated' => '2016-05-12T20:03:15-04:00', 'finalTeaserDate' => '2016-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-05-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://confoo.ca/en/yvr2016', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://confoo.ca/en/yvr2016', @@ -17372,42 +17391,42 @@ the upgrade ', 'intro' => '
    ', ), - 306 => + 306 => array ( 'title' => 'Announcing PHPConf.Asia 2016. CFP Opens Now!', 'id' => 'http://php.net/archive/2016.php#id2016-05-02-2', 'published' => '2016-05-02T00:28:11+08:00', 'updated' => '2016-05-02T00:28:11+08:00', 'finalTeaserDate' => '2016-08-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-05-02-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://2016.phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://2016.phpconf.asia', @@ -17423,34 +17442,34 @@ the upgrade ', 'intro' => '

    Announcing PHPConf.Asia 2016 - The Pan-Asian PHP Conference - CFP Opens Now

    The second pan-Asian PHP conference will take place between 22nd and 24th August 2016 in Singapore - the Garden City of the East! Monday, 22nd August 2016 will be a Tutorial day. Followed by 2 days of Conference.

    … read full article

    ', ), - 307 => + 307 => array ( 'title' => 'PHP 7.0.6 Released', 'id' => 'http://php.net/archive/2016.php#id2016-04-29-1', 'published' => '2016-04-29T02:30:00+01:00', 'updated' => '2016-04-29T02:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-04-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-04-29-1', 'rel' => 'via', @@ -17483,34 +17502,34 @@ the upgrade
  • CVE-2016-3074
  • … read full article

    ', ), - 308 => + 308 => array ( 'title' => 'PHP 5.6.21 is available', 'id' => 'http://php.net/archive/2016.php#id2016-04-28-2', 'published' => '2016-04-28T16:04:29-07:00', 'updated' => '2016-04-28T16:04:29-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-04-28-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-04-28-2', 'rel' => 'via', @@ -17536,34 +17555,34 @@ the upgrade All PHP 5.6 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 309 => + 309 => array ( 'title' => 'PHP 5.5.35 Release', 'id' => 'http://php.net/archive/2016.php#id2016-04-28-1', 'published' => '2016-04-28T19:57:38+00:00', 'updated' => '2016-04-28T19:57:38+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-04-28-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-04-28-1', 'rel' => 'via', @@ -17589,37 +17608,37 @@ the upgrade All PHP 5.5 users are encouraged to upgrade to this version.

    … read full article

    ', ), - 310 => + 310 => array ( 'title' => 'phpDay 2016', 'id' => 'http://php.net/archive/2016.php#id2016-04-18-1', 'published' => '2016-04-18T10:35:47+02:00', 'updated' => '2016-04-18T10:35:47+02:00', 'finalTeaserDate' => '2016-05-13', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-04-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.phpday.it/', @@ -17637,37 +17656,37 @@ the upgrade ', 'intro' => '
    ', ), - 311 => + 311 => array ( 'title' => 'CakeFest 2016 - The CakePHP Conference', 'id' => 'http://php.net/archive/2016.php#id2016-04-05-1', 'published' => '2016-04-05T11:30:00+00:00', 'updated' => '2016-04-05T11:30:00+00:00', 'finalTeaserDate' => '2016-05-26', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-04-05-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://cakefest.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://cakefest.org', @@ -17710,34 +17729,34 @@ the upgrade who love code.

    That\'s why we ask you join us at CakeFest 2016 which will be running from May 26th till May 29th, and experience open source at it\'s very best! As always, CakeFest will consist of a two day workshop (At beginner and advanced levels) and a two day conference. This year we are in the beautiful city of Amsterdam, Netherlands.

    … read full article

    ', ), - 312 => + 312 => array ( 'title' => 'PHP 5.6.20 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-4', 'published' => '2016-03-31T16:28:02-07:00', 'updated' => '2016-03-31T16:28:02-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-31-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-31-4', 'rel' => 'via', @@ -17766,37 +17785,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 313 => + 313 => array ( 'title' => 'PHPSerbia Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-3', 'published' => '2016-03-31T20:00:00+02:00', 'updated' => '2016-03-31T22:00:00+02:00', 'finalTeaserDate' => '2016-05-27', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-31-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://conf2016.phpsrbija.rs', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://conf2016.phpsrbija.rs', @@ -17813,34 +17832,34 @@ the upgrade ', 'intro' => '

    Conference that delivers high-value technical content about PHP and related web technologies, architecture, best practices and testing. Two days of amazing talks by some of the most prominent experts and professionals in the PHP world in a comfortable and professional setting.

    At PHPSerbia Conference, you’ll have the unique opportunity to learn about the latest development trends and innovations, as well as to network with fellow attendees and the speakers.

    … read full article

    ', ), - 314 => + 314 => array ( 'title' => 'PHP 5.5.34 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-2', 'published' => '2016-03-31T12:58:50+00:00', 'updated' => '2016-03-31T12:58:50+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-31-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-31-2', 'rel' => 'via', @@ -17869,34 +17888,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 315 => + 315 => array ( 'title' => 'PHP 7.0.5 Released', 'id' => 'http://php.net/archive/2016.php#id2016-03-31-1', 'published' => '2016-03-31T13:00:00+01:00', 'updated' => '2016-03-31T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-31-1', 'rel' => 'via', @@ -17927,37 +17946,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 316 => + 316 => array ( 'title' => 'China PHP conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-30-1', 'published' => '2016-03-30T15:53:21+00:00', 'updated' => '2016-03-30T15:53:21+00:00', 'finalTeaserDate' => '2016-05-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-30-1', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devlink.cn', @@ -17975,30 +17994,30 @@ the upgrade ', 'intro' => '

    DevLink is pleased to announce the China PHP Conference 2016.

    DevLink is a group dedicated to helping developers continuous improvement. China PHP Conference 2016 face to senior PHP programmers, found for better communication in China. It will be held on 5.14-5.15 2016 for a two-days in Beijing, and we have invited Rasums Lerdorf, Xinchen Hui and other best PHP experts as speakers. There\'re over 10 topics foucus on PHP performance optimization in the Alibaba double-11 events; PHP development of big data analysis; Swoole cluster development, and SOA applications programming; upgraded to PHP7 experience of enterprise application.

    … read full article

    ', ), - 317 => + 317 => array ( 'title' => 'PHPTour 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-15-1', 'published' => '2016-03-15T09:54:21+00:00', 'updated' => '2016-03-15T09:54:21+00:00', 'finalTeaserDate' => '2016-05-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-15-1', 'rel' => 'via', @@ -18021,34 +18040,34 @@ the upgrade 'intro' => '

    After Nantes, Lille, Lyon,and Luxembourg-City, this year the PHP Tour, the itinerant conference organized by the French PHP users group, goes to Clermont-Ferrand, a lovely city surrounded by volcanoes. Helped by Clermont\'ech, a local developers organization, AFUP is happy to welcome you on May 23rd and 24th at the Polydome convention centre.

    This year, part of the program will focus on performance. "The big don\'t eat the little, the fast eat the slow" (Eberhard von Kuenheim, BMW)

    … read full article

    ', ), - 318 => + 318 => array ( 'title' => 'PHP 5.6.19 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-03-3', 'published' => '2016-03-03T14:27:37-08:00', 'updated' => '2016-03-03T14:27:37-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-03-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-03-3', 'rel' => 'via', @@ -18078,34 +18097,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 319 => + 319 => array ( 'title' => 'PHP 5.5.33 is available', 'id' => 'http://php.net/archive/2016.php#id2016-03-03-2', 'published' => '2016-03-03T12:04:41+00:00', 'updated' => '2016-03-03T12:04:41+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-03-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-03-2', 'rel' => 'via', @@ -18135,34 +18154,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 320 => + 320 => array ( 'title' => 'PHP 7.0.4 Released', 'id' => 'http://php.net/archive/2016.php#id2016-03-03-1', 'published' => '2016-03-03T13:00:00+01:00', 'updated' => '2016-03-03T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-03-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-03-03-1', 'rel' => 'via', @@ -18193,37 +18212,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 321 => + 321 => array ( 'title' => 'PHPKonf: Istanbul PHP Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-03-01-1', 'published' => '2016-03-01T09:00:00+00:00', 'updated' => '2016-03-01T09:00:00+00:00', 'finalTeaserDate' => '2016-05-21', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-03-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpkonf.org/', @@ -18238,37 +18257,37 @@ the upgrade ', 'intro' => '

    Istanbul PHP User Group is proud to announce that the PHPKonf 2016! We\'ll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. Join us on 21st/22nd of May for a two day, double track conference in ancient city Istanbul! We’ve something for every level of PHP developer with 2 keynotes, 28 talks and 2 panels.

    http://phpkonf.org
    ', ), - 322 => + 322 => array ( 'title' => 'php[tek] 2016', 'id' => 'http://php.net/archive/2016.php#id2016-02-18-1', 'published' => '2016-02-18T14:47:35-05:00', 'updated' => '2016-02-18T14:47:35-05:00', 'finalTeaserDate' => '2016-05-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-02-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com', @@ -18305,37 +18324,37 @@ the upgrade — running from May 23th-27th.

    This year we have moved the conference to a bigger venue, in St. Louis, in order to expand this year and for years to come.

    … read full article

    ', ), - 323 => + 323 => array ( 'title' => 'Midwest PHP 2016 Conference', 'id' => 'http://php.net/archive/2016.php#id2016-02-16-1', 'published' => '2016-02-16T10:46:00-06:00', 'updated' => '2016-02-16T10:46:00-06:00', 'finalTeaserDate' => '2016-03-05', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-02-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.midwestphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.midwestphp.org', @@ -18372,34 +18391,34 @@ the upgrade http://2016.midwestphp.org/register and we look forward to seeing you there.

    … read full article

    ', ), - 324 => + 324 => array ( 'title' => 'PHP 5.6.18 is available', 'id' => 'http://php.net/archive/2016.php#id2016-02-04-3', 'published' => '2016-02-04T12:08:37-08:00', 'updated' => '2016-02-04T12:08:37-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-02-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-02-04-3', 'rel' => 'via', @@ -18428,34 +18447,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 325 => + 325 => array ( 'title' => 'PHP 5.5.32 is available', 'id' => 'http://php.net/archive/2016.php#id2016-02-04-2', 'published' => '2016-02-04T10:39:10+00:00', 'updated' => '2016-02-04T10:39:10+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-02-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-02-04-2', 'rel' => 'via', @@ -18484,34 +18503,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 326 => + 326 => array ( 'title' => 'PHP 7.0.3 Released', 'id' => 'http://php.net/archive/2016.php#id2016-02-04-1', 'published' => '2016-02-04T13:00:00+01:00', 'updated' => '2016-02-04T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-02-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-02-04-1', 'rel' => 'via', @@ -18542,37 +18561,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 327 => + 327 => array ( 'title' => 'NortheastPHP Conference CfP Opens', 'id' => 'http://php.net/archive/2016.php#id2016-01-30-1', 'published' => '2016-01-30T04:50:46-05:00', 'updated' => '2016-01-30T04:50:46-05:00', 'finalTeaserDate' => '2016-03-31', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-01-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.northeastphp.org/call-for-papers/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.northeastphp.org/call-for-papers/', @@ -18593,37 +18612,37 @@ the upgrade ', 'intro' => '

    The team at NortheastPHP is excited to annouce that the Call for Speakers is open for our 2016 conference.

    This 5th annual conference that is focused on community is moving to Charlottetown, Prince Edward Island! We have a number of other updates that will be announced in the coming months as well.

    … read full article

    ', ), - 328 => + 328 => array ( 'title' => 'International PHP Conference 2016', 'id' => 'http://php.net/archive/2016.php#id2016-01-25-1', 'published' => '2016-01-25T09:54:24+01:00', 'updated' => '2016-01-25T09:54:24+01:00', 'finalTeaserDate' => '2016-05-29', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2016-01-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -18672,34 +18691,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world\'s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born - the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the webinale taking place at the same time.

    … read full article

    ', ), - 329 => + 329 => array ( 'title' => 'PHP 5.6.17 is available', 'id' => 'http://php.net/archive/2016.php#id2016-01-07-3', 'published' => '2016-01-07T09:44:28-08:00', 'updated' => '2016-01-07T09:44:28-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-01-07-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-01-07-3', 'rel' => 'via', @@ -18728,34 +18747,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 330 => + 330 => array ( 'title' => 'PHP 5.5.31 is available', 'id' => 'http://php.net/archive/2016.php#id2016-01-07-2', 'published' => '2016-01-07T11:59:59+00:00', 'updated' => '2016-01-07T11:59:59+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-01-07-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-01-07-2', 'rel' => 'via', @@ -18784,34 +18803,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 331 => + 331 => array ( 'title' => 'PHP 7.0.2 Released', 'id' => 'http://php.net/archive/2016.php#id2016-01-07-1', 'published' => '2016-01-07T13:00:00+01:00', 'updated' => '2016-01-07T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2016-01-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2016.php#id2016-01-07-1', 'rel' => 'via', @@ -18840,34 +18859,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 332 => + 332 => array ( 'title' => 'PHP 7.0.1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-12-17-1', 'published' => '2015-12-17T15:30:00+01:00', 'updated' => '2015-12-17T15:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-12-17-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-12-17-1', 'rel' => 'via', @@ -18896,37 +18915,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 333 => + 333 => array ( 'title' => 'php[tek] 2016 Call for Speakers', 'id' => 'http://php.net/archive/2015.php#id2015-12-16-1', 'published' => '2015-12-16T13:33:38+00:00', 'updated' => '2015-12-16T13:33:38+00:00', 'finalTeaserDate' => '2016-01-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-12-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://tek.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://tek.phparch.com/', @@ -18951,34 +18970,34 @@ the upgrade ', 'intro' => '

    The team at php[architect] is excited to annouce that the Call for Speakers is open for php[tek] 2016.

    This 11th annual conference that is focused on community is this year moving to a bigger venue in Saint Louis so that we can expand and give our attendees some elbow room! We have a number of other updates that will be announced in the coming months as well.

    … read full article

    ', ), - 334 => + 334 => array ( 'title' => 'PHP 7.0.0 Released', 'id' => 'http://php.net/archive/2015.php#id2015-12-03-1', 'published' => '2015-12-03T22:30:00+01:00', 'updated' => '2015-12-03T22:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-12-03-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-12-03-1', 'rel' => 'via', @@ -19042,37 +19061,37 @@ the upgrade and new features such as

    … read full article

    ', ), - 335 => + 335 => array ( 'title' => 'php[cruise]', 'id' => 'http://php.net/archive/2015.php#id2015-12-01-1', 'published' => '2015-12-01T18:12:59+00:00', 'updated' => '2015-12-01T18:12:59+00:00', 'finalTeaserDate' => '2016-07-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-12-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://cruise.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://cruise.phparch.com/', @@ -19108,34 +19127,34 @@ the upgrade any questions don’t hesitate to contact us.

    … read full article

    ', ), - 336 => + 336 => array ( 'title' => 'PHP 5.6.16 is available', 'id' => 'http://php.net/archive/2015.php#id2015-11-26-2', 'published' => '2015-11-26T14:18:28-08:00', 'updated' => '2015-11-26T14:18:28-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-11-26-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-11-26-2', 'rel' => 'via', @@ -19166,34 +19185,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 337 => + 337 => array ( 'title' => 'PHP 7.0.0 RC 8 Released', 'id' => 'http://php.net/archive/2015.php#id2015-11-26-1', 'published' => '2015-11-26T13:00:00+01:00', 'updated' => '2015-11-26T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-11-26-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-11-26-1', 'rel' => 'via', @@ -19261,34 +19280,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 338 => + 338 => array ( 'title' => 'PHP 7.0.0 RC 7 Released', 'id' => 'http://php.net/archive/2015.php#id2015-11-12-1', 'published' => '2015-11-12T13:00:00+01:00', 'updated' => '2015-11-12T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-11-12-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-11-12-1', 'rel' => 'via', @@ -19357,34 +19376,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 339 => + 339 => array ( 'title' => 'PHP 5.6.15 is available', 'id' => 'http://php.net/archive/2015.php#id2015-10-29-2', 'published' => '2015-10-29T23:18:58-07:00', 'updated' => '2015-10-29T23:18:58-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-29-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-29-2', 'rel' => 'via', @@ -19415,34 +19434,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 340 => + 340 => array ( 'title' => 'PHP 7.0.0 RC 6 Released', 'id' => 'http://php.net/archive/2015.php#id2015-10-29-1', 'published' => '2015-10-29T13:00:00+01:00', 'updated' => '2015-10-29T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-29-1', 'rel' => 'via', @@ -19509,37 +19528,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 341 => + 341 => array ( 'title' => 'PhpConference Brasil 2015', 'id' => 'http://php.net/archive/2015.php#id2015-10-15-3', 'published' => '2015-10-15T22:00:00-03:00', 'updated' => '2015-10-15T22:00:00-03:00', 'finalTeaserDate' => '2015-12-02', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-10-15-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpconference.com.br', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpconference.com.br', @@ -19584,34 +19603,34 @@ the upgrade wednesday, december 2nd, and ending on december 6th - on a beach!

    … read full article

    ', ), - 342 => + 342 => array ( 'title' => 'PHP 7.0.0 RC 5 Released', 'id' => 'http://php.net/archive/2015.php#id2015-10-15-2', 'published' => '2015-10-15T13:00:00+01:00', 'updated' => '2015-10-15T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-15-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-15-2', 'rel' => 'via', @@ -19678,37 +19697,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 343 => + 343 => array ( 'title' => 'PHP Frameworks Day 2015', 'id' => 'http://php.net/archive/2015.php#id2015-10-15-1', 'published' => '2015-10-15T12:05:32-04:00', 'updated' => '2015-10-15T12:05:32-04:00', 'finalTeaserDate' => '2015-10-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-10-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://frameworksdays.com/event/php-frameworks-day-2015', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://frameworksdays.com/event/php-frameworks-day-2015', @@ -19741,37 +19760,37 @@ the upgrade ', 'intro' => '

    #fwdays invites everybody interested in PHP topic to attend PHP Frameworks Day 2015 conference on October 17.

    This is the third time PHP Frameworks Day is being held and each time it grows and becomes more interesting! Watch how we spent PHP Frameworks Day 2014.

    … read full article

    ', ), - 344 => + 344 => array ( 'title' => 'SunshinePHP 2016', 'id' => 'http://php.net/archive/2015.php#id2015-10-07-1', 'published' => '2015-10-07T12:05:32-04:00', 'updated' => '2015-10-07T12:05:32-04:00', 'finalTeaserDate' => '2016-02-04', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-10-07-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2016.sunshinephp.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2016.sunshinephp.com', @@ -19794,34 +19813,34 @@ the upgrade ', 'intro' => '

    WooHoo! SunshinePHP has hit it\'s 4th year and will happen from February 4th - 6th, 2016 in sunny Miami, Florida.

    As one of the largest community conferences in the U.S. our call for papers ended with 600+ submissions, so there is no doubt the schedule will be amazing this year. We will have a full tutorial day featuring 3-hour sessions followed by 2 days of 1-hour talks and inspirational keynotes.

    … read full article

    ', ), - 345 => + 345 => array ( 'title' => 'PHP 5.6.14 is available', 'id' => 'http://php.net/archive/2015.php#id2015-10-01-3', 'published' => '2015-10-01T16:32:14-07:00', 'updated' => '2015-10-01T16:32:14-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-01-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-01-3', 'rel' => 'via', @@ -19850,34 +19869,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 346 => + 346 => array ( 'title' => 'PHP 5.5.30 is available', 'id' => 'http://php.net/archive/2015.php#id2015-10-01-2', 'published' => '2015-10-01T15:44:13+00:00', 'updated' => '2015-10-01T15:44:13+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-01-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-01-2', 'rel' => 'via', @@ -19906,34 +19925,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 347 => + 347 => array ( 'title' => 'PHP 7.0.0 RC 4 Released', 'id' => 'http://php.net/archive/2015.php#id2015-10-01-1', 'published' => '2015-10-01T13:00:00+01:00', 'updated' => '2015-10-01T13:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-10-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-10-01-1', 'rel' => 'via', @@ -20000,42 +20019,42 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 348 => + 348 => array ( 'title' => 'PHPBenelux Conference 2016', 'id' => 'http://php.net/archive/2015.php#id2015-09-30-1', 'published' => '2015-09-30T09:56:51-04:00', 'updated' => '2015-09-30T09:56:51-04:00', 'finalTeaserDate' => '2015-10-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), - 1 => + 1 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-09-30-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://conference.phpbenelux.eu/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://conference.phpbenelux.eu/', @@ -20082,34 +20101,34 @@ the upgrade hallway tracks between and after the sessions.

    … read full article

    ', ), - 349 => + 349 => array ( 'title' => 'PHP 7.0.0 RC 3 Released', 'id' => 'http://php.net/archive/2015.php#id2015-09-17-2', 'published' => '2015-09-17T12:30:00+01:00', 'updated' => '2015-09-17T12:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-17-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-17-2', 'rel' => 'via', @@ -20181,37 +20200,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 350 => + 350 => array ( 'title' => 'PHPConf Taiwan 2015', 'id' => 'http://php.net/archive/2015.php#id2015-09-15-1', 'published' => '2015-09-15T16:25:12+00:00', 'updated' => '2015-09-30T09:09:09+01:00', 'finalTeaserDate' => '2015-10-09', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-09-15-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.phpconf.tw', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.phpconf.tw', @@ -20225,37 +20244,37 @@ the upgrade ', 'intro' => '

    We are honored to announce PHPConf Taiwan 2015 will be held in Taipei, Taiwan on Oct. 9th. As the biggest PHP event in Taiwan, PHPConf attracts hundreds of developers and users in Taiwan to share their knowledge on PHP. This year, to celebrate the 20th anniversary of the invention of PHP and the release of PHP 7, Mr. Rasmus Lerdorf, creator of PHP, and Mr. Xinchen Hui, member from the PHP core developer team, are invited to be our keynote speakers. In addition, we also invited well-known developers in Taiwan to share their expertise and experience at PHPConf. The two-track agenda covers various topics, including Big Data, horizontal extension, software architecture, ORM and Async I/O… etc.

    For ticketing and other information, please visit http://2015.phpconf.tw. We look forward to seeing you in Taipei this October!

    ', ), - 351 => + 351 => array ( 'title' => 'PHPConf.Asia 2015', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-5', 'published' => '2015-09-04T11:29:00+08:00', 'updated' => '2015-09-04T11:29:00+08:00', 'finalTeaserDate' => '2015-09-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-09-04-5', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpconf.asia', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpconf.asia', @@ -20274,34 +20293,34 @@ the upgrade ', 'intro' => '

    Join us at PHPConf.Asia 2015 - The First Pan-Asian PHP Conference

    The inaugural pan-Asian PHP conference will take place on 22 & 23 September 2015 in Singapore - the Garden City of the East! Come and meet with the fastest growing PHP communities in Asia. More than 200 attendees are expected in this single track conference.

    … read full article

    ', ), - 352 => + 352 => array ( 'title' => 'PHP 5.4.45 Released', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-4', 'published' => '2015-09-04T12:37:46-07:00', 'updated' => '2015-09-04T12:37:46-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-4', 'rel' => 'via', @@ -20334,34 +20353,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 353 => + 353 => array ( 'title' => 'PHP 5.5.29 is available', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-3', 'published' => '2015-09-04T16:00:38+00:00', 'updated' => '2015-09-04T16:00:38+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-3', 'rel' => 'via', @@ -20391,34 +20410,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 354 => + 354 => array ( 'title' => 'PHP 5.6.13 is available', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-2', 'published' => '2015-09-04T08:40:46-07:00', 'updated' => '2015-09-04T08:40:46-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-2', 'rel' => 'via', @@ -20449,34 +20468,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 355 => + 355 => array ( 'title' => 'PHP 7.0.0 RC 2 Released', 'id' => 'http://php.net/archive/2015.php#id2015-09-04-1', 'published' => '2015-09-04T11:30:00+01:00', 'updated' => '2015-09-04T11:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-09-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-09-04-1', 'rel' => 'via', @@ -20542,37 +20561,37 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 356 => + 356 => array ( 'title' => 'International PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-08-31-1', 'published' => '2015-08-31T11:33:03+02:00', 'updated' => '2015-08-31T11:33:03+02:00', 'finalTeaserDate' => '2015-10-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-08-31-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://phpconference.com', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://phpconference.com', @@ -20622,34 +20641,34 @@ the upgrade ', 'intro' => '

    The International PHP Conference is the world’s first PHP conference and stands since more than a decade for top-notch pragmatic expertise in PHP and web technologies. At the IPC, internationally renowned experts from the PHP industry meet up with PHP users and developers from large and small companies. Here is the place where concepts emerge and ideas are born – the IPC signifies knowledge transfer at highest level.

    All delegates of the International PHP Conference have, in addition to PHP program, free access to the entire range of the WebTechCon taking place at the same time.

    … read full article

    ', ), - 357 => + 357 => array ( 'title' => 'PHP 7.0.0 RC 1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-21-1', 'published' => '2015-08-21T10:10:00+01:00', 'updated' => '2015-08-21T10:10:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-21-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-21-1', 'rel' => 'via', @@ -20715,34 +20734,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 358 => + 358 => array ( 'title' => 'PHP 5.6.12 is available', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-4', 'published' => '2015-08-06T23:30:25-07:00', 'updated' => '2015-08-06T23:30:25-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-4', 'rel' => 'via', @@ -20771,34 +20790,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 359 => + 359 => array ( 'title' => 'PHP 5.5.28 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-3', 'published' => '2015-08-06T21:59:41-07:00', 'updated' => '2015-08-06T21:59:41-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-3', 'rel' => 'via', @@ -20836,34 +20855,34 @@ the upgrade PHP 5.5 users that need further bugfixes are encouraged to upgrade to PHP 5.6.

    … read full article

    ', ), - 360 => + 360 => array ( 'title' => 'PHP 5.4.44 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-2', 'published' => '2015-08-06T21:58:57-07:00', 'updated' => '2015-08-06T21:58:57-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-2', 'rel' => 'via', @@ -20894,34 +20913,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 361 => + 361 => array ( 'title' => 'PHP 7.0.0 Beta 3 Released', 'id' => 'http://php.net/archive/2015.php#id2015-08-06-1', 'published' => '2015-08-06T17:20:00+01:00', 'updated' => '2015-08-06T17:20:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-08-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-08-06-1', 'rel' => 'via', @@ -20987,34 +21006,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 362 => + 362 => array ( 'title' => 'PHP 7.0.0 Beta 2 Released', 'id' => 'http://php.net/archive/2015.php#id2015-07-24-1', 'published' => '2015-07-24T02:40:00+01:00', 'updated' => '2015-07-24T02:00:40+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-24-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-24-1', 'rel' => 'via', @@ -21080,34 +21099,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 363 => + 363 => array ( 'title' => 'PHP 7.0.0 Beta 1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-4', 'published' => '2015-07-10T23:30:00+01:00', 'updated' => '2015-07-10T23:30:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-10-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-10-4', 'rel' => 'via', @@ -21177,34 +21196,34 @@ the upgrade and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 364 => + 364 => array ( 'title' => 'PHP 5.6.11 is available', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-3', 'published' => '2015-07-10T02:52:09-07:00', 'updated' => '2015-07-10T02:52:09-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-10-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-10-3', 'rel' => 'via', @@ -21232,34 +21251,34 @@ the upgrade The list of changes is recorded in the ChangeLog.

    ', ), - 365 => + 365 => array ( 'title' => 'PHP 5.5.27 released', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-2', 'published' => '2015-07-10T09:24:47+00:00', 'updated' => '2015-07-10T09:24:47+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-10-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-10-2', 'rel' => 'via', @@ -21297,34 +21316,34 @@ the upgrade PHP 5.5 users that need further bugfixes are encouraged to upgrade to PHP 5.6.

    … read full article

    ', ), - 366 => + 366 => array ( 'title' => 'PHP 5.4.43 Released', 'id' => 'http://php.net/archive/2015.php#id2015-07-09-1', 'published' => '2015-07-09T21:09:50-07:00', 'updated' => '2015-07-09T21:09:50-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-07-09-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-07-09-1', 'rel' => 'via', @@ -21356,37 +21375,37 @@ the upgrade The list of changes is recorded in the ChangeLog.

    … read full article

    ', ), - 367 => + 367 => array ( 'title' => 'Pacific Northwest PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-07-10-1', 'published' => '2015-07-10T02:00:00+01:00', 'updated' => '2015-07-10T02:00:00+01:00', 'finalTeaserDate' => '2015-07-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-07-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.pnwphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.pnwphp.com/', @@ -21413,37 +21432,37 @@ the upgrade For tickets and more information: http://www.pnwphp.com/.

    ', ), - 368 => + 368 => array ( 'title' => 'PHPKonf İstanbul PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-07-04-1', 'published' => '2015-07-04T10:00:00+00:00', 'updated' => '2015-07-04T10:00:00+00:00', 'finalTeaserDate' => '2015-07-25', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-07-04-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpkonf.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpkonf.org/', @@ -21458,37 +21477,37 @@ the upgrade ', 'intro' => '

    İstanbul PHP User Group is proud to announce that the PHPKonf 2015! We\'ll host some of the best speakers, awesome talk topics, latest technologies, and up to date news in PHP. Join us on 25/26 of July for a two day, double track conference in ancient city Istanbul! We’ve something for every level of PHP developer with 2 keynotes, 29 talks and 2 panels.

    http://phpkonf.org
    ', ), - 369 => + 369 => array ( 'title' => 'php[world] 2015 Schedule Announced', 'id' => 'http://php.net/archive/2015.php#id2015-06-29-1', 'published' => '2015-06-29T15:58:16+00:00', 'updated' => '2015-06-29T15:58:16+00:00', 'finalTeaserDate' => '2015-11-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-29-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/', @@ -21510,37 +21529,37 @@ the upgrade ', 'intro' => '

    The team at php[architect] is excited to announce the schedule for php[world] 2015! As always our conference is designed to bring all the various PHP communities together in one place to learn from each other. We will have separate tracks for PHP, Drupal, WordPress, Magento, Joomla!, Zend Framework, Symfony, Laravel, and CakePHP.

    This year we are expanding the conference to 6 concurrent sessions so that we can cover even more material. Join us for this very unique event from November 16th through November 20th.

    … read full article

    ', ), - 370 => + 370 => array ( 'title' => 'AFUP ForumPHP 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-27-1', 'published' => '2015-06-27T09:03:03+00:00', 'updated' => '2015-06-27T09:03:03+00:00', 'finalTeaserDate' => '2015-08-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.afup.org/pages/forumphp2015/appel-a-conferenciers-en.php', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.afup.org/pages/forumphp2015/appel-a-conferenciers-en.php', @@ -21560,34 +21579,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Come and join us at Forum PHP 2015, our annual conference gathering all PHP and Open Source communities, pros and PHP lovers.

    This year, the event will be held at Beffroi de Montrouge, on November, 23rd and 24th.

    … read full article

    ', ), - 371 => + 371 => array ( 'title' => 'PHP 7.0.0 Alpha 2 Released', 'id' => 'http://php.net/archive/2015.php#id2015-06-25-1', 'published' => '2015-06-25T12:00:00+01:00', 'updated' => '2015-06-25T12:00:00+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-25-1', 'rel' => 'via', @@ -21654,42 +21673,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 372 => + 372 => array ( 'title' => 'Madison PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-23-1', 'published' => '2015-06-23T11:00:00+00:00', 'updated' => '2015-06-23T11:00:00+00:00', 'finalTeaserDate' => '2015-11-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-23-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.madisonphpconference.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.madisonphpconference.com/', @@ -21704,37 +21723,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Join us on Saturday, November 14th, 2015 for a one day, three track conference in Madison, Wisconsin, USA that focuses on PHP and related web technologies. This event is organized by Madison PHP and is designed to offer something to attendees at all skill levels. It will be a day of networking, learning, sharing, and great fun!

    Our Call for Papers is open until August 4th, 2015:
    http://cfp.madisonphpconference.com/

    ', ), - 373 => + 373 => array ( 'title' => 'ZendCon 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-19-1', 'published' => '2015-06-19T10:00:00+00:00', 'updated' => '2015-06-19T10:00:00+00:00', 'finalTeaserDate' => '2015-10-19', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.zendcon.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.zendcon.com/', @@ -21751,34 +21770,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Announcing ZendCon 2015, the global PHP conference, happening at the exciting Hard Rock Hotel & Casino in Las Vegas, Nevada. It will start with a full day of tutorials on October 19th and then continue with inspirational keynotes and breakout sessions through the 22nd.

    The conference will feature many of the top developers and speakers in the PHP space to deliver dedicated tracks centered around Zend Framework, Symfony, Laravel, WordPress, Joomla!, Drupal, and Magento. We will also host additional tracks for PHP best practices, PHP architecture, IBM i, and PHP 7.

    … read full article

    ', ), - 374 => + 374 => array ( 'title' => 'PHP 5.4.42 Released', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-4', 'published' => '2015-06-11T20:43:05-07:00', 'updated' => '2015-06-11T20:43:05-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-4', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-4', 'rel' => 'via', @@ -21809,34 +21828,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 375 => + 375 => array ( 'title' => 'PHP 7.0.0 Alpha 1 Released', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-3', 'published' => '2015-06-11T23:24:10+01:00', 'updated' => '2015-06-12T17:07:56+01:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), - 1 => + 1 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-3', 'rel' => 'via', @@ -21898,34 +21917,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in and report any bugs and incompatibilities in the bug tracking system.

    THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!

    … read full article

    ', ), - 376 => + 376 => array ( 'title' => 'PHP 5.6.10 is available', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-2', 'published' => '2015-06-11T11:34:42-07:00', 'updated' => '2015-06-11T11:34:42-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-2', 'rel' => 'via', @@ -21956,34 +21975,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 377 => + 377 => array ( 'title' => 'PHP 5.5.26 is available', 'id' => 'http://php.net/archive/2015.php#id2015-06-11-1', 'published' => '2015-06-11T15:39:10+00:00', 'updated' => '2015-06-11T15:39:10+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-06-11-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-06-11-1', 'rel' => 'via', @@ -22014,42 +22033,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 378 => + 378 => array ( 'title' => 'PHP Barcelona Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-06-01-1', 'published' => '2015-06-01T23:45:28-04:00', 'updated' => '2015-06-01T23:45:28-04:00', 'finalTeaserDate' => '2015-10-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-06-01-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.phpconference.es/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.phpconference.es/', @@ -22064,37 +22083,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    The PHP Barcelona User Group is proud to announce that the PHP Barcelona Conference is back! This year we are preparing a bigger event in the heart of a glamorous city. 2 days, 30th - 31st October, one track with amazing and stunning talks.

    We opened the call for papers that will end on the 30th September 2015 — 2015.phpconference.es/call-for-papers. So what are you waiting for, go, submit your paper! We offer attractive packages to speakers who want to enroll! Come and join us! :)

    ', ), - 379 => + 379 => array ( 'title' => 'php[world] 2015 Call for Speakers', 'id' => 'http://php.net/archive/2015.php#id2015-05-27-3', 'published' => '2015-05-27T23:48:38-04:00', 'updated' => '2015-05-27T23:48:38-04:00', 'finalTeaserDate' => '2015-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-27-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'https://world.phparch.com/call-for-papers/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'https://world.phparch.com/call-for-papers/', @@ -22112,42 +22131,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    The team at php[architect] is once again running php[world]. The original conference designed to bring the whole world of PHP together in one place. With dedicated tracks for WordPress, Drupal, Joomla!, Magneto, Laravel, Symfony, Zend Framework, and CakePHP!

    The Call for Speakers is currently open, but only until June 6th, so get those submissions in soon! We are interested in sessions on any framework, application, or general PHP topics. We especially want to see sessions that are designed to encourage people to mingle and be exposed to other PHP communities that they don\'t interact with on a daily basis.

    … read full article

    ', ), - 380 => + 380 => array ( 'title' => 'PHP Craft Johannesburg', 'id' => 'http://php.net/archive/2015.php#id2015-05-27-2', 'published' => '2015-05-27T23:45:28-04:00', 'updated' => '2015-05-27T23:45:28-04:00', 'finalTeaserDate' => '2015-06-17', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-27-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://phpsouthafrica.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://phpsouthafrica.com/', @@ -22163,37 +22182,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    Our 2nd Annual PHP Craft Conference will be hosted in Johannesburg South Africa. 2 Days of fantastic content presented by local and international speakers.

    Our Call for Papers now open and will close 17th June 2015. We hope to see some great topics covering fancy new tools and/or best Practice — www.phpsouthafrica.com

    ', ), - 381 => + 381 => array ( 'title' => 'China PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-05-27-1', 'published' => '2015-05-27T23:36:31-04:00', 'updated' => '2015-05-27T23:36:31-04:00', 'finalTeaserDate' => '2015-06-06', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-27-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpconchina.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconchina.com/', @@ -22215,37 +22234,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in ', 'intro' => '

    China PHP Conference 2015

    3rd Annual China PHP Conference – June 6 to 7, Beijing and July 11 to 12, Shanghai

    … read full article

    ', ), - 382 => + 382 => array ( 'title' => 'DevConf 2015', 'id' => 'http://www.php.net/archive/2015.php#id2015-05-25-1', 'published' => '2015-05-25T16:57:52+00:00', 'updated' => '2015-05-25T16:57:52+00:00', 'finalTeaserDate' => '2015-06-20', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://devconf.ru', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://devconf.ru', @@ -22285,34 +22304,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in combining several language-specific conferences under one roof.

    … read full article

    ', ), - 383 => + 383 => array ( 'title' => 'PHP 5.6.9 is available', 'id' => 'http://php.net/archive/2015.php#id2015-05-14-3', 'published' => '2015-05-14T23:20:57-07:00', 'updated' => '2015-05-14T23:20:57-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-05-14-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-05-14-3', 'rel' => 'via', @@ -22341,34 +22360,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 384 => + 384 => array ( 'title' => 'PHP 5.4.41 Released', 'id' => 'http://php.net/archive/2015.php#id2015-05-14-2', 'published' => '2015-05-14T21:35:21-07:00', 'updated' => '2015-05-14T21:35:21-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-05-14-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-05-14-2', 'rel' => 'via', @@ -22397,34 +22416,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 385 => + 385 => array ( 'title' => 'PHP 5.5.25 is available', 'id' => 'http://php.net/archive/2015.php#id2015-05-14-1', 'published' => '2015-05-14T17:06:54+00:00', 'updated' => '2015-05-14T17:06:54+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-05-14-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-05-14-1', 'rel' => 'via', @@ -22453,42 +22472,42 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 386 => + 386 => array ( 'title' => '2015 Northeast PHP Conference', 'id' => 'http://php.net/archive/2015.php#id2015-05-06-1', 'published' => '2015-05-06T00:32:35+02:00', 'updated' => '2015-07-23T21:13:00+02:00', 'finalTeaserDate' => '2015-08-23', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-05-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.northeastphp.org', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.northeastphp.org', @@ -22517,34 +22536,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in We’ve got all the rockstars from our industry in one place just for you! With talks ranging from starting to work in the industry to expanding your skill set as an experienced user; we have sessions for everyone!

    … read full article

    ', ), - 387 => + 387 => array ( 'title' => 'PHP 5.4.40 Released', 'id' => 'http://php.net/archive/2015.php#id2015-04-16-3', 'published' => '2015-04-16T13:43:02-07:00', 'updated' => '2015-04-16T13:43:02-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-04-16-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-04-16-3', 'rel' => 'via', @@ -22575,34 +22594,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 388 => + 388 => array ( 'title' => 'PHP 5.6.8 is available', 'id' => 'http://php.net/archive/2015.php#id2015-04-16-2', 'published' => '2015-04-16T10:50:30-07:00', 'updated' => '2015-04-16T10:50:30-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-04-16-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-04-16-2', 'rel' => 'via', @@ -22631,34 +22650,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 389 => + 389 => array ( 'title' => 'PHP 5.5.24 is available', 'id' => 'http://php.net/archive/2015.php#id2015-04-16-1', 'published' => '2015-04-16T15:25:09+00:00', 'updated' => '2015-04-16T15:25:09+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-04-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-04-16-1', 'rel' => 'via', @@ -22687,34 +22706,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 390 => + 390 => array ( 'title' => 'PHP 5.6.7 is available', 'id' => 'http://php.net/archive/2015.php#id2015-03-20-2', 'published' => '2015-03-20T04:21:46-07:00', 'updated' => '2015-03-20T04:21:46-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-03-20-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-03-20-2', 'rel' => 'via', @@ -22744,34 +22763,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 391 => + 391 => array ( 'title' => 'PHP 5.5.23 is available', 'id' => 'http://php.net/archive/2015.php#id2015-03-20-1', 'published' => '2015-03-20T09:11:37+00:00', 'updated' => '2015-03-20T09:11:37+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-03-20-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-03-20-1', 'rel' => 'via', @@ -22800,34 +22819,34 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 392 => + 392 => array ( 'title' => 'PHP 5.4.39 Released', 'id' => 'http://php.net/archive/2015.php#id2015-03-19-2', 'published' => '2015-03-19T23:01:55-07:00', 'updated' => '2015-03-19T23:01:55-07:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-03-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-03-19-2', 'rel' => 'via', @@ -22856,37 +22875,37 @@ In 1995, Rasmus Lerdorf started creating PHP. 20 years later, 80% of websites in The list of changes is recorded in the ChangeLog.

    ', ), - 393 => + 393 => array ( 'title' => 'PHP Tour Luxembourg', 'id' => 'http://php.net/archive/2015.php#id2015-03-19-1', 'published' => '2015-03-19T15:33:43+00:00', 'updated' => '2015-03-19T15:33:43+00:00', 'finalTeaserDate' => '2015-05-12', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-03-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.afup.org/pages/phptourluxembourg2015/apropos-en.php', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.afup.org/pages/phptourluxembourg2015/apropos-en.php', @@ -22906,37 +22925,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    For the first time, the PHP Tour will take place outside of France: AFUP and the locale branch of Luxembourg will welcome you at the Abbey of Neumünster, a historical venue in the heart of Luxembourg City. English speakers? Come and join us, many talks will be proposed in english.

    AFUP, The French PHP usergroup, is glad to announce that the fourth edition of the PHP Tour will be held in Luxembourg City on May 12 & 13, 2015. PHP experts will share their advanced knowledge and experience with developers, decision makers and companies, during keynotes, sessions and workshops.

    … read full article

    ', ), - 394 => + 394 => array ( 'title' => 'Italian phpDay 2015', 'id' => 'http://php.net/archive/2015.php#id2015-03-18-1', 'published' => '2015-03-18T19:55:00+01:00', 'updated' => '2015-03-18T19:55:00+01:00', 'finalTeaserDate' => '2015-05-15', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-03-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.phpday.it/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.phpday.it/', @@ -22951,42 +22970,42 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    The Italian PHP user group GrUSP is pleased to announce the 12th edition of the Italian phpDay (http://www.phpday.it/) conference, taking place on May 15th and 16th, 2015 in Verona.

    phpDay is the first historic Italian conference dedicated solely to PHP development, technologies and management. It is aimed to IT managers, developers and innovators. Each year it renews the opportunity to link to new business partners.

    ', ), - 395 => + 395 => array ( 'title' => 'Bulgaria PHP Conference', 'id' => 'http://php.net/archive/2015.php#id2015-02-25-3', 'published' => '2015-02-25T12:53:27+01:00', 'updated' => '2015-02-25T12:53:27+01:00', 'finalTeaserDate' => '2015-03-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), - 1 => + 1 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-02-25-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://bgphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://bgphp.org/', @@ -23003,37 +23022,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    The Bulgaria PHP Conference is an event organized by the local PHP user group: @bgphp. This is going to be our first conference but nonetheless we have attracted a number of prominent international and local speakers (http://www.bgphp.org/confirmed-speakers/). We expect 450 attendees from Bulgaria, the Balkans region, Europe, and other parts of the world. We welcome a diverse crowd of PHP developers who want to learn new things and share their passion for code.

    Bulgaria is one of the fastest growing IT regions. A lot of international companies outsource their IT departments in the country. The PHP community is large and actively travels abroad to attend international summits of all kinds. The official language of the conference is English and all talks and sessions will be in English. Attendees and sponsors will be pleasantly surprised by the affordability of all services in the country. Hotel accommodation, food and even the tickets for the event are quite affordable, given the high quality of service you’ll get in return.

    … read full article

    ', ), - 396 => + 396 => array ( 'title' => 'Lone Star PHP 2015', 'id' => 'http://php.net/archive/2015.php#id2015-02-25-2', 'published' => '2015-02-25T11:21:44+01:00', 'updated' => '2015-02-25T11:21:44+01:00', 'finalTeaserDate' => '2015-04-16', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-02-25-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://lonestarphp.com/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://lonestarphp.com/', @@ -23048,37 +23067,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    Welcome back to Lone Star PHP for another great year! We\'re in our fifth year and we\'re making things better all the time. This year\'s event will provide all of the great PHP speakers and content you\'ve come to expect from Lone Star PHP. This year we are introducing the Training Day. Training Day will provide a more hands-on experience for all that attend. There\'ll be plenty of time to spend with the local PHP community too through after-parties and other events.

    Thanks to the generous support of our sponsors year after year we\'re able to present this conference at minimal cost to our attendees, opening up attendance to many who could not normally justify the cost of similar events. We couldn\'t do it without their support and we hope that this year you\'ll help us share this experience with the community. With the amazing feedback we receive each year from our attendees and sponsors we continue to improve our event to keep our place as the best php community conference around.

    ', ), - 397 => + 397 => array ( 'title' => 'SOLIDay 2015', 'id' => 'http://php.net/archive/2015.php#id2015-02-25-1', 'published' => '2015-02-25T11:14:34+01:00', 'updated' => '2015-02-25T11:14:34+01:00', 'finalTeaserDate' => '2015-05-30', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-02-25-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://soliday.phpsrbija.rs/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://soliday.phpsrbija.rs/', @@ -23093,34 +23112,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    Conference about software architecture, best programming practices and design patterns.

    PHP Serbia will be organizing a big event on May 30, 2015 – SOLIDay conference. Nicely coined name, huh? It will be one of the major events in the region, on which you will have opportunity to attend presentations of world-famous PHP experts and professionals, on topic of OOP principles, design patterns, software architecture, frameworks and similar. Whether you are a novice, intermediate or advanced developer, join us on this conference and expand, improve or simply refresh your knowledge of this important topic.

    ', ), - 398 => + 398 => array ( 'title' => 'PHP 5.6.6 is available', 'id' => 'http://php.net/archive/2015.php#id2015-02-19-2', 'published' => '2015-02-19T12:43:52-08:00', 'updated' => '2015-02-19T12:43:52-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-02-19-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-02-19-2', 'rel' => 'via', @@ -23149,34 +23168,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 399 => + 399 => array ( 'title' => 'PHP 5.5.22 is available', 'id' => 'http://php.net/archive/2015.php#id2015-02-19-1', 'published' => '2015-02-19T12:45:19+00:00', 'updated' => '2015-02-19T12:45:19+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-02-19-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-02-19-1', 'rel' => 'via', @@ -23205,34 +23224,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 400 => + 400 => array ( 'title' => 'PHP 5.4.38 Released', 'id' => 'http://php.net/archive/2015.php#id2015-02-18-1', 'published' => '2015-02-18T23:56:18-08:00', 'updated' => '2015-02-18T23:56:18-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-02-18-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-02-18-1', 'rel' => 'via', @@ -23261,34 +23280,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 401 => + 401 => array ( 'title' => 'PHP 5.4.37 Released', 'id' => 'http://php.net/archive/2015.php#id2015-01-22-3', 'published' => '2015-01-22T20:20:52-08:00', 'updated' => '2015-01-22T20:20:52-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-01-22-3', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-01-22-3', 'rel' => 'via', @@ -23320,34 +23339,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 402 => + 402 => array ( 'title' => 'PHP 5.6.5 is available', 'id' => 'http://php.net/archive/2015.php#id2015-01-22-2', 'published' => '2015-01-22T12:31:59-08:00', 'updated' => '2015-01-22T12:31:59-08:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-01-22-2', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-01-22-2', 'rel' => 'via', @@ -23376,34 +23395,34 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 403 => + 403 => array ( 'title' => 'PHP 5.5.21 is released', 'id' => 'http://php.net/archive/2015.php#id2015-01-22-1', 'published' => '2015-01-22T16:04:04+00:00', 'updated' => '2015-01-22T16:04:04+00:00', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'frontpage', 'label' => 'PHP.net frontpage news', ), - 1 => + 1 => array ( 'term' => 'releases', 'label' => 'New PHP release', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/index.php#id2015-01-22-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://php.net/archive/2015.php#id2015-01-22-1', 'rel' => 'via', @@ -23432,37 +23451,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop The list of changes is recorded in the ChangeLog.

    ', ), - 404 => + 404 => array ( 'title' => 'Dutch PHP Conference 2015', 'id' => 'http://php.net/archive/2015.php#id2015-01-16-1', 'published' => '2015-01-16T10:07:58+01:00', 'updated' => '2015-01-16T10:07:58+01:00', 'finalTeaserDate' => '2015-02-22', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'cfp', 'label' => 'Call for Papers', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-01-16-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://www.phpconference.nl/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://www.phpconference.nl/', @@ -23477,37 +23496,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    We\'re back! And we are glad to announce that we’ll be organising the 9th edition of the Dutch PHP Conference, which will be held in Amsterdam from 25th to 27th June 2015. Thursday 25th will be the tutorial day and June 26th and 27th will be the main conference days.

    Speakers, the call for papers is now open! We’re looking for high-quality, technical sessions from speakers who can cover advanced topics and keep our demanding audience inspired. The call for papers is open until February 22nd. You can send in as many proposals as you like, so start submitting your talks.

    … read full article

    ', ), - 405 => + 405 => array ( 'title' => 'Midwest PHP 2015', 'id' => 'http://php.net/archive/2015.php#id2015-01-10-1', 'published' => '2015-01-10T05:09:25+01:00', 'updated' => '2015-01-10T05:09:25+01:00', 'finalTeaserDate' => '2015-03-14', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-01-10-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://2015.midwestphp.org/', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://2015.midwestphp.org/', @@ -23520,37 +23539,37 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    Midwest PHP is taking over beautiful Minneapolis once again this year, bringing leading experts from around the world to talk about APIs, Frameworks, Security, Version Control, Testing, Continuous Integration, and much more! Midwest PHP welcomes developers of all levels and encourages diversity - we promise there will be something for everyone. So join us March 14-15th for great talks, great people, and of course great food! Register today at http://www.midwestphp.org

    ', ), - 406 => + 406 => array ( 'title' => 'ConFoo 2015 - Become a Master', 'id' => 'http://php.net/archive/2015.php#id2015-01-06-1', 'published' => '2015-01-06T18:15:50+00:00', 'updated' => '2015-01-06T18:15:50+00:00', 'finalTeaserDate' => '2015-02-18', - 'category' => + 'category' => array ( - 0 => + 0 => array ( 'term' => 'conferences', 'label' => 'Conference announcement', ), ), - 'link' => + 'link' => array ( - 0 => + 0 => array ( 'href' => 'http://php.net/conferences/index.php#id2015-01-06-1', 'rel' => 'alternate', 'type' => 'text/html', ), - 1 => + 1 => array ( 'href' => 'http://confoo.ca', 'rel' => 'via', 'type' => 'text/html', ), ), - 'newsImage' => + 'newsImage' => array ( 'xmlns' => 'http://php.net/ns/news', 'link' => 'http://confoo.ca', @@ -23569,4 +23588,4 @@ Presentation length is 45 minutes which includes question time. 3 hours workshop ', 'intro' => '

    We want you to learn as much as possible during the three days of conference. We do that through quality and variety of both content and speakers, as well as creating a fun and friendly atmosphere.

    We have presentations for any level, from beginner to advanced. You\'ll learn about the backend and frontend, web and mobile, information systems and games, hard and soft skills, as well as many related topics.

    … read full article

    ', ), -); \ No newline at end of file +); diff --git a/include/prepend.inc b/include/prepend.inc index b2f3969f11..6409202756 100644 --- a/include/prepend.inc +++ b/include/prepend.inc @@ -121,3 +121,8 @@ function google_cse(): void { echo $cse_snippet; } + +function safe(string $html): string +{ + return htmlspecialchars($html, encoding: 'UTF-8'); +} diff --git a/include/releases-comparisons.inc b/include/releases-comparisons.inc new file mode 100644 index 0000000000..83cd531274 --- /dev/null +++ b/include/releases-comparisons.inc @@ -0,0 +1,1482 @@ + + array ( + 0 => + array ( + 'title' => 'Readonly Classes', + 'about' => NULL, + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/readonly_classes', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.2', + 'target' => '<8.2', + 'format' => 'php', + 'body' => 'class BlogData +{ + public readonly string $title; + + public readonly Status $status; + + public function __construct(string $title, Status $status) + { + $this->title = $title; + $this->status = $status; + } +}', + ), + 1 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'readonly class BlogData +{ + public string $title; + + public Status $status; + + public function __construct(string $title, Status $status) + { + $this->title = $title; + $this->status = $status; + } +}', + ), + ), + ), + 1 => + array ( + 'title' => 'Disjunctive Normal Form (DNF) Types', + 'about' => 'DNF types allow us to combine union and intersection types, following a strict rule: +when combining union and intersection types, intersection types must be grouped with brackets.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/dnf_types', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.2', + 'target' => '<8.2', + 'format' => 'php', + 'body' => 'class Foo { + public function bar(mixed $entity) { + if ((($entity instanceof A) && ($entity instanceof B)) || ($entity === null)) { + return $entity; + } + + throw new Exception(\'Invalid entity\'); + } +}', + ), + 1 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'class Foo { + public function bar((A&B)|null $entity) { + return $entity; + } +}', + ), + ), + ), + 2 => + array ( + 'title' => 'Allow null, false, and true as stand-alone types', + 'about' => NULL, + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/null-false-standalone-types', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.2', + 'target' => '<8.2', + 'format' => 'php', + 'body' => 'class Falsy +{ + public function almostFalse(): bool { /* ... */ *} + + public function almostTrue(): bool { /* ... */ *} + + public function almostNull(): string|null { /* ... */ *} +}', + ), + 1 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'class Falsy +{ + public function alwaysFalse(): false { /* ... */ *} + + public function alwaysTrue(): true { /* ... */ *} + + public function alwaysNull(): null { /* ... */ *} +}', + ), + ), + ), + 3 => + array ( + 'title' => 'New "Random" extension', + 'about' => 'The "random" extension provides a new object-oriented API to random number generation. +Instead of relying on a globally seeded random number generator (RNG) using the Mersenne Twister +algorithm the object-oriented API provides several classes ("Engine"s) providing access to modern +algorithms that store their state within objects to allow for multiple independent seedable sequences. + +The \\Random\\Randomizer class provides a high-level interface to use the engine\'s randomness to +generate a random integer, to shuffle an array or string, to select random array keys and more.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/rng_extension', + 1 => 'https://wiki.php.net/rfc/random_extension_improvement', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'use Random\\Engine\\Xoshiro256StarStar; +use Random\\Randomizer; + +$blueprintRng = new Xoshiro256StarStar( + hash(\'sha256\', "Example seed that is converted to a 256 Bit string via SHA-256", true) +); + +$fibers = []; +for ($i = 0; $i < 8; $i++) { + $fiberRng = clone $blueprintRng; + // Xoshiro256**\'s \'jump()\' method moves the blueprint ahead 2**128 steps, as if calling + // \'generate()\' 2**128 times, giving the Fiber 2**128 unique values without needing to reseed. + $blueprintRng->jump(); + + $fibers[] = new Fiber(function () use ($fiberRng, $i): void { + $randomizer = new Randomizer($fiberRng); + + echo "{$i}: " . $randomizer->getInt(0, 100), PHP_EOL; + }); +} + +// The randomizer will use a CSPRNG by default. +$randomizer = new Randomizer(); + +// Even though the fibers execute in a random order, they will print the same value +// each time, because each has its own unique instance of the RNG. +$fibers = $randomizer->shuffleArray($fibers); +foreach ($fibers as $fiber) { + $fiber->start(); +}', + ), + ), + ), + 4 => + array ( + 'title' => 'Constants in traits', + 'about' => 'You cannot access the constant through the name of the trait, but, you can +access the constant through the class that uses the trait.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/constants_in_traits', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'trait Foo +{ + public const CONSTANT = 1; +} + +class Bar +{ + use Foo; +} + +var_dump(Bar::CONSTANT); // 1 +var_dump(Foo::CONSTANT); // Error', + ), + ), + ), + 5 => + array ( + 'title' => 'Deprecate dynamic properties RFC Doc', + 'about' => 'The creation of dynamic properties is deprecated to help avoid mistakes and typos, +unless the class opts in by using the #[\\AllowDynamicProperties] attribute. +stdClass allows dynamic properties. + +Usage of the __get/__set magic methods is not affected by this change.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/deprecate_dynamic_properties', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.2 or Later', + 'target' => '>=8.2', + 'format' => 'php', + 'body' => 'class User +{ + public $name; +} + +$user = new User(); +$user->last_name = \'Doe\'; + +$user = new stdClass(); +$user->last_name = \'Doe\';', + ), + 1 => + array ( + 'label' => '8.2 or Later', + 'target' => '8.2', + 'format' => 'php', + 'body' => 'class User +{ + public $name; +} + +$user = new User(); +$user->last_name = \'Doe\'; // Deprecated notice + +$user = new stdClass(); +$user->last_name = \'Doe\'; // Still allowed', + ), + ), + ), + ), + '8.3' => + array ( + 0 => + array ( + 'title' => 'Typed class constants RFC', + 'about' => NULL, + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/typed_class_constants', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'interface I { + // We may naively assume that the PHP constant is always a string. + const PHP = \'PHP 8.2\'; +} + +class Foo implements I { + // But implementing classes may define it as an array. + const PHP = []; +}', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'interface I { + const string PHP = \'PHP 8.3\'; +} + +class Foo implements I { + const string PHP = []; +} + +// Fatal error: Cannot use array as value for class constant +// Foo::PHP of type string', + ), + ), + ), + 1 => + array ( + 'title' => 'Dynamic class constant fetch', + 'about' => NULL, + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/dynamic_class_constant_fetch', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'class Foo { + const PHP = \'PHP 8.2\'; +} + +$searchableConstant = \'PHP\'; + +var_dump(constant(Foo::class . "::{$searchableConstant}"));', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'class Foo { + const PHP = \'PHP 8.2\'; +} + +$searchableConstant = \'PHP\'; + +var_dump(constant(Foo::class . "::{$searchableConstant}"));', + ), + ), + ), + 2 => + array ( + 'title' => 'New #[\\Override] attribute', + 'about' => 'By adding the #[\\Override] attribute to a method, PHP will ensure that a +method with the same name exists in a parent class or in an implemented interface. + +Adding the attribute makes it clear that overriding a parent method is intentional +and simplifies refactoring, because the removal of an overridden parent method will +be detected.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/marking_overriden_methods', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'use PHPUnit\\Framework\\TestCase; + +final class MyTest extends TestCase { + protected $logFile; + + protected function setUp(): void { + $this->logFile = fopen(\'/tmp/logfile\', \'w\'); + } + + protected function taerDown(): void { + fclose($this->logFile); + unlink(\'/tmp/logfile\'); + } +} + +// The log file will never be removed, because the +// method name was mistyped (taerDown vs tearDown).', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'use PHPUnit\\Framework\\TestCase; + +final class MyTest extends TestCase { + protected $logFile; + + protected function setUp(): void { + $this->logFile = fopen(\'/tmp/logfile\', \'w\'); + } + + #[\\Override] + protected function taerDown(): void { + fclose($this->logFile); + unlink(\'/tmp/logfile\'); + } +} + +// Fatal error: MyTest::taerDown() has #[\\Override] attribute, +// but no matching parent method exists', + ), + ), + ), + 3 => + array ( + 'title' => 'Deep-cloning of readonly properties', + 'about' => 'readonly properties may now be modified once within the magic __clone +method to enable deep-cloning of readonly properties.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/readonly_amendments', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'class PHP { + public string $version = \'8.2\'; +} + +readonly class Foo { + public function __construct( + public PHP $php + ) {} + + public function __clone(): void { + $this->php = clone $this->php; + } +} + +$instance = new Foo(new PHP()); +$cloned = clone $instance; + +// Fatal error: Cannot modify readonly property Foo::$php', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'class PHP { + public string $version = \'8.2\'; +} + +readonly class Foo { + public function __construct( + public PHP $php + ) {} + + public function __clone(): void { + $this->php = clone $this->php; + } +} + +$instance = new Foo(new PHP()); +$cloned = clone $instance; + +$cloned->php->version = \'8.3\';', + ), + ), + ), + 4 => + array ( + 'title' => 'New json_validate() function', + 'about' => '`json_validate()` allows to check if a string is syntactically valid JSON, +while being more efficient than `json_decode()`.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/json_validate', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => 'function json_validate(string $string): bool { + json_decode($string); + + return json_last_error() === JSON_ERROR_NONE; +} + +var_dump(json_validate(\'{ "test": { "foo": "bar" } }\')); // true', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => 'var_dump(json_validate(\'{ "test": { "foo": "bar" } }\')); // true', + ), + ), + ), + 5 => + array ( + 'title' => 'New Randomizer::getBytesFromString() method', + 'about' => 'The Random Extension that was added in PHP 8.2 was extended by a new method to generate random +strings consisting of specific bytes only. This method allows the developer to easily generate random +identifiers, such as domain names, and numeric strings of arbitrary length.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/randomizer_additions#getbytesfromstring', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'php', + 'body' => '// This function needs to be manually implemented. +function getBytesFromString(string $string, int $length) { + $stringLength = strlen($string); + + $result = \'\'; + for ($i = 0; $i < $length; $i++) { + // random_int is not seedable for testing, but secure. + $result .= $string[random_int(0, $stringLength - 1)]; + } + + return $result; +} + +$randomDomain = sprintf( + "%s.example.com", + getBytesFromString( + \'abcdefghijklmnopqrstuvwxyz0123456789\', + 16, + ), +); + +echo $randomDomain;', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => '// A \\Random\\Engine may be passed for seeding, +// the default is the secure engine. +$randomizer = new \\Random\\Randomizer(); + +$randomDomain = sprintf( + "%s.example.com", + $randomizer->getBytesFromString( + \'abcdefghijklmnopqrstuvwxyz0123456789\', + 16, + ), +); + +echo $randomDomain;', + ), + ), + ), + 6 => + array ( + 'title' => 'New Randomizer::getFloat() and Randomizer::nextFloat() methods', + 'about' => 'Due to the limited precision and implicit rounding of floating point numbers, +generating an unbiased float lying within a specific interval is non-trivial +and the commonly used userland solutions may generate biased results or numbers +outside the requested range. + +The Randomizer was also extended with two methods to generate random floats in an +unbiased fashion. The Randomizer::getFloat() method uses the γ-section algorithm +that was published in Drawing Random Floating-Point Numbers from an Interval. +Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/randomizer_additions#getfloat', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'plain', + 'body' => '// Returns a random float between $min and $max, both including. +function getFloat(float $min, float $max) { + // This algorithm is biased for specific inputs and may + // return values outside the given range. This is impossible + // to work around in userland. + $offset = random_int(0, PHP_INT_MAX) / PHP_INT_MAX; + + return $offset * ($max - $min) + $min; +} + +$temperature = getFloat(-89.2, 56.7); + +$chanceForTrue = 0.1; +// getFloat(0, 1) might return the upper bound, i.e. 1, +// introducing a small bias. +$myBoolean = getFloat(0, 1) < $chanceForTrue;', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'php', + 'body' => '$randomizer = new \\Random\\Randomizer(); + +$temperature = $randomizer->getFloat( + -89.2, + 56.7, + \\Random\\IntervalBoundary::ClosedClosed, +); + +$chanceForTrue = 0.1; +// Randomizer::nextFloat() is equivalent to +// Randomizer::getFloat(0, 1, \\Random\\IntervalBoundary::ClosedOpen). +// The upper bound, i.e. 1, will not be returned. +$myBoolean = $randomizer->nextFloat() < $chanceForTrue;', + ), + ), + ), + 7 => + array ( + 'title' => 'Command line linter supports multiple files', + 'about' => 'The command line linter now accepts variadic input for filenames to lint', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://github.com/php/php-src/issues/10024', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.3', + 'target' => '<8.3', + 'format' => 'plain', + 'body' => 'php -l foo.php bar.php +No syntax errors detected in foo.php', + ), + 1 => + array ( + 'label' => 'PHP 8.3 or Later', + 'target' => '>=8.3', + 'format' => 'plain', + 'body' => 'php -l foo.php bar.php +No syntax errors detected in foo.php +No syntax errors detected in bar.php', + ), + ), + ), + ), + '8.4' => + array ( + 0 => + array ( + 'title' => 'Property Hooks', + 'about' => 'Property hooks provide support for computed properties that can natively be understood by IDEs +and static analysis tools, without needing to write docblock comments that might go out of sync. + +Furthermore, they allow reliable pre- or post-processing of values, without needing to check +whether a matching getter or setter exists in the class.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/property-hooks', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => 'class Locale +{ + private string $languageCode; + private string $countryCode; + + public function __construct(string $languageCode, string $countryCode) + { + $this->setLanguageCode($languageCode); + $this->setCountryCode($countryCode); + } + + public function getLanguageCode(): string + { + return $this->languageCode; + } + + public function setLanguageCode(string $languageCode): void + { + $this->languageCode = $languageCode; + } + + public function getCountryCode(): string + { + return $this->countryCode; + } + + public function setCountryCode(string $countryCode): void + { + $this->countryCode = strtoupper($countryCode); + } + + public function setCombinedCode(string $combinedCode): void + { + [$languageCode, $countryCode] = explode(\'_\', $combinedCode, 2); + + $this->setLanguageCode($languageCode); + $this->setCountryCode($countryCode); + } + + public function getCombinedCode(): string + { + return \\sprintf("%s_%s", $this->languageCode, $this->countryCode); + } +} + +$brazilianPortuguese = new Locale(\'pt\', \'br\'); +var_dump($brazilianPortuguese->getCountryCode()); // BR +var_dump($brazilianPortuguese->getCombinedCode()); // pt_BR', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'PHP 8.4 +class Locale +{ + public string $languageCode; + + public string $countryCode + { + set (string $countryCode) { + $this->countryCode = strtoupper($countryCode); + } + } + + public string $combinedCode + { + get => \\sprintf("%s_%s", $this->languageCode, $this->countryCode); + set (string $value) { + [$this->languageCode, $this->countryCode] = explode(\'_\', $value, 2); + } + } + + public function __construct(string $languageCode, string $countryCode) + { + $this->languageCode = $languageCode; + $this->countryCode = $countryCode; + } +} + +$brazilianPortuguese = new Locale(\'pt\', \'br\'); +var_dump($brazilianPortuguese->countryCode); // BR +var_dump($brazilianPortuguese->combinedCode); // pt_BR', + ), + ), + ), + 1 => + array ( + 'title' => 'Asymmetric Visibility', + 'about' => 'The scope to write to a property may now be controlled independently +of the scope to read the property, reducing the need for boilerplate +getter methods to expose a property’s value without allowing modification +from the outside of a class.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/asymmetric-visibility-v2', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + /** + * @deprecated 8.3 use PhpVersion::getVersion() instead + */ + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.3\'; + } +} + +$phpVersion = new PhpVersion(); +// No indication that the method is deprecated. +echo $phpVersion->getPhpVersion();', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + #[\\Deprecated( + message: "use PhpVersion::getVersion() instead", + since: "8.4", + )] + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.4\'; + } +} + +$phpVersion = new PhpVersion(); +// Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead +echo $phpVersion->getPhpVersion();', + ), + ), + ), + 2 => + array ( + 'title' => '#[\\Depreciated] Attribute', + 'about' => 'The new `#[\\Deprecated]` attribute makes PHP’s existing deprecation mechanism available to +user-defined functions, methods, and class constants.', + 'short' => NULL, + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + /** + * @deprecated 8.3 use PhpVersion::getVersion() instead + */ + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.3\'; + } +} + +$phpVersion = new PhpVersion(); +// No indication that the method is deprecated. +echo $phpVersion->getPhpVersion();', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + #[\\Deprecated( + message: "use PhpVersion::getVersion() instead", + since: "8.4", + )] + public function getPhpVersion(): string + { + return $this->getVersion(); + } + + public function getVersion(): string + { + return \'8.4\'; + } +} + +$phpVersion = new PhpVersion(); +// Deprecated: Method PhpVersion::getPhpVersion() is deprecated since 8.4, use PhpVersion::getVersion() instead +echo $phpVersion->getPhpVersion();', + ), + ), + ), + 3 => + array ( + 'title' => 'New ext-dom features and HTML5 support', + 'about' => 'New DOM API that includes standards-compliant support for parsing HTML5 documents, +fixes several long-standing compliance bugs in the behavior of the DOM functionality, +and adds several functions to make working with documents more convenient. + +The new DOM API is available within the Dom namespace. Documents using the new DOM API +can be created using the Dom\\HTMLDocument and Dom\\XMLDocument classes.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/dom_additions_84', + 1 => 'https://wiki.php.net/rfc/domdocument_html5_parser', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$dom = new DOMDocument(); +$dom->loadHTML( + <<<\'HTML\' +
    +
    PHP 8.4 is a feature-rich release!
    + +
    + HTML, + LIBXML_NOERROR, +); + +$xpath = new DOMXPath($dom); +$node = $xpath->query(".//main/article[not(following-sibling::*)]")[0]; +$classes = explode(" ", $node->className); // Simplified +var_dump(in_array("featured", $classes)); // bool(true)', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => '$dom = Dom\\HTMLDocument::createFromString( + <<<\'HTML\' +
    +
    PHP 8.4 is a feature-rich release!
    + +
    + HTML, + LIBXML_NOERROR, +); + +$node = $dom->querySelector(\'main > article:last-child\'); +var_dump($node->classList->contains("featured")); // bool(true)', + ), + ), + ), + 4 => + array ( + 'title' => 'Object API for BCMath', + 'about' => 'New BcMath\\Number object enables object-oriented usage and standard +mathematical operators when working with arbitrary precision numbers. + +These objects are immutable and implement the Stringable interface, +so they can be used in string contexts like echo $num.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/support_object_type_in_bcmath', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$num1 = \'0.12345\'; +$num2 = \'2\'; +$result = bcadd($num1, $num2, 5); + +echo $result; // \'2.12345\' +var_dump(bccomp($num1, $num2) > 0); // false', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'use BcMath\\Number; + +$num1 = new Number(\'0.12345\'); +$num2 = new Number(\'2\'); +$result = $num1 + $num2; + +echo $result; // \'2.12345\' +var_dump($num1 > $num2); // false', + ), + ), + ), + 5 => + array ( + 'title' => 'New array_*() functions', + 'about' => 'New functions `array_find()`, `array_find_key()`, `array_any()`, and `array_all()` are available.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/array_find', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$animal = null; +foreach ([\'dog\', \'cat\', \'cow\', \'duck\', \'goose\'] as $value) { + if (str_starts_with($value, \'c\')) { + $animal = $value; + break; + } +} + +var_dump($animal); // string(3) "cat"', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => '$animal = array_find( + [\'dog\', \'cat\', \'cow\', \'duck\', \'goose\'], + static fn(string $value): bool => str_starts_with($value, \'c\'), +); + +var_dump($animal); // string(3) "cat"', + ), + ), + ), + 6 => + array ( + 'title' => 'PDO driver specific subclasses', + 'about' => 'New subclasses `Pdo\\Dblib`, `Pdo\\Firebird`, `Pdo\\MySql`, `Pdo\\Odbc`, +`Pdo\\Pgsql`, and `Pdo\\Sqlite` of PDO are available.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/pdo_driver_specific_subclasses', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$connection = new PDO( + \'sqlite:foo.db\', + $username, + $password, +); // object(PDO) + +$connection->sqliteCreateFunction( + \'prepend_php\', + static fn($string) => "PHP {$string}", +); + +$connection->query(\'SELECT prepend_php(version) FROM php\');', + ), + 1 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => '$connection = PDO::connect( + \'sqlite:foo.db\', + $username, + $password, +); // object(Pdo\\Sqlite) + +$connection->createFunction( + \'prepend_php\', + static fn($string) => "PHP {$string}", +); // Does not exist on a mismatching driver. + +$connection->query(\'SELECT prepend_php(version) FROM php\');', + ), + ), + ), + 7 => + array ( + 'title' => 'new MyClass()->method() without parentheses', + 'about' => 'Properties and methods of a newly instantiated object can now be accessed without +wrapping the new expression in parentheses.', + 'short' => NULL, + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/new_without_parentheses', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'PHP 8.4 or Later', + 'target' => '>=8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + public function getVersion(): string + { + return \'PHP 8.3\'; + } +} + +var_dump((new PhpVersion())->getVersion());', + ), + 1 => + array ( + 'label' => '8.4 or Later', + 'target' => '8.4', + 'format' => 'php', + 'body' => 'class PhpVersion +{ + public function getVersion(): string + { + return \'PHP 8.4\'; + } +} + +var_dump(new PhpVersion()->getVersion());', + ), + ), + ), + ), + '8.5' => + array ( + 0 => + array ( + 'title' => 'URI Extension', + 'about' => 'The new always-available URI extension provides APIs to securely parse and modify +URIs and URLs according to the RFC 3986 and the WHATWG URL standards. + +Powered by the uriparser (RFC 3986) and Lexbor (WHATWG URL) libraries. + +Learn more about the backstory of this feature in The PHP Foundation’s blog.', + 'short' => 'PHP 8.5 adds a built-in URI extension to parse, normalize, and handle URLs +following _RFC 3986_ and _WHATWG URL_ standards.', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.4', + 'target' => '<8.4', + 'format' => 'php', + 'body' => '$components = parse_url(\'https://php.net/releases/8.4/en.php\'); + +var_dump($components[\'host\']); +// string(7) "php.net"', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => 'use Uri\\Rfc3986\\Uri; + +$uri = new Uri(\'https://php.net/releases/8.5/en.php\'); + +var_dump($uri->getHost()); +// string(7) "php.net"', + ), + ), + ), + 1 => + array ( + 'title' => 'Pipe Operator', + 'about' => 'The pipe operator allows chaining function calls together without dealing with intermediary variables. +This enables replacing many "nested calls" with a chain that can be read forwards, rather than inside-out. + +Learn more about the backstory of this feature in The PHP Foundation’s blog.', + 'short' => 'The `|>` operator enables chaining callables left-to-right, passing values smoothly through +multiple functions without intermediary variables.', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => '8.4 or Later', + 'target' => '8.4', + 'format' => 'php', + 'body' => '$title = \' PHP 8.5 Released \'; + +$slug = strtolower( + str_replace(\'.\', \'\', + str_replace(\' \', \'-\', + trim($title) + ) + ) +); + +var_dump($slug); +// string(15) "php-85-released"', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '$title = \' PHP 8.5 Released \'; + +$slug = $title + |> trim(...) + |> (fn($str) => str_replace(\' \', \'-\', $str)) + |> (fn($str) => str_replace(\'.\', \'\', $str)) + |> strtolower(...); + +var_dump($slug); +// string(15) "php-85-released"', + ), + ), + ), + 2 => + array ( + 'title' => 'Clone With', + 'about' => NULL, + 'short' => 'Clone objects and update properties with the new `clone()` syntax, making the "with-er" pattern simple for `readonly` +classes.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/clone_with_v2', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Example', + 'target' => '', + 'format' => 'php', + 'body' => 'readonly class Color +{ + public function __construct( + public int $red, + public int $green, + public int $blue, + public int $alpha = 255, + ) {} + + public function withAlpha(int $alpha): self + { + $values = get_object_vars($this); + $values[\'alpha\'] = $alpha; + + return new self(...$values); + } +} + +$blue = new Color(79, 91, 147); +$transparentBlue = $blue->withAlpha(128);', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => 'readonly class Color +{ + public function __construct( + public int $red, + public int $green, + public int $blue, + public int $alpha = 255, + ) {} + + public function withAlpha(int $alpha): self + { + return clone($this, [ + \'alpha\' => $alpha, + ]); + } +} + +$blue = new Color(79, 91, 147); +$transparentBlue = $blue->withAlpha(128);', + ), + ), + ), + 3 => + array ( + 'title' => '#[\\NoDiscard] Attribute', + 'about' => 'By adding the #[\\NoDiscard] attribute to a function, PHP will check whether the returned value +is consumed and emit a warning if it is not. This allows improving the safety of APIs where +the returned value is important, but it\'s easy to forget using the return value by accident. + +The associated (void) cast can be used to indicate that a value is intentionally unused.', + 'short' => 'The #[\\NoDiscard] attribute warns when a return value isn\'t used, helping prevent mistakes and improving +overall API safety.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/marking_return_value_as_important', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => 'function getPhpVersion(): string +{ + return \'PHP 8.4\'; +} + +getPhpVersion(); // No warning', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '#[\\NoDiscard] +function getPhpVersion(): string +{ + return \'PHP 8.5\'; +} + +getPhpVersion(); +// Warning: The return value of function getPhpVersion() should +// either be used or intentionally ignored by casting it as (void)', + ), + ), + ), + 4 => + array ( + 'title' => 'Closures and First-Class Callables in Constant Expressions', + 'about' => 'Static closures and first-class callables can now be used in constant expressions. +This includes attribute parameters, default values of properties and parameters, and constants.', + 'short' => 'Static closures can now be used in constant expressions, especially useful in attributes.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/closures_in_const_expr', + 1 => 'https://wiki.php.net/rfc/fcc_in_const_expr', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => 'final class PostsController +{ + #[AccessControl( + new Expression(\'request.user === post.getAuthor()\'), + )] + public function update( + Request $request, + Post $post, + ): Response { + // ... + } +}', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => 'final class PostsController +{ + #[AccessControl(static function ( + Request $request, + Post $post, + ): bool { + return $request->user === $post->getAuthor(); + })] + public function update( + Request $request, + Post $post, + ): Response { + // ... + } +}', + ), + ), + ), + 5 => + array ( + 'title' => 'Array First / Last Functions', + 'about' => 'The `array_first()` and `array_last()` functions return the first or last value of an array, respectively. +If the array is empty, null is returned (making it easy to compose with the ?? operator).', + 'short' => 'New array helper functions are available for common functionality', + 'rfs' => + array ( + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => '$lastEvent = $events === [] + ? null + : $events[array_key_last($events)];', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '$lastEvent = array_last($events);', + ), + ), + ), + 6 => + array ( + 'title' => 'Persistent cURL Share Handles', + 'about' => 'Handles can now be persisted across multiple PHP requests, avoiding the cost of repeated +connection initialization to the same hosts.', + 'short' => 'Handles can now be persisted across multiple PHP requests, avoiding the cost of repeated +connection initialization to the same hosts.', + 'rfs' => + array ( + 0 => 'https://wiki.php.net/rfc/curl_share_persistence', + 1 => 'https://wiki.php.net/rfc/curl_share_persistence_improvement', + ), + 'examples' => + array ( + 0 => + array ( + 'label' => 'Before PHP 8.5', + 'target' => '<8.5', + 'format' => 'php', + 'body' => ' +$sh = curl_share_init(); +curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); +curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_CONNECT); + +$ch = curl_init(\'https://php.net/\'); +curl_setopt($ch, CURLOPT_SHARE, $sh); + +curl_exec($ch);', + ), + 1 => + array ( + 'label' => 'PHP 8.5 or Later', + 'target' => '>=8.5', + 'format' => 'php', + 'body' => '$sh = curl_share_init_persistent([ + CURL_LOCK_DATA_DNS, + CURL_LOCK_DATA_CONNECT, +]); + +$ch = curl_init(\'https://php.net/\'); +curl_setopt($ch, CURLOPT_SHARE, $sh); + +// This may now reuse the connection from an earlier SAPI request +curl_exec($ch);', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases.inc b/include/releases.inc index baf2ee2c0e..921dd4505f 100644 --- a/include/releases.inc +++ b/include/releases.inc @@ -1,34 +1,34 @@ +$GLOBALS['OLDRELEASES'] = $OLDRELEASES = array ( + 8 => array ( - '8.5.5' => + '8.5.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 Apr 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.5.tar.gz', 'name' => 'PHP 8.5.5 (tar.gz)', 'sha256' => '276279f637a875a514346b332bba6d8b06c036cf7979a858e5c55f72c4874884', 'date' => '09 Apr 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.5.tar.bz2', 'name' => 'PHP 8.5.5 (tar.bz2)', 'sha256' => 'ee262beff61c431965d1f97192854b36208adeac38983c3498bb3500ae87283c', 'date' => '09 Apr 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.5.tar.xz', 'name' => 'PHP 8.5.5 (tar.xz)', @@ -38,34 +38,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.30' => + '8.2.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.30.tar.gz', 'name' => 'PHP 8.2.30 (tar.gz)', 'sha256' => 'a0fa6673ba4b0c8335fbab08afb7c2e13a3791f2b5a0928c7ad3d7ad872edf26', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.30.tar.bz2', 'name' => 'PHP 8.2.30 (tar.bz2)', 'sha256' => '104820b6c8fc959dde4b3342135f42bdabf246e86918a16381a17d8447c866fa', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.30.tar.xz', 'name' => 'PHP 8.2.30 (tar.xz)', @@ -75,33 +75,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.20' => + '8.4.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 Apr 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.20.tar.gz', 'name' => 'PHP 8.4.20 (tar.gz)', 'sha256' => 'a2def5d534d57c6a0236f2265de7537608af871900a4f7955eff463e9e38247d', 'date' => '09 Apr 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.20.tar.bz2', 'name' => 'PHP 8.4.20 (tar.bz2)', 'sha256' => 'ce25d2610a5f9522ac8f53fbb7b8280b5c021991e9bd9137068c9c629d9ffb56', 'date' => '09 Apr 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.20.tar.xz', 'name' => 'PHP 8.4.20 (tar.xz)', @@ -111,33 +111,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.30' => + '8.3.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_30.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Jan 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.30.tar.gz', 'name' => 'PHP 8.3.30 (tar.gz)', 'sha256' => 'e587dc95fb7f62730299fa7b36b6e4f91e6708aaefa2fff68a0098d320c16386', 'date' => '15 Jan 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.30.tar.bz2', 'name' => 'PHP 8.3.30 (tar.bz2)', 'sha256' => '800b7b6ed50b73c8ee7844ee5f2f7cc612faa7875a0aa7c4529e8ed5866a5030', 'date' => '15 Jan 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.30.tar.xz', 'name' => 'PHP 8.3.30 (tar.xz)', @@ -147,33 +147,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.19' => + '8.4.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Mar 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.19.tar.gz', 'name' => 'PHP 8.4.19 (tar.gz)', 'sha256' => '9e862435ffb533dc5b0eb486170a74e5f7c8095e8eb8819a2ff5aad430292a18', 'date' => '12 Mar 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.19.tar.bz2', 'name' => 'PHP 8.4.19 (tar.bz2)', 'sha256' => 'bceb7798ed37b442fe523ae7ef345ccc2231db0b022d30735c2e378d3254a0d4', 'date' => '12 Mar 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.19.tar.xz', 'name' => 'PHP 8.4.19 (tar.xz)', @@ -183,33 +183,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.4' => + '8.5.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Mar 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.4.tar.gz', 'name' => 'PHP 8.5.4 (tar.gz)', 'sha256' => '4fef7f44eff3c18e329504cb0d3eb30b41cf54e2db05cb4ebe8b78fc37d38ce1', 'date' => '12 Mar 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.4.tar.bz2', 'name' => 'PHP 8.5.4 (tar.bz2)', 'sha256' => '2ac929a29a6b7ef4b8acec981a417b91bdf7f548f597df665cc56ab9ea95fc75', 'date' => '12 Mar 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.4.tar.xz', 'name' => 'PHP 8.5.4 (tar.xz)', @@ -219,33 +219,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.3' => + '8.5.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Feb 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.3.tar.gz', 'name' => 'PHP 8.5.3 (tar.gz)', 'sha256' => '402654d99b4beda602d4daec4f1cd39aafdacf5923e3e947da87392826660146', 'date' => '12 Feb 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.3.tar.bz2', 'name' => 'PHP 8.5.3 (tar.bz2)', 'sha256' => 'fc5ecabc183ceb64d9fca3dcd387bd29b2b67448326af998fde003124916823b', 'date' => '12 Feb 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.3.tar.xz', 'name' => 'PHP 8.5.3 (tar.xz)', @@ -255,33 +255,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.18' => + '8.4.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 Feb 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.18.tar.gz', 'name' => 'PHP 8.4.18 (tar.gz)', 'sha256' => '79636f2890976e7507123988c4750e592a6eb35cd407bfa7d2bb35ad15af3a06', 'date' => '12 Feb 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.18.tar.bz2', 'name' => 'PHP 8.4.18 (tar.bz2)', 'sha256' => '586b32d92cebcfbca495c5f6ad1a33640553d0a9c0bfd2e6715334d959cf9858', 'date' => '12 Feb 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.18.tar.xz', 'name' => 'PHP 8.4.18 (tar.xz)', @@ -291,33 +291,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.2' => + '8.5.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Jan 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.2.tar.gz', 'name' => 'PHP 8.5.2 (tar.gz)', 'sha256' => '379ccccefcc85f28286444cf01bc0db017c79d513417267f5bb1d804b8428c22', 'date' => '15 Jan 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.2.tar.bz2', 'name' => 'PHP 8.5.2 (tar.bz2)', 'sha256' => 'f7efdeccc3a810b18920692306536b99a3ba86610dbd0795a296cf77d3fb3a06', 'date' => '15 Jan 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.2.tar.xz', 'name' => 'PHP 8.5.2 (tar.xz)', @@ -327,33 +327,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.17' => + '8.4.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Jan 2026', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.17.tar.gz', 'name' => 'PHP 8.4.17 (tar.gz)', 'sha256' => 'aa0efeb7b47adff31e10bed1fc4ffcd4c0b5a4d41ab0bacfbb549c584939ee90', 'date' => '15 Jan 2026', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.17.tar.bz2', 'name' => 'PHP 8.4.17 (tar.bz2)', 'sha256' => 'ea67d83d72dd6f3abaaeae7f532f78fd12192861d96aba8e9eca3b2ddade42d2', 'date' => '15 Jan 2026', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.17.tar.xz', 'name' => 'PHP 8.4.17 (tar.xz)', @@ -363,34 +363,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.1' => + '8.5.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_1.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.1.tar.gz', 'name' => 'PHP 8.5.1 (tar.gz)', 'sha256' => '915492958081409a5e3ef99df969bcfa5b33bdf9517bd077991747e17fa2c1b7', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.1.tar.bz2', 'name' => 'PHP 8.5.1 (tar.bz2)', 'sha256' => '55f428c426e7241752ea9afff160bb64c32a9321cbd6d17d1c145b8df8823737', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.1.tar.xz', 'name' => 'PHP 8.5.1 (tar.xz)', @@ -400,34 +400,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.29' => + '8.3.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.29.tar.gz', 'name' => 'PHP 8.3.29 (tar.gz)', 'sha256' => '8565fa8733c640b60da5ab4944bf2d4081f859915b39e29b3af26cf23443ed97', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.29.tar.bz2', 'name' => 'PHP 8.3.29 (tar.bz2)', 'sha256' => 'c7337212e655325d499ea8108fa76f69ddde2fff7cb0fad36aa63eed540cb8a5', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.29.tar.xz', 'name' => 'PHP 8.3.29 (tar.xz)', @@ -437,34 +437,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.16' => + '8.4.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.16.tar.gz', 'name' => 'PHP 8.4.16 (tar.gz)', 'sha256' => '8e35d24f148ea7c2a93e9b9bcc329e8bf78b5bb922f3723a727c74c19d184e98', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.16.tar.bz2', 'name' => 'PHP 8.4.16 (tar.bz2)', 'sha256' => '6c48c65eba6a2f7a102925d08772239b1f45110aed2187fdd81b933ed439c692', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.16.tar.xz', 'name' => 'PHP 8.4.16 (tar.xz)', @@ -474,34 +474,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.34' => + '8.1.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_34.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.34.tar.gz', 'name' => 'PHP 8.1.34 (tar.gz)', 'sha256' => '3c5b060ec8e0d5dd1d8237823f3161cc8bc5342aab3c46893eba9857759c4bfa', 'date' => '18 Dec 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.34.tar.bz2', 'name' => 'PHP 8.1.34 (tar.bz2)', 'sha256' => '98e0a08a0fae37d08dfcca2f5ff6664863097dde4b1d360af2acc8c3542f2a0f', 'date' => '18 Dec 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.34.tar.xz', 'name' => 'PHP 8.1.34 (tar.xz)', @@ -511,34 +511,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.33' => + '8.1.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.33.tar.gz', 'name' => 'PHP 8.1.33 (tar.gz)', 'sha256' => 'ee33568a0e2be0b722b3f9a88cecc578316b66b25c90cd0a4f3b1a5cdc3cd826', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.33.tar.bz2', 'name' => 'PHP 8.1.33 (tar.bz2)', 'sha256' => 'b6553451841c1a569865d7fdc83024621ee4434cd8fbfeb0a31588ac9c70685f', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.33.tar.xz', 'name' => 'PHP 8.1.33 (tar.xz)', @@ -548,34 +548,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.15' => + '8.4.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_15.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '20 Nov 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.15.tar.gz', 'name' => 'PHP 8.4.15 (tar.gz)', 'sha256' => '51d23c98073c1e88c98c12b175736a11316cd3d4753f8d060934e53e5a9945c3', 'date' => '20 Nov 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.15.tar.bz2', 'name' => 'PHP 8.4.15 (tar.bz2)', 'sha256' => 'b7155bdd498d60d63e4bc320dc224863976d31b5bd9339699726c961255a3197', 'date' => '20 Nov 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.15.tar.xz', 'name' => 'PHP 8.4.15 (tar.xz)', @@ -585,34 +585,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.29' => + '8.2.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.29.tar.gz', 'name' => 'PHP 8.2.29 (tar.gz)', 'sha256' => '0b27d330769d4bc67b1d8864347c38744b289664a946919c3ddb2235d326b3cd', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.29.tar.bz2', 'name' => 'PHP 8.2.29 (tar.bz2)', 'sha256' => '51979e8d198cbade2aad4ffe9f53dd3f04f9602d3089e5979985e058ade4267c', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.29.tar.xz', 'name' => 'PHP 8.2.29 (tar.xz)', @@ -622,33 +622,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.28' => + '8.3.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_28.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '20 Nov 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.28.tar.gz', 'name' => 'PHP 8.3.28 (tar.gz)', 'sha256' => '2f7dda35bbef2842ec61510aaefe52c78361a61f9cfabd99a7789204d6383d9f', 'date' => '20 Nov 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.28.tar.bz2', 'name' => 'PHP 8.3.28 (tar.bz2)', 'sha256' => 'd5b385ee351ec463c85d47eeb53b51156f3483eaf3ff43a7ad5080c2b6d4c557', 'date' => '20 Nov 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.28.tar.xz', 'name' => 'PHP 8.3.28 (tar.xz)', @@ -658,34 +658,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.5.0' => + '8.5.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_5_0.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '20 Nov 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.5.0.tar.gz', 'name' => 'PHP 8.5.0 (tar.gz)', 'sha256' => 'dc3651369c9b63320dd4ea8e272c6a23f18e50f67c13d10ee368c86961dbd10f', 'date' => '20 Nov 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.5.0.tar.bz2', 'name' => 'PHP 8.5.0 (tar.bz2)', 'sha256' => 'cd16cb045b34a6cec6a83008e1b335f365c7a832fcc483df82308664c6d021f9', 'date' => '20 Nov 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.5.0.tar.xz', 'name' => 'PHP 8.5.0 (tar.xz)', @@ -695,34 +695,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.14' => + '8.4.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_14.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '23 Oct 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.14.tar.gz', 'name' => 'PHP 8.4.14 (tar.gz)', 'sha256' => '40341f3e03a36d48facdb6cc2ec600ff887a1af9a5e5fee0b40f40b61488afae', 'date' => '23 Oct 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.14.tar.bz2', 'name' => 'PHP 8.4.14 (tar.bz2)', 'sha256' => 'f2139ce4cb7a6c5643ee98caa34e5c32ba841c2ba293e34a3d0357faa84bb3e7', 'date' => '23 Oct 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.14.tar.xz', 'name' => 'PHP 8.4.14 (tar.xz)', @@ -732,33 +732,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.27' => + '8.3.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Oct 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.27.tar.gz', 'name' => 'PHP 8.3.27 (tar.gz)', 'sha256' => 'bf189e30f81e11526690b1c82e4fb8b286b607cd7afaf4bf27a39003d8f3246f', 'date' => '23 Oct 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.27.tar.bz2', 'name' => 'PHP 8.3.27 (tar.bz2)', 'sha256' => 'a1dd2b51b437c0a6337e019004778a8ef253db4e9aff7d48d88798ca91b7e2a4', 'date' => '23 Oct 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.27.tar.xz', 'name' => 'PHP 8.3.27 (tar.xz)', @@ -768,33 +768,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.26' => + '8.3.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_26.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '25 Sep 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.26.tar.gz', 'name' => 'PHP 8.3.26 (tar.gz)', 'sha256' => 'c96dac9745db9216a299007d144b593f4e4e7d95b4618b2a9591e5e5585200d5', 'date' => '25 Sep 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.26.tar.bz2', 'name' => 'PHP 8.3.26 (tar.bz2)', 'sha256' => '721b63d5349f131f5097537b3be6ba6801e2d8e6faba1f1f2ea95b4fd62e7525', 'date' => '25 Sep 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.26.tar.xz', 'name' => 'PHP 8.3.26 (tar.xz)', @@ -804,34 +804,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.13' => + '8.4.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_13.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '25 Sep 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.13.tar.gz', 'name' => 'PHP 8.4.13 (tar.gz)', 'sha256' => 'ba323619b322125dbd7bf09eefbd572863797359c7d127f986c58a71c872d531', 'date' => '25 Sep 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.13.tar.bz2', 'name' => 'PHP 8.4.13 (tar.bz2)', 'sha256' => '85181ddca7b3e03f148521b043bd62411950d468c667db6400479f1b10812194', 'date' => '25 Sep 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.13.tar.xz', 'name' => 'PHP 8.4.13 (tar.xz)', @@ -841,33 +841,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.25' => + '8.3.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Aug 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.25.tar.gz', 'name' => 'PHP 8.3.25 (tar.gz)', 'sha256' => '86711e98eccffb637dc319f0cdcde9188c1710633910beb1a3cbb3ae5ecc2e05', 'date' => '28 Aug 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.25.tar.bz2', 'name' => 'PHP 8.3.25 (tar.bz2)', 'sha256' => '06e54791e11192f089e4d20c716f25bddcebdde951b570b555edfb5988a8b71a', 'date' => '28 Aug 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.25.tar.xz', 'name' => 'PHP 8.3.25 (tar.xz)', @@ -877,34 +877,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.12' => + '8.4.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_12.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '28 Aug 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.12.tar.gz', 'name' => 'PHP 8.4.12 (tar.gz)', 'sha256' => '4963b0d3a6ca8a391317d1b80309c2cfdebf4318b131ff8e7d19e3ab79da9104', 'date' => '28 Aug 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.12.tar.bz2', 'name' => 'PHP 8.4.12 (tar.bz2)', 'sha256' => '2ebd5382eb090d603087da649ed21de64b079616bc9a02abbc532b89b17e3468', 'date' => '28 Aug 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.12.tar.xz', 'name' => 'PHP 8.4.12 (tar.xz)', @@ -914,33 +914,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.24' => + '8.3.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_24.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '31 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.24.tar.gz', 'name' => 'PHP 8.3.24 (tar.gz)', 'sha256' => 'b827c512b59270c3dc7e19614314fc345022c423e6443c960746310792d0de82', 'date' => '31 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.24.tar.bz2', 'name' => 'PHP 8.3.24 (tar.bz2)', 'sha256' => 'e4e12da490746924624c91406b60b31967e4d7bdeabbab9e8cb5354884ee9964', 'date' => '31 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.24.tar.xz', 'name' => 'PHP 8.3.24 (tar.xz)', @@ -950,34 +950,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.11' => + '8.4.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_11.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '31 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.11.tar.gz', 'name' => 'PHP 8.4.11 (tar.gz)', 'sha256' => '422548cd8cf14ab0264ba510d3586476b0e77a3272356ba486bc82e706dc6cc8', 'date' => '31 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.11.tar.bz2', 'name' => 'PHP 8.4.11 (tar.bz2)', 'sha256' => '2c39c75b54df89b01195b72ad0ee1fcd490c71db18bc52bcd61fb2ffb57b26fa', 'date' => '31 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.11.tar.xz', 'name' => 'PHP 8.4.11 (tar.xz)', @@ -987,34 +987,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.10' => + '8.4.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_10.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.10.tar.gz', 'name' => 'PHP 8.4.10 (tar.gz)', 'sha256' => 'bd25c40ece60d1b3c879c11f517d335b8d6a872174c32ebb088b9494d8bb2cf2', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.10.tar.bz2', 'name' => 'PHP 8.4.10 (tar.bz2)', 'sha256' => '8815d10659cde5f03be4d169205d62b7b29ed0edc7cdd84b6384cda0310c3108', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.10.tar.xz', 'name' => 'PHP 8.4.10 (tar.xz)', @@ -1024,34 +1024,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.23' => + '8.3.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_23.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '3 Jul 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.23.tar.gz', 'name' => 'PHP 8.3.23 (tar.gz)', 'sha256' => 'ac9f3d6e9bcf1d5c4d66d2d954f89852c17fd4c5eba5811a3a8db08f38c908c7', 'date' => '3 Jul 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.23.tar.bz2', 'name' => 'PHP 8.3.23 (tar.bz2)', 'sha256' => '05488f7b967d90a50932f0674dc356e1b795f522f0298b5ce24b680de233c2d4', 'date' => '3 Jul 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.23.tar.xz', 'name' => 'PHP 8.3.23 (tar.xz)', @@ -1061,33 +1061,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.22' => + '8.3.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '5 Jun 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.22.tar.gz', 'name' => 'PHP 8.3.22 (tar.gz)', 'sha256' => '8fc57c9df455354679e4a127defb60e1af8718ece4cd4827e500f5c7f2449103', 'date' => '5 Jun 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.22.tar.bz2', 'name' => 'PHP 8.3.22 (tar.bz2)', 'sha256' => '99133e2cda2af37baa79db17d8efd414628f14a02ec75f1418a0aa3f6aa6673b', 'date' => '5 Jun 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.22.tar.xz', 'name' => 'PHP 8.3.22 (tar.xz)', @@ -1097,34 +1097,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.32' => + '8.1.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.32.tar.gz', 'name' => 'PHP 8.1.32 (tar.gz)', 'sha256' => '4846836d1de27dbd28e89180f073531087029a77e98e8e019b7b2eddbdb1baff', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.32.tar.bz2', 'name' => 'PHP 8.1.32 (tar.bz2)', 'sha256' => 'a04fdd3df05f948df8a8f2c5d27ab54c1f43822c525f31fd20c19a282452d07c', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.32.tar.xz', 'name' => 'PHP 8.1.32 (tar.xz)', @@ -1134,34 +1134,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.28' => + '8.2.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.28.tar.gz', 'name' => 'PHP 8.2.28 (tar.gz)', 'sha256' => '3318300888de5023720cc84efad5e005e53f30b5f0072fae65a750dabcaf6ec3', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.28.tar.bz2', 'name' => 'PHP 8.2.28 (tar.bz2)', 'sha256' => '2919cc1b92190a58dc17904b92e626600b96ce49a4c72e77513786a4406acce5', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.28.tar.xz', 'name' => 'PHP 8.2.28 (tar.xz)', @@ -1171,33 +1171,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.8' => + '8.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_8.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '5 Jun 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.8.tar.gz', 'name' => 'PHP 8.4.8 (tar.gz)', 'sha256' => '26d5ae014925b7dee3a61ec02422795f008fbb3a36f9355edaee2d9d78b89b07', 'date' => '5 Jun 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.8.tar.bz2', 'name' => 'PHP 8.4.8 (tar.bz2)', 'sha256' => '36569c64dd1499e570c436603b641eee7cde4af576af786597d0ee711b3a3a8a', 'date' => '5 Jun 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.8.tar.xz', 'name' => 'PHP 8.4.8 (tar.xz)', @@ -1207,33 +1207,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.21' => + '8.3.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '8 May 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.21.tar.gz', 'name' => 'PHP 8.3.21 (tar.gz)', 'sha256' => 'e7f1748c1fa3d2bf8ef2e00508bd62325ba68c3b830b253bc561225a9ba5457d', 'date' => '8 May 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.21.tar.bz2', 'name' => 'PHP 8.3.21 (tar.bz2)', 'sha256' => 'd0769e6e11cfa6c59a16de241668be8c7f31a729950a8d06190dfad2d8622b04', 'date' => '8 May 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.21.tar.xz', 'name' => 'PHP 8.3.21 (tar.xz)', @@ -1243,33 +1243,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.7' => + '8.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '8 May 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.7.tar.gz', 'name' => 'PHP 8.4.7 (tar.gz)', 'sha256' => 'fd2be3b9320184e856426e01bd1a428110776ea8e976c3fb6b65808d03fc886a', 'date' => '8 May 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.7.tar.bz2', 'name' => 'PHP 8.4.7 (tar.bz2)', 'sha256' => '6eccb1b06a4dd9cea314dbe70c762d3d4765471cb6ebf925b9da308978bff988', 'date' => '8 May 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.7.tar.xz', 'name' => 'PHP 8.4.7 (tar.xz)', @@ -1279,33 +1279,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.20' => + '8.3.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '10 Apr 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.20.tar.gz', 'name' => 'PHP 8.3.20 (tar.gz)', 'sha256' => '515ed37529df6b7f569ba68d505713bce23a93a58471dedac4ecfd17c44e5650', 'date' => '10 Apr 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.20.tar.bz2', 'name' => 'PHP 8.3.20 (tar.bz2)', 'sha256' => '36b4e6a323cd45673a54f296e9d2666b7f5df57641031c77c4fd8137bc4ebeb3', 'date' => '10 Apr 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.20.tar.xz', 'name' => 'PHP 8.3.20 (tar.xz)', @@ -1315,33 +1315,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.6' => + '8.4.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '10 Apr 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.6.tar.gz', 'name' => 'PHP 8.4.6 (tar.gz)', 'sha256' => '49be0f2f45c9b07c9b921d023bf28b1fc781700c829869725681300e72e3faa8', 'date' => '10 Apr 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.6.tar.bz2', 'name' => 'PHP 8.4.6 (tar.bz2)', 'sha256' => '9cf2734509b603f6589617ab52a9712a03e0fe059951cddd2d4623df4bf7c6c6', 'date' => '10 Apr 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.6.tar.xz', 'name' => 'PHP 8.4.6 (tar.xz)', @@ -1351,34 +1351,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.5' => + '8.4.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_5.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.5.tar.gz', 'name' => 'PHP 8.4.5 (tar.gz)', 'sha256' => 'f05530d350f1ffe279e097c2af7a8d78cab046ef99d91f6b3151b06f0ab05d05', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.5.tar.bz2', 'name' => 'PHP 8.4.5 (tar.bz2)', 'sha256' => '9378c78887d0cd7462fc5c17f2de30c852f20f79d28795e2573fe3250d39436e', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.5.tar.xz', 'name' => 'PHP 8.4.5 (tar.xz)', @@ -1388,34 +1388,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.19' => + '8.3.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_19.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '13 Mar 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.19.tar.gz', 'name' => 'PHP 8.3.19 (tar.gz)', 'sha256' => 'bb21d1a5eb9a8b27668b2926fa9279a5878bb6fdee55450621f7865e062dcf3a', 'date' => '13 Mar 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.19.tar.bz2', 'name' => 'PHP 8.3.19 (tar.bz2)', 'sha256' => 'ad6902a2a02f94ec3e9982069e2668bba3ce47e2f6bbbab95eb6b7db7bf3d350', 'date' => '13 Mar 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.19.tar.xz', 'name' => 'PHP 8.3.19 (tar.xz)', @@ -1425,33 +1425,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.27' => + '8.2.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '19 Dec 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.27.tar.gz', 'name' => 'PHP 8.2.27 (tar.gz)', 'sha256' => '179cc901760d478ffd545d10702ebc2a1270d8c13471bdda729d20055140809a', 'date' => '19 Dec 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.27.tar.bz2', 'name' => 'PHP 8.2.27 (tar.bz2)', 'sha256' => '6e57dbaf769a7f3deb4f0f48b8c535e671cc0a18022ed7f6ff23b50e941d4b60', 'date' => '19 Dec 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.27.tar.xz', 'name' => 'PHP 8.2.27 (tar.xz)', @@ -1461,34 +1461,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.31' => + '8.1.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.31.tar.gz', 'name' => 'PHP 8.1.31 (tar.gz)', 'sha256' => '618923b407c4575bfee085f00c4aaa16a5cc86d4b1eb893c0f352d61541bbfb1', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.31.tar.bz2', 'name' => 'PHP 8.1.31 (tar.bz2)', 'sha256' => '0b39828b345151caf1b795d9f4b923c9887231776c33076dfc9d90a44390d0dc', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.31.tar.xz', 'name' => 'PHP 8.1.31 (tar.xz)', @@ -1498,33 +1498,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.4' => + '8.4.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Feb 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.4.tar.gz', 'name' => 'PHP 8.4.4 (tar.gz)', 'sha256' => '719551f50a81961f802aa9102bf4a1a0b5a315074330ab37bc8035a15f4be71b', 'date' => '13 Feb 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.4.tar.bz2', 'name' => 'PHP 8.4.4 (tar.bz2)', 'sha256' => '192a325fd3ca09b6c528dd6014ee07d803c3162514d4bb0d3e0981d00ac700ec', 'date' => '13 Feb 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.4.tar.xz', 'name' => 'PHP 8.4.4 (tar.xz)', @@ -1534,33 +1534,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.17' => + '8.3.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Feb 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.17.tar.gz', 'name' => 'PHP 8.3.17 (tar.gz)', 'sha256' => 'e2bbeca5fa62ff27d6ba6241619cf92a80e5346556be187aa962b91bd0eb9df1', 'date' => '13 Feb 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.17.tar.bz2', 'name' => 'PHP 8.3.17 (tar.bz2)', 'sha256' => '4e034dca7ab16fc6062c8c53067528f4ecaa246bf22310e6841f7008094264ac', 'date' => '13 Feb 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.17.tar.xz', 'name' => 'PHP 8.3.17 (tar.xz)', @@ -1570,33 +1570,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.16' => + '8.3.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_16.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Jan 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.16.tar.gz', 'name' => 'PHP 8.3.16 (tar.gz)', 'sha256' => '61441627dca50cf0173e3f054ffe8c4f5db6552555c43cab87a8ecacfd201c7e', 'date' => '16 Jan 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.16.tar.bz2', 'name' => 'PHP 8.3.16 (tar.bz2)', 'sha256' => 'e9208218cbdcb816834b6c5ed8ddc5748fb12ff777cf9e0e03bb4896276608b6', 'date' => '16 Jan 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.16.tar.xz', 'name' => 'PHP 8.3.16 (tar.xz)', @@ -1606,33 +1606,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.3' => + '8.4.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Jan 2025', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.3.tar.gz', 'name' => 'PHP 8.4.3 (tar.gz)', 'sha256' => '45b88555b31487401b42c8bd36f2c45d84992bc93ae4c1a23d93bb3347984ecb', 'date' => '16 Jan 2025', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.3.tar.bz2', 'name' => 'PHP 8.4.3 (tar.bz2)', 'sha256' => 'd6b12379d1f1df216d1932840a31b14fed1e0fc7e8db1e9d1795f75a1e75ead9', 'date' => '16 Jan 2025', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.3.tar.xz', 'name' => 'PHP 8.4.3 (tar.xz)', @@ -1642,33 +1642,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.2' => + '8.4.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '19 Dec 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.2.tar.gz', 'name' => 'PHP 8.4.2 (tar.gz)', 'sha256' => '5d3cf82a7f4cafdcfc4f3d98f3e3ee81077ae57c709a5613cbff5834d78a7747', 'date' => '19 Dec 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.2.tar.bz2', 'name' => 'PHP 8.4.2 (tar.bz2)', 'sha256' => 'ef4fe9921b885ce3b047792ab60260eaf657e22812be511d19d0e45edf984783', 'date' => '19 Dec 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.2.tar.xz', 'name' => 'PHP 8.4.2 (tar.xz)', @@ -1678,33 +1678,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.15' => + '8.3.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '19 Dec 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.15.tar.gz', 'name' => 'PHP 8.3.15 (tar.gz)', 'sha256' => '67073c3c9c56c86461e0715d9e1806af5ddffe8e6e2eb9781f7923bbb5bd67fa', 'date' => '19 Dec 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.15.tar.bz2', 'name' => 'PHP 8.3.15 (tar.bz2)', 'sha256' => 'b1675a4ff730b5811b8e6a7687488c42e835e156a99776aa3e6f017abda3be98', 'date' => '19 Dec 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.15.tar.xz', 'name' => 'PHP 8.3.15 (tar.xz)', @@ -1714,34 +1714,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.4.1' => + '8.4.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_4_1.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.4.1.tar.gz', 'name' => 'PHP 8.4.1 (tar.gz)', 'sha256' => 'c3d1ce4157463ea43004289c01172deb54ce9c5894d8722f4e805461bf9feaec', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.4.1.tar.bz2', 'name' => 'PHP 8.4.1 (tar.bz2)', 'sha256' => 'ef8a270118ed128b765fc31f198c7f4650c8171411b0f6a3a1a3aba11fcacc23', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.4.1.tar.xz', 'name' => 'PHP 8.4.1 (tar.xz)', @@ -1751,34 +1751,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.14' => + '8.3.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_14.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.14.tar.gz', 'name' => 'PHP 8.3.14 (tar.gz)', 'sha256' => 'e4ee602c31e2f701c9f0209a2902dd4802727431246a9155bf56dda7bcf7fb4a', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.14.tar.bz2', 'name' => 'PHP 8.3.14 (tar.bz2)', 'sha256' => 'f56fa669ce4c01452a2921f40034d779d8c2b97d0749493ad4781813b9221cf8', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.14.tar.xz', 'name' => 'PHP 8.3.14 (tar.xz)', @@ -1788,34 +1788,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.26' => + '8.2.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Nov 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.26.tar.gz', 'name' => 'PHP 8.2.26 (tar.gz)', 'sha256' => '04e47b46b347ed6404dcc9e9989486710b075eafc8490500fd271aeeac5d83cb', 'date' => '21 Nov 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.26.tar.bz2', 'name' => 'PHP 8.2.26 (tar.bz2)', 'sha256' => 'be57c347d451c905bcb4336832a864d9928dd0e20989b872705fea0ba6476c6b', 'date' => '21 Nov 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.26.tar.xz', 'name' => 'PHP 8.2.26 (tar.xz)', @@ -1825,34 +1825,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.30' => + '8.1.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.30.tar.gz', 'name' => 'PHP 8.1.30 (tar.gz)', 'sha256' => '80addd302b7e9708e0d106779c3827520eccaf14af1149174b51da33d63e6af7', 'date' => '26 Sep 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.30.tar.bz2', 'name' => 'PHP 8.1.30 (tar.bz2)', 'sha256' => 'cb1625e5ac49b91037477e3e7767bb0624343971aeb992f4791b618af571d23e', 'date' => '26 Sep 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.30.tar.xz', 'name' => 'PHP 8.1.30 (tar.xz)', @@ -1862,33 +1862,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.13' => + '8.3.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Oct 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.13.tar.gz', 'name' => 'PHP 8.3.13 (tar.gz)', 'sha256' => 'ffe34317d2688ed3161809c90ca4135c84ebfdfd12a46880a264d7d1e1d7739a', 'date' => '24 Oct 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.13.tar.bz2', 'name' => 'PHP 8.3.13 (tar.bz2)', 'sha256' => 'c7791c82e1a554ccaf84a40ba71cc1417ba9af67fb5b39780837fd7c7eb6f124', 'date' => '24 Oct 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.13.tar.xz', 'name' => 'PHP 8.3.13 (tar.xz)', @@ -1898,33 +1898,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.25' => + '8.2.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Oct 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.25.tar.gz', 'name' => 'PHP 8.2.25 (tar.gz)', 'sha256' => '7fe7ba6e3e66cd0e61cfa95341e6aefc8790030a7867333f54aef5fb78aad18b', 'date' => '24 Oct 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.25.tar.bz2', 'name' => 'PHP 8.2.25 (tar.bz2)', 'sha256' => '07b41c5e96c60c096510e45f02f818414d11bdd0d5da1b6840ddba2ba7289401', 'date' => '24 Oct 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.25.tar.xz', 'name' => 'PHP 8.2.25 (tar.xz)', @@ -1934,34 +1934,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.24' => + '8.2.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.24.tar.gz', 'name' => 'PHP 8.2.24 (tar.gz)', 'sha256' => '5d26441969279a594e404bb9f2e17b6f74bb10606fe05911e739137673ae6c4c', 'date' => '26 Sep 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.24.tar.bz2', 'name' => 'PHP 8.2.24 (tar.bz2)', 'sha256' => '4cc76ec644eee97d17c92bfe8d0e84714fedf299a538b7dfadc0639dd0dc432f', 'date' => '26 Sep 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.24.tar.xz', 'name' => 'PHP 8.2.24 (tar.xz)', @@ -1971,34 +1971,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.12' => + '8.3.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_12.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.12.tar.gz', 'name' => 'PHP 8.3.12 (tar.gz)', 'sha256' => '7090e551e05b26384546345d6a162c71b74550febf75bdfd16dfd1f0cfa8647c', 'date' => '26 Sep 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.12.tar.bz2', 'name' => 'PHP 8.3.12 (tar.bz2)', 'sha256' => '807633496ccdb370a8905458db82bd67366e98a6d59728914b797b87e9caecbf', 'date' => '26 Sep 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.12.tar.xz', 'name' => 'PHP 8.3.12 (tar.xz)', @@ -2008,34 +2008,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.29' => + '8.1.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Jun 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.29.tar.gz', 'name' => 'PHP 8.1.29 (tar.gz)', 'sha256' => '8b2609bf1d3173aa38269a9af21532c65f730aadd3051f9aae011eea9e246de5', 'date' => '06 Jun 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.29.tar.bz2', 'name' => 'PHP 8.1.29 (tar.bz2)', 'sha256' => '87a60313263f2f533f180e719272ca5e47cd9884d4ec3c93720198eaffae0827', 'date' => '06 Jun 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.29.tar.xz', 'name' => 'PHP 8.1.29 (tar.xz)', @@ -2045,33 +2045,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.23' => + '8.2.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_23.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.23.tar.gz', 'name' => 'PHP 8.2.23 (tar.gz)', 'sha256' => 'f5cb5f0e063bcc632c60a8f26af63b19d5f924f1fc54b4471d88cfaa865d6917', 'date' => '29 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.23.tar.bz2', 'name' => 'PHP 8.2.23 (tar.bz2)', 'sha256' => 'f7c90cda7a3c1de01f3bfb7b469d52dec9eba2f3b83320836004f9c2eecae26b', 'date' => '29 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.23.tar.xz', 'name' => 'PHP 8.2.23 (tar.xz)', @@ -2081,33 +2081,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.11' => + '8.3.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_11.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.11.tar.gz', 'name' => 'PHP 8.3.11 (tar.gz)', 'sha256' => 'b93a69af83a1302543789408194bd1ae9829e116e784d578778200f20f1b72d4', 'date' => '29 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.11.tar.bz2', 'name' => 'PHP 8.3.11 (tar.bz2)', 'sha256' => '6640e2455080a89adc41d4e57bb04f8c2bfb7eec627fe199af973bff34d7f0ee', 'date' => '29 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.11.tar.xz', 'name' => 'PHP 8.3.11 (tar.xz)', @@ -2117,33 +2117,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.10' => + '8.3.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.10.tar.gz', 'name' => 'PHP 8.3.10 (tar.gz)', 'sha256' => 'd0b4dd5ff465053248fd28dacf2fe0bed79deaaef657890cecb6bfcb73996dcd', 'date' => '01 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.10.tar.bz2', 'name' => 'PHP 8.3.10 (tar.bz2)', 'sha256' => 'e584199c350b46343c37069bb9cc20ad893cb04c747c899ef1b05eadc0eea3b0', 'date' => '01 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.10.tar.xz', 'name' => 'PHP 8.3.10 (tar.xz)', @@ -2153,33 +2153,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.22' => + '8.2.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Aug 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.22.tar.gz', 'name' => 'PHP 8.2.22 (tar.gz)', 'sha256' => '44197016c9eeed5c50523e20eb44adc4dd9d84ac08bdf9e46077e775d467d7d0', 'date' => '01 Aug 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.22.tar.bz2', 'name' => 'PHP 8.2.22 (tar.bz2)', 'sha256' => '5aae5964c60533185f9be928cf7d79a13393cc5560cedf1f4b977944cc76a585', 'date' => '01 Aug 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.22.tar.xz', 'name' => 'PHP 8.2.22 (tar.xz)', @@ -2189,33 +2189,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.21' => + '8.2.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.21.tar.gz', 'name' => 'PHP 8.2.21 (tar.gz)', 'sha256' => '0c6323699309a4d2e71057f01bc071b199f240973c349287b667a3ab36a496c6', 'date' => '04 Jul 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.21.tar.bz2', 'name' => 'PHP 8.2.21 (tar.bz2)', 'sha256' => 'f9876fe7d4d96d41aced199b58a1f7ae7b6655ddc92673135feded7f6939d77f', 'date' => '04 Jul 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.21.tar.xz', 'name' => 'PHP 8.2.21 (tar.xz)', @@ -2225,33 +2225,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.9' => + '8.3.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_9.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.9.tar.gz', 'name' => 'PHP 8.3.9 (tar.gz)', 'sha256' => 'f484dec6ee005c83f899af02fc021e1bc3b1d7b3f143ca062ef66b0fcee96566', 'date' => '04 Jul 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.9.tar.bz2', 'name' => 'PHP 8.3.9 (tar.bz2)', 'sha256' => '96edc6d82b7503a6650541fc477abd5456df28dfaa8c9388ff9e31d9fe1e3112', 'date' => '04 Jul 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.9.tar.xz', 'name' => 'PHP 8.3.9 (tar.xz)', @@ -2261,34 +2261,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.8' => + '8.3.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Jun 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.8.tar.gz', 'name' => 'PHP 8.3.8 (tar.gz)', 'sha256' => '0ebed9f1471871cf131e504629f3947f2acd38a655cc31b036f99efd0e3dbdeb', 'date' => '06 Jun 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.8.tar.bz2', 'name' => 'PHP 8.3.8 (tar.bz2)', 'sha256' => 'f4a6cb005ae117aba86c2044932cf563899a2e977ac09781aa74b2161ddc563b', 'date' => '06 Jun 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.8.tar.xz', 'name' => 'PHP 8.3.8 (tar.xz)', @@ -2298,34 +2298,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.20' => + '8.2.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Jun 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.20.tar.gz', 'name' => 'PHP 8.2.20 (tar.gz)', 'sha256' => '05a4365f7bc6475ac4fef65dde13886913dbc0036e63895d369c1fc6e8206107', 'date' => '06 Jun 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.20.tar.bz2', 'name' => 'PHP 8.2.20 (tar.bz2)', 'sha256' => '5dec6fa61c7b9c47aa1d76666be651f2642ed2bcf6cd8638c57e3571ce2aac61', 'date' => '06 Jun 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.20.tar.xz', 'name' => 'PHP 8.2.20 (tar.xz)', @@ -2335,33 +2335,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.19' => + '8.2.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 May 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.19.tar.gz', 'name' => 'PHP 8.2.19 (tar.gz)', 'sha256' => '8bfdd20662b41a238a5acd84fab3e05c36a685fcb56e6d8ac18eeb87057ab2bc', 'date' => '09 May 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.19.tar.bz2', 'name' => 'PHP 8.2.19 (tar.bz2)', 'sha256' => '3c18f7ce51b7c7b26b797e1f97079d386b30347eb04e817f5e6c8e9b275e2a6a', 'date' => '09 May 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.19.tar.xz', 'name' => 'PHP 8.2.19 (tar.xz)', @@ -2371,33 +2371,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.7' => + '8.3.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '09 May 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.7.tar.gz', 'name' => 'PHP 8.3.7 (tar.gz)', 'sha256' => '2e11d10b651459a8767401e66b5d70e3b048e446579fcdeb0b69bcba789af8c4', 'date' => '09 May 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.7.tar.bz2', 'name' => 'PHP 8.3.7 (tar.bz2)', 'sha256' => '01c20cde1c5a5696651875ed22f507849679fba740f8c421616b7d43d7f797da', 'date' => '09 May 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.7.tar.xz', 'name' => 'PHP 8.3.7 (tar.xz)', @@ -2407,34 +2407,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.28' => + '8.1.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '11 Apr 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.28.tar.gz', 'name' => 'PHP 8.1.28 (tar.gz)', 'sha256' => 'a2a9d853f4a4c9ff8631da5dc3a6cec5ab083ef37a214877b0240dcfcdfdefea', 'date' => '11 Apr 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.28.tar.bz2', 'name' => 'PHP 8.1.28 (tar.bz2)', 'sha256' => '8be450096e0153c47d75384e7dd595cc897f1d53ce0060708ce9589bcc3141ee', 'date' => '11 Apr 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.28.tar.xz', 'name' => 'PHP 8.1.28 (tar.xz)', @@ -2444,34 +2444,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.6' => + '8.3.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_6.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '11 Apr 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.6.tar.gz', 'name' => 'PHP 8.3.6 (tar.gz)', 'sha256' => '39695f5bd107892e36fd2ed6b3d3a78140fd4b05d556d6c6531a921633cacb5f', 'date' => '11 Apr 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.6.tar.bz2', 'name' => 'PHP 8.3.6 (tar.bz2)', 'sha256' => '6324b1ddd8eb3025b041034b88dc2bc0b4819b0022129eeaeba37e47803108bc', 'date' => '11 Apr 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.6.tar.xz', 'name' => 'PHP 8.3.6 (tar.xz)', @@ -2481,34 +2481,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.18' => + '8.2.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_18.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '11 Apr 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.18.tar.gz', 'name' => 'PHP 8.2.18 (tar.gz)', 'sha256' => 'b934ca7e8c82945c5cbf0aa2a3f66727eb5b5098e551819e1b090572d6a51ead', 'date' => '11 Apr 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.18.tar.bz2', 'name' => 'PHP 8.2.18 (tar.bz2)', 'sha256' => 'ca0b07c254200320f518ac5b3df540a9cf14d866f3c93edc3013b52e06fac796', 'date' => '11 Apr 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.18.tar.xz', 'name' => 'PHP 8.2.18 (tar.xz)', @@ -2518,33 +2518,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.27' => + '8.1.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Dec 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.27.tar.gz', 'name' => 'PHP 8.1.27 (tar.gz)', 'sha256' => '9aa5d7a29389d799885d90740932697006d5d0f55d1def67678e0c14f6ab7b2d', 'date' => '21 Dec 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.27.tar.bz2', 'name' => 'PHP 8.1.27 (tar.bz2)', 'sha256' => 'a15fd73ea44f2df30b07d24786e07d1948b0ea3eed0b8b845735d500dc28bff1', 'date' => '21 Dec 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.27.tar.xz', 'name' => 'PHP 8.1.27 (tar.xz)', @@ -2554,33 +2554,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.4' => + '8.3.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Mar 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.4.tar.gz', 'name' => 'PHP 8.3.4 (tar.gz)', 'sha256' => '0e2801e47fb1b92d2743204fcf650ce2fcad1a13ef7a44fe05738101a383e4a2', 'date' => '14 Mar 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.4.tar.bz2', 'name' => 'PHP 8.3.4 (tar.bz2)', 'sha256' => '3c5caf18e0c0a243aaec913a39ecb092043195adde4c3fc42e945da5b9277695', 'date' => '14 Mar 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.4.tar.xz', 'name' => 'PHP 8.3.4 (tar.xz)', @@ -2590,33 +2590,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.17' => + '8.2.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Mar 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.17.tar.gz', 'name' => 'PHP 8.2.17 (tar.gz)', 'sha256' => '1d8ab98e1c09518c672c5afcbef0e61f9003173c7638fc686461ae670d12742e', 'date' => '14 Mar 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.17.tar.bz2', 'name' => 'PHP 8.2.17 (tar.bz2)', 'sha256' => '191316c203267d96160b47d22f955d4dc11793de8a5f327e0c2a76275a6894ea', 'date' => '14 Mar 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.17.tar.xz', 'name' => 'PHP 8.2.17 (tar.xz)', @@ -2626,33 +2626,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.3' => + '8.3.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Feb 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.3.tar.gz', 'name' => 'PHP 8.3.3 (tar.gz)', 'sha256' => '61285ae17a93d172c9f2ebfe4280058d05bda17cadab705ca5b51ba3e6f3a5ac', 'date' => '15 Feb 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.3.tar.bz2', 'name' => 'PHP 8.3.3 (tar.bz2)', 'sha256' => 'aafb613ba79594a23fe722f8e90ad473300610bf80e74b8aa52da9cac2dc4e2a', 'date' => '15 Feb 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.3.tar.xz', 'name' => 'PHP 8.3.3 (tar.xz)', @@ -2662,33 +2662,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.16' => + '8.2.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_16.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '15 Feb 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.16.tar.gz', 'name' => 'PHP 8.2.16 (tar.gz)', 'sha256' => '62a92ef7c2c6f44b12e459d8f3d649aa8ebac5e05845f7479fe55a7580cd2dd0', 'date' => '15 Feb 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.16.tar.bz2', 'name' => 'PHP 8.2.16 (tar.bz2)', 'sha256' => '2658c1b8935ab6b53a7f209354602761ab07066e66920bc472b8815fd1b43f71', 'date' => '15 Feb 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.16.tar.xz', 'name' => 'PHP 8.2.16 (tar.xz)', @@ -2698,33 +2698,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.15' => + '8.2.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '18 Jan 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.15.tar.gz', 'name' => 'PHP 8.2.15 (tar.gz)', 'sha256' => 'f9390d23708c65f428e868583dce7ab4a69e88ab6f377137a56643076f966b8f', 'date' => '18 Jan 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.15.tar.bz2', 'name' => 'PHP 8.2.15 (tar.bz2)', 'sha256' => '50c3e220b7aa63a85716233c902eb44cc0a4667ed0b8335722ae2391b1355e7a', 'date' => '18 Jan 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.15.tar.xz', 'name' => 'PHP 8.2.15 (tar.xz)', @@ -2734,33 +2734,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.2' => + '8.3.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '18 Jan 2024', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.2.tar.gz', 'name' => 'PHP 8.3.2 (tar.gz)', 'sha256' => 'decf0f51e5415b21fb6350753e45b6c3be5cc0868e4ec561e5c89326c8e6ef16', 'date' => '18 Jan 2024', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.2.tar.bz2', 'name' => 'PHP 8.3.2 (tar.bz2)', 'sha256' => '582b3c837a8d952efffe274a5e49706c43a88c162830c2a8c358089fe7449284', 'date' => '18 Jan 2024', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.2.tar.xz', 'name' => 'PHP 8.3.2 (tar.xz)', @@ -2770,33 +2770,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.14' => + '8.2.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_14.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Dec 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.14.tar.gz', 'name' => 'PHP 8.2.14 (tar.gz)', 'sha256' => '4c1fbb55a10ece7f4532feba9f3f88b9b211c11320742977588738374c03255f', 'date' => '21 Dec 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.14.tar.bz2', 'name' => 'PHP 8.2.14 (tar.bz2)', 'sha256' => 'f871e131333d60ae6c537b1adddbc2aea54c436c562af986fb8309c060040b9e', 'date' => '21 Dec 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.14.tar.xz', 'name' => 'PHP 8.2.14 (tar.xz)', @@ -2806,33 +2806,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.1' => + '8.3.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Dec 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.1.tar.gz', 'name' => 'PHP 8.3.1 (tar.gz)', 'sha256' => '2b10218b5e81915d1708ab4b6351362d073556ec73a790553c61fd89c119924e', 'date' => '21 Dec 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.1.tar.bz2', 'name' => 'PHP 8.3.1 (tar.bz2)', 'sha256' => 'c40fae9197fa68a532f6a062c316dafe3b04c545136b54b9ead4932fc26c6ae1', 'date' => '21 Dec 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.1.tar.xz', 'name' => 'PHP 8.3.1 (tar.xz)', @@ -2842,33 +2842,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.13' => + '8.2.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Nov 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.13.tar.gz', 'name' => 'PHP 8.2.13 (tar.gz)', 'sha256' => '6a194038f5a9e46d8f70a9d59c072c3b08d6edbdd8e304096e24ccf2225bcf1b', 'date' => '23 Nov 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.13.tar.bz2', 'name' => 'PHP 8.2.13 (tar.bz2)', 'sha256' => '66529f43b213131e6b253c5602bef05f049458d21292730fccd63b48a06d67ba', 'date' => '23 Nov 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.13.tar.xz', 'name' => 'PHP 8.2.13 (tar.xz)', @@ -2878,33 +2878,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.26' => + '8.1.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_26.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Nov 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.26.tar.gz', 'name' => 'PHP 8.1.26 (tar.gz)', 'sha256' => 'd954cecfc3d294c2fccbe2b1a6bef784ce0d6c5d44a9e28f8a527e092825f2cb', 'date' => '23 Nov 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.26.tar.bz2', 'name' => 'PHP 8.1.26 (tar.bz2)', 'sha256' => '83bde249c84aa1a043a8c8d0eea09345c2cae69b9784cdf02229fc916fbb9ea0', 'date' => '23 Nov 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.26.tar.xz', 'name' => 'PHP 8.1.26 (tar.xz)', @@ -2914,33 +2914,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.3.0' => + '8.3.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_3_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '23 Nov 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.3.0.tar.gz', 'name' => 'PHP 8.3.0 (tar.gz)', 'sha256' => '557ae14650f1d1984d3213e3fcd8d93a5f11418b3f8026d3a2d5022251163951', 'date' => '23 Nov 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.3.0.tar.bz2', 'name' => 'PHP 8.3.0 (tar.bz2)', 'sha256' => 'de67d0833d42b196e5a66fa1a332f45e296cbe8e9472e9256b2a071c34dc5ed6', 'date' => '23 Nov 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.3.0.tar.xz', 'name' => 'PHP 8.3.0 (tar.xz)', @@ -2950,34 +2950,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.30' => + '8.0.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.30.tar.gz', 'name' => 'PHP 8.0.30 (tar.gz)', 'sha256' => '449d2048fcb20a314d8c218097c6d1047a9f1c5bb72aa54d5d3eba0a27a4c80c', 'date' => '03 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.30.tar.bz2', 'name' => 'PHP 8.0.30 (tar.bz2)', 'sha256' => '98a9cb6a0e27a6950cdf4b26dcac48f2be2d936d5224a502f066cf3d4cf19b92', 'date' => '03 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.30.tar.xz', 'name' => 'PHP 8.0.30 (tar.xz)', @@ -2987,33 +2987,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.25' => + '8.1.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Oct 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.25.tar.gz', 'name' => 'PHP 8.1.25 (tar.gz)', 'sha256' => '1a8c59d6b3eccb404c229e947558d2bf1220c3dec0b0036690fadc07f39934ab', 'date' => '26 Oct 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.25.tar.bz2', 'name' => 'PHP 8.1.25 (tar.bz2)', 'sha256' => 'a86a88c1840c1bc832bcfd2fbec3b8a1942c8314da5dff53f09f9c98d0c12e8a', 'date' => '26 Oct 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.25.tar.xz', 'name' => 'PHP 8.1.25 (tar.xz)', @@ -3023,33 +3023,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.12' => + '8.2.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_12.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Oct 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.12.tar.gz', 'name' => 'PHP 8.2.12 (tar.gz)', 'sha256' => 'b2b74a91f5fac14ce10ece0ac210f6f5d72f4367a3cb638e80d117d183750a21', 'date' => '26 Oct 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.12.tar.bz2', 'name' => 'PHP 8.2.12 (tar.bz2)', 'sha256' => '704325f56b1b4c17f9f951e1ffef5c64e148896053f34e2626152cbaa2f05893', 'date' => '26 Oct 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.12.tar.xz', 'name' => 'PHP 8.2.12 (tar.xz)', @@ -3059,33 +3059,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.24' => + '8.1.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_24.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Sep 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.24.tar.gz', 'name' => 'PHP 8.1.24 (tar.gz)', 'sha256' => 'd6001a5c16765cd1897609fc71ff083e35db9a28c8874a1ff191cdebe80a6460', 'date' => '28 Sep 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.24.tar.bz2', 'name' => 'PHP 8.1.24 (tar.bz2)', 'sha256' => 'b0ae5804a9ad53a7e28d0a32629495f816f935b10830c71f4ec15827185a73c9', 'date' => '28 Sep 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.24.tar.xz', 'name' => 'PHP 8.1.24 (tar.xz)', @@ -3095,33 +3095,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.11' => + '8.2.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_11.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Sep 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.11.tar.gz', 'name' => 'PHP 8.2.11 (tar.gz)', 'sha256' => '48b1b41279a678a4d4afcd0b256ed921ebf2a91febb0634fdc4449b91c75799f', 'date' => '28 Sep 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.11.tar.bz2', 'name' => 'PHP 8.2.11 (tar.bz2)', 'sha256' => '38192daeffabf4af6c427bf17ac1f82565d9c7522e0dbd32215162944434b28b', 'date' => '28 Sep 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.11.tar.xz', 'name' => 'PHP 8.2.11 (tar.xz)', @@ -3131,33 +3131,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.23' => + '8.1.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_23.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '31 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.23.tar.gz', 'name' => 'PHP 8.1.23 (tar.gz)', 'sha256' => 'ec5330b3978edc8fe2f78830720505bf69d12542622b5cddccee63ae3a0e5b58', 'date' => '31 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.23.tar.bz2', 'name' => 'PHP 8.1.23 (tar.bz2)', 'sha256' => '929a62785177da892ddffca074bab2f1ff578473a0d4adb915c12f5f3e34ec1b', 'date' => '31 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.23.tar.xz', 'name' => 'PHP 8.1.23 (tar.xz)', @@ -3167,33 +3167,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.10' => + '8.2.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '31 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.10.tar.gz', 'name' => 'PHP 8.2.10 (tar.gz)', 'sha256' => '7e3e277d6eab652616f90bc7c75991179c0512953933ceba27496fb5514f7e78', 'date' => '31 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.10.tar.bz2', 'name' => 'PHP 8.2.10 (tar.bz2)', 'sha256' => 'cc9834e8f1b613d7677af8843c3651e9829abca8ebfe9079251d0d85d9a0aa3e', 'date' => '31 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.10.tar.xz', 'name' => 'PHP 8.2.10 (tar.xz)', @@ -3203,34 +3203,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.22' => + '8.1.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_22.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.22.tar.gz', 'name' => 'PHP 8.1.22 (tar.gz)', 'sha256' => 'f5140e94b139b4adec4b29c337537b7b6f1ef023197eb32be909e724e3da157a', 'date' => '03 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.22.tar.bz2', 'name' => 'PHP 8.1.22 (tar.bz2)', 'sha256' => '992354e382c6c618d01ed4be06beea8dec3178b14153df64d3c8c48b85e9fbc2', 'date' => '03 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.22.tar.xz', 'name' => 'PHP 8.1.22 (tar.xz)', @@ -3240,34 +3240,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.9' => + '8.2.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_9.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Aug 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.9.tar.gz', 'name' => 'PHP 8.2.9 (tar.gz)', 'sha256' => '5fac52041335cacfb5845aeff2303f92403925338a0285f2e160feebcb840f04', 'date' => '03 Aug 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.9.tar.bz2', 'name' => 'PHP 8.2.9 (tar.bz2)', 'sha256' => '48460b994ae7eb5096a310f44d13e865de1771104d4a550d53072be58a6f176c', 'date' => '03 Aug 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.9.tar.xz', 'name' => 'PHP 8.2.9 (tar.xz)', @@ -3277,33 +3277,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.8' => + '8.2.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_8.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 Jul 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.8.tar.gz', 'name' => 'PHP 8.2.8 (tar.gz)', 'sha256' => '6419b74e9b675c8d5a1afd2788c4d7996a19bbe2be409716ccb2067897af9df1', 'date' => '06 Jul 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.8.tar.bz2', 'name' => 'PHP 8.2.8 (tar.bz2)', 'sha256' => '995ed4009c7917c962d31837a1a3658f36d4af4f357b673c97ffdbe6403f8517', 'date' => '06 Jul 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.8.tar.xz', 'name' => 'PHP 8.2.8 (tar.xz)', @@ -3313,34 +3313,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.29' => + '8.0.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '08 Jun 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.29.tar.gz', 'name' => 'PHP 8.0.29 (tar.gz)', 'sha256' => 'db6ee08df5706365f624cde1cffb20ad6de1effe59d7e886337213a09f2e2684', 'date' => '08 Jun 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.29.tar.bz2', 'name' => 'PHP 8.0.29 (tar.bz2)', 'sha256' => '4801a1f0e17170286723ab54acd045ac78a9656021d56f104a64543eec922e12', 'date' => '08 Jun 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.29.tar.xz', 'name' => 'PHP 8.0.29 (tar.xz)', @@ -3350,33 +3350,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.21' => + '8.1.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 Jul 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.21.tar.gz', 'name' => 'PHP 8.1.21 (tar.gz)', 'sha256' => 'a95f8d35924aa5705ad07a70dc994bf41b5d45126ecdec7aaad6edfbe5e1c37f', 'date' => '06 Jul 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.21.tar.bz2', 'name' => 'PHP 8.1.21 (tar.bz2)', 'sha256' => '6ea49e8335d632177f56b507160aa151c7b020185789a9c14859fce5d4a0776d', 'date' => '06 Jul 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.21.tar.xz', 'name' => 'PHP 8.1.21 (tar.xz)', @@ -3386,34 +3386,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.20' => + '8.1.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '08 Jun 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.20.tar.gz', 'name' => 'PHP 8.1.20 (tar.gz)', 'sha256' => 'b7d3e2a0c5bed37bb39e4627550d0ee5a4a600042b83c63037b0f5f84793cbe6', 'date' => '08 Jun 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.20.tar.bz2', 'name' => 'PHP 8.1.20 (tar.bz2)', 'sha256' => '55578587514a2707500f85319e57c0d4df9b8803cdb26566595ac4bf459dc4dd', 'date' => '08 Jun 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.20.tar.xz', 'name' => 'PHP 8.1.20 (tar.xz)', @@ -3423,34 +3423,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.7' => + '8.2.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_7.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '08 Jun 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.7.tar.gz', 'name' => 'PHP 8.2.7 (tar.gz)', 'sha256' => '7046f939f0e5116285341d55c06af1d50907e107ac2c70defc32ef880f88cde4', 'date' => '08 Jun 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.7.tar.bz2', 'name' => 'PHP 8.2.7 (tar.bz2)', 'sha256' => '5bfb2a35c67921bdcadd5c90cb290ad7537d24da113a5e8bc2d646b02de7488f', 'date' => '08 Jun 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.7.tar.xz', 'name' => 'PHP 8.2.7 (tar.xz)', @@ -3460,33 +3460,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.19' => + '8.1.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 May 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.19.tar.gz', 'name' => 'PHP 8.1.19 (tar.gz)', 'sha256' => '0ebb6b0ecf5d8e355c2f1362807f9b73c6e803d496c5ad3e4fb00be989988372', 'date' => '11 May 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.19.tar.bz2', 'name' => 'PHP 8.1.19 (tar.bz2)', 'sha256' => '64207207fda30be926a2ef1f66ff266bf1fdc7e03339bc99fbba0a1245e4279b', 'date' => '11 May 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.19.tar.xz', 'name' => 'PHP 8.1.19 (tar.xz)', @@ -3496,33 +3496,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.6' => + '8.2.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 May 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.6.tar.gz', 'name' => 'PHP 8.2.6 (tar.gz)', 'sha256' => '1b8463df1f180ed39475cfcded1ff106242ccb823f99c9fc1a407c0b76afa2c8', 'date' => '11 May 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.6.tar.bz2', 'name' => 'PHP 8.2.6 (tar.bz2)', 'sha256' => '44a70c52f537662c10d91eedbf51fd765c9961be6ba2508ed63bf7a26cdd3100', 'date' => '11 May 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.6.tar.xz', 'name' => 'PHP 8.2.6 (tar.xz)', @@ -3532,34 +3532,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.28' => + '8.0.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.28.tar.gz', 'name' => 'PHP 8.0.28 (tar.gz)', 'sha256' => '7432184eae01e4e8e39f03f80e8ec0ca2c8bfebc56e9a7b983541ca8805df22f', 'date' => '14 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.28.tar.bz2', 'name' => 'PHP 8.0.28 (tar.bz2)', 'sha256' => '9d5e74935c900e3b9c7b6bc740596b71933630eb9f63717c0c4923d8c788c62e', 'date' => '14 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.28.tar.xz', 'name' => 'PHP 8.0.28 (tar.xz)', @@ -3569,33 +3569,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.18' => + '8.1.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Apr 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.18.tar.gz', 'name' => 'PHP 8.1.18 (tar.gz)', 'sha256' => '8b6b12902e7d6bdf68668acc067b4d75a3c504722f768098c5f80c7d7bfd2563', 'date' => '13 Apr 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.18.tar.bz2', 'name' => 'PHP 8.1.18 (tar.bz2)', 'sha256' => 'd2ac30d6b574fca594fe0cc01c0693e23585b27443e342b0aab07274cde4416e', 'date' => '13 Apr 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.18.tar.xz', 'name' => 'PHP 8.1.18 (tar.xz)', @@ -3605,33 +3605,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.5' => + '8.2.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '13 Apr 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.5.tar.gz', 'name' => 'PHP 8.2.5 (tar.gz)', 'sha256' => '8974dea2507155471660b13a0bcbdc165ac778eeb845a7dbd65d5ffb92738c0a', 'date' => '13 Apr 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.5.tar.bz2', 'name' => 'PHP 8.2.5 (tar.bz2)', 'sha256' => 'e5a80663cca4f6044ad86a489798147c7af037eca96f6cd357ab36d28cb63757', 'date' => '13 Apr 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.5.tar.xz', 'name' => 'PHP 8.2.5 (tar.xz)', @@ -3641,33 +3641,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.17' => + '8.1.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Mar 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.17.tar.gz', 'name' => 'PHP 8.1.17 (tar.gz)', 'sha256' => 'ef270156291d90a80ce83d68eee812f301cf5e48836a0ff6fd2931913f8e25c5', 'date' => '16 Mar 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.17.tar.bz2', 'name' => 'PHP 8.1.17 (tar.bz2)', 'sha256' => 'f4fb298a0eb091f944ecebac57b76daae768a970c2f51610a5ab24f34d8c0caf', 'date' => '16 Mar 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.17.tar.xz', 'name' => 'PHP 8.1.17 (tar.xz)', @@ -3677,33 +3677,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.4' => + '8.2.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Mar 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.4.tar.gz', 'name' => 'PHP 8.2.4 (tar.gz)', 'sha256' => 'cee7748015a2ddef1739d448b980b095dccd09ed589cf1b6c6ee2d16f5e73c50', 'date' => '16 Mar 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.4.tar.bz2', 'name' => 'PHP 8.2.4 (tar.bz2)', 'sha256' => '79186f94bd510db86e31e535dd448277a1eb92a87878303a1ead44602d8b1197', 'date' => '16 Mar 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.4.tar.xz', 'name' => 'PHP 8.2.4 (tar.xz)', @@ -3713,34 +3713,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.3' => + '8.2.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_3.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.3.tar.gz', 'name' => 'PHP 8.2.3 (tar.gz)', 'sha256' => '7c475bcbe61d28b6878604b1b6f387f39d1a63b5f21fa8156fd7aa615d43e259', 'date' => '14 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.3.tar.bz2', 'name' => 'PHP 8.2.3 (tar.bz2)', 'sha256' => '87bb58865f38f5e2941813029152cea2102fe2961bb4d68b88f831ddd0548d0f', 'date' => '14 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.3.tar.xz', 'name' => 'PHP 8.2.3 (tar.xz)', @@ -3750,34 +3750,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.16' => + '8.1.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.16.tar.gz', 'name' => 'PHP 8.1.16 (tar.gz)', 'sha256' => 'a929fb9ed3bc364a5dea4f64954e8aaaa3408b87df04d7c6f743a190f5594e84', 'date' => '14 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.16.tar.bz2', 'name' => 'PHP 8.1.16 (tar.bz2)', 'sha256' => 'cd9f0ea14d82d9455587a49a0b6c802a7b8d8ff79703f9f48b17db010fb633ce', 'date' => '14 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.16.tar.xz', 'name' => 'PHP 8.1.16 (tar.xz)', @@ -3787,33 +3787,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.15' => + '8.1.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '02 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.15.tar.gz', 'name' => 'PHP 8.1.15 (tar.gz)', 'sha256' => '4035236180efac535ff4f22db9ef3195672f31e3e0aa88f89c38ac0715beca3b', 'date' => '02 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.15.tar.bz2', 'name' => 'PHP 8.1.15 (tar.bz2)', 'sha256' => '18da0a94228f4207f8b9e3e23e881f2b74d0d6caefb908bdb5863d4a01035cc6', 'date' => '02 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.15.tar.xz', 'name' => 'PHP 8.1.15 (tar.xz)', @@ -3823,33 +3823,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.2' => + '8.2.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '02 Feb 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.2.tar.gz', 'name' => 'PHP 8.2.2 (tar.gz)', 'sha256' => 'd82dda50356cebf6b6e14dbb576b14bc8b85f0f4476a787f0f50611f11eb37d2', 'date' => '02 Feb 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.2.tar.bz2', 'name' => 'PHP 8.2.2 (tar.bz2)', 'sha256' => 'f5223a5274eda8b40c19e47de0de4678c65d64401ccf710e2464962eb8136804', 'date' => '02 Feb 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.2.tar.xz', 'name' => 'PHP 8.2.2 (tar.xz)', @@ -3859,34 +3859,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.27' => + '8.0.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_27.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '05 Jan 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.27.tar.gz', 'name' => 'PHP 8.0.27 (tar.gz)', 'sha256' => 'fe2376faaf91c28ead89a36e118c177f4a8c9a7280a189b97265da1af1f4d305', 'date' => '05 Jan 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.27.tar.bz2', 'name' => 'PHP 8.0.27 (tar.bz2)', 'sha256' => '5fd882b14377c158c1b55cc6ace91fb8c19b77c596d5831ad124fbbbc902dbc8', 'date' => '05 Jan 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.27.tar.xz', 'name' => 'PHP 8.0.27 (tar.xz)', @@ -3896,34 +3896,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.14' => + '8.1.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_14.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '05 Jan 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.14.tar.gz', 'name' => 'PHP 8.1.14 (tar.gz)', 'sha256' => '4755af2563ad187ceaf4a3632359c55e3f3be4050e0299e0f713bbb5e0531965', 'date' => '05 Jan 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.14.tar.bz2', 'name' => 'PHP 8.1.14 (tar.bz2)', 'sha256' => '14ca99333dd604a504a2368946485ac35d379c4da96d28dc515d7eb502dffa32', 'date' => '05 Jan 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.14.tar.xz', 'name' => 'PHP 8.1.14 (tar.xz)', @@ -3933,34 +3933,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.1' => + '8.2.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_1.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '05 Jan 2023', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.1.tar.gz', 'name' => 'PHP 8.2.1 (tar.gz)', 'sha256' => '6d7b1b8feb14fd1c65a2bc9d0f72c75589a61a946566cf9c3bf9536a5530b635', 'date' => '05 Jan 2023', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.1.tar.bz2', 'name' => 'PHP 8.2.1 (tar.bz2)', 'sha256' => '75d6f8f365993ec0d1d9c6281d4557e6feec5a26194a468b8b01459d177efb29', 'date' => '05 Jan 2023', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.1.tar.xz', 'name' => 'PHP 8.2.1 (tar.xz)', @@ -3970,33 +3970,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.26' => + '8.0.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_26.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Nov 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.26.tar.gz', 'name' => 'PHP 8.0.26 (tar.gz)', 'sha256' => '3c83a7355a640b2ba436b8202e8597df8f9daadee1ec9241729ece8e578d21cd', 'date' => '24 Nov 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.26.tar.bz2', 'name' => 'PHP 8.0.26 (tar.bz2)', 'sha256' => '6df87af96f275a75889ece6e3fe4a13abd93a767a9992863bdc0e90f1e887ee7', 'date' => '24 Nov 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.26.tar.xz', 'name' => 'PHP 8.0.26 (tar.xz)', @@ -4006,33 +4006,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.2.0' => + '8.2.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_2_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '08 Dec 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.2.0.tar.gz', 'name' => 'PHP 8.2.0 (tar.gz)', 'sha256' => '435c4c2439db648cdf34236f7cd459f93f943fb788b66723a033610d4a059fc6', 'date' => '08 Dec 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.2.0.tar.bz2', 'name' => 'PHP 8.2.0 (tar.bz2)', 'sha256' => '1bf4fca663f93d9e0b4909bd6eae0583a1ce383e7f05df126f28f272fa1fd51a', 'date' => '08 Dec 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.2.0.tar.xz', 'name' => 'PHP 8.2.0 (tar.xz)', @@ -4042,33 +4042,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.13' => + '8.1.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '24 Nov 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.13.tar.gz', 'name' => 'PHP 8.1.13 (tar.gz)', 'sha256' => 'eed1981ce9999d807cb139a9d463ae54bbeda2a57a9a28ad513badf5b99b0073', 'date' => '24 Nov 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.13.tar.bz2', 'name' => 'PHP 8.1.13 (tar.bz2)', 'sha256' => '93fcfdfaaa3d094a0fdb18ce08d20f20d526ee3f07a146a8a8ec82ce00b237ca', 'date' => '24 Nov 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.13.tar.xz', 'name' => 'PHP 8.1.13 (tar.xz)', @@ -4078,34 +4078,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.25' => + '8.0.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_25.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '27 Oct 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.25.tar.gz', 'name' => 'PHP 8.0.25 (tar.gz)', 'sha256' => '349a2b5a01bfccbc9af8afdf183e57bed3349706a084f3c4694aa4c7ff7cb2e9', 'date' => '27 Oct 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.25.tar.bz2', 'name' => 'PHP 8.0.25 (tar.bz2)', 'sha256' => '09d716bceb5b3db76d9023b10c1681ebbe040e51f4c18dfd35f9ff8b73bbcf8c', 'date' => '27 Oct 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.25.tar.xz', 'name' => 'PHP 8.0.25 (tar.xz)', @@ -4115,34 +4115,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.12' => + '8.1.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_12.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '27 Oct 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.12.tar.gz', 'name' => 'PHP 8.1.12 (tar.gz)', 'sha256' => 'e0e7c823c9f9aa4c021f5e34ae1a7acafc2a9f3056ca60eb70a8af8f33da3fdf', 'date' => '27 Oct 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.12.tar.bz2', 'name' => 'PHP 8.1.12 (tar.bz2)', 'sha256' => 'f87d73e917facf78de7bcde53fc2faa4d4dbe0487a9406e1ab68c8ae8f33eb03', 'date' => '27 Oct 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.12.tar.xz', 'name' => 'PHP 8.1.12 (tar.xz)', @@ -4152,34 +4152,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.11' => + '8.1.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_11.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.11.tar.gz', 'name' => 'PHP 8.1.11 (tar.gz)', 'sha256' => '3660e8408321149f5d382bb8eeb9ea7b12ea8dd7ea66069da33f6f7383750ab2', 'date' => '29 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.11.tar.bz2', 'name' => 'PHP 8.1.11 (tar.bz2)', 'sha256' => 'af6250b18b4403b6eeff9b4a02786ac86a12a208141f6f65478f79256f47f246', 'date' => '29 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.11.tar.xz', 'name' => 'PHP 8.1.11 (tar.xz)', @@ -4189,34 +4189,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.24' => + '8.0.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.24.tar.gz', 'name' => 'PHP 8.0.24 (tar.gz)', 'sha256' => '6020843a2f1ce36745d958b3ca17f3fdc42e78a43899f552ab5dbc509ff19232', 'date' => '29 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.24.tar.bz2', 'name' => 'PHP 8.0.24 (tar.bz2)', 'sha256' => '908e17cea331d5abb8506b4a89c6392b962e127c391327777c7485eb4b415d43', 'date' => '29 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.24.tar.xz', 'name' => 'PHP 8.0.24 (tar.xz)', @@ -4226,34 +4226,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.23' => + '8.0.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_23.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.23.tar.gz', 'name' => 'PHP 8.0.23 (tar.gz)', 'sha256' => 'a2dd50e9c4a0328d921b6bc914e8b4e6572f94f09867318f88acca5ac4fa76c7', 'date' => '01 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.23.tar.bz2', 'name' => 'PHP 8.0.23 (tar.bz2)', 'sha256' => '1412db46800a45ced377c2892ec6261b3c412f13dc133bfc998cfb2f147b40cf', 'date' => '01 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.23.tar.xz', 'name' => 'PHP 8.0.23 (tar.xz)', @@ -4263,33 +4263,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.10' => + '8.1.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.10.tar.gz', 'name' => 'PHP 8.1.10 (tar.gz)', 'sha256' => '3ea4f323109dfbc8d2631d08aa0e08602c1f713678e9dc6c750f081ef49eab0f', 'date' => '01 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.10.tar.bz2', 'name' => 'PHP 8.1.10 (tar.bz2)', 'sha256' => '2de8e0402285f7c56887defe651922308aded58ba60befcf3b77720209e31f10', 'date' => '01 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.10.tar.xz', 'name' => 'PHP 8.1.10 (tar.xz)', @@ -4299,33 +4299,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.22' => + '8.0.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Aug 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.22.tar.gz', 'name' => 'PHP 8.0.22 (tar.gz)', 'sha256' => '56fce7529a9798fd0895bca3539d2a65b9cac5d23ffbdf6338419c62ed083519', 'date' => '04 Aug 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.22.tar.bz2', 'name' => 'PHP 8.0.22 (tar.bz2)', 'sha256' => 'e342918d3ecd422f10032df0ac3ffb0e17f568fad6cf8e232b6f7a6a1fdc3c9c', 'date' => '04 Aug 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.22.tar.xz', 'name' => 'PHP 8.0.22 (tar.xz)', @@ -4335,33 +4335,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.9' => + '8.1.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_9.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Aug 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.9.tar.gz', 'name' => 'PHP 8.1.9 (tar.gz)', 'sha256' => '954cf77f7e0a70dc765e7639acdfdccd164be5cd1bce3dbe9d10c58dca631e76', 'date' => '04 Aug 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.9.tar.bz2', 'name' => 'PHP 8.1.9 (tar.bz2)', 'sha256' => '9ebb0e2e571db6fd5930428dcb2d19ed3e050338ec1f1347c282cae92fc086ff', 'date' => '04 Aug 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.9.tar.xz', 'name' => 'PHP 8.1.9 (tar.xz)', @@ -4371,34 +4371,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.8' => + '8.1.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '07 Jul 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.8.tar.gz', 'name' => 'PHP 8.1.8 (tar.gz)', 'sha256' => '889d910558d2492f7f2236921b9bcde620674c8b684ec02d126060f8ca45dc8d', 'date' => '07 Jul 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.8.tar.bz2', 'name' => 'PHP 8.1.8 (tar.bz2)', 'sha256' => 'b8815a5a02431453d4261e3598bd1f28516e4c0354f328c12890f257870e4c01', 'date' => '07 Jul 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.8.tar.xz', 'name' => 'PHP 8.1.8 (tar.xz)', @@ -4408,33 +4408,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.21' => + '8.0.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '07 Jul 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.21.tar.gz', 'name' => 'PHP 8.0.21 (tar.gz)', 'sha256' => '2f51f6e90e2e8efd3a20db08f0dd61d7f8d5a9362f8c7325f1ad28ccea5be0ac', 'date' => '07 Jul 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.21.tar.bz2', 'name' => 'PHP 8.0.21 (tar.bz2)', 'sha256' => '1cb7762d1ffecceaeebafb9f6e24132ca23fb1443cb5630d0fccf53f04cfa126', 'date' => '07 Jul 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.21.tar.xz', 'name' => 'PHP 8.0.21 (tar.xz)', @@ -4444,34 +4444,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.7' => + '8.1.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_7.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jun 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.7.tar.gz', 'name' => 'PHP 8.1.7 (tar.gz)', 'sha256' => '5f0b422a117633c86d48d028934b8dc078309d4247e7565ea34b2686189abdd8', 'date' => '09 Jun 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.7.tar.bz2', 'name' => 'PHP 8.1.7 (tar.bz2)', 'sha256' => 'b816753eb005511e695d90945c27093c3236cc73db1262656d9fadd73ead7e9d', 'date' => '09 Jun 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.7.tar.xz', 'name' => 'PHP 8.1.7 (tar.xz)', @@ -4481,34 +4481,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.20' => + '8.0.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jun 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.20.tar.gz', 'name' => 'PHP 8.0.20 (tar.gz)', 'sha256' => '7e21fd985966264194cde63503b57fd0f0170b32a39bd7af2384c1071b50f164', 'date' => '09 Jun 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.20.tar.bz2', 'name' => 'PHP 8.0.20 (tar.bz2)', 'sha256' => 'cb7666bf67ed9f6c987d4836caf03d4b364537e6a75e56cd5c986760ecc2fdd8', 'date' => '09 Jun 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.20.tar.xz', 'name' => 'PHP 8.0.20 (tar.xz)', @@ -4518,33 +4518,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.19' => + '8.0.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 May 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.19.tar.gz', 'name' => 'PHP 8.0.19 (tar.gz)', 'sha256' => '48e57634d350bcab4745d25d9d94ffa474649bf4f7e879fad163226c0d107bb5', 'date' => '12 May 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.19.tar.bz2', 'name' => 'PHP 8.0.19 (tar.bz2)', 'sha256' => 'eba0e67fdaf6904b2e4b84e064be0a0d61b2cb64a23f81a0ca9b1a51bc3a8330', 'date' => '12 May 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.19.tar.xz', 'name' => 'PHP 8.0.19 (tar.xz)', @@ -4554,33 +4554,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.6' => + '8.1.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '12 May 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.6.tar.gz', 'name' => 'PHP 8.1.6 (tar.gz)', 'sha256' => 'e847745fd66fc8c57fac993a609fefcded93fddccd225f0620a26bb5ae5753c3', 'date' => '12 May 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.6.tar.bz2', 'name' => 'PHP 8.1.6 (tar.bz2)', 'sha256' => '7b353304b7407554f70d3e101a226a1fc22decae5c4c42ed270c4e389bfa1b66', 'date' => '12 May 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.6.tar.xz', 'name' => 'PHP 8.1.6 (tar.xz)', @@ -4590,33 +4590,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.5' => + '8.1.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Apr 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.5.tar.gz', 'name' => 'PHP 8.1.5 (tar.gz)', 'sha256' => '44d637627746082395d5d3d3d6ae7d71e780b82a8d55a0228887158c4316bf11', 'date' => '14 Apr 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.5.tar.bz2', 'name' => 'PHP 8.1.5 (tar.bz2)', 'sha256' => '827de56771c3ab8313a069812f15f6ec49989d510aebd0dce180839c6d8d6ff3', 'date' => '14 Apr 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.5.tar.xz', 'name' => 'PHP 8.1.5 (tar.xz)', @@ -4626,33 +4626,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.18' => + '8.0.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '14 Apr 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.18.tar.gz', 'name' => 'PHP 8.0.18 (tar.gz)', 'sha256' => 'cd980f5a2f422362f8c52d314ed25140c6f472877c5442c4f3304205f54e192a', 'date' => '14 Apr 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.18.tar.bz2', 'name' => 'PHP 8.0.18 (tar.bz2)', 'sha256' => '826ee34881a1c349678d4f7cc55ff9141fa1411344e4bb8f95d0f9223bceb55a', 'date' => '14 Apr 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.18.tar.xz', 'name' => 'PHP 8.0.18 (tar.xz)', @@ -4662,33 +4662,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.17' => + '8.0.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_17.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '17 Mar 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.17.tar.gz', 'name' => 'PHP 8.0.17 (tar.gz)', 'sha256' => 'bdbd792901c156c4d1710c9d266732d3c17f6ff63850d6660b9d8d3411188424', 'date' => '17 Mar 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.17.tar.bz2', 'name' => 'PHP 8.0.17 (tar.bz2)', 'sha256' => '52811ee2dde71660ca32737a4ac696c24591eb22e846dd8e09ee77122660283f', 'date' => '17 Mar 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.17.tar.xz', 'name' => 'PHP 8.0.17 (tar.xz)', @@ -4698,33 +4698,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.4' => + '8.1.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_4.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '17 Mar 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.4.tar.gz', 'name' => 'PHP 8.1.4 (tar.gz)', 'sha256' => 'a9951c1c8fd5d2eefde28de0f646c344eb61d751319d220713a6da26f986abde', 'date' => '17 Mar 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.4.tar.bz2', 'name' => 'PHP 8.1.4 (tar.bz2)', 'sha256' => 'b3f688cb69758523838b8e7f509aaef0152133d9b84a84a0b7cf68eeafc1df76', 'date' => '17 Mar 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.4.tar.xz', 'name' => 'PHP 8.1.4 (tar.xz)', @@ -4734,34 +4734,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.3' => + '8.1.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_3.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '17 Feb 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.3.tar.gz', 'name' => 'PHP 8.1.3 (tar.gz)', 'sha256' => '92d74f5a4af7de90cef6cda65bd0c341dc9a1027b32f70e7b8861f6f68a38bb2', 'date' => '17 Feb 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.3.tar.bz2', 'name' => 'PHP 8.1.3 (tar.bz2)', 'sha256' => '354c4e2c506046eca812d1fc2526884a2f54b5e3d20ef0ede919a69eb232d0be', 'date' => '17 Feb 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.3.tar.xz', 'name' => 'PHP 8.1.3 (tar.xz)', @@ -4771,34 +4771,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.16' => + '8.0.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '17 Feb 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.16.tar.gz', 'name' => 'PHP 8.0.16 (tar.gz)', 'sha256' => 'ce0ea32ff9c5af18cfb70197b40caf55824400dc8d5b4258a783ec9168baa5b1', 'date' => '17 Feb 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.16.tar.bz2', 'name' => 'PHP 8.0.16 (tar.bz2)', 'sha256' => 'f49f8181ee29463a0d23a0c65969e92d58fee8ac564df917cff58e48d65e1849', 'date' => '17 Feb 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.16.tar.xz', 'name' => 'PHP 8.0.16 (tar.xz)', @@ -4808,33 +4808,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.2' => + '8.1.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '20 Jan 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.2.tar.gz', 'name' => 'PHP 8.1.2 (tar.gz)', 'sha256' => '9992409c0543e0c8e89914f7307e1485a08c057091146e4731565b59065f8bde', 'date' => '20 Jan 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.2.tar.bz2', 'name' => 'PHP 8.1.2 (tar.bz2)', 'sha256' => '913dc7dd4388427fa33ea4ac89834e856ff5394f4218eace260a3a279f5b53a9', 'date' => '20 Jan 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.2.tar.xz', 'name' => 'PHP 8.1.2 (tar.xz)', @@ -4844,33 +4844,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.15' => + '8.0.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '20 Jan 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.15.tar.gz', 'name' => 'PHP 8.0.15 (tar.gz)', 'sha256' => '47f0be6188b05390bb457eb1968ea19463acada79650afc35ec763348d5c2370', 'date' => '20 Jan 2022', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.15.tar.bz2', 'name' => 'PHP 8.0.15 (tar.bz2)', 'sha256' => '881171c90aba746d28df768f3d99fa3261999e506415be4c7352078a64fe59dc', 'date' => '20 Jan 2022', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.15.tar.xz', 'name' => 'PHP 8.0.15 (tar.xz)', @@ -4880,33 +4880,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.1' => + '8.1.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Dec 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.1.tar.gz', 'name' => 'PHP 8.1.1 (tar.gz)', 'sha256' => '4e4cf3f843a5111f6c55cd21de8f26834ea3cd4a5be77c88357cbcec4a2d671d', 'date' => '16 Dec 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.1.tar.bz2', 'name' => 'PHP 8.1.1 (tar.bz2)', 'sha256' => '8f8bc9cad6cd124edc111f7db0a109745e2f638770a101b3c22a2953f7a9b40e', 'date' => '16 Dec 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.1.tar.xz', 'name' => 'PHP 8.1.1 (tar.xz)', @@ -4916,33 +4916,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.14' => + '8.0.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_14.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Dec 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.14.tar.gz', 'name' => 'PHP 8.0.14 (tar.gz)', 'sha256' => 'e67ebd8c4c77247ad1fa88829e5b95d51a19edf3d87814434de261e20a63ea20', 'date' => '16 Dec 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.14.tar.bz2', 'name' => 'PHP 8.0.14 (tar.bz2)', 'sha256' => 'bb381fdf4817ad7c24c23ea7f77cad68dceb86eb3ac1a37acedadf8ad0a0cd4b', 'date' => '16 Dec 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.14.tar.xz', 'name' => 'PHP 8.0.14 (tar.xz)', @@ -4952,33 +4952,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.1.0' => + '8.1.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_1_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '25 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.1.0.tar.gz', 'name' => 'PHP 8.1.0 (tar.gz)', 'sha256' => '848705043ea4a6e022246ae12a1bff6afcf5c73ea98c6ac4d2108d6028c5c125', 'date' => '25 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.1.0.tar.bz2', 'name' => 'PHP 8.1.0 (tar.bz2)', 'sha256' => '0725ed2baea125496a898455d501a77460218b2a0cfad773fa9322f491b82b61', 'date' => '25 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.1.0.tar.xz', 'name' => 'PHP 8.1.0 (tar.xz)', @@ -4988,34 +4988,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.13' => + '8.0.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_13.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.13.tar.gz', 'name' => 'PHP 8.0.13 (tar.gz)', 'sha256' => 'b4c2d27c954e1b0d84fd4bfef4d252e154ba479e7db11abd89358f2164ee7cc8', 'date' => '18 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.13.tar.bz2', 'name' => 'PHP 8.0.13 (tar.bz2)', 'sha256' => 'c2419d7ba4395f44747043f4e6f5b47fa08125705fb9f88377e453068a815836', 'date' => '18 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.13.tar.xz', 'name' => 'PHP 8.0.13 (tar.xz)', @@ -5025,34 +5025,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.12' => + '8.0.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_12.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Oct 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.12.tar.gz', 'name' => 'PHP 8.0.12 (tar.gz)', 'sha256' => 'a5b78f04a89d3b401465febf449c7ea9de48681f92803dd8dc2bf922812d572b', 'date' => '21 Oct 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.12.tar.bz2', 'name' => 'PHP 8.0.12 (tar.bz2)', 'sha256' => 'b4886db1df322dc8fb128d8b34ae7e94f6fc682ecb29ff4f5a591d4de9feadbf', 'date' => '21 Oct 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.12.tar.xz', 'name' => 'PHP 8.0.12 (tar.xz)', @@ -5062,34 +5062,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.11' => + '8.0.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_11.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Sep 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.11.tar.gz', 'name' => 'PHP 8.0.11 (tar.gz)', 'sha256' => 'c6a461f57b4bcb46cd4dec443253b1e2e8e981466f1280093322b7864afe8be7', 'date' => '23 Sep 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.11.tar.bz2', 'name' => 'PHP 8.0.11 (tar.bz2)', 'sha256' => '70ed874285e4010c1e2e8937bfb56b13b9ed1b3789dcaf274b793b00c1f4403a', 'date' => '23 Sep 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.11.tar.xz', 'name' => 'PHP 8.0.11 (tar.xz)', @@ -5099,34 +5099,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.10' => + '8.0.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_10.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Aug 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.10.tar.gz', 'name' => 'PHP 8.0.10 (tar.gz)', 'sha256' => '4612dca9afe8148801648839175ab588097ace66658c6859e9f283ecdeaf84b3', 'date' => '26 Aug 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.10.tar.bz2', 'name' => 'PHP 8.0.10 (tar.bz2)', 'sha256' => 'c94547271410900845b084ec2bcb3466af363eeca92cb24bd611dcbdc26f1587', 'date' => '26 Aug 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.10.tar.xz', 'name' => 'PHP 8.0.10 (tar.xz)', @@ -5136,33 +5136,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.9' => + '8.0.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_9.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.9.tar.gz', 'name' => 'PHP 8.0.9 (tar.gz)', 'sha256' => '1f0d72e90ab6ad0ae13329a96b281f71bc592563ce4e3a4c816b8da4b5854fb4', 'date' => '29 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.9.tar.bz2', 'name' => 'PHP 8.0.9 (tar.bz2)', 'sha256' => '6ac8edebd295ddc43fb010653c43ccf203cd7cdc40981b210ed5275994040806', 'date' => '29 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.9.tar.xz', 'name' => 'PHP 8.0.9 (tar.xz)', @@ -5172,33 +5172,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.8' => + '8.0.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_8.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.8.tar.gz', 'name' => 'PHP 8.0.8 (tar.gz)', 'sha256' => '084a1e8020e86fb99b663d195fd9ac98a9f37dfcb9ecb5c159054cdb8f388945', 'date' => '01 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.8.tar.bz2', 'name' => 'PHP 8.0.8 (tar.bz2)', 'sha256' => '14bd77d71a98943e14b324da83e31b572781df583cda9650a184fae3214cd16f', 'date' => '01 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.8.tar.xz', 'name' => 'PHP 8.0.8 (tar.xz)', @@ -5208,33 +5208,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.7' => + '8.0.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '03 Jun 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.7.tar.gz', 'name' => 'PHP 8.0.7 (tar.gz)', 'sha256' => '1e7462455bec8062ef3fc7c74f1f496417cb80aa374ce11edb35015de248c3c1', 'date' => '03 Jun 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.7.tar.bz2', 'name' => 'PHP 8.0.7 (tar.bz2)', 'sha256' => '72b2f2c96f35748b1d6e8a71af4ead439b17129aefe611eb0baf1bd313635f79', 'date' => '03 Jun 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.7.tar.xz', 'name' => 'PHP 8.0.7 (tar.xz)', @@ -5244,33 +5244,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.6' => + '8.0.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_6.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 May 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.6.tar.gz', 'name' => 'PHP 8.0.6 (tar.gz)', 'sha256' => '51a3dcea6deb8ab82ad035d15baa7f5398980f576ac1968313ef149f7cf20100', 'date' => '06 May 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.6.tar.bz2', 'name' => 'PHP 8.0.6 (tar.bz2)', 'sha256' => '26a8a9dad66012039deb0bcf151c6e22ab1e4b6a91508383ff705da41289526e', 'date' => '06 May 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.6.tar.xz', 'name' => 'PHP 8.0.6 (tar.xz)', @@ -5280,33 +5280,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.5' => + '8.0.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_5.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Apr 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.5.tar.gz', 'name' => 'PHP 8.0.5 (tar.gz)', 'sha256' => '50aeac6fe9c2b5577d534369392ebb89c3e7a342b20ef538832b1df996cccb2a', 'date' => '29 Apr 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.5.tar.bz2', 'name' => 'PHP 8.0.5 (tar.bz2)', 'sha256' => '195d934febefaac3b19ac586679149759324a434411ae8aca6f7d87553ef08e0', 'date' => '29 Apr 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.5.tar.xz', 'name' => 'PHP 8.0.5 (tar.xz)', @@ -5316,33 +5316,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.3' => + '8.0.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_3.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '4 Mar 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.3.tar.gz', 'name' => 'PHP 8.0.3 (tar.gz)', 'sha256' => 'e7ecfee901e0843377b64b2d8124132eae75bdb71a2675ba7c5c038d6592383d', 'date' => '4 Mar 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.3.tar.bz2', 'name' => 'PHP 8.0.3 (tar.bz2)', 'sha256' => '95f8621d9e34f822d2583564c358598dff7346241f839bfa319bbf65bf2eb012', 'date' => '4 Mar 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.3.tar.xz', 'name' => 'PHP 8.0.3 (tar.xz)', @@ -5352,33 +5352,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.2' => + '8.0.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_2.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Feb 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.2.tar.gz', 'name' => 'PHP 8.0.2 (tar.gz)', 'sha256' => 'cc17a32f76beb5f405da39a548218b3b6736710884fcd761838098553df149da', 'date' => '04 Feb 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.2.tar.bz2', 'name' => 'PHP 8.0.2 (tar.bz2)', 'sha256' => '000fa89e3eae317c0b17ee048229cd68a38a3b0fef72c558681fd004057ba3e6', 'date' => '04 Feb 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.2.tar.xz', 'name' => 'PHP 8.0.2 (tar.xz)', @@ -5388,33 +5388,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.1' => + '8.0.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '07 Jan 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.1.tar.gz', 'name' => 'PHP 8.0.1 (tar.gz)', 'sha256' => 'f1fee0429aa2cce6bc5df5d7e65386e266b0aab8a5fad7882d10eb833d2f5376', 'date' => '07 Jan 2021', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.1.tar.bz2', 'name' => 'PHP 8.0.1 (tar.bz2)', 'sha256' => 'c44e76af40d133de64564f9caf5daec52bbe84c1ccb4e4500a62233d614ebdee', 'date' => '07 Jan 2021', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.1.tar.xz', 'name' => 'PHP 8.0.1 (tar.xz)', @@ -5424,33 +5424,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '8.0.0' => + '8.0.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/8_0_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Nov 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-8.0.0.tar.gz', 'name' => 'PHP 8.0.0 (tar.gz)', 'sha256' => '3ed7b48d64357d3e8fa9e828dbe7416228f84105b8290c2f9779cd66be31ea71', 'date' => '26 Nov 2020', ), - 1 => + 1 => array ( 'filename' => 'php-8.0.0.tar.bz2', 'name' => 'PHP 8.0.0 (tar.bz2)', 'sha256' => '5e832dc37eabf444410b4ea6fb3d66b72e44e7407a3b49caa5746edcf71b9d09', 'date' => '26 Nov 2020', ), - 2 => + 2 => array ( 'filename' => 'php-8.0.0.tar.xz', 'name' => 'PHP 8.0.0 (tar.xz)', @@ -5461,36 +5461,36 @@ $OLDRELEASES = array ( 'museum' => false, ), ), - 7 => + 7 => array ( - '7.4.33' => + '7.4.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '03 Nov 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.33.tar.gz', 'name' => 'PHP 7.4.33 (tar.gz)', 'sha256' => '5a2337996f07c8a097e03d46263b5c98d2c8e355227756351421003bea8f463e', 'date' => '03 Nov 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.33.tar.bz2', 'name' => 'PHP 7.4.33 (tar.bz2)', 'sha256' => '4e8117458fe5a475bf203128726b71bcbba61c42ad463dffadee5667a198a98a', 'date' => '03 Nov 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.33.tar.xz', 'name' => 'PHP 7.4.33 (tar.xz)', @@ -5500,34 +5500,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.32' => + '7.4.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Sep 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.32.tar.gz', 'name' => 'PHP 7.4.32 (tar.gz)', 'sha256' => '197e3372afd69694eb6b230838305eb9e1cbe5db272e0fa3bbe0d38e329a95bc', 'date' => '29 Sep 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.32.tar.bz2', 'name' => 'PHP 7.4.32 (tar.bz2)', 'sha256' => '9b4c3c21ffbb4f35d7b865dbf88538bba1742335248ae1cc2afc303d456e3aa6', 'date' => '29 Sep 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.32.tar.xz', 'name' => 'PHP 7.4.32 (tar.xz)', @@ -5537,34 +5537,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.30' => + '7.4.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jun 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.30.tar.gz', 'name' => 'PHP 7.4.30 (tar.gz)', 'sha256' => 'e37ea37e0f79109351ac615da85eb7c2c336101fc5bc802ee79a124a4310dc10', 'date' => '09 Jun 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.30.tar.bz2', 'name' => 'PHP 7.4.30 (tar.bz2)', 'sha256' => 'b601bb12e53720469b60ea816776cac1c0696b09888a11ad2379b2eee835386e', 'date' => '09 Jun 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.30.tar.xz', 'name' => 'PHP 7.4.30 (tar.xz)', @@ -5574,34 +5574,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.29' => + '7.4.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 Apr 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.29.tar.gz', 'name' => 'PHP 7.4.29 (tar.gz)', 'sha256' => 'f73f89873bb9447cb99eb4863cf0a0deab4481cb8acf7552c0e70647e6885854', 'date' => '14 Apr 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.29.tar.bz2', 'name' => 'PHP 7.4.29 (tar.bz2)', 'sha256' => '7dde58a02b225c25130c6e2ae2cbba7254bb0340f7fe17291478176d866f9482', 'date' => '14 Apr 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.29.tar.xz', 'name' => 'PHP 7.4.29 (tar.xz)', @@ -5611,34 +5611,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.28' => + '7.4.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '17 Feb 2022', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.28.tar.gz', 'name' => 'PHP 7.4.28 (tar.gz)', 'sha256' => 'a04014cd1646b90547907e2e0ac5371594533960de317b6c7ac70bcb42db92fb', 'date' => '17 Feb 2022', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.28.tar.bz2', 'name' => 'PHP 7.4.28 (tar.bz2)', 'sha256' => '2085086a863444b0e39547de1a4969fd1c40a0c188eb58fab2938b649b0c4b58', 'date' => '17 Feb 2022', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.28.tar.xz', 'name' => 'PHP 7.4.28 (tar.xz)', @@ -5648,33 +5648,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.27' => + '7.4.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_27.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '16 Dec 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.27.tar.gz', 'name' => 'PHP 7.4.27 (tar.gz)', 'sha256' => '564fd5bc9850370db0cb4058d9087f2f40177fa4921ce698a375416db9ab43ca', 'date' => '16 Dec 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.27.tar.bz2', 'name' => 'PHP 7.4.27 (tar.bz2)', 'sha256' => '184aaef313fbf28c9987f6aa07b655cd1b0eae9e7e17061775a3e7d880185563', 'date' => '16 Dec 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.27.tar.xz', 'name' => 'PHP 7.4.27 (tar.xz)', @@ -5684,34 +5684,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.26' => + '7.4.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.26.tar.gz', 'name' => 'PHP 7.4.26 (tar.gz)', 'sha256' => '890a7e730f96708a68a77b19fd57fec33cc81573f7249111c870edac42b91a72', 'date' => '18 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.26.tar.bz2', 'name' => 'PHP 7.4.26 (tar.bz2)', 'sha256' => 'd68b88a8f8a437648affcc7793e5e062fa0ec5171f7fd0af385b12c78b1c004d', 'date' => '18 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.26.tar.xz', 'name' => 'PHP 7.4.26 (tar.xz)', @@ -5721,34 +5721,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.33' => + '7.3.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Nov 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.33.tar.gz', 'name' => 'PHP 7.3.33 (tar.gz)', 'sha256' => '9a369c32c6f52036b0a890f290327f148a1904ee66aa56e2c9a7546da6525ec8', 'date' => '18 Nov 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.33.tar.bz2', 'name' => 'PHP 7.3.33 (tar.bz2)', 'sha256' => 'f412487d7d953437e7978a0d7b6ec99bf4a85cf3378014438a8577b89535451a', 'date' => '18 Nov 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.33.tar.xz', 'name' => 'PHP 7.3.33 (tar.xz)', @@ -5758,34 +5758,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.32' => + '7.3.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '28 Oct 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.32.tar.gz', 'name' => 'PHP 7.3.32 (tar.gz)', 'sha256' => '4739160cbd8f5d4529429ac01e181cba9705a515666002e76e4e34891c034fcb', 'date' => '28 Oct 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.32.tar.bz2', 'name' => 'PHP 7.3.32 (tar.bz2)', 'sha256' => '7c158b306e53434f1e0a88647aa561814308aaff8713ed7d237ed8f1399c216f', 'date' => '28 Oct 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.32.tar.xz', 'name' => 'PHP 7.3.32 (tar.xz)', @@ -5795,34 +5795,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.25' => + '7.4.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_25.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '21 Oct 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.25.tar.gz', 'name' => 'PHP 7.4.25 (tar.gz)', 'sha256' => '3b2632252c933cac489a20f68b8f4ab769e5a0a3bf22b6ef47427aff6922e31f', 'date' => '21 Oct 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.25.tar.bz2', 'name' => 'PHP 7.4.25 (tar.bz2)', 'sha256' => '27992570caf3e2e5323ab7b37853c44c1529b1d31ea94d9776efa91d5a781313', 'date' => '21 Oct 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.25.tar.xz', 'name' => 'PHP 7.4.25 (tar.xz)', @@ -5832,34 +5832,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.31' => + '7.3.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Sep 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.31.tar.gz', 'name' => 'PHP 7.3.31 (tar.gz)', 'sha256' => '57ca37b08d3eed4cadc3976e78b0f51d0305bb6e60333f6e8c76e8aee07c3f0f', 'date' => '23 Sep 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.31.tar.bz2', 'name' => 'PHP 7.3.31 (tar.bz2)', 'sha256' => '6951f78524684f439186fe039ab14fb2459cea8f47ac829a159724a283f7f32b', 'date' => '23 Sep 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.31.tar.xz', 'name' => 'PHP 7.3.31 (tar.xz)', @@ -5869,34 +5869,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.24' => + '7.4.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Sep 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.24.tar.gz', 'name' => 'PHP 7.4.24 (tar.gz)', 'sha256' => '8cc1758cf7ff45428c17641b1be84cd917a2909ba40c770f06a814d8b7f36333', 'date' => '23 Sep 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.24.tar.bz2', 'name' => 'PHP 7.4.24 (tar.bz2)', 'sha256' => 'f50e32b788864349041f19e31dcc65b1fcc65bc19122918f607526432edf2f32', 'date' => '23 Sep 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.24.tar.xz', 'name' => 'PHP 7.4.24 (tar.xz)', @@ -5906,34 +5906,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.23' => + '7.4.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_23.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Aug 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.23.tar.gz', 'name' => 'PHP 7.4.23 (tar.gz)', 'sha256' => '2aaa481678ad4d2992e7bcf161e0e98c7268f4979f7ca8b3d97dd6de19c205d6', 'date' => '26 Aug 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.23.tar.bz2', 'name' => 'PHP 7.4.23 (tar.bz2)', 'sha256' => 'd1e094fe6e4f832e0a64be9c69464ba5d593fb216f914efa8bbb084e0a7a5727', 'date' => '26 Aug 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.23.tar.xz', 'name' => 'PHP 7.4.23 (tar.xz)', @@ -5943,34 +5943,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.30' => + '7.3.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Aug 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.30.tar.gz', 'name' => 'PHP 7.3.30 (tar.gz)', 'sha256' => '3810a9b631eb7f236ecf02b9a78bab8d957b6cfdb1646a29e3b34e01d36c0510', 'date' => '26 Aug 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.30.tar.bz2', 'name' => 'PHP 7.3.30 (tar.bz2)', 'sha256' => 'ccc532e660761df9b5509b9b913d2dc049b0a9954108fe212aeeb8bc2556b502', 'date' => '26 Aug 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.30.tar.xz', 'name' => 'PHP 7.3.30 (tar.xz)', @@ -5980,33 +5980,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.22' => + '7.4.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_22.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.22.tar.gz', 'name' => 'PHP 7.4.22 (tar.gz)', 'sha256' => '4ca2642b99a822237d7f84dc19682be702ad0e2d5d282f7646d84b746d454e34', 'date' => '29 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.22.tar.bz2', 'name' => 'PHP 7.4.22 (tar.bz2)', 'sha256' => '5022bbca661bc1ab5dfaee72873bcd0f0980d9dd34f980a682029496f51caae1', 'date' => '29 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.22.tar.xz', 'name' => 'PHP 7.4.22 (tar.xz)', @@ -6016,34 +6016,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.29' => + '7.3.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.29.tar.gz', 'name' => 'PHP 7.3.29 (tar.gz)', 'sha256' => 'ba4de3955b0cbd33baee55a83568acc4347605e210a54b5654e4c1e09b544659', 'date' => '01 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.29.tar.bz2', 'name' => 'PHP 7.3.29 (tar.bz2)', 'sha256' => 'a83a2878140bd86935f0046bbfe92672c8ab688fbe4ccf9704add6b9605ee4d0', 'date' => '01 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.29.tar.xz', 'name' => 'PHP 7.3.29 (tar.xz)', @@ -6053,33 +6053,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.21' => + '7.4.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_21.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Jul 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.21.tar.gz', 'name' => 'PHP 7.4.21 (tar.gz)', 'sha256' => '4b9623accbe4b8923a801212f371f784069535009185e7bf7e4dec66bbea61db', 'date' => '01 Jul 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.21.tar.bz2', 'name' => 'PHP 7.4.21 (tar.bz2)', 'sha256' => '36ec6102e757e2c2b7742057a700bbff77c76fa0ccbe9c860398c3d24e32822a', 'date' => '01 Jul 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.21.tar.xz', 'name' => 'PHP 7.4.21 (tar.xz)', @@ -6089,33 +6089,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.20' => + '7.4.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '03 Jun 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.20.tar.gz', 'name' => 'PHP 7.4.20 (tar.gz)', 'sha256' => '84b09e4617e960b36dfa15fdbf2e3cd7141a2e877216ea29391b12ae86963cf4', 'date' => '03 Jun 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.20.tar.bz2', 'name' => 'PHP 7.4.20 (tar.bz2)', 'sha256' => '0ada6bc635e530fa7a4eb55e639dc070077108e5c9885f750b47007fd267b634', 'date' => '03 Jun 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.20.tar.xz', 'name' => 'PHP 7.4.20 (tar.xz)', @@ -6125,34 +6125,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.28' => + '7.3.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Apr 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.28.tar.gz', 'name' => 'PHP 7.3.28 (tar.gz)', 'sha256' => '1f0d9b94e1b11518ffabd19b646c2fee95ea42ca9cd8d337f8d07986fdceede1', 'date' => '29 Apr 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.28.tar.bz2', 'name' => 'PHP 7.3.28 (tar.bz2)', 'sha256' => '8f636e644594388436ea05ff34c9eb135e6dc119c1130199e9488d5795439964', 'date' => '29 Apr 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.28.tar.xz', 'name' => 'PHP 7.3.28 (tar.xz)', @@ -6162,33 +6162,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.19' => + '7.4.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '06 May 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.19.tar.gz', 'name' => 'PHP 7.4.19 (tar.gz)', 'sha256' => 'd7062457ba9f8334ab8ae7e4fea8efe27e2506763551b25db9e6ab9beea8ed6f', 'date' => '06 May 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.19.tar.bz2', 'name' => 'PHP 7.4.19 (tar.bz2)', 'sha256' => '25d09b8145b284d870431c1b40aba7944e4bf1836278538f8e29780e7f85ddea', 'date' => '06 May 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.19.tar.xz', 'name' => 'PHP 7.4.19 (tar.xz)', @@ -6198,33 +6198,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.18' => + '7.4.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_18.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Apr 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.18.tar.gz', 'name' => 'PHP 7.4.18 (tar.gz)', 'sha256' => '31a8a4a6e7d641f014749cef21421a6d1c9aaba6dce884e181a3370a8e69a04d', 'date' => '29 Apr 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.18.tar.bz2', 'name' => 'PHP 7.4.18 (tar.bz2)', 'sha256' => '2e455932e9c6f5889b1dc879f36fdd5744eaf1ff572b1b778958cbb8f5c1842f', 'date' => '29 Apr 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.18.tar.xz', 'name' => 'PHP 7.4.18 (tar.xz)', @@ -6234,33 +6234,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.16' => + '7.4.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_16.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Mar 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.16.tar.gz', 'name' => 'PHP 7.4.16 (tar.gz)', 'sha256' => 'ef2d2b463fc3444895ec599337b663a8832c6ade148d9832417e59aa2b9e93da', 'date' => '04 Mar 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.16.tar.bz2', 'name' => 'PHP 7.4.16 (tar.bz2)', 'sha256' => '85710f007cfd0fae94e13a02a3a036f4e81ef43693260cae8a2e1ca93659ce3e', 'date' => '04 Mar 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.16.tar.xz', 'name' => 'PHP 7.4.16 (tar.xz)', @@ -6270,34 +6270,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.27' => + '7.3.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_27.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '04 Feb 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.27.tar.gz', 'name' => 'PHP 7.3.27 (tar.gz)', 'sha256' => '4b7b9bd0526ad3f2c8d6fd950ea7b0ab2478b5b09755c6a620a4f3bcfbf59154', 'date' => '04 Feb 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.27.tar.bz2', 'name' => 'PHP 7.3.27 (tar.bz2)', 'sha256' => '9d2006f5e835acf5e408e34d8050a4935f2121ab18bda42775a27ed59bdae003', 'date' => '04 Feb 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.27.tar.xz', 'name' => 'PHP 7.3.27 (tar.xz)', @@ -6307,33 +6307,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.15' => + '7.4.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_15.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Feb 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.15.tar.gz', 'name' => 'PHP 7.4.15 (tar.gz)', 'sha256' => 'c7403988b69212335dec79e869abe9dbb23d60ea7f6eb16fd6ff99ed6b5f1c87', 'date' => '04 Feb 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.15.tar.bz2', 'name' => 'PHP 7.4.15 (tar.bz2)', 'sha256' => '1bd7be0293446c3d3cbe3c9fae6045119af0798fb0869db61932796dc23a7757', 'date' => '04 Feb 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.15.tar.xz', 'name' => 'PHP 7.4.15 (tar.xz)', @@ -6343,33 +6343,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.14' => + '7.4.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_14.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '07 Jan 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.14.tar.gz', 'name' => 'PHP 7.4.14 (tar.gz)', 'sha256' => 'd359183e2436f4ab30b70d4fbd881b5705a46b2e68cc6069fe91cd63d6e98e13', 'date' => '07 Jan 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.14.tar.bz2', 'name' => 'PHP 7.4.14 (tar.bz2)', 'sha256' => '6889ca0605adee3aa7077508cd79fcef1dbd88461cdf25e7c1a86997b8d0a1f6', 'date' => '07 Jan 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.14.tar.xz', 'name' => 'PHP 7.4.14 (tar.xz)', @@ -6379,34 +6379,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.26' => + '7.3.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '07 Jan 2021', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.26.tar.gz', 'name' => 'PHP 7.3.26 (tar.gz)', 'sha256' => '2b55c2a54d1825e7c3feaf44cf42cdf782b8d5c611314172fbf8e234960b6a99', 'date' => '07 Jan 2021', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.26.tar.bz2', 'name' => 'PHP 7.3.26 (tar.bz2)', 'sha256' => '371e5a7c8154fd3c52b14baace5f7d04c4bbb8e841d356c54a2b6a688db39d4e', 'date' => '07 Jan 2021', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.26.tar.xz', 'name' => 'PHP 7.3.26 (tar.xz)', @@ -6416,33 +6416,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.25' => + '7.3.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Nov 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.25.tar.gz', 'name' => 'PHP 7.3.25 (tar.gz)', 'sha256' => '097c7a2a2f9189b33799d79ee5a8aac68a4d72696c1cd69c66ef5d0941ce28ad', 'date' => '26 Nov 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.25.tar.bz2', 'name' => 'PHP 7.3.25 (tar.bz2)', 'sha256' => '69315a4daa91e3b07c90eef86fe205c8812c4ac5ce119c9953ecc9f42e7702fb', 'date' => '26 Nov 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.25.tar.xz', 'name' => 'PHP 7.3.25 (tar.xz)', @@ -6452,33 +6452,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.13' => + '7.4.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_13.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Nov 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.13.tar.gz', 'name' => 'PHP 7.4.13 (tar.gz)', 'sha256' => '0865cff41e7210de2537bcd5750377cfe09a9312b9b44c1a166cf372d5204b8f', 'date' => '26 Nov 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.13.tar.bz2', 'name' => 'PHP 7.4.13 (tar.bz2)', 'sha256' => '15a339857e11c92eb47fddcd0dfe8aaa951a9be7c57ab7230ccd497465a31fda', 'date' => '26 Nov 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.13.tar.xz', 'name' => 'PHP 7.4.13 (tar.xz)', @@ -6488,34 +6488,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.34' => + '7.2.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_34.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.34.tar.gz', 'name' => 'PHP 7.2.34 (tar.gz)', 'sha256' => '8b2777c741e83f188d3ca6d8e98ece7264acafee86787298fae57e05d0dddc78', 'date' => '01 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.34.tar.bz2', 'name' => 'PHP 7.2.34 (tar.bz2)', 'sha256' => '0e5816d668a2bb14aca68cef8c430430bd86c3c5233f6c427d1a54aac127abcf', 'date' => '01 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.34.tar.xz', 'name' => 'PHP 7.2.34 (tar.xz)', @@ -6525,34 +6525,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.24' => + '7.3.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_24.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '29 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.24.tar.bz2', 'name' => 'PHP 7.3.24 (tar.bz2)', 'sha256' => '55b7afbb2037b0f8fefc481a85f8df4f7a278b4b7f0ed9f674c50ec389cca598', 'date' => '29 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.24.tar.gz', 'name' => 'PHP 7.3.24 (tar.gz)', 'sha256' => 'ac06577e2aeb69d4bed3c1532ed84a548f01399e5481c144c3e61d146be8ced6', 'date' => '29 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.24.tar.xz', 'name' => 'PHP 7.3.24 (tar.xz)', @@ -6562,33 +6562,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.12' => + '7.4.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_12.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '29 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.12.tar.bz2', 'name' => 'PHP 7.4.12 (tar.bz2)', 'sha256' => '6e6f73cc239edfc462b56a45724019691f85b57b7492e1eb5b4b60f7faa19967', 'date' => '29 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.12.tar.gz', 'name' => 'PHP 7.4.12 (tar.gz)', 'sha256' => 'f056d74409a71f17218f76538c6a2d7b59ee99db9db7685fa0ab9cd0d4c0f286', 'date' => '29 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.12.tar.xz', 'name' => 'PHP 7.4.12 (tar.xz)', @@ -6598,33 +6598,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.11' => + '7.4.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_11.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '01 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.11.tar.bz2', 'name' => 'PHP 7.4.11 (tar.bz2)', 'sha256' => '5408f255243bd2292f3fbc2fafc27a2ec083fcd852902728f2ba9a3ea616b8c5', 'date' => '01 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.11.tar.gz', 'name' => 'PHP 7.4.11 (tar.gz)', 'sha256' => 'b4fae5c39ca1eedf5597071996d9c85d0674b83f5003126c39b7b44bbfbcd821', 'date' => '01 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.11.tar.xz', 'name' => 'PHP 7.4.11 (tar.xz)', @@ -6634,34 +6634,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.23' => + '7.3.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_23.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '01 Oct 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.23.tar.bz2', 'name' => 'PHP 7.3.23 (tar.bz2)', 'sha256' => 'fd6666ad4605508042c6964151379475daea36c43e03b11b1e79d4ae6b04c04c', 'date' => '01 Oct 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.23.tar.gz', 'name' => 'PHP 7.3.23 (tar.gz)', 'sha256' => 'a21094b9ba2d8fe7fa5838e6566e30cf4bfaf2c8a6dce90ff707c45d0d8d494d', 'date' => '01 Oct 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.23.tar.xz', 'name' => 'PHP 7.3.23 (tar.xz)', @@ -6671,34 +6671,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.22' => + '7.3.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_22.php', ), - 'tags' => + 'tags' => array ( 0 => '', ), 'date' => '03 Sep 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.22.tar.bz2', 'name' => 'PHP 7.3.22 (tar.bz2)', 'sha256' => 'c790b8172520b2ff773d6cf80774ea0a678a2f16e8ee6b11d68802094448689e', 'date' => '03 Sep 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.22.tar.gz', 'name' => 'PHP 7.3.22 (tar.gz)', 'sha256' => '759426cb4054e3f23316c39710faff0bb8063fd0ea50fc2c5efa590429af1a22', 'date' => '03 Sep 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.22.tar.xz', 'name' => 'PHP 7.3.22 (tar.xz)', @@ -6708,33 +6708,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.10' => + '7.4.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_10.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '03 Sep 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.10.tar.bz2', 'name' => 'PHP 7.4.10 (tar.bz2)', 'sha256' => 'e90bfc9ed98d24e53b51ffd4eb636cf5cd9d71ed7c6f8e4b6e9981e9882174e7', 'date' => '03 Sep 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.10.tar.gz', 'name' => 'PHP 7.4.10 (tar.gz)', 'sha256' => 'e720f1286f895ca37f1c75a2ca338ad2f2456664d7097298167181b25b212feb', 'date' => '03 Sep 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.10.tar.xz', 'name' => 'PHP 7.4.10 (tar.xz)', @@ -6744,34 +6744,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.33' => + '7.2.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Aug 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.33.tar.bz2', 'name' => 'PHP 7.2.33 (tar.bz2)', 'sha256' => '03dda3a3a0c8befc9b381bc9cf4638d13862783fc7b8aef43fdd4431ab85854d', 'date' => '06 Aug 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.33.tar.gz', 'name' => 'PHP 7.2.33 (tar.gz)', 'sha256' => '97bb6b88ddfa44f36c4fc84a1a718faef476f61b532d26ea29e3e9f6cd79d839', 'date' => '06 Aug 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.33.tar.xz', 'name' => 'PHP 7.2.33 (tar.xz)', @@ -6781,34 +6781,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.9' => + '7.4.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_9.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Aug 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.9.tar.bz2', 'name' => 'PHP 7.4.9 (tar.bz2)', 'sha256' => '2e270958a4216480da7886743438ccc92b6acf32ea96fefda88d07e0a5095deb', 'date' => '06 Aug 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.9.tar.gz', 'name' => 'PHP 7.4.9 (tar.gz)', 'sha256' => 'c0c657b5769bc463f5f028b1f4fef8814d98ecf3459a402a9e30d41d68b2323e', 'date' => '06 Aug 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.9.tar.xz', 'name' => 'PHP 7.4.9 (tar.xz)', @@ -6818,34 +6818,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.21' => + '7.3.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_21.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '06 Aug 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.21.tar.bz2', 'name' => 'PHP 7.3.21 (tar.bz2)', 'sha256' => 'dbb0ea39e7e4b3814d6d1dd3ac5983aed6c38cdf55464645da11a8b134a9f7a7', 'date' => '06 Aug 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.21.tar.gz', 'name' => 'PHP 7.3.21 (tar.gz)', 'sha256' => 'f5d6e136768522edd025c4a97b9b6a98a2fda20b68445cbc5ca2efce1e73c7d0', 'date' => '06 Aug 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.21.tar.xz', 'name' => 'PHP 7.3.21 (tar.xz)', @@ -6855,34 +6855,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.8' => + '7.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jul 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.8.tar.bz2', 'name' => 'PHP 7.4.8 (tar.bz2)', 'sha256' => '6a48d3a605c003b088984ceb53be5df1e698b8b35ddacadd12fe50f49c0e8062', 'date' => '09 Jul 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.8.tar.gz', 'name' => 'PHP 7.4.8 (tar.gz)', 'sha256' => '649f6bcdb60dc38d5edd7f3a7b2905d15d88c1d13e40307e8972ede347cea6ba', 'date' => '09 Jul 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.8.tar.xz', 'name' => 'PHP 7.4.8 (tar.xz)', @@ -6892,34 +6892,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.20' => + '7.3.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_20.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jul 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.20.tar.bz2', 'name' => 'PHP 7.3.20 (tar.bz2)', 'sha256' => 'c6ed7894911acfe075381c01b07745d92e9259fac510a849f742edb6b95c89de', 'date' => '09 Jul 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.20.tar.gz', 'name' => 'PHP 7.3.20 (tar.gz)', 'sha256' => 'd0579b8a6bcdd5e1ae334d83261f2389b0d3d4fd54cc808e20a5031121f97d87', 'date' => '09 Jul 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.20.tar.xz', 'name' => 'PHP 7.3.20 (tar.xz)', @@ -6929,34 +6929,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.32' => + '7.2.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '09 Jul 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.32.tar.bz2', 'name' => 'PHP 7.2.32 (tar.bz2)', 'sha256' => '715c0a4274ad17ce449cd0f16b8a7428936e3ba80002d0948a8699a6f75d98a7', 'date' => '09 Jul 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.32.tar.gz', 'name' => 'PHP 7.2.32 (tar.gz)', 'sha256' => 'b3aabb99e574c407dd58ad071fc52e27c489608fe06f1330d688d0fb7349089c', 'date' => '09 Jul 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.32.tar.xz', 'name' => 'PHP 7.2.32 (tar.xz)', @@ -6966,33 +6966,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.7' => + '7.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 June 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.7.tar.bz2', 'name' => 'PHP 7.4.7 (tar.bz2)', 'sha256' => '800e0d01f359c8ec41540925c0d4a24c34d5f21ef6addd6d82ff4a52be23d87a', 'date' => '11 June 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.7.tar.gz', 'name' => 'PHP 7.4.7 (tar.gz)', 'sha256' => 'a554a510190e726ebe7157fb00b4aceabdb50c679430510a3b93cbf5d7546e44', 'date' => '11 June 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.7.tar.xz', 'name' => 'PHP 7.4.7 (tar.xz)', @@ -7002,34 +7002,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.31' => + '7.2.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 May 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.31.tar.bz2', 'name' => 'PHP 7.2.31 (tar.bz2)', 'sha256' => '1ba7559745d704f39764a5deb002eb94f5cb8d9aaa219a6b8b32b94174e8a700', 'date' => '14 May 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.31.tar.gz', 'name' => 'PHP 7.2.31 (tar.gz)', 'sha256' => '796837831ccebf00dc15921ed327cfbac59177da41b33044d9a6c7134cdd250c', 'date' => '14 May 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.31.tar.xz', 'name' => 'PHP 7.2.31 (tar.xz)', @@ -7039,33 +7039,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.19' => + '7.3.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_19.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '11 Jun 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.19.tar.bz2', 'name' => 'PHP 7.3.19 (tar.bz2)', 'sha256' => '0d9c1e31e29fb46ff660b48051d169d50cb0285e611d16591449d578320d34a5', 'date' => '11 Jun 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.19.tar.gz', 'name' => 'PHP 7.3.19 (tar.gz)', 'sha256' => '809126b46d62a1a06c2d5a0f9d7ba61aba40e165f24d2d185396d0f9646d3280', 'date' => '11 Jun 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.19.tar.xz', 'name' => 'PHP 7.3.19 (tar.xz)', @@ -7075,34 +7075,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.6' => + '7.4.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_6.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 May 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.6.tar.bz2', 'name' => 'PHP 7.4.6 (tar.bz2)', 'sha256' => 'a6ed9475695d2056322a3f2c00fee61a122a7fce138a0e25694320c5dd1d2348', 'date' => '14 May 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.6.tar.gz', 'name' => 'PHP 7.4.6 (tar.gz)', 'sha256' => '2a37bab4e308c4e3867083137b7cce4a3f1d996ae231b383c1a83609cec3fed0', 'date' => '14 May 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.6.tar.xz', 'name' => 'PHP 7.4.6 (tar.xz)', @@ -7112,34 +7112,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.18' => + '7.3.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_18.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '14 May 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.18.tar.bz2', 'name' => 'PHP 7.3.18 (tar.bz2)', 'sha256' => '749d21f65deb57153b575f846705f5db54732c6b672e80612b29dcf1a53be8a4', 'date' => '14 May 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.18.tar.gz', 'name' => 'PHP 7.3.18 (tar.gz)', 'sha256' => '3211d5d6ea8a27c2794498a551bf26e334bc2b986741971809c9bb650eaa47a3', 'date' => '14 May 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.18.tar.xz', 'name' => 'PHP 7.3.18 (tar.xz)', @@ -7149,34 +7149,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.5' => + '7.4.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_5.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '16 Apr 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.5.tar.bz2', 'name' => 'PHP 7.4.5 (tar.bz2)', 'sha256' => '39daa533d5b63c3394da711dc12867dd76c2ec31c940bbba16f14e577df13d6f', 'date' => '16 Apr 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.5.tar.gz', 'name' => 'PHP 7.4.5 (tar.gz)', 'sha256' => '1ef619411b0bd68c0fbfd2a6c622ad6bc524d0bceb8476fb9807a23a0fe9a343', 'date' => '16 Apr 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.5.tar.xz', 'name' => 'PHP 7.4.5 (tar.xz)', @@ -7186,34 +7186,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.17' => + '7.3.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_17.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '16 Apr 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.17.tar.bz2', 'name' => 'PHP 7.3.17 (tar.bz2)', 'sha256' => 'd83e90d9024c999f209933732ed4e1d0e7295a67c66ab79490898ea0a4a29709', 'date' => '16 Apr 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.17.tar.gz', 'name' => 'PHP 7.3.17 (tar.gz)', 'sha256' => '0dd484382b8f17dfa8afd44236a5ccf374e1f03de06ef826ebcbda98eadc7bda', 'date' => '16 Apr 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.17.tar.xz', 'name' => 'PHP 7.3.17 (tar.xz)', @@ -7223,34 +7223,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.30' => + '7.2.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '16 Apr 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.30.tar.bz2', 'name' => 'PHP 7.2.30 (tar.bz2)', 'sha256' => 'c4cf5c9debe8fd8def0a933231cf2fa3a8bdd22555ae57e825bfac6a87a712bf', 'date' => '16 Apr 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.30.tar.gz', 'name' => 'PHP 7.2.30 (tar.gz)', 'sha256' => 'daa53d22510b0fd433904d1c3de460746860a974b776f727ac8acecb44e16e2f', 'date' => '16 Apr 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.30.tar.xz', 'name' => 'PHP 7.2.30 (tar.xz)', @@ -7260,34 +7260,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.29' => + '7.2.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_29.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '19 Mar 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.29.tar.bz2', 'name' => 'PHP 7.2.29 (tar.bz2)', 'sha256' => 'eaa1f5503f2bf0c8569ec4ae80ffd8ca8cbc260f01c2503dd0e83dfc9cf0b923', 'date' => '19 Mar 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.29.tar.gz', 'name' => 'PHP 7.2.29 (tar.gz)', 'sha256' => 'ea5c96309394a03a38828cc182058be0c09dde1f00f35809622c2d05c50ee890', 'date' => '19 Mar 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.29.tar.xz', 'name' => 'PHP 7.2.29 (tar.xz)', @@ -7297,34 +7297,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.4' => + '7.4.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_4.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '19 Mar 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.4.tar.bz2', 'name' => 'PHP 7.4.4 (tar.bz2)', 'sha256' => '308e8f4182ec8a2767b0b1b8e1e7c69fb149b37cfb98ee4a37475e082fa9829f', 'date' => '19 Mar 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.4.tar.gz', 'name' => 'PHP 7.4.4 (tar.gz)', 'sha256' => '1581b3e10c7854597e1086937d5753cdf92d132865c06a50aed4f4f407138616', 'date' => '19 Mar 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.4.tar.xz', 'name' => 'PHP 7.4.4 (tar.xz)', @@ -7334,34 +7334,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.16' => + '7.3.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_16.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '19 Mar 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.16.tar.bz2', 'name' => 'PHP 7.3.16 (tar.bz2)', 'sha256' => 'b8072d526a283182963b03960b7982392daa43cb31131eca4cf0b996764a042e', 'date' => '19 Mar 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.16.tar.gz', 'name' => 'PHP 7.3.16 (tar.gz)', 'sha256' => 'a01ae4f6baf427413c28f8cfddbae86aeff61cdb88658e75404f2d93d98e3255', 'date' => '19 Mar 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.16.tar.xz', 'name' => 'PHP 7.3.16 (tar.xz)', @@ -7371,34 +7371,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.3' => + '7.4.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_3.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '20 Feb 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.3.tar.bz2', 'name' => 'PHP 7.4.3 (tar.bz2)', 'sha256' => 'c1517ba49578fb2dcc64c73a3edc76d4fc507c4a7ac639981584cc7d3b4c6d14', 'date' => '20 Feb 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.3.tar.gz', 'name' => 'PHP 7.4.3 (tar.gz)', 'sha256' => '58e421a1dba10da8542a014535cac77a78f0271afb901cc2bd363b881895a9ed', 'date' => '20 Feb 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.3.tar.xz', 'name' => 'PHP 7.4.3 (tar.xz)', @@ -7408,34 +7408,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.28' => + '7.2.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_28.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '20 Feb 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.28.tar.bz2', 'name' => 'PHP 7.2.28 (tar.bz2)', 'sha256' => '7c953a5b79db3d8d45c65014aef382a48e1c3435cf0c2574e942957f0cdd52a3', 'date' => '20 Feb 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.28.tar.gz', 'name' => 'PHP 7.2.28 (tar.gz)', 'sha256' => 'ed5fede7602ccd8d1294b4e4aef7f92f4e3af58ab040bd349264b3f5dbef3261', 'date' => '20 Feb 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.28.tar.xz', 'name' => 'PHP 7.2.28 (tar.xz)', @@ -7445,34 +7445,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.15' => + '7.3.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_15.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '20 Feb 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.15.tar.bz2', 'name' => 'PHP 7.3.15 (tar.bz2)', 'sha256' => '8dbe1507ea0035f4211faa0db80fe95f39df0e39d8408223820fe9123487043d', 'date' => '20 Feb 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.15.tar.gz', 'name' => 'PHP 7.3.15 (tar.gz)', 'sha256' => 'c606dd09de2edff1e6b6c5b9f0076214a59f6f1a3272e15d681ed16257737ef6', 'date' => '20 Feb 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.15.tar.xz', 'name' => 'PHP 7.3.15 (tar.xz)', @@ -7482,34 +7482,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.2' => + '7.4.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_2.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Jan 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.2.tar.bz2', 'name' => 'PHP 7.4.2 (tar.bz2)', 'sha256' => '02909974be9c70814ed5652a6bdae9c74220d41c1e5ed5ad921e15d028f8e816', 'date' => '23 Jan 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.2.tar.gz', 'name' => 'PHP 7.4.2 (tar.gz)', 'sha256' => 'e1b8dbf561ac1d871362054ff4cd62dca5e19c8c896567996525dda7c4b320f9', 'date' => '23 Jan 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.2.tar.xz', 'name' => 'PHP 7.4.2 (tar.xz)', @@ -7519,34 +7519,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.14' => + '7.3.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_14.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Jan 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.14.tar.bz2', 'name' => 'PHP 7.3.14 (tar.bz2)', 'sha256' => 'b9dfcbbbc929ce67995f976de8636c5f46804593ecae6e110509329b9dc6c272', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.14.tar.gz', 'name' => 'PHP 7.3.14 (tar.gz)', 'sha256' => '6aff532a380b0f30c9e295b67dc91d023fee3b0ae14b4771468bf5dda4cbf108', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.14.tar.xz', 'name' => 'PHP 7.3.14 (tar.xz)', @@ -7556,34 +7556,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.27' => + '7.2.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_27.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '23 Jan 2020', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.27.tar.bz2', 'name' => 'PHP 7.2.27 (tar.bz2)', 'sha256' => '5bc0695b171b870ceb083c5432c6a758d3dbd3830a0cf6cf35bd9b283a627049', 'date' => '23 Jan 2020', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.27.tar.gz', 'name' => 'PHP 7.2.27 (tar.gz)', 'sha256' => 'e00ace5e89cb162cba0aebd17144541e1c4d965589155a44ca706d9f9c5a8981', 'date' => '23 Jan 2020', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.27.tar.xz', 'name' => 'PHP 7.2.27 (tar.xz)', @@ -7593,34 +7593,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.13' => + '7.3.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_13.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.13.tar.bz2', 'name' => 'PHP 7.3.13 (tar.bz2)', 'sha256' => '5c7b89062814f3c3953d1518f63ed463fd452929e3a37110af4170c5d23267bc', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.13.tar.gz', 'name' => 'PHP 7.3.13 (tar.gz)', 'sha256' => '9cf835416a3471d7e6615e9288e76813d55ffaf60e0aa9ce74884a7c228cb6dd', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.13.tar.xz', 'name' => 'PHP 7.3.13 (tar.xz)', @@ -7630,34 +7630,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.26' => + '7.2.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_26.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '18 Dec 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.26.tar.bz2', 'name' => 'PHP 7.2.26 (tar.bz2)', 'sha256' => 'f36d86eecf57ff919d6f67b064e1f41993f62e3991ea4796038d8d99c74e847b', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.26.tar.gz', 'name' => 'PHP 7.2.26 (tar.gz)', 'sha256' => 'e97d0636478bb519cd955a0c17b7970cf173063a840a83fc4afb75c22bc1bf08', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.26.tar.xz', 'name' => 'PHP 7.2.26 (tar.xz)', @@ -7667,33 +7667,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.1' => + '7.4.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_1.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '18 Dec 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.1.tar.bz2', 'name' => 'PHP 7.4.1 (tar.bz2)', 'sha256' => '6b1ca0f0b83aa2103f1e454739665e1b2802b90b3137fc79ccaa8c242ae48e4e', 'date' => '18 Dec 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.1.tar.gz', 'name' => 'PHP 7.4.1 (tar.gz)', 'sha256' => '67265d6bd48d828f4725964f71ca5c76c3da63b0d07bec5ec4e5acfdd3708073', 'date' => '18 Dec 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.1.tar.xz', 'name' => 'PHP 7.4.1 (tar.xz)', @@ -7703,33 +7703,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.25' => + '7.2.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_25.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Nov 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.25.tar.bz2', 'name' => 'PHP 7.2.25 (tar.bz2)', 'sha256' => '7cb336b1ed0f9d87f46bbcb7b3437ee252d0d5060c0fb1a985adb6cbc73a6b9e', 'date' => '21 Nov 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.25.tar.gz', 'name' => 'PHP 7.2.25 (tar.gz)', 'sha256' => 'b2cb1bd46454d33b2c65c2fd559f464cd14e57dd47b953adf5caa77fdf0de52b', 'date' => '21 Nov 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.25.tar.xz', 'name' => 'PHP 7.2.25 (tar.xz)', @@ -7739,33 +7739,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.12' => + '7.3.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_12.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '21 Nov 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.12.tar.bz2', 'name' => 'PHP 7.3.12 (tar.bz2)', 'sha256' => 'd317b029f991410578cc38ba4b76c9f764ec29c67e7124e1fec57bceb3ad8c39', 'date' => '21 Nov 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.12.tar.gz', 'name' => 'PHP 7.3.12 (tar.gz)', 'sha256' => 'd617e5116f8472a628083f448ebe4afdbc4ac013c9a890b08946649dcbe61b34', 'date' => '21 Nov 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.12.tar.xz', 'name' => 'PHP 7.3.12 (tar.xz)', @@ -7775,33 +7775,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.4.0' => + '7.4.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_4_0.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '28 Nov 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.4.0.tar.bz2', 'name' => 'PHP 7.4.0 (tar.bz2)', 'sha256' => 'bf206be96a39e643180013df39ddcd0493966692a2422c4b7d3355b6a15a01c0', 'date' => '28 Nov 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.4.0.tar.gz', 'name' => 'PHP 7.4.0 (tar.gz)', 'sha256' => '004a1a8176176ee1b5c112e73d705977507803f425f9e48cb4a84f42b22abf22', 'date' => '28 Nov 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.4.0.tar.xz', 'name' => 'PHP 7.4.0 (tar.xz)', @@ -7811,34 +7811,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.33' => + '7.1.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_33.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '24 Oct 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.33.tar.bz2', 'name' => 'PHP 7.1.33 (tar.bz2)', 'sha256' => '95a5e5f2e2b79b376b737a82d9682c91891e60289fa24183463a2aca158f4f4b', 'date' => '24 Oct 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.33.tar.gz', 'name' => 'PHP 7.1.33 (tar.gz)', 'sha256' => '0055f368ffefe51d5a4483755bd17475e88e74302c08b727952831c5b2682ea2', 'date' => '24 Oct 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.33.tar.xz', 'name' => 'PHP 7.1.33 (tar.xz)', @@ -7848,34 +7848,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.24' => + '7.2.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_24.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '24 Oct 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.24.tar.bz2', 'name' => 'PHP 7.2.24 (tar.bz2)', 'sha256' => 'a079934db63068bbcc9bbd2e7b916b9891fc97719862697e5f954c639984f603', 'date' => '24 Oct 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.24.tar.gz', 'name' => 'PHP 7.2.24 (tar.gz)', 'sha256' => '01baf7a34c856d2c552121fbad7296a8cde18389ce83db32f18252bc1cee4dd6', 'date' => '24 Oct 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.24.tar.xz', 'name' => 'PHP 7.2.24 (tar.xz)', @@ -7885,34 +7885,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.11' => + '7.3.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_11.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '24 Oct 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.11.tar.bz2', 'name' => 'PHP 7.3.11 (tar.bz2)', 'sha256' => '92d1ff4b13c7093635f1ec338a5e6891ca99b10e65fbcadd527e5bb84d11b5e7', 'date' => '24 Oct 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.11.tar.gz', 'name' => 'PHP 7.3.11 (tar.gz)', 'sha256' => '8f385f5bdf9193791f6c0f6303f518f3c324b6655ac108fdb3c426da7f3cf4d4', 'date' => '24 Oct 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.11.tar.xz', 'name' => 'PHP 7.3.11 (tar.xz)', @@ -7922,34 +7922,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.32' => + '7.1.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_32.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.32.tar.bz2', 'name' => 'PHP 7.1.32 (tar.bz2)', 'sha256' => 'd7c7a1adddc75ac17f63349e966db25930b6b3ce736640349bea9e10909cab7a', 'date' => '29 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.32.tar.gz', 'name' => 'PHP 7.1.32 (tar.gz)', 'sha256' => '6e51a2fc610352438b2a1c40310468a1e2b5baf2fff43be77f9f408a9111590c', 'date' => '29 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.32.tar.xz', 'name' => 'PHP 7.1.32 (tar.xz)', @@ -7959,34 +7959,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.10' => + '7.3.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_10.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '26 Sep 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.10.tar.bz2', 'name' => 'PHP 7.3.10 (tar.bz2)', 'sha256' => '506dd871c0fb8f00f872f53dd3b1dfa5f23a9edb4dfc521e5669c78a78c45448', 'date' => '26 Sep 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.10.tar.gz', 'name' => 'PHP 7.3.10 (tar.gz)', 'sha256' => 'fb670723a9b8fda31c89529f27e0dda289d8af4b6ce9f152c8010876639c0fb4', 'date' => '26 Sep 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.10.tar.xz', 'name' => 'PHP 7.3.10 (tar.xz)', @@ -7996,33 +7996,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.23' => + '7.2.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_23.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '26 Sep 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.23.tar.bz2', 'name' => 'PHP 7.2.23 (tar.bz2)', 'sha256' => 'a17af3643d29d7e730f977e3776dc3e325d5ca00b361e41dbfc2368ebad5430d', 'date' => '26 Sep 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.23.tar.gz', 'name' => 'PHP 7.2.23 (tar.gz)', 'sha256' => 'b32b426c84ff45154d6c11f00aff433bcac831a5c0a09bf0297075eefaea8fcc', 'date' => '26 Sep 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.23.tar.xz', 'name' => 'PHP 7.2.23 (tar.xz)', @@ -8032,34 +8032,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.22' => + '7.2.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_22.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.22.tar.bz2', 'name' => 'PHP 7.2.22 (tar.bz2)', 'sha256' => 'c10a9883b586ada5ef1149f2571625b27efdcc3e70a04fbb9121979633b0f08a', 'date' => '29 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.22.tar.gz', 'name' => 'PHP 7.2.22 (tar.gz)', 'sha256' => '6e2ccc77484c27971d4550b7071a57b79bc910bfb2d4a74a57ae2c18b78c3dc7', 'date' => '29 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.22.tar.xz', 'name' => 'PHP 7.2.22 (tar.xz)', @@ -8069,34 +8069,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.9' => + '7.3.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_9.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '29 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.9.tar.bz2', 'name' => 'PHP 7.3.9 (tar.bz2)', 'sha256' => 'a39c9709a8c9eb7ea8ac4933ef7a78b92f7e5735a405c8b8e42ee39541d963c4', 'date' => '29 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.9.tar.gz', 'name' => 'PHP 7.3.9 (tar.gz)', 'sha256' => '5ecc1b1ad7228ed2e99a970c45358871644fcab1d9fd079a7b129326a7bde42d', 'date' => '29 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.9.tar.xz', 'name' => 'PHP 7.3.9 (tar.xz)', @@ -8106,34 +8106,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.31' => + '7.1.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_31.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.31.tar.bz2', 'name' => 'PHP 7.1.31 (tar.bz2)', 'sha256' => '767573c2b732e78cc647602ec61fc948941a941a4071db59b522cf5e076825dd', 'date' => '01 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.31.tar.gz', 'name' => 'PHP 7.1.31 (tar.gz)', 'sha256' => 'ea0558735653b9ce63e9cea41dd8f0d0b90dba6c39d39dd9a6aad5cc58b0bdfc', 'date' => '01 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.31.tar.xz', 'name' => 'PHP 7.1.31 (tar.xz)', @@ -8143,34 +8143,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.21' => + '7.2.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_21.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.21.tar.bz2', 'name' => 'PHP 7.2.21 (tar.bz2)', 'sha256' => '343183a1be8336670171885c761d57ffcae99cbbcf1db43da7cb5565056b14ef', 'date' => '01 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.21.tar.gz', 'name' => 'PHP 7.2.21 (tar.gz)', 'sha256' => '8327682bee4a8fd2edf5bbfcc393d986b945bec433fc74458d05e766701b313c', 'date' => '01 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.21.tar.xz', 'name' => 'PHP 7.2.21 (tar.xz)', @@ -8180,34 +8180,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.8' => + '7.3.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_8.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '01 Aug 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.8.tar.bz2', 'name' => 'PHP 7.3.8 (tar.bz2)', 'sha256' => 'd566c630175d9fa84a98d3c9170ec033069e9e20c8d23dea49ae2a976b6c76f5', 'date' => '01 Aug 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.8.tar.gz', 'name' => 'PHP 7.3.8 (tar.gz)', 'sha256' => '31af3eff3337fb70733c9b02a3444c3dae662ecab20aeec7fdc3c42e22071490', 'date' => '01 Aug 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.8.tar.xz', 'name' => 'PHP 7.3.8 (tar.xz)', @@ -8217,34 +8217,34 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.1.30' => + '7.1.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_30.php', ), - 'tags' => + 'tags' => array ( 0 => 'security', ), 'date' => '30 May 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.30.tar.bz2', 'name' => 'PHP 7.1.30 (tar.bz2)', 'sha256' => '664850774fca19d2710b9aa35e9ae91214babbde9cd8d27fd3479cc97171ecb3', 'date' => '30 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.30.tar.gz', 'name' => 'PHP 7.1.30 (tar.gz)', 'sha256' => 'a604edf85d5dfc28e6ff3016dad3954c50b93db69afc42295178b4fdf42e026c', 'date' => '30 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.30.tar.xz', 'name' => 'PHP 7.1.30 (tar.xz)', @@ -8254,33 +8254,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.20' => + '7.2.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_20.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.20.tar.bz2', 'name' => 'PHP 7.2.20 (tar.bz2)', 'sha256' => '9fb829e54e54c483ae8892d1db0f7d79115cc698f2f3591a8a5e58d9410dca84', 'date' => '04 Jul 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.20.tar.gz', 'name' => 'PHP 7.2.20 (tar.gz)', 'sha256' => 'd1dbf6f299514c9aa55b2995928b798b27c21811a0447f0688993cdf36be0749', 'date' => '04 Jul 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.20.tar.xz', 'name' => 'PHP 7.2.20 (tar.xz)', @@ -8290,33 +8290,33 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.3.7' => + '7.3.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_7.php', ), - 'tags' => + 'tags' => array ( ), 'date' => '04 Jul 2019', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.7.tar.bz2', 'name' => 'PHP 7.3.7 (tar.bz2)', 'sha256' => 'c3608fa7114642725854119ccffe722f42fc7c31e5e4c00d5cb4cb1a0d16bf18', 'date' => '04 Jul 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.7.tar.gz', 'name' => 'PHP 7.3.7 (tar.gz)', 'sha256' => '4230bbc862df712b013369de94b131eddea1e5e946a8c5e286b82d441c313328', 'date' => '04 Jul 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.7.tar.xz', 'name' => 'PHP 7.3.7 (tar.xz)', @@ -8326,29 +8326,29 @@ $OLDRELEASES = array ( ), 'museum' => false, ), - '7.2.19' => + '7.2.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.19.tar.bz2', 'name' => 'PHP 7.2.19 (tar.bz2)', 'sha256' => 'ebd0b1f375fe07ed4925acc213d2f5ef76a61bd5de174e7b666b98421a90a099', 'date' => '30 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.19.tar.gz', 'name' => 'PHP 7.2.19 (tar.gz)', 'sha256' => '1cd2266a058f3224d3cba594540045542606996f026eeef96747f27f6b3d22b6', 'date' => '30 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.19.tar.xz', 'name' => 'PHP 7.2.19 (tar.xz)', @@ -8358,34 +8358,34 @@ $OLDRELEASES = array ( ), 'date' => '30 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.6' => + '7.3.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.6.tar.bz2', 'name' => 'PHP 7.3.6 (tar.bz2)', 'sha256' => '1e5ac8700154835c0910e3a814517da9b87bb4a82cc7011fea1a82096b6f6f77', 'date' => '30 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.6.tar.gz', 'name' => 'PHP 7.3.6 (tar.gz)', 'sha256' => '72fbf223ff8659a61eed08eebffb4ede0256e7a69d2151ae24affa5377b70bb8', 'date' => '30 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.6.tar.xz', 'name' => 'PHP 7.3.6 (tar.xz)', @@ -8395,34 +8395,34 @@ $OLDRELEASES = array ( ), 'date' => '30 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.29' => + '7.1.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.29.tar.bz2', 'name' => 'PHP 7.1.29 (tar.bz2)', 'sha256' => '8528d17efe82662dc740d96ddb32217f4e161a597d709f19571b0c82fbb88335', 'date' => '02 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.29.tar.gz', 'name' => 'PHP 7.1.29 (tar.gz)', 'sha256' => 'bdd0e1707100c8b87f1be516f5b95a26e3eb4114d4316eaf0663bf292ead35bb', 'date' => '02 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.29.tar.xz', 'name' => 'PHP 7.1.29 (tar.xz)', @@ -8432,34 +8432,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.18' => + '7.2.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.18.tar.bz2', 'name' => 'PHP 7.2.18 (tar.bz2)', 'sha256' => 'fa1a27b12d1173207e81e798a48d4a7f77ba897f5c5200ac0b5d62aa8b4c4b72', 'date' => '02 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.18.tar.gz', 'name' => 'PHP 7.2.18 (tar.gz)', 'sha256' => '48aeb291814f3cd3ba03c52e79e8e61896d0271fd4c228198f80a072e568f84b', 'date' => '02 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.18.tar.xz', 'name' => 'PHP 7.2.18 (tar.xz)', @@ -8469,34 +8469,34 @@ $OLDRELEASES = array ( ), 'date' => '30 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.5' => + '7.3.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.5.tar.bz2', 'name' => 'PHP 7.3.5 (tar.bz2)', 'sha256' => '4380b80ef98267c3823c3416eb05f7729ba7a33de6b3d14ec96013215d62c35e', 'date' => '02 May 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.5.tar.gz', 'name' => 'PHP 7.3.5 (tar.gz)', 'sha256' => 'c953749b7f3310a3a74f920ef698f6d1c04636d11656ac9ffb3ab10d34e30e1e', 'date' => '02 May 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.5.tar.xz', 'name' => 'PHP 7.3.5 (tar.xz)', @@ -8506,34 +8506,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.28' => + '7.1.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.28.tar.bz2', 'name' => 'PHP 7.1.28 (tar.bz2)', 'sha256' => '739e8733fe1fc5e69e6226da6dba7a31bacfd2e3871ad2c97a792638f22c54c9', 'date' => '04 Apr 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.28.tar.gz', 'name' => 'PHP 7.1.28 (tar.gz)', 'sha256' => '4df587338d4c5dfe27050c7ac72a6b7583ecaee9d3fbfc03427667a86e081999', 'date' => '04 Apr 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.28.tar.xz', 'name' => 'PHP 7.1.28 (tar.xz)', @@ -8543,34 +8543,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.17' => + '7.2.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.17.tar.bz2', 'name' => 'PHP 7.2.17 (tar.bz2)', 'sha256' => '91a811ab6f6d7acb312159cf6b0a3cffe968676fdebf042e9253245cc6094f75', 'date' => '04 Apr 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.17.tar.gz', 'name' => 'PHP 7.2.17 (tar.gz)', 'sha256' => 'e1c6c2553cdb7edbfa65b89e259690ed01b31b12d57349c90b6ed00a410f62b5', 'date' => '04 Apr 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.17.tar.xz', 'name' => 'PHP 7.2.17 (tar.xz)', @@ -8580,34 +8580,34 @@ $OLDRELEASES = array ( ), 'date' => '02 May 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.4' => + '7.3.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.4.tar.bz2', 'name' => 'PHP 7.3.4 (tar.bz2)', 'sha256' => '2e2c3d8212c83649e443b61efffbd03df4b9edd0f9c7a679081fe4cb2da12b78', 'date' => '04 Apr 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.4.tar.gz', 'name' => 'PHP 7.3.4 (tar.gz)', 'sha256' => 'dd41ecf43fe1172030f41d2581909457a0af7bd137a057c3874e0b0f3c2e8761', 'date' => '04 Apr 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.4.tar.xz', 'name' => 'PHP 7.3.4 (tar.xz)', @@ -8617,34 +8617,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Apr 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.27' => + '7.1.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.27.tar.bz2', 'name' => 'PHP 7.1.27 (tar.bz2)', 'sha256' => 'dad7ecd30941911528e471c555a01911a68aa9219696bfc1e005f8b669f4ec4b', 'date' => '07 Mar 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.27.tar.gz', 'name' => 'PHP 7.1.27 (tar.gz)', 'sha256' => '353b9ed341048388cc95e6fa6dab587eee44a3d4d297989aa297936090864357', 'date' => '07 Mar 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.27.tar.xz', 'name' => 'PHP 7.1.27 (tar.xz)', @@ -8654,34 +8654,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Mar 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.16' => + '7.2.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.16.tar.bz2', 'name' => 'PHP 7.2.16 (tar.bz2)', 'sha256' => '2c0ad10053d58694cd14323248ecd6d9ba71d2733d160973c356ad01d09e7f38', 'date' => '07 Mar 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.16.tar.gz', 'name' => 'PHP 7.2.16 (tar.gz)', 'sha256' => 'fb95e0bb69caba1dfd3bbac4eeef7a0485e5ea3d6191d35ad5657e18243aa02d', 'date' => '07 Mar 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.16.tar.xz', 'name' => 'PHP 7.2.16 (tar.xz)', @@ -8691,34 +8691,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Apr 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.3' => + '7.3.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.3.tar.bz2', 'name' => 'PHP 7.3.3 (tar.bz2)', 'sha256' => '61969e943adfea79701a34b8e701edd3f95be829d16601a4aabeb05f83023ce6', 'date' => '07 Mar 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.3.tar.gz', 'name' => 'PHP 7.3.3 (tar.gz)', 'sha256' => '9bde40cbf8608ae9c595a6643a02cf0c692c131e2b3619af3fd2af8425d8e677', 'date' => '07 Mar 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.3.tar.xz', 'name' => 'PHP 7.3.3 (tar.xz)', @@ -8728,34 +8728,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Mar 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.26' => + '7.1.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.26.tar.bz2', 'name' => 'PHP 7.1.26 (tar.bz2)', 'sha256' => '5b351ca86bc7e4600778aaf1d61ab9e4e38864efa86ab4cc4d5b02ea7f542ae6', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.26.tar.gz', 'name' => 'PHP 7.1.26 (tar.gz)', 'sha256' => '069315d3c3f964fd165bbbb3c2fc56005813e2cf97bed05055318dcc4e775328', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.26.tar.xz', 'name' => 'PHP 7.1.26 (tar.xz)', @@ -8765,34 +8765,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Jan 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.15' => + '7.2.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.15.tar.bz2', 'name' => 'PHP 7.2.15 (tar.bz2)', 'sha256' => 'c93e7616946a463911818c7e9f9e21276c7793fb8c7cb15877188dd0546d0554', 'date' => '07 Feb 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.15.tar.gz', 'name' => 'PHP 7.2.15 (tar.gz)', 'sha256' => '9b13bde9f5a32d6f6bdb8b911bb55bb818d0c4073538f8dc48aa2deb560f55a3', 'date' => '07 Feb 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.15.tar.xz', 'name' => 'PHP 7.2.15 (tar.xz)', @@ -8803,29 +8803,29 @@ $OLDRELEASES = array ( 'date' => '07 Mar 2019', 'museum' => false, ), - '7.3.2' => + '7.3.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.2.tar.bz2', 'name' => 'PHP 7.3.2 (tar.bz2)', 'sha256' => '946f50dacbd2f61e643bb737021cbe8b1816e780ee7ad3e0cd999a1892ab0add', 'date' => '07 Feb 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.2.tar.gz', 'name' => 'PHP 7.3.2 (tar.gz)', 'sha256' => '4597294b00edc1c63a021b6c7838eb43384f62eeb9e392f0b91c38a3c090f499', 'date' => '07 Feb 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.2.tar.xz', 'name' => 'PHP 7.3.2 (tar.xz)', @@ -8836,29 +8836,29 @@ $OLDRELEASES = array ( 'date' => '07 Feb 2019', 'museum' => false, ), - '7.2.14' => + '7.2.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.14.tar.bz2', 'name' => 'PHP 7.2.14 (tar.bz2)', 'sha256' => 'f56132d248c7bf1e0efc8a680a4b598d6ff73fc6b9c84b5d7b539ad8db7a6597', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.14.tar.gz', 'name' => 'PHP 7.2.14 (tar.gz)', 'sha256' => '87e13d80b0c3a66bd463d1cb47dc101335884a0d192ab924f547f8aed7f70c08', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.14.tar.xz', 'name' => 'PHP 7.2.14 (tar.xz)', @@ -8868,34 +8868,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Feb 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.1' => + '7.3.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.1.tar.bz2', 'name' => 'PHP 7.3.1 (tar.bz2)', 'sha256' => 'afef2b0cd7f2641274a1a0aabe67e30f2334970d7c530382dfa9d79cfe74388e', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.1.tar.gz', 'name' => 'PHP 7.3.1 (tar.gz)', 'sha256' => '8006211f7a041dde22fffedc416d142e0ebf22066014077ca936d7e6f655ead5', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.1.tar.xz', 'name' => 'PHP 7.3.1 (tar.xz)', @@ -8905,34 +8905,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Jan 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.33' => + '7.0.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.33.tar.bz2', 'name' => 'PHP 7.0.33 (tar.bz2)', 'sha256' => '4933ea74298a1ba046b0246fe3771415c84dfb878396201b56cb5333abe86f07', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.33.tar.gz', 'name' => 'PHP 7.0.33 (tar.gz)', 'sha256' => 'd71a6ecb6b13dc53fed7532a7f8f949c4044806f067502f8fb6f9facbb40452a', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.33.tar.xz', 'name' => 'PHP 7.0.33 (tar.xz)', @@ -8942,34 +8942,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Jan 2019', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.25' => + '7.1.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.25.tar.bz2', 'name' => 'PHP 7.1.25 (tar.bz2)', 'sha256' => '002cdc880ac7cfaede2c389204d366108847db0f3ac72edf1ba95c0577f9aaac', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.25.tar.gz', 'name' => 'PHP 7.1.25 (tar.gz)', 'sha256' => '7dc40e202140e8b4fb3d992c15a68d98dc06b805e6b218497d260abbe51f5958', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.25.tar.xz', 'name' => 'PHP 7.1.25 (tar.xz)', @@ -8979,34 +8979,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Dec 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.3.0' => + '7.3.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_3_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.3.0.tar.bz2', 'name' => 'PHP 7.3.0 (tar.bz2)', 'sha256' => '7a267daec9969a997c5c8028c350229646748e0fcc71e2f2dbb157ddcee87c67', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.3.0.tar.gz', 'name' => 'PHP 7.3.0 (tar.gz)', 'sha256' => '391bd0f91d9bdd01ab47ef9607bad8c65e35bc9bb098fb7777b2556e2c847b11', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.3.0.tar.xz', 'name' => 'PHP 7.3.0 (tar.xz)', @@ -9017,29 +9017,29 @@ $OLDRELEASES = array ( 'date' => '06 Dec 2018', 'museum' => false, ), - '7.2.13' => + '7.2.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.13.tar.bz2', 'name' => 'PHP 7.2.13 (tar.bz2)', 'sha256' => '5b4a46fb76491bcd3eee1213773382e570f6ecf9b22d623b24e2822298b3e92d', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.13.tar.gz', 'name' => 'PHP 7.2.13 (tar.gz)', 'sha256' => 'e563cee406b1ec96649c22ed2b35796cfe4e9aa9afa6eab6be4cf2fe5d724744', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.13.tar.xz', 'name' => 'PHP 7.2.13 (tar.xz)', @@ -9049,34 +9049,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Dec 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.32' => + '7.0.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.32.tar.bz2', 'name' => 'PHP 7.0.32 (tar.bz2)', 'sha256' => '56e8d8cf9c08178afa8663589805f83bdb01634efd98131977038e24066492e1', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.32.tar.gz', 'name' => 'PHP 7.0.32 (tar.gz)', 'sha256' => '08d13389f611ec55f3b9164347a97e410099238a3dd85946e556a288ce366fbe', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.32.tar.xz', 'name' => 'PHP 7.0.32 (tar.xz)', @@ -9086,34 +9086,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Sep 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.24' => + '7.1.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.24.tar.bz2', 'name' => 'PHP 7.1.24 (tar.bz2)', 'sha256' => '66de24e73c7f6006f090c1b187d6b218c8fa6a513acca4ff5c14b695a7391e0b', 'date' => '08 Nov 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.24.tar.gz', 'name' => 'PHP 7.1.24 (tar.gz)', 'sha256' => '1e780b1af3eeb8fba9e5af6205c960184a0c3a0ef091aaa192e7b7d6b67405d0', 'date' => '08 Nov 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.24.tar.xz', 'name' => 'PHP 7.1.24 (tar.xz)', @@ -9124,29 +9124,29 @@ $OLDRELEASES = array ( 'date' => '08 Nov 2018', 'museum' => false, ), - '7.2.12' => + '7.2.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.12.tar.bz2', 'name' => 'PHP 7.2.12 (tar.bz2)', 'sha256' => 'b724c4c20347b6105be109d98cc395a610174e8aadb506c82e8cb645b65ef6b6', 'date' => '08 Nov 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.12.tar.gz', 'name' => 'PHP 7.2.12 (tar.gz)', 'sha256' => 'd7cabdf4e51db38121daf0d494dc074743b24b6c79e592037eeedd731f1719dd', 'date' => '08 Nov 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.12.tar.xz', 'name' => 'PHP 7.2.12 (tar.xz)', @@ -9157,29 +9157,29 @@ $OLDRELEASES = array ( 'date' => '08 Nov 2018', 'museum' => false, ), - '7.1.23' => + '7.1.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.23.tar.bz2', 'name' => 'PHP 7.1.23 (tar.bz2)', 'sha256' => '2d79aa86d8f0faa760a712a1d7be50b57838a9770c1dff34020876630c2ecc4b', 'date' => '11 Oct 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.23.tar.gz', 'name' => 'PHP 7.1.23 (tar.gz)', 'sha256' => 'b839a4de32e6770d10b87c2495c070d09277fe61008804b2992466f0dcc5f0fa', 'date' => '11 Oct 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.23.tar.xz', 'name' => 'PHP 7.1.23 (tar.xz)', @@ -9190,29 +9190,29 @@ $OLDRELEASES = array ( 'date' => '11 Oct 2018', 'museum' => false, ), - '7.2.11' => + '7.2.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.11.tar.bz2', 'name' => 'PHP 7.2.11 (tar.bz2)', 'sha256' => '4a0d7f402d07966b37a600796283f4ca4079d955d96d5bec024dd02009d8b4c5', 'date' => '11 Oct 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.11.tar.gz', 'name' => 'PHP 7.2.11 (tar.gz)', 'sha256' => '180c63a9647c0a50d438b6bd5c7a8e7a11bceee8ad613a59d3ef15151fc158d4', 'date' => '11 Oct 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.11.tar.xz', 'name' => 'PHP 7.2.11 (tar.xz)', @@ -9223,29 +9223,29 @@ $OLDRELEASES = array ( 'date' => '11 Oct 2018', 'museum' => false, ), - '7.1.22' => + '7.1.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.22.tar.bz2', 'name' => 'PHP 7.1.22 (tar.bz2)', 'sha256' => 'c8e91f19c8aa810ae95f228ff31cf0e4805cb89f4c10870ee12c85491b26e763', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.22.tar.gz', 'name' => 'PHP 7.1.22 (tar.gz)', 'sha256' => '1d275115593a33315647094a5a4ee9bd73c7960c08686cee35dc2e683a68b157', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.22.tar.xz', 'name' => 'PHP 7.1.22 (tar.xz)', @@ -9255,34 +9255,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Sep 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.10' => + '7.2.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.10.tar.bz2', 'name' => 'PHP 7.2.10 (tar.bz2)', 'sha256' => '01b6129a0921a1636b07da9bc598a876669e45a462cef4b5844fc26862dbda9d', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.10.tar.gz', 'name' => 'PHP 7.2.10 (tar.gz)', 'sha256' => 'd2d908b49b6005e65dcc46cdc986603a19b7ff103119fce8ddd4648586d430a4', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.10.tar.xz', 'name' => 'PHP 7.2.10 (tar.xz)', @@ -9292,34 +9292,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Sep 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.21' => + '7.1.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.21.tar.bz2', 'name' => 'PHP 7.1.21 (tar.bz2)', 'sha256' => 'c2409c574bde23763b48a96b93922f530156df044585ff60108bce7b27b19580', 'date' => '17 Aug 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.21.tar.gz', 'name' => 'PHP 7.1.21 (tar.gz)', 'sha256' => '4b448ba9b3c81b88543c1e1fbef465391fecd64d7f19a744df26e9923295dd00', 'date' => '17 Aug 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.21.tar.xz', 'name' => 'PHP 7.1.21 (tar.xz)', @@ -9330,29 +9330,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2018', 'museum' => false, ), - '7.0.31' => + '7.0.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.31.tar.bz2', 'name' => 'PHP 7.0.31 (tar.bz2)', 'sha256' => '7e8bd73eced6e679a179d39571e8fee6c83e51c86f43338f65c2dc88c1106b91', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.31.tar.gz', 'name' => 'PHP 7.0.31 (tar.gz)', 'sha256' => '182f36e5709837158bd4970ce57fe80735bdf79025133c00d6ad882d1c4d98dd', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.31.tar.xz', 'name' => 'PHP 7.0.31 (tar.xz)', @@ -9362,34 +9362,34 @@ $OLDRELEASES = array ( ), 'date' => '19 Jul 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.9' => + '7.2.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.9.tar.bz2', 'name' => 'PHP 7.2.9 (tar.bz2)', 'sha256' => 'e9e3aaa6c317b7fea78246a758b017544366049d2789ad5a44fe9398464c53a8', 'date' => '16 Aug 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.9.tar.gz', 'name' => 'PHP 7.2.9 (tar.gz)', 'sha256' => '23fcc1e4d10e06ddfdbc1163a8f0d147a7813467273f7946eb0de1b825d1d3e6', 'date' => '16 Aug 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.9.tar.xz', 'name' => 'PHP 7.2.9 (tar.xz)', @@ -9400,29 +9400,29 @@ $OLDRELEASES = array ( 'date' => '16 Aug 2018', 'museum' => false, ), - '7.1.20' => + '7.1.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.20.tar.bz2', 'name' => 'PHP 7.1.20 (tar.bz2)', 'sha256' => '3a1b476c88fb81254ea572e891a1d65053ab54068348e00c75e8b54fae691d45', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.20.tar.gz', 'name' => 'PHP 7.1.20 (tar.gz)', 'sha256' => '77a2091f4ab50367a6c68274a0d92e0da9ecdbf428b280c9836c5c6d512da450', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.20.tar.xz', 'name' => 'PHP 7.1.20 (tar.xz)', @@ -9432,34 +9432,34 @@ $OLDRELEASES = array ( ), 'date' => '16 Aug 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.8' => + '7.2.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.8.tar.bz2', 'name' => 'PHP 7.2.8 (tar.bz2)', 'sha256' => '1f8068f520a60fff3db19be1b849f0c02a33a0fd8b34b7ae05556ef682187ee6', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.8.tar.gz', 'name' => 'PHP 7.2.8 (tar.gz)', 'sha256' => 'a0cb9bf2f78498fc090eb553df03cdacc198785dec0818efa7a1804c2b7a8722', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.8.tar.xz', 'name' => 'PHP 7.2.8 (tar.xz)', @@ -9469,34 +9469,34 @@ $OLDRELEASES = array ( ), 'date' => '19 Jul 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.19' => + '7.1.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.19.tar.bz2', 'name' => 'PHP 7.1.19 (tar.bz2)', 'sha256' => '13c43e7be3040ad53f192b0770c7ed99e5b3e348dfc6674666179d557fd770f3', 'date' => '21 Jun 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.19.tar.gz', 'name' => 'PHP 7.1.19 (tar.gz)', 'sha256' => 'e1ae477b72bed02cdcb04f0157b8f8767bd4f6030416ae06408b4f6d85ee66a1', 'date' => '21 Jun 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.19.tar.xz', 'name' => 'PHP 7.1.19 (tar.xz)', @@ -9507,29 +9507,29 @@ $OLDRELEASES = array ( 'date' => '21 Jun 2018', 'museum' => false, ), - '7.0.30' => + '7.0.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.30.tar.bz2', 'name' => 'PHP 7.0.30 (tar.bz2)', 'sha256' => '213f38400c239b8fab2f6f59d6f4d4bd463d0a75bd4edf723dd4d5fea8850b50', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.30.tar.gz', 'name' => 'PHP 7.0.30 (tar.gz)', 'sha256' => '54e7615205123b940b996300bf99c707c2317b6b78388061a204b23ab3388a26', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.30.tar.xz', 'name' => 'PHP 7.0.30 (tar.xz)', @@ -9539,34 +9539,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Apr 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.7' => + '7.2.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.7.tar.bz2', 'name' => 'PHP 7.2.7 (tar.bz2)', 'sha256' => 'cc81675a96af4dd18d8ffc02f26a36c622abadf86af7ecfea7bcde8d3c96d5a3', 'date' => '21 Jun 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.7.tar.gz', 'name' => 'PHP 7.2.7 (tar.gz)', 'sha256' => '014f0560cfa22e6301b0024a6fd888c3612a0dc102ff355fa2b49544d16d43b1', 'date' => '21 Jun 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.7.tar.xz', 'name' => 'PHP 7.2.7 (tar.xz)', @@ -9577,29 +9577,29 @@ $OLDRELEASES = array ( 'date' => '21 Jun 2018', 'museum' => false, ), - '7.1.18' => + '7.1.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.18.tar.bz2', 'name' => 'PHP 7.1.18 (tar.bz2)', 'sha256' => '580e375515ede831a6d82e13c0ec25dd08b225c6d87dfc24d7cd5f3bd542bf8e', 'date' => '24 May 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.18.tar.gz', 'name' => 'PHP 7.1.18 (tar.gz)', 'sha256' => '07c24ae4dd59d81d3dc0ce89025ae667979150e2ee0e9e30dd89e04e31d510fb', 'date' => '24 May 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.18.tar.xz', 'name' => 'PHP 7.1.18 (tar.xz)', @@ -9610,29 +9610,29 @@ $OLDRELEASES = array ( 'date' => '24 May 2018', 'museum' => false, ), - '7.2.6' => + '7.2.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.6.tar.bz2', 'name' => 'PHP 7.2.6 (tar.bz2)', 'sha256' => 'ae5d3e8ada80b9d293d0c8bd643d07c2d988538ff1052a3f7144c6b0cd0ff2c3', 'date' => '24 May 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.6.tar.gz', 'name' => 'PHP 7.2.6 (tar.gz)', 'sha256' => 'a9f30daf6af82ac02e692465cfd65b04a60d56106c961926e264d2621d313f0e', 'date' => '24 May 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.6.tar.xz', 'name' => 'PHP 7.2.6 (tar.xz)', @@ -9643,29 +9643,29 @@ $OLDRELEASES = array ( 'date' => '24 May 2018', 'museum' => false, ), - '7.1.17' => + '7.1.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.17.tar.bz2', 'name' => 'PHP 7.1.17 (tar.bz2)', 'sha256' => 'e124e3ac552c50f3890ed981d07b2ee473cac961885e75186ded0bbb5b78dbcf', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.17.tar.gz', 'name' => 'PHP 7.1.17 (tar.gz)', 'sha256' => 'aba44265bf814a020282afa63321323e1f81da61bd7318ab2b941857a15cb144', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.17.tar.xz', 'name' => 'PHP 7.1.17 (tar.xz)', @@ -9675,34 +9675,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Apr 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.5' => + '7.2.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.5.tar.bz2', 'name' => 'PHP 7.2.5 (tar.bz2)', 'sha256' => 'f3820efa8efa79628b6e1b5b2f8c1b04c08d32e6721fa1654039ce5f89796031', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.5.tar.gz', 'name' => 'PHP 7.2.5 (tar.gz)', 'sha256' => 'c198aedd4cd16db0803e0ef955036722a1f4ce9ad3827546709fac05f1567ba5', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.5.tar.xz', 'name' => 'PHP 7.2.5 (tar.xz)', @@ -9712,34 +9712,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Apr 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.16' => + '7.1.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.16.tar.bz2', 'name' => 'PHP 7.1.16 (tar.bz2)', 'sha256' => '348e2af9c7c0f327a57a972674078777dfde189e2598acbcb8618b9645b0e7e5', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.16.tar.gz', 'name' => 'PHP 7.1.16 (tar.gz)', 'sha256' => 'c8e6fed5b350b29a5b9eaa9fce7c5e8618629346e9a58212f3dc380046065442', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.16.tar.xz', 'name' => 'PHP 7.1.16 (tar.xz)', @@ -9749,34 +9749,34 @@ $OLDRELEASES = array ( ), 'date' => '29 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.29' => + '7.0.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.29.tar.bz2', 'name' => 'PHP 7.0.29 (tar.bz2)', 'sha256' => '989142d5c5ff7a11431254f9c1995235bad61a3364b99c966e11e06aa10d3fbc', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.29.tar.gz', 'name' => 'PHP 7.0.29 (tar.gz)', 'sha256' => '5efe45e345f967cb20f9ff92cd514753872a65feffea1bf311c71864344bd8e8', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.29.tar.xz', 'name' => 'PHP 7.0.29 (tar.xz)', @@ -9786,34 +9786,34 @@ $OLDRELEASES = array ( ), 'date' => '29 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.4' => + '7.2.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.4.tar.bz2', 'name' => 'PHP 7.2.4 (tar.bz2)', 'sha256' => '11658a0d764dc94023b9fb60d4b5eb75d438ad17981efe70abb0d0d09a447ef3', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.4.tar.gz', 'name' => 'PHP 7.2.4 (tar.gz)', 'sha256' => '58e28e978baea0fe9009432bcb436934eaacccfdcb5f5409c7526431a595857b', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.4.tar.xz', 'name' => 'PHP 7.2.4 (tar.xz)', @@ -9823,34 +9823,34 @@ $OLDRELEASES = array ( ), 'date' => '29 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.15' => + '7.1.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.15.tar.bz2', 'name' => 'PHP 7.1.15 (tar.bz2)', 'sha256' => 'e117a54738e9485de5fc75673d39dbe937dd87f0f9cc9e281960ef9b961adcbd', 'date' => '1 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.15.tar.gz', 'name' => 'PHP 7.1.15 (tar.gz)', 'sha256' => '0669c68a52cbd2f1cfa83354918ed03b0bcaa34ed9bafaee7dfd343461b881d4', 'date' => '1 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.15.tar.xz', 'name' => 'PHP 7.1.15 (tar.xz)', @@ -9860,34 +9860,34 @@ $OLDRELEASES = array ( ), 'date' => '1 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.3' => + '7.2.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.3.tar.bz2', 'name' => 'PHP 7.2.3 (tar.bz2)', 'sha256' => '4a735aac0ba764dd8208ea29007d3916396c5292e003ba8d3bec49edcdd5bf92', 'date' => '1 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.3.tar.gz', 'name' => 'PHP 7.2.3 (tar.gz)', 'sha256' => '5dc98f2266db40c5e4d9b5edf5e29e2449e819fff8321a07eb3830cf0b104bbb', 'date' => '1 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.3.tar.xz', 'name' => 'PHP 7.2.3 (tar.xz)', @@ -9897,34 +9897,34 @@ $OLDRELEASES = array ( ), 'date' => '1 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.28' => + '7.0.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.28.tar.bz2', 'name' => 'PHP 7.0.28 (tar.bz2)', 'sha256' => 'ae5491b4613f3710e3d09e688ba3d30d3acc1112c7b96a8703663b8a95063c7f', 'date' => '01 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.28.tar.gz', 'name' => 'PHP 7.0.28 (tar.gz)', 'sha256' => 'cd2fd94feb0d5809ffb9d900138643fa74e70656436e5f2595b03239dd97aa9c', 'date' => '01 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.28.tar.xz', 'name' => 'PHP 7.0.28 (tar.xz)', @@ -9934,34 +9934,34 @@ $OLDRELEASES = array ( ), 'date' => '01 Mar 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.14' => + '7.1.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.14.tar.bz2', 'name' => 'PHP 7.1.14 (tar.bz2)', 'sha256' => '63b2fd139ed7656756b0fa290bc42f8fff854723c3d2710a700e646370c581f4', 'date' => '1 Feb 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.14.tar.gz', 'name' => 'PHP 7.1.14 (tar.gz)', 'sha256' => '8c7360209d255ee46d388bdcd43ef1a2d14b370c331be30ea628ece18a1e7683', 'date' => '1 Feb 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.14.tar.xz', 'name' => 'PHP 7.1.14 (tar.xz)', @@ -9972,29 +9972,29 @@ $OLDRELEASES = array ( 'date' => '1 Feb 2018', 'museum' => false, ), - '7.2.2' => + '7.2.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.2.tar.bz2', 'name' => 'PHP 7.2.2 (tar.bz2)', 'sha256' => 'f841ac58e17471f2241ea892b34edb01dc9b93ad9f661ffe4e3f1f476a8f4aee', 'date' => '1 Feb 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.2.tar.gz', 'name' => 'PHP 7.2.2 (tar.gz)', 'sha256' => '5963df05fec21927c03fe9f7bf379be2d1eacde6c0f9dcde6143c7133e55abd4', 'date' => '1 Feb 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.2.tar.xz', 'name' => 'PHP 7.2.2 (tar.xz)', @@ -10005,29 +10005,29 @@ $OLDRELEASES = array ( 'date' => '1 Feb 2018', 'museum' => false, ), - '7.0.27' => + '7.0.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.27.tar.bz2', 'name' => 'PHP 7.0.27 (tar.bz2)', 'sha256' => '99fa2563bb4c4c1cde9febe87cfe97324227d7b4b8828f2e936e507127394131', 'date' => '04 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.27.tar.gz', 'name' => 'PHP 7.0.27 (tar.gz)', 'sha256' => '809c0181e970dd17c6a6cabbf64518e719c7253e7490f8e1279bc1e1fbdf7996', 'date' => '04 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.27.tar.xz', 'name' => 'PHP 7.0.27 (tar.xz)', @@ -10037,34 +10037,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Jan 2018', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.2.1' => + '7.2.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.1.tar.bz2', 'name' => 'PHP 7.2.1 (tar.bz2)', 'sha256' => 'fe06793f268a4dd29cbc5f4ef415f01e786877152b02221ad7d18dbb6864eb79', 'date' => '4 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.1.tar.gz', 'name' => 'PHP 7.2.1 (tar.gz)', 'sha256' => '8ecb2950571054a00687ccbd023874a4a075ccd1e2ec3dc00fc25ef589a77dba', 'date' => '4 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.1.tar.xz', 'name' => 'PHP 7.2.1 (tar.xz)', @@ -10075,29 +10075,29 @@ $OLDRELEASES = array ( 'date' => '4 Jan 2018', 'museum' => false, ), - '7.1.13' => + '7.1.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.13.tar.bz2', 'name' => 'PHP 7.1.13 (tar.bz2)', 'sha256' => '35fda51d2d44600940185fd5818d336a79e77ab3c98e2bd075091f2f91cf98a1', 'date' => '4 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.13.tar.gz', 'name' => 'PHP 7.1.13 (tar.gz)', 'sha256' => '12fcbf59c9eb9af215ef38815d5da39b9d74549092c34b0dfc31442699740ce9', 'date' => '4 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.13.tar.xz', 'name' => 'PHP 7.1.13 (tar.xz)', @@ -10108,29 +10108,29 @@ $OLDRELEASES = array ( 'date' => '4 Jan 2018', 'museum' => false, ), - '7.2.0' => + '7.2.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_2_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.2.0.tar.bz2', 'name' => 'PHP 7.2.0 (tar.bz2)', 'sha256' => '2bfefae4226b9b97879c9d33078e50bdb5c17f45ff6e255951062a529720c64a', 'date' => '30 Nov 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.2.0.tar.gz', 'name' => 'PHP 7.2.0 (tar.gz)', 'sha256' => '801876abd52e0dc58a44701344252035fd50702d8f510cda7fdb317ab79897bc', 'date' => '30 Nov 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.2.0.tar.xz', 'name' => 'PHP 7.2.0 (tar.xz)', @@ -10141,29 +10141,29 @@ $OLDRELEASES = array ( 'date' => '30 Nov 2017', 'museum' => false, ), - '7.1.12' => + '7.1.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.12.tar.bz2', 'name' => 'PHP 7.1.12 (tar.bz2)', 'sha256' => 'f9ce3361ab99dce8f3f2fba663695ac9b18a3579bc8014dc280368d1577d87c4', 'date' => '23 Nov 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.12.tar.gz', 'name' => 'PHP 7.1.12 (tar.gz)', 'sha256' => '188c67d8e424ce7a6fe93475aa64f53182c1d80ca3ac99439651ca91569d969c', 'date' => '23 Nov 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.12.tar.xz', 'name' => 'PHP 7.1.12 (tar.xz)', @@ -10174,29 +10174,29 @@ $OLDRELEASES = array ( 'date' => '23 Nov 2017', 'museum' => false, ), - '7.0.26' => + '7.0.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.26.tar.bz2', 'name' => 'PHP 7.0.26 (tar.bz2)', 'sha256' => '2590d722f7b23b6a903c5a00cf04e7ee728df79d10ae473e3a81ba41588509a7', 'date' => '23 Nov 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.26.tar.gz', 'name' => 'PHP 7.0.26 (tar.gz)', 'sha256' => '04c345f7c9e3f1cd02f275bfec893a4e0290e724073f2f3d7282a219128b537c', 'date' => '23 Nov 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.26.tar.xz', 'name' => 'PHP 7.0.26 (tar.xz)', @@ -10207,29 +10207,29 @@ $OLDRELEASES = array ( 'date' => '23 Nov 2017', 'museum' => false, ), - '7.1.11' => + '7.1.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.11.tar.bz2', 'name' => 'PHP 7.1.11 (tar.bz2)', 'sha256' => '7646d7de701fc969e3305eeeb2eddda3d46af6a88ee20ef4a47270c447228573', 'date' => '26 Oct 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.11.tar.gz', 'name' => 'PHP 7.1.11 (tar.gz)', 'sha256' => 'de41b2c166bc5ec8ea96a337d4dd675c794f7b115a8a47bb04595c03dbbdf425', 'date' => '26 Oct 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.11.tar.xz', 'name' => 'PHP 7.1.11 (tar.xz)', @@ -10240,29 +10240,29 @@ $OLDRELEASES = array ( 'date' => '26 Oct 2017', 'museum' => false, ), - '7.0.25' => + '7.0.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.25.tar.bz2', 'name' => 'PHP 7.0.25 (tar.bz2)', 'sha256' => '95a24d96d126a196e1550e394182b43a6460cdd2026f1a77bef01e422415cc25', 'date' => '26 Oct 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.25.tar.gz', 'name' => 'PHP 7.0.25 (tar.gz)', 'sha256' => '081b46bf588d38c636fd6cd1dab8855b6b3e171550d1e65f770f53aede594ee7', 'date' => '26 Oct 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.25.tar.xz', 'name' => 'PHP 7.0.25 (tar.xz)', @@ -10272,34 +10272,34 @@ $OLDRELEASES = array ( ), 'date' => '26 Oct 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.10' => + '7.1.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.10.tar.bz2', 'name' => 'PHP 7.1.10 (tar.bz2)', 'sha256' => '0ee51b9b1ae7eca3e9558f772ce20cbacd1f76420009b3af630c87027f9a41af', 'date' => '28 Sep 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.10.tar.gz', 'name' => 'PHP 7.1.10 (tar.gz)', 'sha256' => 'edc6a7c3fe89419525ce51969c5f48610e53613235bbef255c3a4db33b458083', 'date' => '28 Sep 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.10.tar.xz', 'name' => 'PHP 7.1.10 (tar.xz)', @@ -10310,29 +10310,29 @@ $OLDRELEASES = array ( 'date' => '28 Sep 2017', 'museum' => false, ), - '7.0.24' => + '7.0.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.24.tar.bz2', 'name' => 'PHP 7.0.24 (tar.bz2)', 'sha256' => '9bf91982694f178821c0aaf03563a20494873ece6933e2eeecfd76f325bdcf19', 'date' => '28 Sep 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.24.tar.gz', 'name' => 'PHP 7.0.24 (tar.gz)', 'sha256' => '151015b578c14a4ab47d1e5894b36c85cf5655237599b805a08d106fe18a8c8e', 'date' => '28 Sep 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.24.tar.xz', 'name' => 'PHP 7.0.24 (tar.xz)', @@ -10343,29 +10343,29 @@ $OLDRELEASES = array ( 'date' => '28 Sep 2017', 'museum' => false, ), - '7.1.9' => + '7.1.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.9.tar.bz2', 'name' => 'PHP 7.1.9 (tar.bz2)', 'sha256' => '314dcc10dfdd7c4443edb4fe1e133a44f2b2a8351be8c9eb6ab9222d45fd9bae', 'date' => '31 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.9.tar.gz', 'name' => 'PHP 7.1.9 (tar.gz)', 'sha256' => '499c31ad19b2ff553ae686ebf53749aa2351af7d955ee9f1986f144089561a4b', 'date' => '31 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.9.tar.xz', 'name' => 'PHP 7.1.9 (tar.xz)', @@ -10376,29 +10376,29 @@ $OLDRELEASES = array ( 'date' => '31 Aug 2017', 'museum' => false, ), - '7.0.23' => + '7.0.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.23.tar.bz2', 'name' => 'PHP 7.0.23 (tar.bz2)', 'sha256' => '6fe94cefc7d2c60ee2c1648b977beed756ad9cd0a7e4ea8bb8cf521d9355a09c', 'date' => '31 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.23.tar.gz', 'name' => 'PHP 7.0.23 (tar.gz)', 'sha256' => 'd511089ecaf386f3ab752efba76558c03558afa6b5b3fe71d84881c76644b466', 'date' => '31 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.23.tar.xz', 'name' => 'PHP 7.0.23 (tar.xz)', @@ -10409,29 +10409,29 @@ $OLDRELEASES = array ( 'date' => '31 Aug 2017', 'museum' => false, ), - '7.1.8' => + '7.1.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.8.tar.bz2', 'name' => 'PHP 7.1.8 (tar.bz2)', 'sha256' => '7064a00a9450565190890c7a4be04e646e0be73b2e0f8c46ae34419f343ca2f8', 'date' => '03 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.8.tar.gz', 'name' => 'PHP 7.1.8 (tar.gz)', 'sha256' => '63517b3264f7cb17fb58e1ce60a6cd8903160239b7cf568d52024e9cf4d6cb04', 'date' => '03 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.8.tar.xz', 'name' => 'PHP 7.1.8 (tar.xz)', @@ -10442,29 +10442,29 @@ $OLDRELEASES = array ( 'date' => '03 Aug 2017', 'museum' => false, ), - '7.0.22' => + '7.0.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.22.tar.bz2', 'name' => 'PHP 7.0.22 (tar.bz2)', 'sha256' => '88e0b27f69abdd12ecde81f000c5a9ea479af7218456ea7f6557edb43c6dfdde', 'date' => '03 Aug 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.22.tar.gz', 'name' => 'PHP 7.0.22 (tar.gz)', 'sha256' => '04292eaea0eeb75e9b6a36a3db8e90a3d43f939646fd9d7d1e083e5b70884383', 'date' => '03 Aug 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.22.tar.xz', 'name' => 'PHP 7.0.22 (tar.xz)', @@ -10475,29 +10475,29 @@ $OLDRELEASES = array ( 'date' => '03 Aug 2017', 'museum' => false, ), - '7.1.7' => + '7.1.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.7.tar.bz2', 'name' => 'PHP 7.1.7 (tar.bz2)', 'sha256' => '079b6792987f38dc485f92258c04f9e02dedd593f9d260ebe725343f812d1ff8', 'date' => '06 Jul 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.7.tar.gz', 'name' => 'PHP 7.1.7 (tar.gz)', 'sha256' => 'e0dbab8da601ee5119368d6f93dc1a86ad53b799d2f8c1209d6b827a2b259f92', 'date' => '06 Jul 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.7.tar.xz', 'name' => 'PHP 7.1.7 (tar.xz)', @@ -10507,34 +10507,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Jul 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.21' => + '7.0.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.21.tar.bz2', 'name' => 'PHP 7.0.21 (tar.bz2)', 'sha256' => '2ba133c392de6f86aacced8c54e0adefd1c81d3840ac323b9926b8ed3dc6231f', 'date' => '06 Jul 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.21.tar.gz', 'name' => 'PHP 7.0.21 (tar.gz)', 'sha256' => 'f2f05f629dd02c75834ddf033916bd5ff92a720602839d81fd8b6d90e37b6225', 'date' => '06 Jul 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.21.tar.xz', 'name' => 'PHP 7.0.21 (tar.xz)', @@ -10544,34 +10544,34 @@ $OLDRELEASES = array ( ), 'date' => '06 Jul 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.6' => + '7.1.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.6.tar.bz2', 'name' => 'PHP 7.1.6 (tar.bz2)', 'sha256' => '6e3576ca77672a18461a4b089c5790647f1b2c19f82e4f5e94c962609aabffcf', 'date' => '08 Jun 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.6.tar.gz', 'name' => 'PHP 7.1.6 (tar.gz)', 'sha256' => '7ff8c01af791c7e499ee77e1b82e4b1d56e379efe1f706b1203d48751481fd9f', 'date' => '08 Jun 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.6.tar.xz', 'name' => 'PHP 7.1.6 (tar.xz)', @@ -10582,29 +10582,29 @@ $OLDRELEASES = array ( 'date' => '08 Jun 2017', 'museum' => false, ), - '7.0.20' => + '7.0.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.20.tar.bz2', 'name' => 'PHP 7.0.20 (tar.bz2)', 'sha256' => 'cdfddfe01cc615218e333e34a1c761c9ef8fdf5199b27617264a02705eda7fc3', 'date' => '08 Jun 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.20.tar.gz', 'name' => 'PHP 7.0.20 (tar.gz)', 'sha256' => 'b44947f0c1926928d5c2f176506b878c32b5cd09ce3b5b52bbbecf4328ab812d', 'date' => '08 Jun 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.20.tar.xz', 'name' => 'PHP 7.0.20 (tar.xz)', @@ -10615,29 +10615,29 @@ $OLDRELEASES = array ( 'date' => '08 Jun 2017', 'museum' => false, ), - '7.1.5' => + '7.1.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.5.tar.bz2', 'name' => 'PHP 7.1.5 (tar.bz2)', 'sha256' => '28eaa4784f1bd8b7dc71206dc8c4375510199432dc17af6906b14d16b3058697', 'date' => '11 May 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.5.tar.gz', 'name' => 'PHP 7.1.5 (tar.gz)', 'sha256' => 'f7ff8039f5c3a7da4d62a3cce6378280224acfa27ab5a5bee25b7439bce01c17', 'date' => '11 May 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.5.tar.xz', 'name' => 'PHP 7.1.5 (tar.xz)', @@ -10648,29 +10648,29 @@ $OLDRELEASES = array ( 'date' => '11 May 2017', 'museum' => false, ), - '7.0.19' => + '7.0.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.19.tar.bz2', 'name' => 'PHP 7.0.19 (tar.bz2)', 'sha256' => '0f3ac0afc02aec22f6b1659045da9287453e9309439d0499622bc8e94a7f7d59', 'date' => '11 May 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.19.tar.gz', 'name' => 'PHP 7.0.19 (tar.gz)', 'sha256' => '4b4120acdbb8cbf5f7a18625c2eb5cdd2fdb4fc69a4831bc7ffdfd1ee78b1ce0', 'date' => '11 May 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.19.tar.xz', 'name' => 'PHP 7.0.19 (tar.xz)', @@ -10681,29 +10681,29 @@ $OLDRELEASES = array ( 'date' => '11 May 2017', 'museum' => false, ), - '7.1.4' => + '7.1.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.4.tar.bz2', 'name' => 'PHP 7.1.4 (tar.bz2)', 'sha256' => '39bf697836e2760b3a44ea322e9e5f1f5b1f07abeb0111f6495eff7538e25805', 'date' => '13 Apr 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.4.tar.gz', 'name' => 'PHP 7.1.4 (tar.gz)', 'sha256' => 'ed0006c86de503684dde04c6dd811ea2354a3b6d10ebd9f0cb103dcd28f0e70f', 'date' => '13 Apr 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.4.tar.xz', 'name' => 'PHP 7.1.4 (tar.xz)', @@ -10714,29 +10714,29 @@ $OLDRELEASES = array ( 'date' => '13 Apr 2017', 'museum' => false, ), - '7.0.18' => + '7.0.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.18.tar.bz2', 'name' => 'PHP 7.0.18 (tar.bz2)', 'sha256' => 'b20cc63d507032b39d8bb14cb64784e460b0e47997e90a8704b703bcbb233fd1', 'date' => '13 Apr 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.18.tar.gz', 'name' => 'PHP 7.0.18 (tar.gz)', 'sha256' => 'e0fb336749d72e6c9cfcebb9b48497f004fa99f93b68c21cb3eb657053665e1d', 'date' => '13 Apr 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.18.tar.xz', 'name' => 'PHP 7.0.18 (tar.xz)', @@ -10747,29 +10747,29 @@ $OLDRELEASES = array ( 'date' => '13 Apr 2017', 'museum' => false, ), - '7.1.3' => + '7.1.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.3.tar.bz2', 'name' => 'PHP 7.1.3 (tar.bz2)', 'sha256' => 'c145924d91b7a253eccc31f8d22f15b61589cd24d78105e56240c1bb6413b94f', 'date' => '16 Mar 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.3.tar.gz', 'name' => 'PHP 7.1.3 (tar.gz)', 'sha256' => '4bfadd0012b966eced448497272150ffeede13136a961aacb9e71553b8e929ec', 'date' => '16 Mar 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.3.tar.xz', 'name' => 'PHP 7.1.3 (tar.xz)', @@ -10780,29 +10780,29 @@ $OLDRELEASES = array ( 'date' => '16 Mar 2017', 'museum' => false, ), - '7.0.17' => + '7.0.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.17.tar.bz2', 'name' => 'PHP 7.0.17 (tar.bz2)', 'sha256' => 'aee503926b96d807692fac3e0fd64e3259788f5139819a983152679cb6e91d4b', 'date' => '30 Mar 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.17.tar.gz', 'name' => 'PHP 7.0.17 (tar.gz)', 'sha256' => '1f42ffe9895dad746baf4a0e8d81f2272f55fdef66cf298ac911d8791ceb1e80', 'date' => '30 Mar 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.17.tar.xz', 'name' => 'PHP 7.0.17 (tar.xz)', @@ -10813,29 +10813,29 @@ $OLDRELEASES = array ( 'date' => '30 Mar 2017', 'museum' => false, ), - '7.1.2' => + '7.1.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.2.tar.bz2', 'name' => 'PHP 7.1.2 (tar.bz2)', 'sha256' => 'e0f2214e2366434ee231156ba70cfefd0c59790f050d8727a3f1dc2affa67004', 'date' => '16 Feb 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.2.tar.gz', 'name' => 'PHP 7.1.2 (tar.gz)', 'sha256' => 'e6773217c9c719ca22abb104ae3d437d53daceaf31faf2e5eeb1f9f5028005d8', 'date' => '16 Feb 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.2.tar.xz', 'name' => 'PHP 7.1.2 (tar.xz)', @@ -10846,29 +10846,29 @@ $OLDRELEASES = array ( 'date' => '16 Feb 2017', 'museum' => false, ), - '7.0.16' => + '7.0.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.16.tar.bz2', 'name' => 'PHP 7.0.16 (tar.bz2)', 'sha256' => '83c5f57575dc0feca563af529d6f1d60183bf9c2c13e98a6da131fbd0a3597ab', 'date' => '16 Feb 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.16.tar.gz', 'name' => 'PHP 7.0.16 (tar.gz)', 'sha256' => 'bc6709dc7612957d0533c09c9c8a9c2e7c4fd9d64e697707bb1b39670eab61d4', 'date' => '16 Feb 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.16.tar.xz', 'name' => 'PHP 7.0.16 (tar.xz)', @@ -10879,29 +10879,29 @@ $OLDRELEASES = array ( 'date' => '16 Feb 2017', 'museum' => false, ), - '7.1.1' => + '7.1.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.1.tar.bz2', 'name' => 'PHP 7.1.1 (tar.bz2)', 'sha256' => 'd791d39d7b54ec42441a05a5f06d68a495647d843210e3ae4f2c6adb99c675bc', 'date' => '19 Jan 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.1.tar.gz', 'name' => 'PHP 7.1.1 (tar.gz)', 'sha256' => 'c136279d539c3c2c25176bf149c14913670e79bb27ee6b73e1cd69003985a70d', 'date' => '19 Jan 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.1.tar.xz', 'name' => 'PHP 7.1.1 (tar.xz)', @@ -10912,29 +10912,29 @@ $OLDRELEASES = array ( 'date' => '19 Jan 2017', 'museum' => false, ), - '7.0.15' => + '7.0.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.15.tar.bz2', 'name' => 'PHP 7.0.15 (tar.bz2)', 'sha256' => 'a8c8f947335683fa6dd1b7443ed70f2a42bc33e8b6c215f139138cee89e47dd9', 'date' => '19 Jan 2017', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.15.tar.gz', 'name' => 'PHP 7.0.15 (tar.gz)', 'sha256' => 'c24324c6d4bf27e8bc1d12da0aae4f15a43c8374f681e23e9b1e67f5b719c3a6', 'date' => '19 Jan 2017', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.15.tar.xz', 'name' => 'PHP 7.0.15 (tar.xz)', @@ -10944,34 +10944,34 @@ $OLDRELEASES = array ( ), 'date' => '19 Jan 2017', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.14' => + '7.0.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.14.tar.bz2', 'name' => 'PHP 7.0.14 (tar.bz2)', 'sha256' => 'fbc4369a0d42b55fd1ce75eb4f3d17b012da754a67567d8e3288fbfbb7490534', 'date' => '08 Dec 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.14.tar.gz', 'name' => 'PHP 7.0.14 (tar.gz)', 'sha256' => '320cfd2184e7252d3d77eae5d5474554fa04ab9fbee7c6094c07e8bd3b5b632b', 'date' => '08 Dec 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.14.tar.xz', 'name' => 'PHP 7.0.14 (tar.xz)', @@ -10981,34 +10981,34 @@ $OLDRELEASES = array ( ), 'date' => '08 Dec 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.1.0' => + '7.1.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_1_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.1.0.tar.bz2', 'name' => 'PHP 7.1.0 (tar.bz2)', 'sha256' => '68bcfd7deed5b3474d81dec9f74d122058327e2bed0ac25bbc9ec70995228e61', 'date' => '01 Dec 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.1.0.tar.gz', 'name' => 'PHP 7.1.0 (tar.gz)', 'sha256' => '9e84c5b13005c56374730edf534fe216f6a2e63792a9703d4b894e770bbccbae', 'date' => '01 Dec 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.1.0.tar.xz', 'name' => 'PHP 7.1.0 (tar.xz)', @@ -11019,29 +11019,29 @@ $OLDRELEASES = array ( 'date' => '01 Dec 2016', 'museum' => false, ), - '7.0.13' => + '7.0.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.13.tar.bz2', 'name' => 'PHP 7.0.13 (tar.bz2)', 'sha256' => 'd090bb523812117ec0c08d8f0b5c5f0616aa7a29a2eeee0374efe53a7cfe88c1', 'date' => '10 Nov 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.13.tar.gz', 'name' => 'PHP 7.0.13 (tar.gz)', 'sha256' => 'c8d8cf1b29e7f7e89be9ee64f453cb7ef6d20e1d13a83cba037bd654ef2da42c', 'date' => '10 Nov 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.13.tar.xz', 'name' => 'PHP 7.0.13 (tar.xz)', @@ -11051,34 +11051,34 @@ $OLDRELEASES = array ( ), 'date' => '10 Nov 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.12' => + '7.0.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.12.tar.bz2', 'name' => 'PHP 7.0.12 (tar.bz2)', 'sha256' => '38c47294fe8fb239b0230dc63a93c3e4044f472ab93b5dff8b65feb4103a6a27', 'date' => '13 Oct 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.12.tar.gz', 'name' => 'PHP 7.0.12 (tar.gz)', 'sha256' => 'c4693cc363b4bbc7224294cc94faf3598e616cbe8540dd6975f68c7d3c52682f', 'date' => '13 Oct 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.12.tar.xz', 'name' => 'PHP 7.0.12 (tar.xz)', @@ -11088,34 +11088,34 @@ $OLDRELEASES = array ( ), 'date' => '13 Oct 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.11' => + '7.0.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.11.tar.bz2', 'name' => 'PHP 7.0.11 (tar.bz2)', 'sha256' => 'f99b729dc1149858844b18af1e8c0de6dd1cdfdd52e22fbb4de2aa78bf9bf7f1', 'date' => '15 Sep 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.11.tar.gz', 'name' => 'PHP 7.0.11 (tar.gz)', 'sha256' => '02d27b5d140dbad8d400a95af808e1e9ce87aa8d2a2100870734ba26e6700d79', 'date' => '15 Sep 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.11.tar.xz', 'name' => 'PHP 7.0.11 (tar.xz)', @@ -11125,34 +11125,34 @@ $OLDRELEASES = array ( ), 'date' => '15 Sep 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.10' => + '7.0.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.10.tar.bz2', 'name' => 'PHP 7.0.10 (tar.bz2)', 'sha256' => '8055bbe5a736986931c0c6a08b765d6d778271ec7d2d56c50a1ad259ec09f6de', 'date' => '18 Aug 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.10.tar.gz', 'name' => 'PHP 7.0.10 (tar.gz)', 'sha256' => '46216e05db09c0fffbf832e3b64f3722ccbdd6d4ae16d9791e41adf0a4b00641', 'date' => '18 Aug 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.10.tar.xz', 'name' => 'PHP 7.0.10 (tar.xz)', @@ -11162,34 +11162,34 @@ $OLDRELEASES = array ( ), 'date' => '18 Aug 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.9' => + '7.0.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.9.tar.bz2', 'name' => 'PHP 7.0.9 (tar.bz2)', 'sha256' => '2ee6968b5875f2f38700c58a189aad859a6a0b85fc337aa102ec2dc3652c3b7b', 'date' => '21 Jul 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.9.tar.gz', 'name' => 'PHP 7.0.9 (tar.gz)', 'sha256' => '93895a6a610c94751c890e5ee91a7f4bc0eae476b95fe30425d13f7ae88753d5', 'date' => '21 Jul 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.9.tar.xz', 'name' => 'PHP 7.0.9 (tar.xz)', @@ -11199,34 +11199,34 @@ $OLDRELEASES = array ( ), 'date' => '21 Jul 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.8' => + '7.0.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.8.tar.bz2', 'name' => 'PHP 7.0.8 (tar.bz2)', 'sha256' => '66dc7ba388490e07b1313fe3a06b1fa822e1310585fe29f4909995f131e27c8d', 'date' => '23 Jun 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.8.tar.gz', 'name' => 'PHP 7.0.8 (tar.gz)', 'sha256' => '1f024fa6d87594b99fa312e3185c357dcffa42e07d21c726f41d1fa6f773720b', 'date' => '23 Jun 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.8.tar.xz', 'name' => 'PHP 7.0.8 (tar.xz)', @@ -11236,34 +11236,34 @@ $OLDRELEASES = array ( ), 'date' => '23 Jun 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.7' => + '7.0.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.7.tar.bz2', 'name' => 'PHP 7.0.7 (tar.bz2)', 'sha256' => '474f2925c4782b94016e3afbb17b14ff9cc6f4fdb6f6e231b36a378bb18a3d1a', 'date' => '26 May 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.7.tar.gz', 'name' => 'PHP 7.0.7 (tar.gz)', 'sha256' => '66282ff4a9f88fe9607d9574e15bf335885b964245591a1740adb3f79c514a67', 'date' => '26 May 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.7.tar.xz', 'name' => 'PHP 7.0.7 (tar.xz)', @@ -11273,34 +11273,34 @@ $OLDRELEASES = array ( ), 'date' => '26 May 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.6' => + '7.0.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.6.tar.bz2', 'name' => 'PHP 7.0.6 (tar.bz2)', 'sha256' => '14ddf192a9965c858c1e742a61456be2f34a4db87556172c0d76f08de96329b7', 'date' => '28 Apr 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.6.tar.gz', 'name' => 'PHP 7.0.6 (tar.gz)', 'sha256' => 'f6b47cb3e02530d96787ae5c7888aefbd1db6ae4164d68b88808ee6f4da94277', 'date' => '28 Apr 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.6.tar.xz', 'name' => 'PHP 7.0.6 (tar.xz)', @@ -11310,34 +11310,34 @@ $OLDRELEASES = array ( ), 'date' => '28 Apr 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.5' => + '7.0.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.5.tar.bz2', 'name' => 'PHP 7.0.5 (tar.bz2)', 'sha256' => '2c09af7fe64537ea795f098b9b542ead407ef83f7cdc65b3787115ccbbb51de9', 'date' => '31 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.5.tar.gz', 'name' => 'PHP 7.0.5 (tar.gz)', 'sha256' => 'f9d93419031b4df663fc48f03b8a833545de8776225e46637563e2be6029908d', 'date' => '31 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.5.tar.xz', 'name' => 'PHP 7.0.5 (tar.xz)', @@ -11347,34 +11347,34 @@ $OLDRELEASES = array ( ), 'date' => '31 Mar 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.4' => + '7.0.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.4.tar.bz2', 'name' => 'PHP 7.0.4 (tar.bz2)', 'sha256' => 'a246c503709c189ba8e1e22ed2cb22abc27da43a997ff1b3318e181baf529dcc', 'date' => '03 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.4.tar.gz', 'name' => 'PHP 7.0.4 (tar.gz)', 'sha256' => 'f6cdac2fd37da0ac0bbcee0187d74b3719c2f83973dfe883d5cde81c356fe0a8', 'date' => '03 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.4.tar.xz', 'name' => 'PHP 7.0.4 (tar.xz)', @@ -11384,34 +11384,34 @@ $OLDRELEASES = array ( ), 'date' => '03 Mar 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.3' => + '7.0.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.3.tar.bz2', 'name' => 'PHP 7.0.3 (tar.bz2)', 'sha256' => '826823d754f09c779222a99becf9c53a4dc719dba2d777aca7807c6ca68e6fc6', 'date' => '04 Feb 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.3.tar.gz', 'name' => 'PHP 7.0.3 (tar.gz)', 'sha256' => '5521df8db153aba35c90cf1a1829106b6bbdac32425216d440f9cc29f00a7c08', 'date' => '04 Feb 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.3.tar.xz', 'name' => 'PHP 7.0.3 (tar.xz)', @@ -11421,34 +11421,34 @@ $OLDRELEASES = array ( ), 'date' => '04 Feb 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.2' => + '7.0.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.2.tar.bz2', 'name' => 'PHP 7.0.2 (tar.bz2)', 'sha256' => '9b1b75fbd9c92c6b0003b234e550965038826d11ea1f430bf279964da9da2236', 'date' => '07 Jan 2016', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.2.tar.gz', 'name' => 'PHP 7.0.2 (tar.gz)', 'sha256' => '040198aef3dc5f17c253c1282160aabc6a05ca0b18b3d6fc9213970363083412', 'date' => '07 Jan 2016', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.2.tar.xz', 'name' => 'PHP 7.0.2 (tar.xz)', @@ -11458,34 +11458,34 @@ $OLDRELEASES = array ( ), 'date' => '07 Jan 2016', 'museum' => false, - 'tags' => + 'tags' => array ( 0 => 'security', ), ), - '7.0.1' => + '7.0.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.1.tar.bz2', 'name' => 'PHP 7.0.1 (tar.bz2)', 'sha256' => '04ce3bd1da001397b342c2219a5093be9ecbbc97f022e1e6a0ec2fedc3d93e42', 'date' => '17 Dec 2015', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.1.tar.gz', 'name' => 'PHP 7.0.1 (tar.gz)', 'sha256' => 'd12aaba2bead056322aa53bd5fbe762b27a42d37f451cd42ff2e7a549ca21dbf', 'date' => '17 Dec 2015', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.1.tar.xz', 'name' => 'PHP 7.0.1 (tar.xz)', @@ -11496,29 +11496,29 @@ $OLDRELEASES = array ( 'date' => '17 Dec 2015', 'museum' => false, ), - '7.0.0' => + '7.0.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/7_0_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-7.0.0.tar.bz2', 'name' => 'PHP 7.0.0 (tar.bz2)', 'sha256' => 'a92a54306832167a39f7c0ec00524fc6f3f7d985c806caa7632561d0ddedfcea', 'date' => '03 Dec 2015', ), - 1 => + 1 => array ( 'filename' => 'php-7.0.0.tar.gz', 'name' => 'PHP 7.0.0 (tar.gz)', 'sha256' => 'd6ae7b4a2e5c43a9945a97e83b6b3adfb7d0df0b91ef78b647a6dffefaa9c71b', 'date' => '03 Dec 2015', ), - 2 => + 2 => array ( 'filename' => 'php-7.0.0.tar.xz', 'name' => 'PHP 7.0.0 (tar.xz)', @@ -11530,31 +11530,31 @@ $OLDRELEASES = array ( 'museum' => false, ), ), - 5 => + 5 => array ( - '5.6.40' => + '5.6.40' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_40.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.40.tar.bz2', 'name' => 'PHP 5.6.40 (tar.bz2)', 'sha256' => 'ffd025d34623553ab2f7fd8fb21d0c9e6f9fa30dc565ca03a1d7b763023fba00', 'date' => '10 Jan 2019', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.40.tar.gz', 'name' => 'PHP 5.6.40 (tar.gz)', 'sha256' => '56fb9878d12fdd921f6a0897e919f4e980d930160e154cbde2cc6d9206a27cac', 'date' => '10 Jan 2019', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.40.tar.xz', 'name' => 'PHP 5.6.40 (tar.xz)', @@ -11565,29 +11565,29 @@ $OLDRELEASES = array ( 'date' => '10 Jan 2019', 'museum' => false, ), - '5.6.39' => + '5.6.39' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_39.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.39.tar.bz2', 'name' => 'PHP 5.6.39 (tar.bz2)', 'sha256' => 'b3db2345f50c010b01fe041b4e0f66c5aa28eb325135136f153e18da01583ad5', 'date' => '06 Dec 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.39.tar.gz', 'name' => 'PHP 5.6.39 (tar.gz)', 'sha256' => '127b122b7d6c7f3c211c0ffa554979370c3131196137404a51a391d8e2e9c7bb', 'date' => '06 Dec 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.39.tar.xz', 'name' => 'PHP 5.6.39 (tar.xz)', @@ -11598,29 +11598,29 @@ $OLDRELEASES = array ( 'date' => '06 Dec 2018', 'museum' => false, ), - '5.6.38' => + '5.6.38' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_38.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.38.tar.bz2', 'name' => 'PHP 5.6.38 (tar.bz2)', 'sha256' => 'd65b231bbdd63be4439ef5ced965cfd63e62983429dbd4dfcfb49981593ebc03', 'date' => '13 Sep 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.38.tar.gz', 'name' => 'PHP 5.6.38 (tar.gz)', 'sha256' => '3b74d46cd79a45cce90c8059e09d8bd0beeb5de562cbb0cb42f96ff8fa665fd4', 'date' => '13 Sep 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.38.tar.xz', 'name' => 'PHP 5.6.38 (tar.xz)', @@ -11631,29 +11631,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2018', 'museum' => false, ), - '5.6.37' => + '5.6.37' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_37.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.37.tar.bz2', 'name' => 'PHP 5.6.37 (tar.bz2)', 'sha256' => '886ad63d05d94ea3e54322691aadea0cf1d4bcdb4450b02fe300e5b570788b23', 'date' => '19 Jul 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.37.tar.gz', 'name' => 'PHP 5.6.37 (tar.gz)', 'sha256' => 'b7ec077f35ef3a8cdd33c29124140b1761111a1429878b4c463bb20d2a31b184', 'date' => '19 Jul 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.37.tar.xz', 'name' => 'PHP 5.6.37 (tar.xz)', @@ -11664,29 +11664,29 @@ $OLDRELEASES = array ( 'date' => '19 Jul 2018', 'museum' => false, ), - '5.6.36' => + '5.6.36' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_36.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.36.tar.bz2', 'name' => 'PHP 5.6.36 (tar.bz2)', 'sha256' => '626a0e3f5d8a0e686a2b930f0dd3a0601fe3dcb5e43dd0e8c3fab631e64e172a', 'date' => '26 Apr 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.36.tar.gz', 'name' => 'PHP 5.6.36 (tar.gz)', 'sha256' => '06086a8b6a9964ef8009c4d9176b4eeb0c564ea39c1213f015e24f3466d2d69f', 'date' => '26 Apr 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.36.tar.xz', 'name' => 'PHP 5.6.36 (tar.xz)', @@ -11697,29 +11697,29 @@ $OLDRELEASES = array ( 'date' => '26 Apr 2018', 'museum' => false, ), - '5.6.35' => + '5.6.35' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_35.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.35.tar.bz2', 'name' => 'PHP 5.6.35 (tar.bz2)', 'sha256' => 'ee78a7e9ca21d8ea394d037c55effff477a49dbae31c7753c547036f5bd73b92', 'date' => '29 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.35.tar.gz', 'name' => 'PHP 5.6.35 (tar.gz)', 'sha256' => 'dd0242304f510d48a5216dd2f5796bcf59e8e18366658259aaf205e1d63abf71', 'date' => '29 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.35.tar.xz', 'name' => 'PHP 5.6.35 (tar.xz)', @@ -11730,29 +11730,29 @@ $OLDRELEASES = array ( 'date' => '29 Mar 2018', 'museum' => false, ), - '5.6.34' => + '5.6.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_34.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.34.tar.bz2', 'name' => 'PHP 5.6.34 (tar.bz2)', 'sha256' => 'e19f499d8cee4b0b0780361ecb6a00c41654772a754803ab9ea866b8d47cf2cd', 'date' => '01 Mar 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.34.tar.gz', 'name' => 'PHP 5.6.34 (tar.gz)', 'sha256' => 'de28251ef6d7eb945eb7b770ff668b9f978d9adad52a8c763f6ee409a96732ea', 'date' => '01 Mar 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.34.tar.xz', 'name' => 'PHP 5.6.34 (tar.xz)', @@ -11763,29 +11763,29 @@ $OLDRELEASES = array ( 'date' => '01 Mar 2018', 'museum' => false, ), - '5.6.33' => + '5.6.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.33.tar.bz2', 'name' => 'PHP 5.6.33 (tar.bz2)', 'sha256' => '07f696a9761dcd839e2045c95c3a4d2ffb52c54417477cca9d30a14975b831cc', 'date' => '04 Jan 2018', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.33.tar.gz', 'name' => 'PHP 5.6.33 (tar.gz)', 'sha256' => 'bedfac81cfaa25961812a1aec458c4109411a14991b43a416343ffb830b8da6a', 'date' => '04 Jan 2018', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.33.tar.xz', 'name' => 'PHP 5.6.33 (tar.xz)', @@ -11796,29 +11796,29 @@ $OLDRELEASES = array ( 'date' => '04 Jan 2018', 'museum' => false, ), - '5.6.32' => + '5.6.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.32.tar.bz2', 'name' => 'PHP 5.6.32 (tar.bz2)', 'sha256' => '3ee44e7a5fa42b563652b3ea0d3487bc236fcc9e5ea74b583775cab867abcb51', 'date' => '26 Oct 2017', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.32.tar.gz', 'name' => 'PHP 5.6.32 (tar.gz)', 'sha256' => '7bef1ae8cd633df5b9c5964262d276d2dc21acbfcd94022d1e2084d199315df4', 'date' => '26 Oct 2017', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.32.tar.xz', 'name' => 'PHP 5.6.32 (tar.xz)', @@ -11829,29 +11829,29 @@ $OLDRELEASES = array ( 'date' => '26 Oct 2017', 'museum' => false, ), - '5.6.31' => + '5.6.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.31.tar.bz2', 'name' => 'PHP 5.6.31 (tar.bz2)', 'sha256' => '8f397169cb65f0539f3bcb04060f97770d73e19074a37bd2c58b98ebf6ecb10f', 'date' => '06 Jul 2017', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.31.tar.gz', 'name' => 'PHP 5.6.31 (tar.gz)', 'sha256' => '6687ed2f09150b2ad6b3780ff89715891f83a9c331e69c90241ef699dec4c43f', 'date' => '06 Jul 2017', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.31.tar.xz', 'name' => 'PHP 5.6.31 (tar.xz)', @@ -11862,29 +11862,29 @@ $OLDRELEASES = array ( 'date' => '06 Jul 2017', 'museum' => false, ), - '5.6.30' => + '5.6.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.30.tar.bz2', 'name' => 'PHP 5.6.30 (tar.bz2)', 'sha256' => 'a105c293fa1dbff118b5b0ca74029e6c461f8c78f49b337a2a98be9e32c27906', 'date' => '19 Jan 2017', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.30.tar.gz', 'name' => 'PHP 5.6.30 (tar.gz)', 'sha256' => '8bc7d93e4c840df11e3d9855dcad15c1b7134e8acf0cf3b90b932baea2d0bde2', 'date' => '19 Jan 2017', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.30.tar.xz', 'name' => 'PHP 5.6.30 (tar.xz)', @@ -11895,29 +11895,29 @@ $OLDRELEASES = array ( 'date' => '19 Jan 2017', 'museum' => false, ), - '5.6.29' => + '5.6.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.29.tar.bz2', 'name' => 'PHP 5.6.29 (tar.bz2)', 'sha256' => '499b844c8aa7be064c111692e51a093ba94e54d2d9abb01e70ea76183a1825bb', 'date' => '08 Dec 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.29.tar.gz', 'name' => 'PHP 5.6.29 (tar.gz)', 'sha256' => '0b1b939129a7286c5a474ac2cf845b979477f26dff36639e04022def9e252574', 'date' => '08 Dec 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.29.tar.xz', 'name' => 'PHP 5.6.29 (tar.xz)', @@ -11928,29 +11928,29 @@ $OLDRELEASES = array ( 'date' => '08 Dec 2016', 'museum' => false, ), - '5.6.28' => + '5.6.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.28.tar.bz2', 'name' => 'PHP 5.6.28 (tar.bz2)', 'sha256' => 'c55ea3f4aad5a0b65631d01c4468930fd981ad208ffcd242acdf731bcb47548f', 'date' => '10 Nov 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.28.tar.gz', 'name' => 'PHP 5.6.28 (tar.gz)', 'sha256' => '27a47ac15e0868d51181d3909cfe3c63ae9b643a3ab40dc30a75b5b500bce500', 'date' => '10 Nov 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.28.tar.xz', 'name' => 'PHP 5.6.28 (tar.xz)', @@ -11961,29 +11961,29 @@ $OLDRELEASES = array ( 'date' => '10 Nov 2016', 'museum' => false, ), - '5.6.27' => + '5.6.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.27.tar.bz2', 'name' => 'PHP 5.6.27 (tar.bz2)', 'sha256' => '3b77d3a067b6e9cc7bb282d4d5b0e6eeb0623a828bb0479241e3b030446f2a3c', 'date' => '13 Oct 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.27.tar.gz', 'name' => 'PHP 5.6.27 (tar.gz)', 'sha256' => '3e6cecec615907587a2b35fa8e7f915f038034dc57530734c2b94d381e664a1a', 'date' => '13 Oct 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.27.tar.xz', 'name' => 'PHP 5.6.27 (tar.xz)', @@ -11994,29 +11994,29 @@ $OLDRELEASES = array ( 'date' => '13 Oct 2016', 'museum' => false, ), - '5.6.26' => + '5.6.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.26.tar.bz2', 'name' => 'PHP 5.6.26 (tar.bz2)', 'sha256' => 'd47aab8083a4284b905777e1b45dd7735adc53be827b29f896684750ac8b6236', 'date' => '15 Sep 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.26.tar.gz', 'name' => 'PHP 5.6.26 (tar.gz)', 'sha256' => 'f76b6cc23739d9dabf875aee57d91ae73f15e88ddf78803369b8b4728b19b924', 'date' => '15 Sep 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.26.tar.xz', 'name' => 'PHP 5.6.26 (tar.xz)', @@ -12027,29 +12027,29 @@ $OLDRELEASES = array ( 'date' => '15 Sep 2016', 'museum' => false, ), - '5.6.25' => + '5.6.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.25.tar.bz2', 'name' => 'PHP 5.6.25 (tar.bz2)', 'sha256' => '58ce6032aced7f3e42ced492bd9820e5b3f2a3cd3ef71429aa92fd7b3eb18dde', 'date' => '18 Aug 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.25.tar.gz', 'name' => 'PHP 5.6.25 (tar.gz)', 'sha256' => '733f1c811d51c2d4031a0c058dc94d09d03858d781ca2eb2cce78853bc76db58', 'date' => '18 Aug 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.25.tar.xz', 'name' => 'PHP 5.6.25 (tar.xz)', @@ -12060,29 +12060,29 @@ $OLDRELEASES = array ( 'date' => '18 Aug 2016', 'museum' => false, ), - '5.6.24' => + '5.6.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.24.tar.bz2', 'name' => 'PHP 5.6.24 (tar.bz2)', 'sha256' => 'bf23617ec3ed0a125ec8bde2b7bca9d3804b2ff4df8de192890c84dc9fac38c6', 'date' => '21 Jul 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.24.tar.gz', 'name' => 'PHP 5.6.24 (tar.gz)', 'sha256' => '5f8b2e4e00360fee6eb1b89447266ae45993265955bd1ea9866270d75cdb6ec1', 'date' => '21 Jul 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.24.tar.xz', 'name' => 'PHP 5.6.24 (tar.xz)', @@ -12093,29 +12093,29 @@ $OLDRELEASES = array ( 'date' => '21 Jul 2016', 'museum' => false, ), - '5.5.38' => + '5.5.38' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_38.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.38.tar.bz2', 'name' => 'PHP 5.5.38 (tar.bz2)', 'sha256' => '473c81ebb2e48ca468caee031762266651843d7227c18a824add9b07b9393e38', 'date' => '21 Jul 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.38.tar.gz', 'name' => 'PHP 5.5.38 (tar.gz)', 'sha256' => '4f458c9b504269615715a62f182b7c2f89bb8284f484befc221b56a1571b506e', 'date' => '21 Jul 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.38.tar.xz', 'name' => 'PHP 5.5.38 (tar.xz)', @@ -12126,29 +12126,29 @@ $OLDRELEASES = array ( 'date' => '21 Jul 2016', 'museum' => false, ), - '5.6.23' => + '5.6.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.23.tar.bz2', 'name' => 'PHP 5.6.23 (tar.bz2)', 'sha256' => 'facd280896d277e6f7084b60839e693d4db68318bfc92085d3dc0251fd3558c7', 'date' => '23 Jun 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.23.tar.gz', 'name' => 'PHP 5.6.23 (tar.gz)', 'sha256' => '5f2274a13970887e8c81500c2afe292d51c3524d1a06554b0a87c74ce0a24ffe', 'date' => '23 Jun 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.23.tar.xz', 'name' => 'PHP 5.6.23 (tar.xz)', @@ -12159,29 +12159,29 @@ $OLDRELEASES = array ( 'date' => '23 Jun 2016', 'museum' => false, ), - '5.5.37' => + '5.5.37' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_37.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.37.tar.bz2', 'name' => 'PHP 5.5.37 (tar.bz2)', 'sha256' => 'd2380ebe46caf17f2c4cd055867d00a82e6702dc5f62dc29ce864a5742905d88', 'date' => '23 Jun 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.37.tar.gz', 'name' => 'PHP 5.5.37 (tar.gz)', 'sha256' => '7cef04b549fdbe00c26dc785b6ba10439672a1596db518fc46632ecba45f44b9', 'date' => '23 Jun 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.37.tar.xz', 'name' => 'PHP 5.5.37 (tar.xz)', @@ -12192,29 +12192,29 @@ $OLDRELEASES = array ( 'date' => '23 Jun 2016', 'museum' => false, ), - '5.5.36' => + '5.5.36' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_36.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.36.tar.bz2', 'name' => 'PHP 5.5.36 (tar.bz2)', 'sha256' => '2484edfaa3de606d74f927b55c5206f51b1ae24ea8e428aa9fc15474c7bb71bb', 'date' => '26 May 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.36.tar.gz', 'name' => 'PHP 5.5.36 (tar.gz)', 'sha256' => 'ef829f9a9600a858e2363533b80c4e4773505bdc8ea3692d703fc893f267728a', 'date' => '26 May 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.36.tar.xz', 'name' => 'PHP 5.5.36 (tar.xz)', @@ -12225,29 +12225,29 @@ $OLDRELEASES = array ( 'date' => '26 May 2016', 'museum' => false, ), - '5.6.22' => + '5.6.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.22.tar.bz2', 'name' => 'PHP 5.6.22 (tar.bz2)', 'sha256' => '90da8a80cc52fa699cf2bfa4c6fa737c772df7c92b81ef483460aa3b1e9f88c6', 'date' => '26 May 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.22.tar.gz', 'name' => 'PHP 5.6.22 (tar.gz)', 'sha256' => '4ce0f58c3842332c4e3bb2ec1c936c6817294273abaa37ea0ef7ca2a68cf9b21', 'date' => '26 May 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.22.tar.xz', 'name' => 'PHP 5.6.22 (tar.xz)', @@ -12258,29 +12258,29 @@ $OLDRELEASES = array ( 'date' => '26 May 2016', 'museum' => false, ), - '5.6.21' => + '5.6.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.21.tar.bz2', 'name' => 'PHP 5.6.21 (tar.bz2)', 'sha256' => 'b4ed7ab574b689fd6d6494fde954826c06efc85c505e017b8d776c7c7f479590', 'date' => '28 Apr 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.21.tar.gz', 'name' => 'PHP 5.6.21 (tar.gz)', 'sha256' => '5997668c1f6f2d86a59cf75cc86b4a94687884614dec481fad7e13a76b70fcd5', 'date' => '28 Apr 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.21.tar.xz', 'name' => 'PHP 5.6.21 (tar.xz)', @@ -12291,29 +12291,29 @@ $OLDRELEASES = array ( 'date' => '28 Apr 2016', 'museum' => false, ), - '5.5.35' => + '5.5.35' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_35.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.35.tar.bz2', 'name' => 'PHP 5.5.35 (tar.bz2)', 'sha256' => '2d648dd648e820fd64693ce72f9bf07064d147220e594e39fb9f6310238258d7', 'date' => '28 Apr 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.35.tar.gz', 'name' => 'PHP 5.5.35 (tar.gz)', 'sha256' => '21e10a49c62ab34a7edc976af686a952e70142f19135ca8da67758e1c8c3df30', 'date' => '28 Apr 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.35.tar.xz', 'name' => 'PHP 5.5.35 (tar.xz)', @@ -12324,29 +12324,29 @@ $OLDRELEASES = array ( 'date' => '31 Mar 2016', 'museum' => false, ), - '5.6.20' => + '5.6.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.20.tar.bz2', 'name' => 'PHP 5.6.20 (tar.bz2)', 'sha256' => '5ac7bf7caec7a79b18cf458e786fd1609ad2da771224b80bc15cc6f01b22bf1f', 'date' => '31 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.20.tar.gz', 'name' => 'PHP 5.6.20 (tar.gz)', 'sha256' => '9a7ec6e1080ee93dcbe7df3e49ea1c3c3da5fc2258aff763f39ab3786baf8d56', 'date' => '31 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.20.tar.xz', 'name' => 'PHP 5.6.20 (tar.xz)', @@ -12357,29 +12357,29 @@ $OLDRELEASES = array ( 'date' => '31 Mar 2016', 'museum' => false, ), - '5.5.34' => + '5.5.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_34.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.34.tar.bz2', 'name' => 'PHP 5.5.34 (tar.bz2)', 'sha256' => 'af88884416a92619de842ad0fd23f7f7e8140efb0b9194f98a38a78781e5851c', 'date' => '31 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.34.tar.gz', 'name' => 'PHP 5.5.34 (tar.gz)', 'sha256' => '0e573b406441294b233e35e1f2e12d7896d68457e3e10bf6e1f4825e75271cca', 'date' => '31 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.34.tar.xz', 'name' => 'PHP 5.5.34 (tar.xz)', @@ -12390,29 +12390,29 @@ $OLDRELEASES = array ( 'date' => '31 Mar 2016', 'museum' => false, ), - '5.6.19' => + '5.6.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.19.tar.bz2', 'name' => 'PHP 5.6.19 (tar.bz2)', 'sha256' => '2a24a3f84971680ac0a4c71050067de4f76ee235aa4a041fae21bfa69975c168', 'date' => '03 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.19.tar.gz', 'name' => 'PHP 5.6.19 (tar.gz)', 'sha256' => 'fce49cddac9337f0c83afbafac5acfb82ba9f876a5a880c88240feac8c9b7a22', 'date' => '03 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.19.tar.xz', 'name' => 'PHP 5.6.19 (tar.xz)', @@ -12423,29 +12423,29 @@ $OLDRELEASES = array ( 'date' => '03 Mar 2016', 'museum' => false, ), - '5.5.33' => + '5.5.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.33.tar.bz2', 'name' => 'PHP 5.5.33 (tar.bz2)', 'sha256' => 'c490b1ed4df596b48eb68f630d89ca512945e2650840e7dace1119cc7e600aa9', 'date' => '03 Mar 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.33.tar.gz', 'name' => 'PHP 5.5.33 (tar.gz)', 'sha256' => 'd2747bcf2cc94f652ac216f522904863a22042c66fabcf82ad7449d261d7a45b', 'date' => '03 Mar 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.33.tar.xz', 'name' => 'PHP 5.5.33 (tar.xz)', @@ -12456,29 +12456,29 @@ $OLDRELEASES = array ( 'date' => '03 Mar 2016', 'museum' => false, ), - '5.6.18' => + '5.6.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.18.tar.bz2', 'name' => 'PHP 5.6.18 (tar.bz2)', 'sha256' => 'c3cd4a29a9562309d36e2b128407d6eaa5c7dde590d2b1a464457383e517f4ed', 'date' => '04 Feb 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.18.tar.gz', 'name' => 'PHP 5.6.18 (tar.gz)', 'sha256' => '76da4150dc2da86b7b63b1aad3c20d1d11964796251ac0dd4d26d0a3f5045015', 'date' => '04 Feb 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.18.tar.xz', 'name' => 'PHP 5.6.18 (tar.xz)', @@ -12489,29 +12489,29 @@ $OLDRELEASES = array ( 'date' => '04 Feb 2016', 'museum' => false, ), - '5.5.32' => + '5.5.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.32.tar.bz2', 'name' => 'PHP 5.5.32 (tar.bz2)', 'sha256' => 'b0f2c108db8e05db9f6366aaba9a754fd0ee31f3f86ee889561b608dfd6e92ee', 'date' => '04 Feb 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.32.tar.gz', 'name' => 'PHP 5.5.32 (tar.gz)', 'sha256' => '419aa62a68a640192799928a29e5cd4cd5b965458223bea2b3209a68c3e95989', 'date' => '04 Feb 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.32.tar.xz', 'name' => 'PHP 5.5.32 (tar.xz)', @@ -12522,29 +12522,29 @@ $OLDRELEASES = array ( 'date' => '04 Feb 2016', 'museum' => false, ), - '5.6.17' => + '5.6.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.17.tar.bz2', 'name' => 'PHP 5.6.17 (tar.bz2)', 'sha256' => '77b45f56a1e63e75bb22b42cfb8b438ec4083c59ce774b4d7c1685544b7add3b', 'date' => '07 Jan 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.17.tar.gz', 'name' => 'PHP 5.6.17 (tar.gz)', 'sha256' => 'f5036535651e919415f4b6589391c95e4ff48f2d391818251c45da216791aac8', 'date' => '07 Jan 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.17.tar.xz', 'name' => 'PHP 5.6.17 (tar.xz)', @@ -12555,29 +12555,29 @@ $OLDRELEASES = array ( 'date' => '07 Jan 2016', 'museum' => false, ), - '5.5.31' => + '5.5.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.31.tar.bz2', 'name' => 'PHP 5.5.31 (tar.bz2)', 'sha256' => 'fb4a382b9a9dceb749b7ef047d8251320bc8d371c843714e5b4f4b70d61ba277', 'date' => '07 Jan 2016', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.31.tar.gz', 'name' => 'PHP 5.5.31 (tar.gz)', 'sha256' => '59a4417029ba5497d17ee02b65f419129ecf9ca8a1d864e0bccd5a3d4407a597', 'date' => '07 Jan 2016', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.31.tar.xz', 'name' => 'PHP 5.5.31 (tar.xz)', @@ -12588,29 +12588,29 @@ $OLDRELEASES = array ( 'date' => '07 Jan 2016', 'museum' => false, ), - '5.6.16' => + '5.6.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.16.tar.bz2', 'name' => 'PHP 5.6.16 (tar.bz2)', 'sha256' => '4fe6f40964c1bfaba05fc144ba20a2cdad33e11685f4f101ea5a48b98bbcd2ae', 'date' => '26 Nov 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.16.tar.gz', 'name' => 'PHP 5.6.16 (tar.gz)', 'sha256' => 'b6618df6b11a275fa28596f1775727679f8492e100f3bd488d8a8bfbfc19349f', 'date' => '26 Nov 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.16.tar.xz', 'name' => 'PHP 5.6.16 (tar.xz)', @@ -12621,29 +12621,29 @@ $OLDRELEASES = array ( 'date' => '26 Nov 2015', 'museum' => false, ), - '5.5.30' => + '5.5.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.30.tar.bz2', 'name' => 'PHP 5.5.30 (tar.bz2)', 'sha256' => 'e7332a713cecdd1cb44a1b1336739885c9789f633f0f51236b25e48ab03c3b29', 'date' => '01 Oct 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.30.tar.gz', 'name' => 'PHP 5.5.30 (tar.gz)', 'sha256' => '8ad57f4317391354e66c83d26752f67515b2e923277eb97b2b420dfeff3c1007', 'date' => '01 Oct 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.30.tar.xz', 'name' => 'PHP 5.5.30 (tar.xz)', @@ -12654,29 +12654,29 @@ $OLDRELEASES = array ( 'date' => '01 Oct 2015', 'museum' => false, ), - '5.6.15' => + '5.6.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.15.tar.bz2', 'name' => 'PHP 5.6.15 (tar.bz2)', 'sha256' => '11a0645c4d4b749e256da1e0d6df89dd886b5b06b83c914d942653661dbd1c38', 'date' => '29 Oct 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.15.tar.gz', 'name' => 'PHP 5.6.15 (tar.gz)', 'sha256' => 'bb2d4c226a4897b7c3659c2538a87aef7ec104f58f5ae930a263dd77fb8ebc40', 'date' => '29 Oct 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.15.tar.xz', 'name' => 'PHP 5.6.15 (tar.xz)', @@ -12687,29 +12687,29 @@ $OLDRELEASES = array ( 'date' => '29 Oct 2015', 'museum' => false, ), - '5.6.14' => + '5.6.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.14.tar.bz2', 'name' => 'PHP 5.6.14 (tar.bz2)', 'sha256' => '36f295f11641c1839a5df00e693f685fd134c65e8a1d46e8ee0abae8662b2eb0', 'date' => '01 Oct 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.14.tar.gz', 'name' => 'PHP 5.6.14 (tar.gz)', 'sha256' => '29baf7ffca644f7f8e86028c40275b9e460342bdf9562d45f8f0498899cb738d', 'date' => '01 Oct 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.14.tar.xz', 'name' => 'PHP 5.6.14 (tar.xz)', @@ -12720,29 +12720,29 @@ $OLDRELEASES = array ( 'date' => '01 Oct 2015', 'museum' => false, ), - '5.6.13' => + '5.6.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.13.tar.bz2', 'name' => 'PHP 5.6.13 (tar.bz2)', 'sha256' => '6358837c9cbab41b91ede59dbf0670ae0fb925a1369ecbc1a44a27212420f893', 'date' => '03 Sep 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.13.tar.gz', 'name' => 'PHP 5.6.13 (tar.gz)', 'sha256' => '92acc6c067f5e015a6881b4119eafec10eca11722e810f2c2083f72e17119bcf', 'date' => '03 Sep 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.13.tar.xz', 'name' => 'PHP 5.6.13 (tar.xz)', @@ -12753,29 +12753,29 @@ $OLDRELEASES = array ( 'date' => '03 Sep 2015', 'museum' => false, ), - '5.5.29' => + '5.5.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.29.tar.bz2', 'name' => 'PHP 5.5.29 (tar.bz2)', 'sha256' => 'fbcee579ecc77cad6960a541116aee669cf145c2cd9a54bf60503a870843b946', 'date' => '03 Sep 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.29.tar.gz', 'name' => 'PHP 5.5.29 (tar.gz)', 'sha256' => 'c25a4c4eae558cc9899d2994813dd272eafff9466926f30821a83edaafe620a9', 'date' => '03 Sep 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.29.tar.xz', 'name' => 'PHP 5.5.29 (tar.xz)', @@ -12786,29 +12786,29 @@ $OLDRELEASES = array ( 'date' => '03 Sep 2015', 'museum' => false, ), - '5.5.28' => + '5.5.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.28.tar.bz2', 'name' => 'PHP 5.5.28 (tar.bz2)', 'sha256' => '197d2c572e030c177e53d3763d59ac6d363d7c78dc22e6cc1e2ac65573d9c2f3', 'date' => '06 Aug 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.28.tar.gz', 'name' => 'PHP 5.5.28 (tar.gz)', 'sha256' => '6084f25a39ab2f79ade46bf0258a1cd6c9bbb09a106b40dd996dbdf8cd3b08f2', 'date' => '06 Aug 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.28.tar.xz', 'name' => 'PHP 5.5.28 (tar.xz)', @@ -12819,29 +12819,29 @@ $OLDRELEASES = array ( 'date' => '06 Aug 2015', 'museum' => false, ), - '5.6.12' => + '5.6.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.12.tar.bz2', 'name' => 'PHP 5.6.12 (tar.bz2)', 'sha256' => '6f27104272af7b2a996f85e4100fac627630fbdaf39d7bd263f16cf529c8853a', 'date' => '06 Aug 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.12.tar.gz', 'name' => 'PHP 5.6.12 (tar.gz)', 'sha256' => '7799b42606c1770d1ad90bfc7521d2b6c294c4c27dcf1a206dee562533b4f984', 'date' => '06 Aug 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.12.tar.xz', 'name' => 'PHP 5.6.12 (tar.xz)', @@ -12852,29 +12852,29 @@ $OLDRELEASES = array ( 'date' => '06 Aug 2015', 'museum' => false, ), - '5.6.11' => + '5.6.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.11.tar.bz2', 'name' => 'PHP 5.6.11 (tar.bz2)', 'sha256' => 'bd6b260816764c267244749ead07482120dbf8d1920ebbbb0dcb2aa411033866', 'date' => '10 Jul 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.11.tar.gz', 'name' => 'PHP 5.6.11 (tar.gz)', 'sha256' => '85916b46c0d1f2a5315c84fb2773293f4084c3676ba4ed420d0432cbb60ff9d8', 'date' => '10 Jul 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.11.tar.xz', 'name' => 'PHP 5.6.11 (tar.xz)', @@ -12885,29 +12885,29 @@ $OLDRELEASES = array ( 'date' => '10 Jul 2015', 'museum' => false, ), - '5.5.27' => + '5.5.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.27.tar.bz2', 'name' => 'PHP 5.5.27 (tar.bz2)', 'sha256' => 'c4b4c6a534c0ca67a9ae39bec4f51e52d13e820135dd016eae230e15337e1f70', 'date' => '09 Jul 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.27.tar.gz', 'name' => 'PHP 5.5.27 (tar.gz)', 'sha256' => '57cc716ebb37a62654c154582e48a282055b08ce91995c79b0be41b9940237f0', 'date' => '09 Jul 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.27.tar.xz', 'name' => 'PHP 5.5.27 (tar.xz)', @@ -12918,29 +12918,29 @@ $OLDRELEASES = array ( 'date' => '09 Jul 2015', 'museum' => false, ), - '5.6.10' => + '5.6.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.10.tar.bz2', 'name' => 'PHP 5.6.10 (tar.bz2)', 'sha256' => '0a579c81c724ea41815eee0caa8ea7d8eeb302458519d8cc4fc5b055577c8c45', 'date' => '11 Jun 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.10.tar.gz', 'name' => 'PHP 5.6.10 (tar.gz)', 'sha256' => '7759d6e178be524085e1482921748c14d11cbd0a133ba8aabb96c391ce7ed3fc', 'date' => '11 Jun 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.10.tar.xz', 'name' => 'PHP 5.6.10 (tar.xz)', @@ -12951,29 +12951,29 @@ $OLDRELEASES = array ( 'date' => '11 Jun 2015', 'museum' => false, ), - '5.5.26' => + '5.5.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.26.tar.bz2', 'name' => 'PHP 5.5.26 (tar.bz2)', 'sha256' => '816afffdb03ff4c542bc172a2f77f9c69b817df82d60cce05c1b4f578c2c926e', 'date' => '11 Jun 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.26.tar.gz', 'name' => 'PHP 5.5.26 (tar.gz)', 'sha256' => 'bee980d433bab99d07ee2bf6f2dcb87d746e49d57adec7d0ce7edb39306695ec', 'date' => '11 Jun 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.26.tar.xz', 'name' => 'PHP 5.5.26 (tar.xz)', @@ -12984,29 +12984,29 @@ $OLDRELEASES = array ( 'date' => '11 Jun 2015', 'museum' => false, ), - '5.6.9' => + '5.6.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.9.tar.bz2', 'name' => 'PHP 5.6.9 (tar.bz2)', 'sha256' => '19d3b87b7b8bba3be24cf6d757d16b723a98881c3af8d15469fd25501e9abcb9', 'date' => '14 May 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.9.tar.gz', 'name' => 'PHP 5.6.9 (tar.gz)', 'sha256' => '49527ba66357fe65bcd463dfb8dcff1b8879419f88b3c334f50696a2aceacb87', 'date' => '14 May 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.9.tar.xz', 'name' => 'PHP 5.6.9 (tar.xz)', @@ -13017,29 +13017,29 @@ $OLDRELEASES = array ( 'date' => '14 May 2015', 'museum' => false, ), - '5.5.25' => + '5.5.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.25.tar.bz2', 'name' => 'PHP 5.5.25 (tar.bz2)', 'sha256' => '68df37e725ddd05675c0df906041038127938ecc52113a54d10e1e4029262c63', 'date' => '14 May 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.25.tar.gz', 'name' => 'PHP 5.5.25 (tar.gz)', 'sha256' => 'c9397f60bff139e0df441c5e2766108c5bc7ad690de136eb9f5b2f9bbf771240', 'date' => '14 May 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.25.tar.xz', 'name' => 'PHP 5.5.25 (tar.xz)', @@ -13050,29 +13050,29 @@ $OLDRELEASES = array ( 'date' => '14 May 2015', 'museum' => false, ), - '5.6.8' => + '5.6.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.8.tar.bz2', 'name' => 'PHP 5.6.8 (tar.bz2)', 'sha256' => '0af0045745d61eeb74a3ea744529a2481b27cb689da720e6c0250675043724e4', 'date' => '16 Apr 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.8.tar.gz', 'name' => 'PHP 5.6.8 (tar.gz)', 'sha256' => 'c5b1c75c5671c239473eb611129f33ac432a55a1c341990b70009a2aa3b8dbc3', 'date' => '16 Apr 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.8.tar.xz', 'name' => 'PHP 5.6.8 (tar.xz)', @@ -13083,29 +13083,29 @@ $OLDRELEASES = array ( 'date' => '16 Apr 2015', 'museum' => false, ), - '5.5.24' => + '5.5.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.24.tar.bz2', 'name' => 'PHP 5.5.24 (tar.bz2)', 'sha256' => '801b5cf2e0c01b07314d4ac3c8a7c28d524bdd8263ebdd0e33a99008251316a2', 'date' => '16 Apr 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.24.tar.gz', 'name' => 'PHP 5.5.24 (tar.gz)', 'sha256' => '43e6b83fe8151f8d2062ca4da915312fc92e47789801049231c705a8b29b05bc', 'date' => '16 Apr 2015', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.24.tar.xz', 'name' => 'PHP 5.5.24 (tar.xz)', @@ -13116,29 +13116,29 @@ $OLDRELEASES = array ( 'date' => '16 Apr 2015', 'museum' => false, ), - '5.6.7' => + '5.6.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.7.tar.bz2', 'name' => 'PHP 5.6.7 (tar.bz2)', 'date' => '19 Mar 2015', 'sha256' => '02954fb74c61a7879d48ebdcd4ecb78aa0056f4215ca9b096232de28eb8f17bc', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.7.tar.gz', 'name' => 'PHP 5.6.7 (tar.gz)', 'date' => '19 Mar 2015', 'sha256' => '11398540a582c876f5e070207231afde975eb49bb2eeae20b052e8ca325c0f47', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.7.tar.xz', 'name' => 'PHP 5.6.7 (tar.xz)', @@ -13149,29 +13149,29 @@ $OLDRELEASES = array ( 'date' => '19 Mar 2015', 'museum' => false, ), - '5.5.23' => + '5.5.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.23.tar.bz2', 'name' => 'PHP 5.5.23 (tar.bz2)', 'date' => '20 Feb 2015', 'sha256' => 'a99ab264dcd40181baa9defeaa4b21eb2c20d4e9316b904cc05f628762e6ada7', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.23.tar.gz', 'name' => 'PHP 5.5.23 (tar.gz)', 'date' => '20 Feb 2015', 'sha256' => 'bf1246d4aca5b1a4e26f5cea273565ad3ee4607f20b7f28a508e3cab1a4d0c82', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.23.tar.xz', 'name' => 'PHP 5.5.23 (tar.xz)', @@ -13182,29 +13182,29 @@ $OLDRELEASES = array ( 'date' => '20 Feb 2015', 'museum' => false, ), - '5.6.6' => + '5.6.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.6.tar.bz2', 'name' => 'PHP 5.6.6 (tar.bz2)', 'date' => '19 Feb 2015', 'sha256' => '09625c9b65e0c8198dc76995a35f0feec0e13ea4489526e64a00954b12adbb4c', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.6.tar.gz', 'name' => 'PHP 5.6.6 (tar.gz)', 'date' => '19 Feb 2015', 'sha256' => '164fb27bab0a0ca4902bc67d5f5638e43466c88153aee3b54546d8ec682ec03b', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.6.tar.xz', 'name' => 'PHP 5.6.6 (tar.xz)', @@ -13215,29 +13215,29 @@ $OLDRELEASES = array ( 'date' => '19 Feb 2015', 'museum' => false, ), - '5.5.22' => + '5.5.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.22.tar.bz2', 'name' => 'PHP 5.5.22 (tar.bz2)', 'date' => '20 Feb 2015', 'sha256' => 'c218c184bef2905bc79fcdda6040f3d1738261395fb706396935d1c6f6e162bb', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.22.tar.gz', 'name' => 'PHP 5.5.22 (tar.gz)', 'date' => '20 Feb 2015', 'sha256' => 'cb6174e1e74de233ec7b461302f823a7eacf7bcc946d347486c930e53f2b7db7', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.22.tar.xz', 'name' => 'PHP 5.5.22 (tar.xz)', @@ -13248,29 +13248,29 @@ $OLDRELEASES = array ( 'date' => '20 Feb 2015', 'museum' => false, ), - '5.6.5' => + '5.6.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.5.tar.bz2', 'name' => 'PHP 5.6.5 (tar.bz2)', 'date' => '22 Jan 2015', 'sha256' => 'adab4c0775512a5ca0ae74e08efdc941d92529b75283e0f44d3f53822cdfd06d', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.5.tar.gz', 'name' => 'PHP 5.6.5 (tar.gz)', 'date' => '22 Jan 2015', 'sha256' => 'f67c480bcf2f6f703ec8d8a772540f4a518f766b08d634d7a919402c13a636cf', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.5.tar.xz', 'name' => 'PHP 5.6.5 (tar.xz)', @@ -13281,29 +13281,29 @@ $OLDRELEASES = array ( 'date' => '22 Jan 2015', 'museum' => false, ), - '5.5.21' => + '5.5.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.21.tar.bz2', 'name' => 'PHP 5.5.21 (tar.bz2)', 'date' => '22 Jan 2015', 'sha256' => '62e9429975c4ca5d7067a5052d5388fbf2ac8c51eeee581d59b04cc5a8da83fe', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.21.tar.gz', 'name' => 'PHP 5.5.21 (tar.gz)', 'date' => '22 Jan 2015', 'sha256' => '45adba5b4d2519f6174b85fd5b07a77389f397603d84084bdd26c44b3d7dc8af', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.21.tar.xz', 'name' => 'PHP 5.5.21 (tar.xz)', @@ -13314,29 +13314,29 @@ $OLDRELEASES = array ( 'date' => '22 Jan 2015', 'museum' => false, ), - '5.6.4' => + '5.6.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.4.tar.bz2', 'name' => 'PHP 5.6.4 (tar.bz2)', 'date' => '18 Dec 2014', 'sha256' => '576f9001b612f5ddc22f447311bbec321e2c959b6a52259d664c4ba04ef044f1', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.4.tar.gz', 'name' => 'PHP 5.6.4 (tar.gz)', 'date' => '18 Dec 2014', 'sha256' => '9c318f10af598e3d0b306a00860cfeb13c34024a9032a59ff53e3cd3c7791e97', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.4.tar.xz', 'name' => 'PHP 5.6.4 (tar.xz)', @@ -13347,29 +13347,29 @@ $OLDRELEASES = array ( 'date' => '18 Dec 2014', 'museum' => false, ), - '5.5.20' => + '5.5.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.20.tar.bz2', 'name' => 'PHP 5.5.20 (tar.bz2)', 'date' => '18 Dec 2014', 'sha256' => 'f28a150d1cd8991bd1a41dce4fdff4e343d1dbe01a48b9b44bea74532ce0391a', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.20.tar.gz', 'name' => 'PHP 5.5.20 (tar.gz)', 'date' => '18 Dec 2014', 'sha256' => '7454e4f2dba3b08b2c88bb178e7bf704ed100f3d7ab6b83ea5046a6e4acb7295', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.20.tar.xz', 'name' => 'PHP 5.5.20 (tar.xz)', @@ -13380,29 +13380,29 @@ $OLDRELEASES = array ( 'date' => '18 Dec 2014', 'museum' => false, ), - '5.6.3' => + '5.6.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.3.tar.bz2', 'name' => 'PHP 5.6.3 (tar.bz2)', 'date' => '13 Nov 2014', 'sha256' => '8986b20124d14430d795165e47801ef065a38d5855bea39d0d47b13ab9ad4009', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.3.tar.gz', 'name' => 'PHP 5.6.3 (tar.gz)', 'date' => '13 Nov 2014', 'sha256' => '7ac79fe7ef50c2d5893375f5d8854909337adf1632e42bb08b36b66a0d8016a7', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.3.tar.xz', 'name' => 'PHP 5.6.3 (tar.xz)', @@ -13413,29 +13413,29 @@ $OLDRELEASES = array ( 'date' => '13 Nov 2014', 'museum' => false, ), - '5.5.19' => + '5.5.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.19.tar.bz2', 'name' => 'PHP 5.5.19 (tar.bz2)', 'date' => '13 Nov 2014', 'sha256' => '4366dbb904cba8c8dd32224ac9408495d20aecaed86a871d78df420f5a23bbff', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.19.tar.gz', 'name' => 'PHP 5.5.19 (tar.gz)', 'date' => '13 Nov 2014', 'sha256' => '8d39f224424f37644da913353f1e773c20b7fc55bb3cc81526c18f91d1d6394e', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.19.tar.xz', 'name' => 'PHP 5.5.19 (tar.xz)', @@ -13446,29 +13446,29 @@ $OLDRELEASES = array ( 'date' => '13 Nov 2014', 'museum' => false, ), - '5.6.2' => + '5.6.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.2.tar.bz2', 'name' => 'PHP 5.6.2 (tar.bz2)', 'date' => '16 Oct 2014', 'sha256' => '671dcf1f636410c63bb9eb015c4c180d904f5436f81217be0adbf52da9becdb5', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.2.tar.gz', 'name' => 'PHP 5.6.2 (tar.gz)', 'date' => '16 Oct 2014', 'sha256' => '4bb316831979317caf738bb9e2c590bf3b7951ce60c69b9ca33f26069d9a2f39', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.2.tar.xz', 'name' => 'PHP 5.6.2 (tar.xz)', @@ -13479,29 +13479,29 @@ $OLDRELEASES = array ( 'date' => '16 Oct 2014', 'museum' => false, ), - '5.5.18' => + '5.5.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.18.tar.bz2', 'name' => 'PHP 5.5.18 (tar.bz2)', 'date' => '16 Oct 2014', 'sha256' => 'f974279927b72b672dda4ef4b4362b4847fd3d19ce1d4f2e982230a4e93bb842', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.18.tar.gz', 'name' => 'PHP 5.5.18 (tar.gz)', 'date' => '16 Oct 2014', 'sha256' => '71f6445cc21c944a3b98592193c62e29a58af3fe26d097312502b4fd400286e4', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.18.tar.xz', 'name' => 'PHP 5.5.18 (tar.xz)', @@ -13512,29 +13512,29 @@ $OLDRELEASES = array ( 'date' => '16 Oct 2014', 'museum' => false, ), - '5.6.1' => + '5.6.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.1.tar.bz2', 'name' => 'PHP 5.6.1 (tar.bz2)', 'date' => '02 Oct 2014', 'sha256' => '82c1ccd17830d697d7a4d75bb60ea12be58fa80b4dba101e97db1a6372ca45f0', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.1.tar.gz', 'name' => 'PHP 5.6.1 (tar.gz)', 'date' => '02 Oct 2014', 'sha256' => 'e34f0ab6b1f431f3115f60094f6d7ded12a90db2361194b8ef9e6eff812db21c', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.1.tar.xz', 'name' => 'PHP 5.6.1 (tar.xz)', @@ -13545,29 +13545,29 @@ $OLDRELEASES = array ( 'date' => '02 Oct 2014', 'museum' => false, ), - '5.5.17' => + '5.5.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.17.tar.bz2', 'name' => 'PHP 5.5.17 (tar.bz2)', 'date' => '18 Sep 2014', 'sha256' => '5d81db0c8b2a68da05715c363d037922b82a45c966785d64a77482e5c01e4e1b', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.17.tar.gz', 'name' => 'PHP 5.5.17 (tar.gz)', 'date' => '18 Sep 2014', 'sha256' => '657169be88ae70625d97bb94dd29140c2b602f1ba8d5e42ca14a400b63cf4720', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.17.tar.xz', 'name' => 'PHP 5.5.17 (tar.xz)', @@ -13578,29 +13578,29 @@ $OLDRELEASES = array ( 'date' => '18 Sep 2014', 'museum' => false, ), - '5.6.0' => + '5.6.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_6_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.6.0.tar.bz2', 'name' => 'PHP 5.6.0 (tar.bz2)', 'date' => '28 Aug 2014', 'sha256' => '097af1be34fc73965e6f8401fd10e73eb56e1969ed4ffd691fb7e91606d0fc09', ), - 1 => + 1 => array ( 'filename' => 'php-5.6.0.tar.gz', 'name' => 'PHP 5.6.0 (tar.gz)', 'date' => '28 Aug 2014', 'sha256' => '284b85376c630a6a7163e5278d64b8526fa1324fe5fd5d21174b54e2c056533f', ), - 2 => + 2 => array ( 'filename' => 'php-5.6.0.tar.xz', 'name' => 'PHP 5.6.0 (tar.xz)', @@ -13611,29 +13611,29 @@ $OLDRELEASES = array ( 'date' => '28 Aug 2014', 'museum' => false, ), - '5.5.16' => + '5.5.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.16.tar.bz2', 'name' => 'PHP 5.5.16 (tar.bz2)', 'date' => '21 Aug 2014', 'sha256' => 'a1d7c4556a80bed744a348211b33bc35303edd56dd0a34e0a75a948c879cc5f6', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.16.tar.gz', 'name' => 'PHP 5.5.16 (tar.gz)', 'date' => '21 Aug 2014', 'sha256' => 'cdea80ab1b0466f4656b46155e341b700799e78569a5cc582eeaededb448086c', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.16.tar.xz', 'name' => 'PHP 5.5.16 (tar.xz)', @@ -13644,29 +13644,29 @@ $OLDRELEASES = array ( 'date' => '21 Aug 2014', 'museum' => false, ), - '5.5.15' => + '5.5.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.15.tar.bz2', 'name' => 'PHP 5.5.15 (tar.bz2)', 'date' => '24 Jul 2014', 'sha256' => '00f24226b12fee27e332383b6304f1b9ed3f4d9173dd728a68c5c3f5a59b8ba7', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.15.tar.gz', 'name' => 'PHP 5.5.15 (tar.gz)', 'date' => '24 Jul 2014', 'sha256' => '578febd686018401c4857699b29502b1aecaf82bf43525d810867f583961ac6e', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.15.tar.xz', 'name' => 'PHP 5.5.15 (tar.xz)', @@ -13677,22 +13677,22 @@ $OLDRELEASES = array ( 'date' => '24 Jul 2014', 'museum' => false, ), - '5.5.14' => + '5.5.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.14.tar.bz2', 'name' => 'PHP 5.5.14 (tar.bz2)', 'date' => '26 Jun 2014', 'sha256' => 'df5a057877f827549e0a60b43fb01e4bd440814bcf04fbd70bacbddf74482610', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.14.tar.gz', 'name' => 'PHP 5.5.14 (tar.gz)', @@ -13703,22 +13703,22 @@ $OLDRELEASES = array ( 'date' => '26 Jun 2014', 'museum' => false, ), - '5.5.13' => + '5.5.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.13.tar.bz2', 'name' => 'PHP 5.5.13 (tar.bz2)', 'date' => '29 May 2014', 'sha256' => 'e58a4a754eb18d2d8b1a120cad5cce4ed24a7db5d49eca5830a40e4c8ca78b9c', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.13.tar.gz', 'name' => 'PHP 5.5.13 (tar.gz)', @@ -13729,22 +13729,22 @@ $OLDRELEASES = array ( 'date' => '29 May 2014', 'museum' => false, ), - '5.5.12' => + '5.5.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.12.tar.bz2', 'name' => 'PHP 5.5.12 (tar.bz2)', 'date' => '30 Apr 2014', 'sha256' => '519ee29e28532782676f3d8e31a808ffbfee383e0279ccc8cbd2b12ed53c2335', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.12.tar.gz', 'name' => 'PHP 5.5.12 (tar.gz)', @@ -13755,22 +13755,22 @@ $OLDRELEASES = array ( 'date' => '30 Apr 2014', 'museum' => false, ), - '5.5.11' => + '5.5.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.11.tar.bz2', 'name' => 'PHP 5.5.11 (tar.bz2)', 'date' => '3 Apr 2014', 'sha256' => '60e14c255f2a461a7a26639b84a2fc448cc2f91c8dead0e9fd00cd8ba27a2e96', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.11.tar.gz', 'name' => 'PHP 5.5.11 (tar.gz)', @@ -13781,22 +13781,22 @@ $OLDRELEASES = array ( 'date' => '3 Apr 2014', 'museum' => false, ), - '5.5.10' => + '5.5.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.10.tar.bz2', 'name' => 'PHP 5.5.10 (tar.bz2)', 'date' => '6 Mar 2014', 'sha256' => 'bb34e61f8e6f56c612867bfe85d144d5045cd5e44497539bc126a4e8c6795419', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.10.tar.gz', 'name' => 'PHP 5.5.10 (tar.gz)', @@ -13807,29 +13807,29 @@ $OLDRELEASES = array ( 'date' => '6 Mar 2014', 'museum' => false, ), - '5.5.9' => + '5.5.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.9.tar.bz2', 'name' => 'PHP 5.5.9 (tar.bz2)', 'date' => '6 Feb 2014', 'sha256' => '9d1dea5195e2bcd928416130a6e19173d02bd36fb76c382522bf145c458fbed3', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.9.tar.gz', 'name' => 'PHP 5.5.9 (tar.gz)', 'date' => '6 Feb 2014', 'sha256' => 'ec1bf0cb3be80240049dbd92c272d4bf242a614fa5f9dcc42a15adb5fd01ccde', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.9.tar.xz', 'name' => 'PHP 5.5.9 (tar.xz)', @@ -13840,22 +13840,22 @@ $OLDRELEASES = array ( 'date' => '6 Feb 2014', 'museum' => false, ), - '5.5.8' => + '5.5.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.8.tar.bz2', 'name' => 'PHP 5.5.8 (tar.bz2)', 'date' => '9 Jan 2014', 'sha256' => '6d5f45659d13383fc8429f185cc9da0b30c7bb72dcae9baf568f0511eb7f8b68', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.8.tar.gz', 'name' => 'PHP 5.5.8 (tar.gz)', @@ -13866,29 +13866,29 @@ $OLDRELEASES = array ( 'date' => '9 Jan 2014', 'museum' => false, ), - '5.5.7' => + '5.5.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.7.tar.bz2', 'name' => 'PHP 5.5.7 (tar.bz2)', 'date' => '12 Dec 2013', 'sha256' => '2cb9425ef514b984dd233097d82a66f4623b9bf48f2ef265bc7ba25d697d6008', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.7.tar.gz', 'name' => 'PHP 5.5.7 (tar.gz)', 'date' => '12 Dec 2013', 'sha256' => '7b954338d7dd538ef6fadbc110e6a0f50d0b39dabec2c12a7f000c17332591b8', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.7.tar.xz', 'name' => 'PHP 5.5.7 (tar.xz)', @@ -13899,36 +13899,36 @@ $OLDRELEASES = array ( 'date' => '12 Dec 2013', 'museum' => false, ), - '5.5.6' => + '5.5.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.6.tar.bz2', 'name' => 'PHP 5.5.6 (tar.bz2)', 'date' => '14 Nov 2013', 'sha256' => 'a9b7d291199d7e6b90ef1d78eb791d738944d66856e76bde9463ce2645b0e4a4', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.6.tar.gz', 'name' => 'PHP 5.5.6 (tar.gz)', 'date' => '14 Nov 2013', 'sha256' => '01f9c45154d4c9a47a825aa662bd64493082bd57dafdc720cf899ee194220a67', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.6.tar.xz', 'name' => 'PHP 5.5.6 (tar.xz)', 'date' => '14 Nov 2013', 'sha256' => '3235a5c15e8fc55498dd80fe43f4aecc51dba35a7fc916aee7ef12d4e1f8767a', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.6 binaries and source', @@ -13937,36 +13937,36 @@ $OLDRELEASES = array ( 'date' => '14 Nov 2013', 'museum' => false, ), - '5.5.5' => + '5.5.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.5.tar.bz2', 'name' => 'PHP 5.5.5 (tar.bz2)', 'date' => '17 Oct 2013', 'sha256' => 'a400b324ae288eb0c9285e550fe5fd7f92c0f4e126496c3b05f9041da6cc04de', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.5.tar.gz', 'name' => 'PHP 5.5.5 (tar.gz)', 'date' => '17 Oct 2013', 'sha256' => '483ff2370fa3a8863e6b023383c4bcfcc3ba462137c30c5fc75043e1755b7d17', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.5.tar.xz', 'name' => 'PHP 5.5.5 (tar.xz)', 'date' => '17 Oct 2013', 'sha256' => '82cc9c88b946354bfe629917a85ed33d8cfc901460d432a75f823667d94f29ee', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.5 binaries and source', @@ -13975,36 +13975,36 @@ $OLDRELEASES = array ( 'date' => '17 Oct 2013', 'museum' => false, ), - '5.5.4' => + '5.5.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.4.tar.bz2', 'name' => 'PHP 5.5.4 (tar.bz2)', 'md5' => '456f2eb1ee36f2a277bd4cc778e720eb', 'date' => '19 Sep 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.4.tar.gz', 'name' => 'PHP 5.5.4 (tar.gz)', 'md5' => 'bf842770ac64a47ff599f463e6cf1334', 'date' => '19 Sep 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.4.tar.xz', 'name' => 'PHP 5.5.4 (tar.xz)', 'md5' => '32c1dc56701d21def91a39a312392b54', 'date' => '19 Sep 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.4 binaries and source', @@ -14013,36 +14013,36 @@ $OLDRELEASES = array ( 'date' => '19 Sep 2013', 'museum' => true, ), - '5.5.3' => + '5.5.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.3.tar.bz2', 'name' => 'PHP 5.5.3 (tar.bz2)', 'md5' => '886b08ee6865d654911a6bb02ae98ee8', 'date' => '22 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.3.tar.gz', 'name' => 'PHP 5.5.3 (tar.gz)', 'md5' => 'a5dfdd41ccf539942db966310f7429da', 'date' => '22 Aug 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.3.tar.xz', 'name' => 'PHP 5.5.3 (tar.xz)', 'md5' => '437e98144ef014dfab0922a9eed36853', 'date' => '22 Aug 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.3 binaries and source', @@ -14051,36 +14051,36 @@ $OLDRELEASES = array ( 'date' => '22 Aug 2013', 'museum' => true, ), - '5.5.2' => + '5.5.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.2.tar.bz2', 'name' => 'PHP 5.5.2 (tar.bz2)', 'md5' => 'caf7f4d86514a568fb3c8021b096a9f0', 'date' => '15 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.2.tar.gz', 'name' => 'PHP 5.5.2 (tar.gz)', 'md5' => '2a90884749f97868071538098b3debc1', 'date' => '15 Aug 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.2.tar.xz', 'name' => 'PHP 5.5.2 (tar.xz)', 'md5' => '95c6d7a4c36c475b10447954dea056a5', 'date' => '15 Aug 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.2 binaries and source', @@ -14089,36 +14089,36 @@ $OLDRELEASES = array ( 'date' => '15 Aug 2013', 'museum' => true, ), - '5.5.1' => + '5.5.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.1.tar.bz2', 'name' => 'PHP 5.5.1 (tar.bz2)', 'md5' => 'e6520ba8f86e03451f1e9226ca2be681', 'date' => '18 Jul 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.1.tar.gz', 'name' => 'PHP 5.5.1 (tar.gz)', 'md5' => 'a7d9598c0e60b47960b8e803e51c4309', 'date' => '18 Jul 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.1.tar.xz', 'name' => 'PHP 5.5.1 (tar.xz)', 'md5' => '365403c216d22255c3aa57fe54944f8e', 'date' => '18 Jul 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.1 binaries and source', @@ -14127,36 +14127,36 @@ $OLDRELEASES = array ( 'date' => '18 Jul 2013', 'museum' => true, ), - '5.5.0' => + '5.5.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_5_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.5.0.tar.bz2', 'name' => 'PHP 5.5.0 (tar.bz2)', 'md5' => 'daf2d54e79def9fd0fb2ac7dfcefb7f3', 'date' => '20 Jun 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.5.0.tar.gz', 'name' => 'PHP 5.5.0 (tar.gz)', 'md5' => '79c4e7a8cb0f8e2e072120775b92c523', 'date' => '20 Jun 2013', ), - 2 => + 2 => array ( 'filename' => 'php-5.5.0.tar.xz', 'name' => 'PHP 5.5.0 (tar.xz)', 'md5' => 'c7df0cb28cfff4e277fd9cd9b73cebfb', 'date' => '20 Jun 2013', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.5', 'name' => 'Windows 5.5.0 binaries and source', @@ -14165,29 +14165,29 @@ $OLDRELEASES = array ( 'date' => '20 Jun 2013', 'museum' => true, ), - '5.4.45' => + '5.4.45' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_45.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.45.tar.bz2', 'name' => 'PHP 5.4.45 (tar.bz2)', 'sha256' => '4e0d28b1554c95cfaea6fa2b64aac85433f158ce72bb571bcd5574f98f4c6582', 'date' => '03 Sep 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.45.tar.gz', 'name' => 'PHP 5.4.45 (tar.gz)', 'sha256' => '25bc4723955f4e352935258002af14a14a9810b491a19400d76fcdfa9d04b28f', 'date' => '03 Sep 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.45 binaries and source', @@ -14196,29 +14196,29 @@ $OLDRELEASES = array ( 'date' => '03 Sep 2015', 'museum' => false, ), - '5.4.44' => + '5.4.44' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_44.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.44.tar.bz2', 'name' => 'PHP 5.4.44 (tar.bz2)', 'sha256' => '8dd59e5ce9248cf36ac3de5412a518b8b24c01ace6c46ce3d12e4ce981a3856d', 'date' => '06 Aug 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.44.tar.gz', 'name' => 'PHP 5.4.44 (tar.gz)', 'sha256' => '1799998e48da3d8f34722840628e18789e26ea21741d4e498ade6749b3266602', 'date' => '06 Aug 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.44 binaries and source', @@ -14227,29 +14227,29 @@ $OLDRELEASES = array ( 'date' => '06 Aug 2015', 'museum' => false, ), - '5.4.43' => + '5.4.43' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_43.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.43.tar.bz2', 'name' => 'PHP 5.4.43 (tar.bz2)', 'sha256' => '25d7724fb00ad1b520f5bad2173717031153d0a8e3de2c75e7a084c76f8ecd6b', 'date' => '09 Jul 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.43.tar.gz', 'name' => 'PHP 5.4.43 (tar.gz)', 'sha256' => 'cfc2176adc05f009666ecfab4a1cc66cc546c5d071245b2a048b3d113f67a2af', 'date' => '09 Jul 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.43 binaries and source', @@ -14258,29 +14258,29 @@ $OLDRELEASES = array ( 'date' => '09 Jul 2015', 'museum' => false, ), - '5.4.42' => + '5.4.42' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_42.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.42.tar.bz2', 'name' => 'PHP 5.4.42 (tar.bz2)', 'sha256' => '6285b2e64bfaa69e5d983d7d981b4f254f5259ad3fd591ca832722a4cc1ae0f9', 'date' => '11 Jun 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.42.tar.gz', 'name' => 'PHP 5.4.42 (tar.gz)', 'sha256' => 'f0b40c097a6f11c4c2f5078d34f50fb9428d79b9e9821117bd7d6cca6af78d11', 'date' => '11 Jun 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.42 binaries and source', @@ -14289,29 +14289,29 @@ $OLDRELEASES = array ( 'date' => '11 Jun 2015', 'museum' => false, ), - '5.4.41' => + '5.4.41' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_41.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.41.tar.bz2', 'name' => 'PHP 5.4.41 (tar.bz2)', 'sha256' => '5bc4b45a1280ff80a3cf5b8563716f325cfd0121d7fd25aa54d56ff38b3b8272', 'date' => '14 May 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.41.tar.gz', 'name' => 'PHP 5.4.41 (tar.gz)', 'sha256' => '638cf19c865bc4eba2a4bab8952116a62691d1a72e1e2c9a9a2aadee92d1ce2e', 'date' => '14 May 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.41 binaries and source', @@ -14320,29 +14320,29 @@ $OLDRELEASES = array ( 'date' => '14 May 2015', 'museum' => false, ), - '5.4.40' => + '5.4.40' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_40.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.40.tar.bz2', 'name' => 'PHP 5.4.40 (tar.bz2)', 'sha256' => '4898ffe8ac3ccb2d8cc94f7d76a9ea0414d954f5d4479895ddfccdc2e158a51a', 'date' => '16 Apr 2015', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.40.tar.gz', 'name' => 'PHP 5.4.40 (tar.gz)', 'sha256' => '663f5d06cd648e81ba4f2d6ad621bb580d83de70240c832dae527c97954da33d', 'date' => '16 Apr 2015', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.40 binaries and source', @@ -14351,29 +14351,29 @@ $OLDRELEASES = array ( 'date' => '16 Apr 2015', 'museum' => false, ), - '5.4.39' => + '5.4.39' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_39.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.39.tar.bz2', 'name' => 'PHP 5.4.39 (tar.bz2)', 'date' => '19 Mar 2015', 'sha256' => '7ceb76538e709c74533210ae41148d5c01c330ac8a73220954bbc4fcae69d77e', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.39.tar.gz', 'name' => 'PHP 5.4.39 (tar.gz)', 'date' => '19 Mar 2015', 'sha256' => '9af5d2c3782aa94b7336401755dc44b62dc4ea881bf5e39540a4c7181b54d945', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.39 binaries and source', @@ -14382,29 +14382,29 @@ $OLDRELEASES = array ( 'date' => '19 Mar 2015', 'museum' => false, ), - '5.4.38' => + '5.4.38' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_38.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.38.tar.bz2', 'name' => 'PHP 5.4.38 (tar.bz2)', 'date' => '19 Feb 2015', 'sha256' => 'abf37db0cfadc9bb814f9df35f6aa966ad63f4f4c4475e432ec625568a5d3e88', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.38.tar.gz', 'name' => 'PHP 5.4.38 (tar.gz)', 'date' => '19 Feb 2015', 'sha256' => 'e694b7265f314f73c9df43538e0e54e2495cb72252e8a91c1aec66ffcf47241f', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.38 binaries and source', @@ -14413,29 +14413,29 @@ $OLDRELEASES = array ( 'date' => '19 Feb 2015', 'museum' => false, ), - '5.4.37' => + '5.4.37' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_37.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.37.tar.bz2', 'name' => 'PHP 5.4.37 (tar.bz2)', 'date' => '22 Jan 2015', 'sha256' => '857bf6675eeb0ae9c3cd6f9ccdb2a9b7bf89dcfda7f0a80857638fe023f3a8ad', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.37.tar.gz', 'name' => 'PHP 5.4.37 (tar.gz)', 'date' => '22 Jan 2015', 'sha256' => '6bf3b3ebefa600cfb6dd7f2678f23b17a958e82e8ce2d012286818d7c36dfd31', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.37 binaries and source', @@ -14444,29 +14444,29 @@ $OLDRELEASES = array ( 'date' => '22 Jan 2015', 'museum' => false, ), - '5.4.36' => + '5.4.36' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_36.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.36.tar.bz2', 'name' => 'PHP 5.4.36 (tar.bz2)', 'date' => '18 Dec 2014', 'sha256' => 'b0951608c3e8afb978a624c7f79a889980210f5258f666c1d997bd6491e13241', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.36.tar.gz', 'name' => 'PHP 5.4.36 (tar.gz)', 'date' => '18 Dec 2014', 'sha256' => 'e11851662222765d6ab6e671adc983c657d5358a183856b43a5bad0c612d2959', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.36 binaries and source', @@ -14475,29 +14475,29 @@ $OLDRELEASES = array ( 'date' => '18 Dec 2014', 'museum' => false, ), - '5.4.35' => + '5.4.35' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_35.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.35.tar.bz2', 'name' => 'PHP 5.4.35 (tar.bz2)', 'date' => '13 Nov 2014', 'sha256' => '8cdb4265cd0f778befacd1e6b5939ec23315fff38400e17e77a36e4c55b9746b', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.35.tar.gz', 'name' => 'PHP 5.4.35 (tar.gz)', 'date' => '13 Nov 2014', 'sha256' => '7ecab4ebb880b6d4f68bd4e3e49d837d4704fe26d81dc992b17b74151ee950a7', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.35 binaries and source', @@ -14506,29 +14506,29 @@ $OLDRELEASES = array ( 'date' => '13 Nov 2014', 'museum' => false, ), - '5.4.34' => + '5.4.34' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_34.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.34.tar.bz2', 'name' => 'PHP 5.4.34 (tar.bz2)', 'date' => '16 Oct 2014', 'sha256' => '57d4ea10f0c18b096a7c8fd0a98dcbe40c8f4dc94453fd3ca0a10e35fb2f8234', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.34.tar.gz', 'name' => 'PHP 5.4.34 (tar.gz)', 'date' => '16 Oct 2014', 'sha256' => 'c8d909062ad7616cedb54dc03d85b40d40f6d4adce986ec8cabd9b8b94872096', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.34 binaries and source', @@ -14537,29 +14537,29 @@ $OLDRELEASES = array ( 'date' => '16 Oct 2014', 'museum' => false, ), - '5.4.33' => + '5.4.33' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_33.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.33.tar.bz2', 'name' => 'PHP 5.4.33 (tar.bz2)', 'sha256' => '1a75b2d0835e74b8886cd3980d9598a0e06691441bb7f91d19b74c2278e40bb5', 'date' => '18 Sep 2014', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.33.tar.gz', 'name' => 'PHP 5.4.33 (tar.gz)', 'sha256' => '74e542dd2f15ebbc123738a71e867d57d2996a6edb40e6ac62fcf5ab85763d19', 'date' => '18 Sep 2014', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.33 binaries and source', @@ -14568,29 +14568,29 @@ $OLDRELEASES = array ( 'date' => '18 Sep 2014', 'museum' => false, ), - '5.4.32' => + '5.4.32' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_32.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.32.tar.bz2', 'name' => 'PHP 5.4.32 (tar.bz2)', 'date' => '21 Aug 2014', 'sha256' => '26d0717669a098f18cd22dc3ae8282101d38508054500c26775ddcc26ca7c826', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.32.tar.gz', 'name' => 'PHP 5.4.32 (tar.gz)', 'date' => '21 Aug 2014', 'sha256' => '80ebdf34f91b8e1d516080363804137177368777aa9ecffee600f2957e8b0f94', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.32 binaries and source', @@ -14599,29 +14599,29 @@ $OLDRELEASES = array ( 'date' => '21 Aug 2014', 'museum' => false, ), - '5.4.31' => + '5.4.31' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_31.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.31.tar.bz2', 'name' => 'PHP 5.4.31 (tar.bz2)', 'date' => '24 Jul 2014', 'sha256' => '5e8e491431fd1d99df925d762b05da05c80b02cb38c9b3db616e8894a307914d', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.31.tar.gz', 'name' => 'PHP 5.4.31 (tar.gz)', 'date' => '24 Jul 2014', 'sha256' => '332f62e4f751482d40ad08544ee97e004170d0382c84d01ce8efe405d0972f66', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.31 binaries and source', @@ -14630,29 +14630,29 @@ $OLDRELEASES = array ( 'date' => '24 Jul 2014', 'museum' => false, ), - '5.4.30' => + '5.4.30' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_30.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.30.tar.bz2', 'name' => 'PHP 5.4.30 (tar.bz2)', 'date' => '26 Jun 2014', 'sha256' => '32b83644e42d57388d6e5ec700c3502cde5f5e1207395b1e361e4cb2ce496ce6', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.30.tar.gz', 'name' => 'PHP 5.4.30 (tar.gz)', 'date' => '26 Jun 2014', 'sha256' => 'c17da64890b728bdc146bdc69b37085412d4e2585fac98848ac2e824bb564c85', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.30 binaries and source', @@ -14661,29 +14661,29 @@ $OLDRELEASES = array ( 'date' => '26 Jun 2014', 'museum' => false, ), - '5.4.29' => + '5.4.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.29.tar.bz2', 'name' => 'PHP 5.4.29 (tar.bz2)', 'date' => '29 May 2014', 'sha256' => '62ce3ca063cf04f6065eeac82117e43b44e20487bc0a0a8d05436e17a0b1e2a7', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.29.tar.gz', 'name' => 'PHP 5.4.29 (tar.gz)', 'date' => '29 May 2014', 'sha256' => '9fa51d3e44783802ea51b910719ad524a8994524f7cf7307f683fe89191bc401', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.29 binaries and source', @@ -14692,29 +14692,29 @@ $OLDRELEASES = array ( 'date' => '29 May 2014', 'museum' => false, ), - '5.4.28' => + '5.4.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.28.tar.bz2', 'name' => 'PHP 5.4.28 (tar.bz2)', 'date' => '2 May 2014', 'sha256' => '3fe780e5179e90c4d37276e79acc0d0692f1bc0911985af694b92c664c0ef3c4', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.28.tar.gz', 'name' => 'PHP 5.4.28 (tar.gz)', 'date' => '2 May 2014', 'sha256' => '5140292c94a0301db7a807e6b3aadf6ee966346d0005aa3d15464bd4c595a786', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.28 binaries and source', @@ -14723,29 +14723,29 @@ $OLDRELEASES = array ( 'date' => '2 May 2014', 'museum' => false, ), - '5.4.27' => + '5.4.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.27.tar.bz2', 'name' => 'PHP 5.4.27 (tar.bz2)', 'date' => '3 Apr 2014', 'sha256' => '09dcc44cded735e1cf1b1b9f2749d1a0fd90e03378b6a70364a662f4740e61e2', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.27.tar.gz', 'name' => 'PHP 5.4.27 (tar.gz)', 'date' => '3 Apr 2014', 'sha256' => 'a70dc68eeed902f8378fded473d53e4e37be645b941554dcf4237559cbda2bb3', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.27 binaries and source', @@ -14754,29 +14754,29 @@ $OLDRELEASES = array ( 'date' => '3 Apr 2014', 'museum' => false, ), - '5.4.26' => + '5.4.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.26.tar.bz2', 'name' => 'PHP 5.4.26 (tar.bz2)', 'date' => '6 Mar 2014', 'sha256' => '5053649317b9331df40bd836c976a32b31dbc5c5d68997d3ae01cb90db22d240', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.26.tar.gz', 'name' => 'PHP 5.4.26 (tar.gz)', 'date' => '6 Mar 2014', 'sha256' => 'ec3f902b5e8cbdd660e01e784b537f1210a12182d9bbd62164776075bc097eca', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.26 binaries and source', @@ -14785,29 +14785,29 @@ $OLDRELEASES = array ( 'date' => '6 Mar 2014', 'museum' => false, ), - '5.4.25' => + '5.4.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.25.tar.bz2', 'name' => 'PHP 5.4.25 (tar.bz2)', 'date' => '6 Feb 2014', 'sha256' => 'b6c18c07c6bf34f75e601b28829d636e44c1c9f4267aac4ed013443c32a2245f', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.25.tar.gz', 'name' => 'PHP 5.4.25 (tar.gz)', 'date' => '6 Feb 2014', 'sha256' => '0c66cec73bfbd31f68c96e5a4d8454599271f0b0462c2ff7dedce4262fda8fe3', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.25 binaries and source', @@ -14816,29 +14816,29 @@ $OLDRELEASES = array ( 'date' => '6 Feb 2014', 'museum' => false, ), - '5.4.24' => + '5.4.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.24.tar.bz2', 'name' => 'PHP 5.4.24 (tar.bz2)', 'date' => '9 Jan 2014', 'sha256' => '97fe70eddaf5b93969714a551870fe03f6b0a387f85b83a6d63a40a76199a327', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.24.tar.gz', 'name' => 'PHP 5.4.24 (tar.gz)', 'date' => '9 Jan 2014', 'sha256' => 'c64d6e3b428e78b44760167557e26cd16a9f83f449a255e69d5e035bdd7057ed', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.24 binaries and source', @@ -14847,29 +14847,29 @@ $OLDRELEASES = array ( 'date' => '9 Jan 2014', 'museum' => false, ), - '5.4.23' => + '5.4.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.23.tar.bz2', 'name' => 'PHP 5.4.23 (tar.bz2)', 'date' => '12 Dec 2013', 'sha256' => 'ae7c070fa9b9e16413ef944d910b68f3ba79192eca4010b0af132b8631bd91cc', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.23.tar.gz', 'name' => 'PHP 5.4.23 (tar.gz)', 'date' => '12 Dec 2013', 'sha256' => 'c9add0e59f41298a253bbb9090c47a03064b099120a563ca8ad289e18fcd1ce7', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.23 binaries and source', @@ -14878,29 +14878,29 @@ $OLDRELEASES = array ( 'date' => '12 Dec 2013', 'museum' => false, ), - '5.4.22' => + '5.4.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.22.tar.bz2', 'name' => 'PHP 5.4.22 (tar.bz2)', 'date' => '14 Nov 2013', 'sha256' => '3b8619b030e372f2b64e3a059d05a3ef3354e81f8a72923ba45475bf222f7cca', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.22.tar.gz', 'name' => 'PHP 5.4.22 (tar.gz)', 'date' => '14 Nov 2013', 'sha256' => 'ca6e52a0ba11e9521c6a26f293a602cdc00cad1adbb4658e35b8d3f41057cbb8', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.22 binaries and source', @@ -14909,29 +14909,29 @@ $OLDRELEASES = array ( 'date' => '14 Nov 2013', 'museum' => false, ), - '5.4.21' => + '5.4.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.21.tar.bz2', 'name' => 'PHP 5.4.21 (tar.bz2)', 'md5' => '3dcf021e89b039409d0b1c346b936b5f', 'date' => '17 Oct 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.21.tar.gz', 'name' => 'PHP 5.4.21 (tar.gz)', 'md5' => 'cc8da0d18683e3a83b332f264af7ca83', 'date' => '17 Oct 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.21 binaries and source', @@ -14940,29 +14940,29 @@ $OLDRELEASES = array ( 'date' => '17 Oct 2013', 'museum' => true, ), - '5.4.20' => + '5.4.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.20.tar.bz2', 'name' => 'PHP 5.4.20 (tar.bz2)', 'md5' => 'e25db5592ed14842b4239be9d990cce8', 'date' => '19 Sep 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.20.tar.gz', 'name' => 'PHP 5.4.20 (tar.gz)', 'md5' => 'e505b63ebe383ef9a378467216ba69d4', 'date' => '19 Sep 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.20 binaries and source', @@ -14971,29 +14971,29 @@ $OLDRELEASES = array ( 'date' => '19 Sep 2013', 'museum' => true, ), - '5.4.19' => + '5.4.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.19.tar.bz2', 'name' => 'PHP 5.4.19 (tar.bz2)', 'md5' => 'f06f99b9872b503758adab5ba7a7e755', 'date' => '22 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.19.tar.gz', 'name' => 'PHP 5.4.19 (tar.gz)', 'md5' => '9e7ad2494ba3de519328f74267de8342', 'date' => '22 Aug 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.19 binaries and source', @@ -15002,29 +15002,29 @@ $OLDRELEASES = array ( 'date' => '22 Aug 2013', 'museum' => true, ), - '5.4.18' => + '5.4.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.18.tar.bz2', 'name' => 'PHP 5.4.18 (tar.bz2)', 'md5' => 'b2e185b46b22a48a385cf21a0dc76e65', 'date' => '15 Aug 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.18.tar.gz', 'name' => 'PHP 5.4.18 (tar.gz)', 'md5' => 'd0a3f55deceaec921f45f76d7b4e764b', 'date' => '15 Aug 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.18 binaries and source', @@ -15033,29 +15033,29 @@ $OLDRELEASES = array ( 'date' => '04 Jul 2013', 'museum' => true, ), - '5.4.17' => + '5.4.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.17.tar.bz2', 'name' => 'PHP 5.4.17 (tar.bz2)', 'md5' => '1e027e99e2a874310fd518e87e3947af', 'date' => '04 Jul 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.17.tar.gz', 'name' => 'PHP 5.4.17 (tar.gz)', 'md5' => 'cc698032dcdcb9ad158edcc90fe798d6', 'date' => '04 Jul 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.17 binaries and source', @@ -15064,29 +15064,29 @@ $OLDRELEASES = array ( 'date' => '04 Jul 2013', 'museum' => true, ), - '5.4.16' => + '5.4.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.16.tar.bz2', 'name' => 'PHP 5.4.16 (tar.bz2)', 'md5' => '3d2c694d28861d707b2622c3cc941cff', 'date' => '06 Jun 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.16.tar.gz', 'name' => 'PHP 5.4.16 (tar.gz)', 'md5' => '3940a5295872964495f9c56596272d68', 'date' => '06 Jun 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.16 binaries and source', @@ -15095,29 +15095,29 @@ $OLDRELEASES = array ( 'date' => '09 May 2013', 'museum' => true, ), - '5.4.15' => + '5.4.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.15.tar.bz2', 'name' => 'PHP 5.4.15 (tar.bz2)', 'md5' => '145ea5e845e910443ff1eddb3dbcf56a', 'date' => '09 May 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.15.tar.gz', 'name' => 'PHP 5.4.15 (tar.gz)', 'md5' => '2651b983c18df9d455ec4c69aef45834', 'date' => '09 May 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.15 binaries and source', @@ -15126,29 +15126,29 @@ $OLDRELEASES = array ( 'date' => '09 May 2013', 'museum' => true, ), - '5.4.14' => + '5.4.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.14.tar.bz2', 'name' => 'PHP 5.4.14 (tar.bz2)', 'md5' => 'cfdc044be2c582991a1fe0967898fa38', 'date' => '11 Apr 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.14.tar.gz', 'name' => 'PHP 5.4.14 (tar.gz)', 'md5' => '08df8196af12bc850409a7bff13bf8f0', 'date' => '11 Apr 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.14 binaries and source', @@ -15157,29 +15157,29 @@ $OLDRELEASES = array ( 'date' => '11 Apr 2013', 'museum' => true, ), - '5.4.13' => + '5.4.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.13.tar.bz2', 'name' => 'PHP 5.4.13 (tar.bz2)', 'md5' => 'cacd308e978b7cf9ba4993196612ccf7', 'date' => '14 Mar 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.13.tar.gz', 'name' => 'PHP 5.4.13 (tar.gz)', 'md5' => '445025340677d5bfe22eb670d6db6795', 'date' => '14 Mar 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.13 binaries and source', @@ -15188,29 +15188,29 @@ $OLDRELEASES = array ( 'date' => '14 Mar 2013', 'museum' => true, ), - '5.4.12' => + '5.4.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.12.tar.bz2', 'name' => 'PHP 5.4.12 (tar.bz2)', 'md5' => '5c7b614242ae12e9cacca21c8ab84818', 'date' => '21 Feb 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.12.tar.gz', 'name' => 'PHP 5.4.12 (tar.gz)', 'md5' => '81b20cac4f977b8764ae904302048d84', 'date' => '21 Feb 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.12 binaries and source', @@ -15219,29 +15219,29 @@ $OLDRELEASES = array ( 'date' => '21 Feb 2013', 'museum' => true, ), - '5.4.11' => + '5.4.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.11.tar.bz2', 'name' => 'PHP 5.4.11 (tar.bz2)', 'md5' => '9975e68c22b86b013b934743ad2d2276', 'date' => '17 Jan 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.11.tar.gz', 'name' => 'PHP 5.4.11 (tar.gz)', 'md5' => '32fa16b3abd5527316c3c076b3395914', 'date' => '17 Jan 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.11 binaries and source', @@ -15250,29 +15250,29 @@ $OLDRELEASES = array ( 'date' => '17 Jan 2013', 'museum' => true, ), - '5.4.10' => + '5.4.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.10.tar.bz2', 'name' => 'PHP 5.4.10 (tar.bz2)', 'md5' => 'cb716b657a30570b9b468b9e7bc551a1', 'date' => '20 Dec 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.10.tar.gz', 'name' => 'PHP 5.4.10 (tar.gz)', 'md5' => '1e7fbe418658d5433bd315030584c45c', 'date' => '20 Dec 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.10 binaries and source', @@ -15281,29 +15281,29 @@ $OLDRELEASES = array ( 'date' => '20 Dec 2012', 'museum' => true, ), - '5.4.9' => + '5.4.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.9.tar.bz2', 'name' => 'PHP 5.4.9 (tar.bz2)', 'md5' => '076a9f84d861d3f664a2878d5773ba78', 'date' => '22 Nov 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.9.tar.gz', 'name' => 'PHP 5.4.9 (tar.gz)', 'md5' => 'e1ac28e1cf20738f0aeeba8261aa4537', 'date' => '22 Nov 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.9 binaries and source', @@ -15312,29 +15312,29 @@ $OLDRELEASES = array ( 'date' => '22 Nov 2012', 'museum' => true, ), - '5.4.8' => + '5.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.8.tar.bz2', 'name' => 'PHP 5.4.8 (tar.bz2)', 'md5' => 'bb8c816a9299be8995255ef70c63b800', 'date' => '18 Oct 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.8.tar.gz', 'name' => 'PHP 5.4.8 (tar.gz)', 'md5' => 'b25b735f342efbfdcdaf00b83189f183', 'date' => '18 Oct 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.8 binaries and source', @@ -15343,29 +15343,29 @@ $OLDRELEASES = array ( 'date' => '18 Oct 2012', 'museum' => true, ), - '5.4.7' => + '5.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.7.tar.bz2', 'name' => 'PHP 5.4.7 (tar.bz2)', 'md5' => '9cd421f1cc8fa8e7f215e44a1b06199f', 'date' => '13 Sep 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.7.tar.gz', 'name' => 'PHP 5.4.7 (tar.gz)', 'md5' => '94661b761dcfdfdd5108e8b12e0dd4f8', 'date' => '13 Sep 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.7 binaries and source', @@ -15374,29 +15374,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2012', 'museum' => true, ), - '5.4.6' => + '5.4.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.6.tar.bz2', 'name' => 'PHP 5.4.6 (tar.bz2)', 'md5' => 'c9aa0f4996d1b91ee9e45afcfaeb5d2e', 'date' => '16 Aug 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.6.tar.gz', 'name' => 'PHP 5.4.6 (tar.gz)', 'md5' => 'efe59afb73190c9bd6d50614998ffceb', 'date' => '16 Aug 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.6 binaries and source', @@ -15405,29 +15405,29 @@ $OLDRELEASES = array ( 'date' => '16 Aug 2012', 'museum' => true, ), - '5.4.5' => + '5.4.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.5.tar.bz2', 'name' => 'PHP 5.4.5 (tar.bz2)', 'md5' => 'ffcc7f4dcf2b79d667fe0c110e6cb724', 'date' => '19 July 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.5.tar.gz', 'name' => 'PHP 5.4.5 (tar.gz)', 'md5' => '51fb5bf974d92359f0606dffc810735a', 'date' => '19 July 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.5 binaries and source', @@ -15436,29 +15436,29 @@ $OLDRELEASES = array ( 'date' => '19 July 2012', 'museum' => true, ), - '5.4.4' => + '5.4.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.4.tar.bz2', 'name' => 'PHP 5.4.4 (tar.bz2)', 'md5' => '1fd98dc3f6f3805cd67bff12a26ed77f', 'date' => '14 June 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.4.tar.gz', 'name' => 'PHP 5.4.4 (tar.gz)', 'md5' => '8366c3626f2275ab8c7ef5e2d6bc5bd7', 'date' => '14 June 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.4.4 binaries and source', @@ -15467,22 +15467,22 @@ $OLDRELEASES = array ( 'date' => '14 June 2012', 'museum' => true, ), - '5.4.3' => + '5.4.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.3.tar.bz2', 'name' => 'PHP 5.4.3 (tar.bz2)', 'md5' => '51f9488bf8682399b802c48656315cac', 'date' => '08 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.3.tar.gz', 'name' => 'PHP 5.4.3 (tar.gz)', @@ -15493,22 +15493,22 @@ $OLDRELEASES = array ( 'date' => '08 May 2012', 'museum' => true, ), - '5.4.2' => + '5.4.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.2.tar.bz2', 'name' => 'PHP 5.4.2 (tar.bz2)', 'md5' => '252a6546db3a26260b419a883c875615', 'date' => '03 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.2.tar.gz', 'name' => 'PHP 5.4.2 (tar.gz)', @@ -15519,22 +15519,22 @@ $OLDRELEASES = array ( 'date' => '03 May 2012', 'museum' => true, ), - '5.4.1' => + '5.4.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.1.tar.bz2', 'name' => 'PHP 5.4.1 (tar.bz2)', 'md5' => '5b9529ed89dbc48c498e9693d1af3caf', 'date' => '26 April 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.1.tar.gz', 'name' => 'PHP 5.4.1 (tar.gz)', @@ -15545,22 +15545,22 @@ $OLDRELEASES = array ( 'date' => '26 April 2012', 'museum' => true, ), - '5.4.0' => + '5.4.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_4_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.4.0.tar.bz2', 'name' => 'PHP 5.4.0 (tar.bz2)', 'md5' => '04bb6f9d71ea86ba05685439d50db074', 'date' => '01 March 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.4.0.tar.gz', 'name' => 'PHP 5.4.0 (tar.gz)', @@ -15571,36 +15571,36 @@ $OLDRELEASES = array ( 'date' => '01 March 2012', 'museum' => true, ), - '5.3.29' => + '5.3.29' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_29.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.29.tar.bz2', 'name' => 'PHP 5.3.29 (tar.bz2)', 'date' => '14 Aug 2014', 'sha256' => 'c4e1cf6972b2a9c7f2777a18497d83bf713cdbecabb65d3ff62ba441aebb0091', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.29.tar.gz', 'name' => 'PHP 5.3.29 (tar.gz)', 'date' => '14 Aug 2014', 'sha256' => '57cf097de3d6c3152dda342f62b1b2e9c988f4cfe300ccfe3c11f3c207a0e317', ), - 2 => + 2 => array ( 'filename' => 'php-5.3.29.tar.xz', 'name' => 'PHP 5.3.29 (tar.xz)', 'date' => '14 Aug 2014', 'sha256' => '8438c2f14ab8f3d6cd2495aa37de7b559e33b610f9ab264f0c61b531bf0c262d', ), - 3 => + 3 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.29 binaries and source', @@ -15609,29 +15609,29 @@ $OLDRELEASES = array ( 'date' => '14 Aug 2014', 'museum' => false, ), - '5.3.28' => + '5.3.28' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_28.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.28.tar.bz2', 'name' => 'PHP 5.3.28 (tar.bz2)', 'date' => '12 Dec 2013', 'sha256' => '0cac960c651c4fbb3d21cf2f2b279a06e21948fb35a0d1439b97296cac1d8513', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.28.tar.gz', 'name' => 'PHP 5.3.28 (tar.gz)', 'date' => '12 Dec 2013', 'sha256' => 'ace8fde82a4275d6dcec4e15feb047416e1813fea46e159dfd113298371396d0', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.28 binaries and source', @@ -15640,29 +15640,29 @@ $OLDRELEASES = array ( 'date' => '11 Jul 2013', 'museum' => false, ), - '5.3.27' => + '5.3.27' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_27.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.27.tar.bz2', 'name' => 'PHP 5.3.27 (tar.bz2)', 'date' => '11 Jul 2013', 'sha256' => 'e12db21c623b82a2244c4dd9b06bb75af20868c1b748a105a6829a5acc36b287', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.27.tar.gz', 'name' => 'PHP 5.3.27 (tar.gz)', 'date' => '11 Jul 2013', 'sha256' => '5ecd737fc79ad33b5c79a9784c0b4211d211ba682d4d721ac6ce975907a5b12b', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.27 binaries and source', @@ -15671,29 +15671,29 @@ $OLDRELEASES = array ( 'date' => '11 Jul 2013', 'museum' => false, ), - '5.3.26' => + '5.3.26' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_26.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.26.tar.bz2', 'name' => 'PHP 5.3.26 (tar.bz2)', 'md5' => 'd71db8d92edbb48beb5b645b55471139', 'date' => '06 Jun 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.26.tar.gz', 'name' => 'PHP 5.3.26 (tar.gz)', 'md5' => 'a430a48b8939fe1f8915ee38681b0afa', 'date' => '06 Jun 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.26 binaries and source', @@ -15702,29 +15702,29 @@ $OLDRELEASES = array ( 'date' => '06 Jun 2013', 'museum' => true, ), - '5.3.25' => + '5.3.25' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_25.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.25.tar.bz2', 'name' => 'PHP 5.3.25 (tar.bz2)', 'md5' => 'd71db8d92edbb48beb5b645b55471139', 'date' => '09 May 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.25.tar.gz', 'name' => 'PHP 5.3.25 (tar.gz)', 'md5' => 'a430a48b8939fe1f8915ee38681b0afa', 'date' => '09 May 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.25 binaries and source', @@ -15733,29 +15733,29 @@ $OLDRELEASES = array ( 'date' => '09 May 2013', 'museum' => true, ), - '5.3.24' => + '5.3.24' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_24.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.24.tar.bz2', 'name' => 'PHP 5.3.24 (tar.bz2)', 'md5' => '9820604df98c648297dcd31ffb8214e8', 'date' => '11 Apr 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.24.tar.gz', 'name' => 'PHP 5.3.24 (tar.gz)', 'md5' => 'cb0311a6a5ed6ffff8f41f713f9d8e84', 'date' => '11 Apr 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.24 binaries and source', @@ -15764,29 +15764,29 @@ $OLDRELEASES = array ( 'date' => '11 Apr 2013', 'museum' => true, ), - '5.3.23' => + '5.3.23' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_23.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.23.tar.bz2', 'name' => 'PHP 5.3.23 (tar.bz2)', 'md5' => 'ab7bd1dd3bbc8364cb9fcaa2d79fb502', 'date' => '14 Mar 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.23.tar.gz', 'name' => 'PHP 5.3.23 (tar.gz)', 'md5' => '9cd92b0de2b51dcd372f46fa623984f4', 'date' => '14 Mar 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.23 binaries and source', @@ -15795,29 +15795,29 @@ $OLDRELEASES = array ( 'date' => '14 Mar 2013', 'museum' => true, ), - '5.3.22' => + '5.3.22' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_22.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.22.tar.bz2', 'name' => 'PHP 5.3.22 (tar.bz2)', 'md5' => 'bf351426fc7f97aa13914062958a6100', 'date' => '21 Feb 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.22.tar.gz', 'name' => 'PHP 5.3.22 (tar.gz)', 'md5' => '5008d8e70195d933e30bfbae3651b4ed', 'date' => '21 Feb 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.22 binaries and source', @@ -15826,29 +15826,29 @@ $OLDRELEASES = array ( 'date' => '21 Feb 2013', 'museum' => true, ), - '5.3.21' => + '5.3.21' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_21.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.21.tar.bz2', 'name' => 'PHP 5.3.21 (tar.bz2)', 'md5' => '1b214fc19bb5f5c0902ba27c74d5f4a2', 'date' => '17 Jan 2013', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.21.tar.gz', 'name' => 'PHP 5.3.21 (tar.gz)', 'md5' => 'f47fbe3407520e5d9d895168950aa683', 'date' => '17 Jan 2013', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.21 binaries and source', @@ -15857,29 +15857,29 @@ $OLDRELEASES = array ( 'date' => '17 Jan 2013', 'museum' => true, ), - '5.3.20' => + '5.3.20' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_20.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.20.tar.bz2', 'name' => 'PHP 5.3.20 (tar.bz2)', 'md5' => '00241b9e89e93adf3baac32c56211e4e', 'date' => '20 Dec 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.20.tar.gz', 'name' => 'PHP 5.3.20 (tar.gz)', 'md5' => '1e202851bf2ba1ee96d7dc5b48944119', 'date' => '20 Dec 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.20 binaries and source', @@ -15888,29 +15888,29 @@ $OLDRELEASES = array ( 'date' => '20 Dec 2012', 'museum' => true, ), - '5.3.19' => + '5.3.19' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_19.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.19.tar.bz2', 'name' => 'PHP 5.3.19 (tar.bz2)', 'md5' => 'e1d2a3ec7849d4b3032bd1abf1916aa4', 'date' => '22 Nov 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.19.tar.gz', 'name' => 'PHP 5.3.19 (tar.gz)', 'md5' => 'e1bcda4f14bb39ba041297abbf18f8d1', 'date' => '22 Nov 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.4', 'name' => 'Windows 5.3.19 binaries and source', @@ -15919,29 +15919,29 @@ $OLDRELEASES = array ( 'date' => '22 Nov 2012', 'museum' => true, ), - '5.3.18' => + '5.3.18' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_18.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.18.tar.bz2', 'name' => 'PHP 5.3.18 (tar.bz2)', 'md5' => '52539c19d0f261560af3c030143dfa8f', 'date' => '18 Oct 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.18.tar.gz', 'name' => 'PHP 5.3.18 (tar.gz)', 'md5' => 'ff2009aadc7c4d1444f6cd8e45f39a41', 'date' => '18 Oct 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.18 binaries and source', @@ -15950,29 +15950,29 @@ $OLDRELEASES = array ( 'date' => '18 Oct 2012', 'museum' => true, ), - '5.3.17' => + '5.3.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.17.tar.bz2', 'name' => 'PHP 5.3.17 (tar.bz2)', 'md5' => '29ee79c941ee85d6c1555c176f12f7ef', 'date' => '13 Sep 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.17.tar.gz', 'name' => 'PHP 5.3.17 (tar.gz)', 'md5' => '002e02e36c2cbcada8c49a7e5956d787', 'date' => '13 Sep 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.17 binaries and source', @@ -15981,29 +15981,29 @@ $OLDRELEASES = array ( 'date' => '13 Sep 2012', 'museum' => true, ), - '5.3.16' => + '5.3.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.16.tar.bz2', 'name' => 'PHP 5.3.16 (tar.bz2)', 'md5' => '99cfd78531643027f60c900e792d21be', 'date' => '16 Aug 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.16.tar.gz', 'name' => 'PHP 5.3.16 (tar.gz)', 'md5' => '59b776edeac2897ebe3712dcc94b6706', 'date' => '16 Aug 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.16 binaries and source', @@ -16012,29 +16012,29 @@ $OLDRELEASES = array ( 'date' => '16 Aug 2012', 'museum' => true, ), - '5.3.15' => + '5.3.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.15.tar.bz2', 'name' => 'PHP 5.3.15 (tar.bz2)', 'md5' => '5cfcfd0fa4c4da7576f397073e7993cc', 'date' => '19 July 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.15.tar.gz', 'name' => 'PHP 5.3.15 (tar.gz)', 'md5' => '7c885c79a611b89f3a1095fce6eae5c6', 'date' => '19 July 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.15 binaries and source', @@ -16043,29 +16043,29 @@ $OLDRELEASES = array ( 'date' => '19 July 2012', 'museum' => true, ), - '5.3.14' => + '5.3.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.14.tar.bz2', 'name' => 'PHP 5.3.14 (tar.bz2)', 'md5' => '370be99c5cdc2e756c82c44d774933c8', 'date' => '14 June 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.14.tar.gz', 'name' => 'PHP 5.3.14 (tar.gz)', 'md5' => '148730865242a031a638ee3bab4a9d4d', 'date' => '14 June 2012', ), - 2 => + 2 => array ( 'link' => 'http://windows.php.net/download/#php-5.3', 'name' => 'Windows 5.3.14 binaries and source', @@ -16074,22 +16074,22 @@ $OLDRELEASES = array ( 'date' => '14 June 2012', 'museum' => true, ), - '5.3.13' => + '5.3.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.13.tar.bz2', 'name' => 'PHP 5.3.13 (tar.bz2)', 'md5' => '370be99c5cdc2e756c82c44d774933c8', 'date' => '08 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.13.tar.gz', 'name' => 'PHP 5.3.13 (tar.gz)', @@ -16100,22 +16100,22 @@ $OLDRELEASES = array ( 'date' => '08 May 2012', 'museum' => true, ), - '5.3.12' => + '5.3.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.12.tar.bz2', 'name' => 'PHP 5.3.12 (tar.bz2)', 'md5' => 'cf02c29be279c506cbd4ffc2819d7c82', 'date' => '03 May 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.12.tar.gz', 'name' => 'PHP 5.3.12 (tar.gz)', @@ -16126,22 +16126,22 @@ $OLDRELEASES = array ( 'date' => '03 May 2012', 'museum' => true, ), - '5.3.11' => + '5.3.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.11.tar.bz2', 'name' => 'PHP 5.3.11 (tar.bz2)', 'md5' => '5b9529ed89dbc48c498e9693d1af3caf', 'date' => '26 April 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.11.tar.gz', 'name' => 'PHP 5.3.11 (tar.gz)', @@ -16152,22 +16152,22 @@ $OLDRELEASES = array ( 'date' => '26 April 2012', 'museum' => true, ), - '5.3.10' => + '5.3.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.10.tar.bz2', 'name' => 'PHP 5.3.10 (tar.bz2)', 'md5' => '816259e5ca7d0a7e943e56a3bb32b17f', 'date' => '02 February 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.10.tar.gz', 'name' => 'PHP 5.3.10 (tar.gz)', @@ -16178,22 +16178,22 @@ $OLDRELEASES = array ( 'date' => '02 February 2012', 'museum' => true, ), - '5.3.9' => + '5.3.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.9.tar.bz2', 'name' => 'PHP 5.3.9 (tar.bz2)', 'md5' => 'dd3288ed5c08cd61ac5bf619cb357521', 'date' => '10 January 2012', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.9.tar.gz', 'name' => 'PHP 5.3.9 (tar.gz)', @@ -16204,22 +16204,22 @@ $OLDRELEASES = array ( 'date' => '10 January 2012', 'museum' => true, ), - '5.3.8' => + '5.3.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.8.tar.bz2', 'name' => 'PHP 5.3.8 (tar.bz2)', 'md5' => '704cd414a0565d905e1074ffdc1fadfb', 'date' => '23 August 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.8.tar.gz', 'name' => 'PHP 5.3.8 (tar.gz)', @@ -16230,22 +16230,22 @@ $OLDRELEASES = array ( 'date' => '23 August 2011', 'museum' => true, ), - '5.3.7' => + '5.3.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.7.tar.bz2', 'name' => 'PHP 5.3.7 (tar.bz2)', 'md5' => '2d47d003c96de4e88863ff38da61af33', 'date' => '18 August 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.7.tar.gz', 'name' => 'PHP 5.3.7 (tar.gz)', @@ -16256,22 +16256,22 @@ $OLDRELEASES = array ( 'date' => '18 August 2011', 'museum' => true, ), - '5.3.6' => + '5.3.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.6.tar.bz2', 'name' => 'PHP 5.3.6 (tar.bz2)', 'md5' => '2286f5a82a6e8397955a0025c1c2ad98', 'date' => '19 March 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.6.tar.gz', 'name' => 'PHP 5.3.6 (tar.gz)', @@ -16282,22 +16282,22 @@ $OLDRELEASES = array ( 'date' => '19 March 2011', 'museum' => true, ), - '5.3.5' => + '5.3.5' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_5.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.5.tar.bz2', 'name' => 'PHP 5.3.5 (tar.bz2)', 'md5' => '8aaf20c95e91f25c5b6a591e5d6d61b9', 'date' => '06 January 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.5.tar.gz', 'name' => 'PHP 5.3.5 (tar.gz)', @@ -16308,22 +16308,22 @@ $OLDRELEASES = array ( 'date' => '06 January 2011', 'museum' => true, ), - '5.3.4' => + '5.3.4' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_4.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.4.tar.bz2', 'name' => 'PHP 5.3.4 (tar.bz2)', 'md5' => '2c069d8f690933e3bf6a8741ed818150', 'date' => '09 December 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.4.tar.gz', 'name' => 'PHP 5.3.4 (tar.gz)', @@ -16334,22 +16334,22 @@ $OLDRELEASES = array ( 'date' => '09 December 2010', 'museum' => true, ), - '5.2.17' => + '5.2.17' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_17.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.17.tar.bz2', 'name' => 'PHP 5.2.17 (tar.bz2)', 'md5' => 'b27947f3045220faf16e4d9158cbfe13', 'date' => '06 January 2011', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.17.tar.gz', 'name' => 'PHP 5.2.17 (tar.gz)', @@ -16360,22 +16360,22 @@ $OLDRELEASES = array ( 'date' => '06 January 2011', 'museum' => true, ), - '5.2.16' => + '5.2.16' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_16.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.16.tar.bz2', 'name' => 'PHP 5.2.16 (tar.bz2)', 'md5' => '3b0bd012bd53bac9a5fefca61eccd5c6', 'date' => '16 December 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.16.tar.gz', 'name' => 'PHP 5.2.16 (tar.gz)', @@ -16386,22 +16386,22 @@ $OLDRELEASES = array ( 'date' => '16 December 2010', 'museum' => true, ), - '5.2.15' => + '5.2.15' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_15.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.15.tar.bz2', 'name' => 'PHP 5.2.15 (tar.bz2)', 'md5' => 'd4ccad187b12835024980a0cea362893', 'date' => '09 December 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.15.tar.gz', 'name' => 'PHP 5.2.15 (tar.gz)', @@ -16412,22 +16412,22 @@ $OLDRELEASES = array ( 'date' => '09 December 2010', 'museum' => true, ), - '5.3.3' => + '5.3.3' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_3.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.3.tar.bz2', 'name' => 'PHP 5.3.3 (tar.bz2)', 'md5' => '21ceeeb232813c10283a5ca1b4c87b48', 'date' => '22 July 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.3.tar.gz', 'name' => 'PHP 5.3.3 (tar.gz)', @@ -16438,22 +16438,22 @@ $OLDRELEASES = array ( 'date' => '22 July 2010', 'museum' => true, ), - '5.2.14' => + '5.2.14' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_14.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.14.tar.bz2', 'name' => 'PHP 5.2.14 (tar.bz2)', 'md5' => '21ceeeb232813c10283a5ca1b4c87b48', 'date' => '22 July 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.14.tar.gz', 'name' => 'PHP 5.2.14 (tar.gz)', @@ -16464,22 +16464,22 @@ $OLDRELEASES = array ( 'date' => '22 July 2010', 'museum' => true, ), - '5.3.2' => + '5.3.2' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_2.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.2.tar.bz2', 'name' => 'PHP 5.3.2 (tar.bz2)', 'md5' => '46f500816125202c48a458d0133254a4', 'date' => '04 Mar 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.2.tar.gz', 'name' => 'PHP 5.3.2 (tar.gz)', @@ -16490,22 +16490,22 @@ $OLDRELEASES = array ( 'date' => '04 Mar 2010', 'museum' => true, ), - '5.2.13' => + '5.2.13' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_13.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.13.tar.bz2', 'name' => 'PHP 5.2.13 (tar.bz2)', 'md5' => 'eb4d0766dc4fb9667f05a68b6041e7d1', 'date' => '25 Feb 2010', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.13.tar.gz', 'name' => 'PHP 5.2.13 (tar.gz)', @@ -16513,9 +16513,9 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.13-Win32.zip', 'name' => 'PHP 5.2.13 zip package', @@ -16523,7 +16523,7 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.13-win32-installer.msi', 'name' => 'PHP 5.2.13 installer', @@ -16531,14 +16531,14 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.13-Win32.zip', 'name' => 'PHP 5.2.13 Win32 Debug Pack', 'md5' => 'e3382d5acbb527d21b768766f563a75d', 'date' => '25 Feb 2010', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.13-nts-Win32.zip', 'name' => 'PHP 5.2.13 Non-thread-safe zip package', @@ -16546,14 +16546,14 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.13-nts-win32-installer.msi', 'name' => 'PHP 5.2.13 Non-thread-safe installer', 'md5' => 'd0e502db99565afde77b4f58f13fbad2', 'date' => '25 Feb 2010', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.13-nts-Win32.zip', 'name' => 'PHP 5.2.13 Non-thread-safe Win32 Debug Pack', @@ -16564,22 +16564,22 @@ $OLDRELEASES = array ( 'date' => '25 Feb 2010', 'museum' => true, ), - '5.3.1' => + '5.3.1' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_1.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.1.tar.bz2', 'name' => 'PHP 5.3.1 (tar.bz2)', 'md5' => '63e97ad450f0f7259e785100b634c797', 'date' => '19 Nov 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.1.tar.gz', 'name' => 'PHP 5.3.1 (tar.gz)', @@ -16590,22 +16590,22 @@ $OLDRELEASES = array ( 'date' => '19 Nov 2009', 'museum' => true, ), - '5.2.12' => + '5.2.12' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_12.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.12.tar.bz2', 'name' => 'PHP 5.2.12 (tar.bz2)', 'md5' => '5b7077e366c7eeab34da31dd860a1923', 'date' => '17 December 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.12.tar.gz', 'name' => 'PHP 5.2.12 (tar.gz)', @@ -16613,9 +16613,9 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.12-Win32.zip', 'name' => 'PHP 5.2.12 zip package', @@ -16623,7 +16623,7 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.12-win32-installer.msi', 'name' => 'PHP 5.2.12 installer', @@ -16631,14 +16631,14 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.12-Win32.zip', 'name' => 'PHP 5.2.12 Win32 Debug Pack', 'md5' => 'b21a5abb9e5bae4c657d0983986c4434', 'date' => '17 December 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.12-nts-Win32.zip', 'name' => 'PHP 5.2.12 Non-thread-safe zip package', @@ -16646,14 +16646,14 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.12-nts-win32-installer.msi', 'name' => 'PHP 5.2.12 Non-thread-safe installer', 'md5' => '418656307a52c99f2175c748da31a9d8', 'date' => '17 December 2009', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.12-nts-Win32.zip', 'name' => 'PHP 5.2.12 Non-thread-safe Win32 Debug Pack', @@ -16664,22 +16664,22 @@ $OLDRELEASES = array ( 'date' => '17 December 2009', 'museum' => true, ), - '5.2.11' => + '5.2.11' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_11.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.11.tar.bz2', 'name' => 'PHP 5.2.11 (tar.bz2)', 'md5' => '286bf34630f5643c25ebcedfec5e0a09', 'date' => '17 September 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.11.tar.gz', 'name' => 'PHP 5.2.11 (tar.gz)', @@ -16687,9 +16687,9 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.11-Win32.zip', 'name' => 'PHP 5.2.11 zip package', @@ -16697,7 +16697,7 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.11-win32-installer.msi', 'name' => 'PHP 5.2.11 installer', @@ -16705,14 +16705,14 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.11-Win32.zip', 'name' => 'PHP 5.2.11 Win32 Debug Pack', 'md5' => '38cb1b783dd08dff41f445b582d2ffed', 'date' => '17 September 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.11-nts-Win32.zip', 'name' => 'PHP 5.2.11 Non-thread-safe zip package', @@ -16720,14 +16720,14 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.11-nts-win32-installer.msi', 'name' => 'PHP 5.2.11 Non-thread-safe installer', 'md5' => '4fe1344093e26c2a51a82094bac131ad', 'date' => '17 September 2009', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.11-nts-Win32.zip', 'name' => 'PHP 5.2.11 Non-thread-safe Win32 Debug Pack', @@ -16738,22 +16738,22 @@ $OLDRELEASES = array ( 'date' => '17 September 2009', 'museum' => true, ), - '5.3.0' => + '5.3.0' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_3_0.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.3.0.tar.bz2', 'name' => 'PHP 5.3.0 (tar.bz2)', 'md5' => '846760cd655c98dfd86d6d97c3d964b0', 'date' => '30 June 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.3.0.tar.gz', 'name' => 'PHP 5.3.0 (tar.gz)', @@ -16764,22 +16764,22 @@ $OLDRELEASES = array ( 'date' => '30 June 2009', 'museum' => true, ), - '5.2.10' => + '5.2.10' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_10.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.10.tar.bz2', 'name' => 'PHP 5.2.10 (tar.bz2)', 'md5' => '15c7b5a87f57332d6fc683528e28247b', 'date' => '18 June 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.10.tar.gz', 'name' => 'PHP 5.2.10 (tar.gz)', @@ -16787,9 +16787,9 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.10-Win32.zip', 'name' => 'PHP 5.2.10 zip package', @@ -16797,7 +16797,7 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.10-win32-installer.msi', 'name' => 'PHP 5.2.10 installer', @@ -16805,14 +16805,14 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.10-Win32.zip', 'name' => 'PHP 5.2.10 Win32 Debug Pack', 'md5' => 'f6bdea0e1f71ca46f78e78c86e86606', 'date' => '18 June 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.10-nts-Win32.zip', 'name' => 'PHP 5.2.10 Non-thread-safe zip package', @@ -16820,14 +16820,14 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.10-nts-win32-installer.msi', 'name' => 'PHP 5.2.10 Non-thread-safe installer', 'md5' => 'e341deb2872d3f8f4589593da88bbede', 'date' => '18 June 2009', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.10-nts-Win32.zip', 'name' => 'PHP 5.2.10 Non-thread-safe Win32 Debug Pack', @@ -16838,22 +16838,22 @@ $OLDRELEASES = array ( 'date' => '18 June 2009', 'museum' => true, ), - '5.2.9' => + '5.2.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.9.tar.bz2', 'name' => 'PHP 5.2.9 (tar.bz2)', 'md5' => '280d6cda7f72a4fc6de42fda21ac2db7', 'date' => '26 February 2009', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.9.tar.gz', 'name' => 'PHP 5.2.9 (tar.gz)', @@ -16861,9 +16861,9 @@ $OLDRELEASES = array ( 'date' => '26 February 2009', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.9-2-Win32.zip', 'name' => 'PHP 5.2.9-2 zip package', @@ -16871,7 +16871,7 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.9-2-win32-installer.msi', 'name' => 'PHP 5.2.9-2 installer', @@ -16879,14 +16879,14 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.9-2-Win32.zip', 'name' => 'PHP 5.2.9 Win32 Debug Pack', 'md5' => 'b52e9a152e105c7391c832fdfe0fa06f', 'date' => '8 April 2009', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.9-2-nts-Win32.zip', 'name' => 'PHP 5.2.9-2 Non-thread-safe zip package', @@ -16894,7 +16894,7 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.9-2-nts-win32-installer.msi', 'name' => 'PHP 5.2.9-2 Non-thread-safe installer', @@ -16902,7 +16902,7 @@ $OLDRELEASES = array ( 'date' => '8 April 2009', 'note' => 'Updated 9th of April: Added the missing oci8 DLL', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.9-2-nts-Win32.zip', 'name' => 'PHP 5.2.9 Non-thread-safe Win32 Debug Pack', @@ -16913,22 +16913,22 @@ $OLDRELEASES = array ( 'date' => '26 February 2009', 'museum' => true, ), - '5.2.8' => + '5.2.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.8.tar.bz2', 'name' => 'PHP 5.2.8 (tar.bz2)', 'md5' => '8760a833cf10433d3e72271ab0d0eccf', 'date' => '08 December 2008', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.8.tar.gz', 'name' => 'PHP 5.2.8 (tar.gz)', @@ -16936,9 +16936,9 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.8-Win32.zip', 'name' => 'PHP 5.2.8 zip package', @@ -16946,7 +16946,7 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'note' => '', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.8-win32-installer.msi', 'name' => 'PHP 5.2.8 installer', @@ -16954,14 +16954,14 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'note' => '', ), - 2 => + 2 => array ( 'filename' => 'php-debug-pack-5.2.8-Win32.zip', 'name' => 'PHP 5.2.8 Win32 Debug Pack', 'md5' => 'fabc6e79c1c66dc80320165336b5ed54', 'date' => '08 December 2008', ), - 3 => + 3 => array ( 'filename' => 'php-5.2.8-nts-Win32.zip', 'name' => 'PHP 5.2.8 Non-thread-safe zip package', @@ -16969,14 +16969,14 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'note' => '', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.8-nts-win32-installer.msi', 'name' => 'PHP 5.2.8 Non-thread-safe installer', 'md5' => 'd4490964818542c416644b3d67f5b350', 'date' => '08 December 2008', ), - 5 => + 5 => array ( 'filename' => 'php-debug-pack-5.2.8-nts-Win32.zip', 'name' => 'PHP 5.2.8 Non-thread-safe Win32 Debug Pack', @@ -16987,22 +16987,22 @@ $OLDRELEASES = array ( 'date' => '08 December 2008', 'museum' => true, ), - '5.2.6' => + '5.2.6' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_6.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.6.tar.bz2', 'name' => 'PHP 5.2.6 (tar.bz2)', 'md5' => '7380ffecebd95c6edb317ef861229ebd', 'date' => '01 May 2008', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.6.tar.gz', 'name' => 'PHP 5.2.6 (tar.gz)', @@ -17010,9 +17010,9 @@ $OLDRELEASES = array ( 'date' => '01 May 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.6-Win32.zip', 'name' => 'PHP 5.2.6 zip package', @@ -17020,7 +17020,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.6-win32-installer.msi', 'name' => 'PHP 5.2.6 installer', @@ -17028,7 +17028,7 @@ $OLDRELEASES = array ( 'date' => '6 May 2008', 'note' => 'Update May 6th: Added missing XSL and IMAP extension', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.2.6-Win32.zip', 'name' => 'PECL 5.2.6 Win32 binaries', @@ -17036,7 +17036,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 3 => + 3 => array ( 'filename' => 'php-debug-pack-5.2.6-Win32.zip', 'name' => 'PHP 5.2.6 Win32 Debug Pack', @@ -17044,7 +17044,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 4 => + 4 => array ( 'filename' => 'php-5.2.6-nts-Win32.zip', 'name' => 'PHP 5.2.6 Non-thread-safe zip package', @@ -17052,7 +17052,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 5 => + 5 => array ( 'filename' => 'php-5.2.6-nts-win32-installer.msi', 'name' => 'PHP 5.2.6 Non-thread-safe installer', @@ -17060,7 +17060,7 @@ $OLDRELEASES = array ( 'date' => '6 May 2008', 'note' => 'Update May 6th: Added missing XSL and IMAP extension', ), - 6 => + 6 => array ( 'filename' => 'php-debug-pack-5.2.6-nts-Win32.zip', 'name' => 'PHP 5.2.6 Win32 Debug Pack', @@ -17068,7 +17068,7 @@ $OLDRELEASES = array ( 'date' => '3 May 2008', 'note' => 'Update May 3rd: Added missing XSL and IMAP extension', ), - 7 => + 7 => array ( 'filename' => 'pecl-5.2.6-nts-Win32.zip', 'name' => 'PECL 5.2.6 Non-thread-safe Win32 binaries', @@ -17080,509 +17080,509 @@ $OLDRELEASES = array ( 'date' => '01 May 2008', 'museum' => true, ), - '5.2.5' => + '5.2.5' => array ( 'date' => '08 November 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.5.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '1fe14ca892460b09f06729941a1bb605', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.5.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '61a0e1661b70760acc77bc4841900b7a', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.5-Win32.zip', 'name' => 'Windows binary', 'md5' => 'a1e31c0d872ab030a2256b1cd6d3b7d1', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.5-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.5', 'md5' => 'a3553b61c9332d08a5044cf9bf89f2df', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_5.php', ), 'museum' => true, ), - '5.2.4' => + '5.2.4' => array ( 'date' => '30 August 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.4.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '55c97a671fdabf462cc7a82971a656d2', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.4.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '0826e231c3148b29fd039d7a8c893ad3', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.4-Win32.zip', 'name' => 'Windows binary', 'md5' => '979b8a305b028b296b97ed72322026b2', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.4-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.4', 'md5' => 'dd98dfe607ceb98e727c394d5bd679fb', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_4.php', ), 'museum' => true, ), - '5.2.3' => + '5.2.3' => array ( 'date' => '31 May 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.3.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => 'eb50b751c8e1ced05bd012d5a0e4dec3', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.3.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => 'df79b04d63fc4c1ccb6d8ea58a9cf3ac', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.3-Win32.zip', 'name' => 'Windows binary', 'md5' => 'ff6e5dc212823009e68f26d66d85cbac', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.3-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.3', 'md5' => '0480ffaf5a5333e83d90d75cece54748', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_3.php', ), 'museum' => true, ), - '5.2.2' => + '5.2.2' => array ( 'date' => '03 May 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.2.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => 'd084337867d70b50a10322577be0e44e', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.2.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '7a920d0096900b2b962b21dc5c55fe3c', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.2-Win32.zip', 'name' => 'Windows binary', 'md5' => '634cf45c34f80dfb1284cabf1bbb1417', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.2-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.2', 'md5' => '5d206368799dfbac983d83954328ae3a', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_2.php', ), 'museum' => true, ), - '5.2.1' => + '5.2.1' => array ( 'date' => '08 Feb 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.1.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '261218e3569a777dbd87c16a15f05c8d', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.1.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '604eaee2b834bb037d2c83e53e300d3f', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.1-Win32.zip', 'name' => 'Windows binary', 'md5' => '682dd66fb03c7dd24c522f474e1b04b6', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.1-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.1', 'md5' => 'dc8b394146faf7effa6f26df02e8e534', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_1.php', ), 'museum' => true, ), - '5.2.0' => + '5.2.0' => array ( 'date' => '02 Nov 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.0.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => 'e6029fafcee029edcfa2ceed7a005333', ), - 1 => + 1 => array ( 'filename' => 'php-5.2.0.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '52d7e8b3d8d7573e75c97340f131f988', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.2.0-Win32.zip', 'name' => 'Windows binary', 'md5' => '910734e96f41190020272d80b82ce553', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.2.0-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.2.0', 'md5' => '638f5997884ae3ce35d2b3ec12f399b2', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_2_0.php', ), 'museum' => true, ), - '5.1.6' => + '5.1.6' => array ( 'date' => '24 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.6.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.6.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.6-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.1.6-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.6', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_6.php', ), 'museum' => true, ), - '5.1.5' => + '5.1.5' => array ( 'date' => '17 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.5.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.5-installer.exe', 'name' => 'Windows installer', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.1.5-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.5', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_5.php', ), 'museum' => true, ), - '5.1.4' => + '5.1.4' => array ( 'date' => '04 May 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.4.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.4-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.4-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.4', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_4.php', ), 'museum' => true, ), - '5.1.3' => + '5.1.3' => array ( 'date' => '02 May 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.3-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.3-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.3', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_3.php', ), 'museum' => true, ), - '5.1.2' => + '5.1.2' => array ( 'date' => '12 Jan 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.2-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.2-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.2', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_2.php', ), 'museum' => true, ), - '5.1.1' => + '5.1.1' => array ( 'date' => '28 Nov 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.1-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.1.1-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.1.1', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_1.php', ), 'museum' => true, ), - '5.1.0' => + '5.1.0' => array ( 'date' => '24 Nov 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.1.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.1.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/5_1_0.php', ), 'museum' => true, ), - '5.0.5' => + '5.0.5' => array ( 'date' => '05 Sep 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.5-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.5-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.5-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.5', @@ -17590,195 +17590,195 @@ $OLDRELEASES = array ( ), 'museum' => true, ), - '5.0.4' => + '5.0.4' => array ( 'date' => '31 Mar 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.4-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.4-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.4', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/55', ), 'museum' => true, ), - '5.0.3' => + '5.0.3' => array ( 'date' => '15 Dec 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.3-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.3-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.3', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/54', ), 'museum' => true, ), - '5.0.2' => + '5.0.2' => array ( 'date' => '23 Sep 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.2-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.2-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.2', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/53', ), 'museum' => true, ), - '5.0.1' => + '5.0.1' => array ( 'date' => '12 Aug 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'pecl-5.0.1-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.1', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/51', ), 'museum' => true, ), - '5.0.0' => + '5.0.0' => array ( 'date' => '13 July 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-5.0.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-5.0.0-installer.exe', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'pecl-5.0.0-Win32.zip', 'name' => 'Collection of PECL modules for PHP 5.0.0', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/50', ), 'museum' => true, ), ), - 4 => + 4 => array ( - '4.4.9' => + '4.4.9' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_9.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.9.tar.bz2', 'name' => 'PHP 4.4.9 (tar.bz2)', 'md5' => '2e3b2a0e27f10cb84fd00e5ecd7a1880', 'date' => '07 August 2008', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.9.tar.gz', 'name' => 'PHP 4.4.9 (tar.gz)', @@ -17786,9 +17786,9 @@ $OLDRELEASES = array ( 'date' => '07 August 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.9-Win32.zip', 'name' => 'PHP 4.4.9 zip package', @@ -17799,22 +17799,22 @@ $OLDRELEASES = array ( 'date' => '07 August 2008', 'museum' => true, ), - '4.4.8' => + '4.4.8' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_8.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.8.tar.bz2', 'name' => 'PHP 4.4.8 (tar.bz2)', 'md5' => 'ed31e77414e0331e787487b53732dbca', 'date' => '03 January 2008', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.8.tar.gz', 'name' => 'PHP 4.4.8 (tar.gz)', @@ -17822,9 +17822,9 @@ $OLDRELEASES = array ( 'date' => '03 January 2008', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.8-Win32.zip', 'name' => 'PHP 4.4.8 zip package', @@ -17835,22 +17835,22 @@ $OLDRELEASES = array ( 'date' => '03 January 2008', 'museum' => true, ), - '4.4.7' => + '4.4.7' => array ( - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_7.php', ), - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.7.tar.bz2', 'name' => 'PHP 4.4.7 (tar.bz2)', 'md5' => '3f21b44d37a57ca3876d3aea713c700d', 'date' => '03 May 2007', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.7.tar.gz', 'name' => 'PHP 4.4.7 (tar.gz)', @@ -17858,9 +17858,9 @@ $OLDRELEASES = array ( 'date' => '03 May 2007', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.7-Win32.zip', 'name' => 'PHP 4.4.7 zip package', @@ -17872,857 +17872,857 @@ $OLDRELEASES = array ( 'date' => '03 May 2007', 'museum' => true, ), - '4.4.6' => + '4.4.6' => array ( 'date' => '01 Mar 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.6.tar.bz2', 'name' => 'Source (tar.bz2)', 'md5' => '5db283824310c87efb18c76b4735c4bd', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.6.tar.gz', 'name' => 'Source (tar.gz)', 'md5' => '07c607fcf12435f0078d72fe0de4e3c0', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.6-Win32.zip', 'name' => 'Windows binary', 'md5' => '486764cefb5f7bde39e95c49b2e38635', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_6.php', ), 'museum' => true, ), - '4.4.5' => + '4.4.5' => array ( 'date' => '14 Feb 2007', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.5.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.5-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_5.php', ), 'museum' => true, ), - '4.4.4' => + '4.4.4' => array ( 'date' => '17 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.4.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.4-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_4.php', ), 'museum' => true, ), - '4.4.3' => + '4.4.3' => array ( 'date' => '03 Aug 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.3.tar.bz2', 'name' => 'Source (tar.bz2)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.3-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_3.php', ), 'museum' => true, ), - '4.4.2' => + '4.4.2' => array ( 'date' => '13 Jan 2006', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.2.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.2.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_2.php', ), 'museum' => true, ), - '4.4.1' => + '4.4.1' => array ( 'date' => '31 Oct 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.1.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.1.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_1.php', ), 'museum' => true, ), - '4.4.0' => + '4.4.0' => array ( 'date' => '11 Jul 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.0.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.0.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.4.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.4.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_4_0.php', ), 'museum' => true, ), - '4.3.11' => + '4.3.11' => array ( 'date' => '31 Mar 2005', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.11.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.11.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.11-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.11-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_11.php', 'French' => '/releases/4_3_11_fr.php', ), 'museum' => true, ), - '4.3.10' => + '4.3.10' => array ( 'date' => '15 Dec 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.10.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.10.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.10-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.10-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_10.php', 'French' => '/releases/4_3_10_fr.php', ), 'museum' => true, ), - '4.3.9' => + '4.3.9' => array ( 'date' => '22 Sep 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.9.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.9.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.9-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.9-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_9.php', 'French' => '/releases/4_3_9_fr.php', ), 'museum' => true, ), - '4.3.8' => + '4.3.8' => array ( 'date' => '13 July 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.8.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.8-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.8-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_8.php', ), 'museum' => true, ), - '4.3.7' => + '4.3.7' => array ( 'date' => '03 June 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.7.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.7-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.7-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_7.php', 'French' => '/releases/4_3_7_fr.php', ), 'museum' => true, ), - '4.3.6' => + '4.3.6' => array ( 'date' => '15 April 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.6.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.6-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.6-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_6.php', 'French' => '/releases/4_3_6_fr.php', ), 'museum' => true, ), - '4.3.5' => + '4.3.5' => array ( 'date' => '26 March 2004', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.5-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.5-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_5.php', 'French' => '/releases/4_3_5_fr.php', ), 'museum' => true, ), - '4.3.4' => + '4.3.4' => array ( 'date' => '03 November 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.4.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.4-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_4.php', 'French' => '/releases/4_3_4_fr.php', ), 'museum' => true, ), - '4.3.3' => + '4.3.3' => array ( 'date' => '25 August 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.3.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.3.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.3-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_3.php', 'French' => '/releases/4_3_3_fr.php', ), 'museum' => true, ), - '4.3.2' => + '4.3.2' => array ( 'date' => '29 May 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.2.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.2.tar.bz2', 'name' => 'Source (tar.bz2)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_2.php', 'French' => '/releases/4_3_2_fr.php', ), 'museum' => true, ), - '4.3.1' => + '4.3.1' => array ( 'date' => '17 February 2003', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_1.php', ), 'museum' => true, ), - '4.3.0' => + '4.3.0' => array ( 'date' => '27 December 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.3.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.3.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_3_0.php', 'French' => '/releases/4_3_0_fr.php', ), 'museum' => true, ), - '4.2.3' => + '4.2.3' => array ( 'date' => '6 September 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.3.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.3-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/37', ), 'museum' => true, ), - '4.2.2' => + '4.2.2' => array ( 'date' => '22 July 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_2_2.php', 'French' => '/releases/4_2_2_fr.php', ), 'museum' => true, ), - '4.2.1' => + '4.2.1' => array ( 'date' => '13 May 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_2_1.php', 'French' => '/releases/4_2_1_fr.php', ), 'museum' => true, ), - '4.2.0' => + '4.2.0' => array ( 'date' => '22 April 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.2.0-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.2.0-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_2_0.php', 'French' => '/releases/4_2_0_fr.php', ), 'museum' => true, ), - '4.1.2' => + '4.1.2' => array ( 'date' => '12 March 2002', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.2-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.1.2-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_1_2_win32.php', ), 'museum' => true, ), - '4.1.1' => + '4.1.1' => array ( 'date' => '26 Dec 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.1.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.1.1-installer.exe', 'name' => 'Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_1_1.php', ), 'museum' => true, ), - '4.1.0' => + '4.1.0' => array ( 'date' => '10 Dec 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.1.0-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => '/releases/4_1_0.php', 'French' => '/releases/4_1_0_fr.php', ), 'museum' => true, ), - '4.0.6' => + '4.0.6' => array ( 'date' => '23 June 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.6.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.6-Win32.zip', 'name' => 'Windows binary', @@ -18730,20 +18730,20 @@ $OLDRELEASES = array ( ), 'museum' => true, ), - '4.0.5' => + '4.0.5' => array ( 'date' => '30 April 2001', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.5.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.5-Win32.zip', 'name' => 'Windows binary', @@ -18751,185 +18751,185 @@ $OLDRELEASES = array ( ), 'museum' => true, ), - '4.0.4' => + '4.0.4' => array ( 'date' => '19 December 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.4.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.4pl1.tar.gz', 'name' => '4.0.4pl1 Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.4-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.4-installer.zip', 'name' => 'Windows installer', ), - 2 => + 2 => array ( 'filename' => 'php-4.0.4pl1-Win32.zip', 'name' => '4.0.4pl1 Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/28', ), 'museum' => true, ), - '4.0.3' => + '4.0.3' => array ( 'date' => '11 October 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.3.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.3pl1.tar.gz', 'name' => '4.0.3pl1 Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.3-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.3pl1-installer.exe', 'name' => '4.0.3pl1 Windows installer', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/26', 'English (pl1)' => 'https://news-web.php.net/php.announce/27', ), 'museum' => true, ), - '4.0.2' => + '4.0.2' => array ( 'date' => '29 August 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.2.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.2-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/24', ), 'museum' => true, ), - '4.0.1' => + '4.0.1' => array ( 'date' => '28 June 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.1.tar.gz', 'name' => 'Source (tar.gz)', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.1pl2.tar.gz', 'name' => '4.0.1pl2 Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.1-Win32.zip', 'name' => 'Windows binary', ), - 1 => + 1 => array ( 'filename' => 'php-4.0.1pl1-Win32.zip', 'name' => '4.0.1pl1 Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/23', ), 'museum' => true, ), - '4.0.0' => + '4.0.0' => array ( 'date' => '22 May 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.0.tar.gz', 'name' => 'Source (tar.gz)', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-4.0.0-Win32.zip', 'name' => 'Windows binary', ), ), - 'announcement' => + 'announcement' => array ( 'English' => 'https://news-web.php.net/php.announce/22', ), 'museum' => true, ), ), - 3 => + 3 => array ( - '3.0.x (latest)' => + '3.0.x (latest)' => array ( 'date' => '20 Oct 2000', - 'source' => + 'source' => array ( - 0 => + 0 => array ( 'filename' => 'php-3.0.18.tar.gz', 'name' => 'PHP 3.0.18 Source Code', 'md5' => 'b4b8f7f1151ce66d5f3910a066651133', ), ), - 'windows' => + 'windows' => array ( - 0 => + 0 => array ( 'filename' => 'php-3.0.17-win32.zip', 'name' => 'PHP 3.0.17 Windows binary', diff --git a/include/releases/4.0/changelist.inc b/include/releases/4.0/changelist.inc new file mode 100644 index 0000000000..a359f03d3d --- /dev/null +++ b/include/releases/4.0/changelist.inc @@ -0,0 +1,2 @@ + + array ( + 'date' => '05 Sep 2005', + 'modules' => + array ( + 'fixed bug #34299 (reflectionclass' => + array ( + ), + 'fixed bug #33853 (php' => + array ( + ), + 'fixed bug #33588 (ldap' => + array ( + ), + 'fixed bug #33340 (cli crash when calling php' => + array ( + ), + 'fixed bug #33200 (preg_replace()' => + array ( + ), + 'fixed bug #32981 (reflectionmethod' => + array ( + ), + 'fixed bug #32932 (oracle ldap' => + array ( + ), + 'fixed bugs #32800, #32830 (ext/odbc' => + array ( + ), + 'fixed bug #32799 (crash' => + array ( + ), + 'fixed bug #32682 (ext/mssql' => + array ( + ), + 'fixed bug #32613 (ext/snmp' => + array ( + ), + 'fixed bug #32591 (ext/mysql' => + array ( + ), + 'fixed bug #32587 (apache2' => + array ( + ), + 'fixed bug #32405 (mysqli' => + array ( + ), + 'fixed bug #32013 (ext/mysqli bind_result causes fatal error' => + array ( + ), + 'fixed bug #31887 (isapi' => + array ( + ), + 'fixed bug #29210 (function' => + array ( + ), + ), + ), + '5.0.4' => + array ( + 'date' => '31 Mar 2005', + 'modules' => + array ( + 'changed foreach() to throw an exception if iteratoraggregate' => + array ( + 0 => + array ( + 'message' => 'Bug #32311 does not properly escape characters)', + 'raw' => 'Bug #32311 (mb_encode_mimeheader() does not properly escape characters)', + ), + 1 => + array ( + 'message' => 'Bug #32063', + 'raw' => 'Bug #32063 (mb_convert_encoding ignores named entity \'alpha\')', + ), + 2 => + array ( + 'message' => 'Bug #31911 is case-sensitive to hex escapes)', + 'raw' => 'Bug #31911 (mb_decode_mimeheader() is case-sensitive to hex escapes)', + ), + 3 => + array ( + 'message' => 'bug #30573', + 'raw' => 'bug #30573 (compiler warnings in libmbfl due to invalid type cast)', + ), + 4 => + array ( + 'message' => 'Bug #30549 (incorrect character translations for some ISO8859 charsets). - Fixed bug preventing from building oci8 as shared. (stanislav dot voroniy at portavita dot nl, Tony) - Fixed a bug in mysql_affected_rows and mysql_stmt_affected_rows when the api function returns -1 (Georg) - Fixed several leaks in ext/browscap and sapi/embed. (Andrei) - Fixed several leaks in ext/filepro. (Tony) - Fixed build system to always use bundled libtool files. (Jani) - Fixed a bug in mysqli_stmt_execute() (type conversion with NULL values). (Georg) - Fixed segfault in mysqli_fetch_field_direct() when invalid field offset is passed. (Tony) - Fixed posix_getsid() & posix_getpgid() to return sid & pgid instead of true. (Tony) - Fixed bug #32394 (offsetUnset() segfaults in a foreach). - Fixed bug #32373 (segfault in bzopen() if supplied path to non-existent file). (Tony) - Fixed bug #32326 (Check values of Connection/Transfer-Encoding case-incentively in SOAP extension). (Ilia) - Fixed bug #32290 (call_user_func_array() calls wrong class method within child class).', + 'raw' => 'Bug #30549 (incorrect character translations for some ISO8859 charsets). - Fixed bug preventing from building oci8 as shared. (stanislav dot voroniy at portavita dot nl, Tony) - Fixed a bug in mysql_affected_rows and mysql_stmt_affected_rows when the api function returns -1 (Georg) - Fixed several leaks in ext/browscap and sapi/embed. (Andrei) - Fixed several leaks in ext/filepro. (Tony) - Fixed build system to always use bundled libtool files. (Jani) - Fixed a bug in mysqli_stmt_execute() (type conversion with NULL values). (Georg) - Fixed segfault in mysqli_fetch_field_direct() when invalid field offset is passed. (Tony) - Fixed posix_getsid() & posix_getpgid() to return sid & pgid instead of true. (Tony) - Fixed bug #32394 (offsetUnset() segfaults in a foreach). (Marcus) - Fixed bug #32373 (segfault in bzopen() if supplied path to non-existent file). (Tony) - Fixed bug #32326 (Check values of Connection/Transfer-Encoding case-incentively in SOAP extension). (Ilia) - Fixed bug #32290 (call_user_func_array() calls wrong class method within child class). (Marcus)', + ), + ), + 'fixed bug #32238 (spl_array.c' => + array ( + ), + 'fixed bug #32130 (arrayiterator' => + array ( + ), + 'fixed bug #31705 (parse_url() does not recognize http' => + array ( + ), + 'fixed bug #31684 (dio_tcsetattr()' => + array ( + ), + 'fixed bug #31651 (reflectionclass' => + array ( + ), + 'fixed bug #31348 (cachingiterator' => + array ( + ), + 'fixed bug #31346 (arrayiterator' => + array ( + ), + 'fixed bug #31055 (apache2filter' => + array ( + ), + 'fixed bug #30446 (apache2handler' => + array ( + ), + 'fixed bug #28976 (mail()' => + array ( + ), + 'fixed bug #28074 (fastcgi' => + array ( + ), + ), + ), + '5.0.3' => + array ( + 'date' => '15 Dec 2004', + 'modules' => + array ( + 'fixed bug #32076 (reflectionmethod' => + array ( + ), + 'fixed bug #30856 (reflectionclass' => + array ( + ), + 'fixed bug #30783 (apache crash when using reflectionfunction' => + array ( + ), + 'fixed bug #30344 (reflection' => + array ( + ), + ), + ), + '5.0.2' => + array ( + 'date' => '23 Sep 2004', + 'modules' => + array ( + 'fixed bug #30209 (reflectionclass' => + array ( + ), + 'fixed bug #29839 (incorrect convert (xml' => + array ( + ), + 'fixed bug #29830 (soapserver' => + array ( + ), + 'fixed bug #29678 (opendir() with ftp' => + array ( + ), + ), + ), + '5.0.1' => + array ( + 'date' => '12 Aug 2004', + 'modules' => + array ( + 'fixed bug #29474 (win32' => + array ( + ), + 'fixed bug #29449 (win32' => + array ( + ), + 'fixed bug #29109 (soapfault exception' => + array ( + ), + 'fixed bug #28895 (reflectionclass' => + array ( + ), + 'fixed reflectionclass' => + array ( + ), + ), + ), + '5.0.0' => + array ( + 'date' => '13 Jul 2004', + 'modules' => + array ( + 'fixed bug #28831 (arrayobject' => + array ( + ), + 'fixed bug #28822 (arrayobject' => + array ( + ), + 'fixed bug #28694 (reflectionextension' => + array ( + ), + 'fixed bug #28161 (com' => + array ( + ), + 'fixed bug #27929 (spl' => + array ( + ), + 'fixed bug #27063 (spl' => + array ( + ), + 'under cli, fclose() on php' => + array ( + ), + 'fixed bug #27997 (spl' => + array ( + ), + 'changed iterator' => + array ( + 0 => + array ( + 'message' => 'Timezone specifier', + 'raw' => 'Timezone specifier (ex. "20040301T02:00:00+19:00")', + ), + 1 => + array ( + 'message' => 'Week specifier (ex. "1997W021") - Renamed php.ini option "zend2.implicit_clone" to "zend.ze1_compatibility_mode" as it doesn\'t only affect implicit cloning. (Andi, Zeev) - Methods that override parent methods are now subject to prototype checking, and have to be compatible with the method they\'re overriding - this check is disabled in compatibility mode. (Andi, Zeev) - Fixed crash in php_ini_scanned_files() when no additional INI files were actually parsed. (Jon) - Fixed bug in gdImageFilledRectangle in the bundled GD library, that required x1 < x2 and y1 < y2 for coordinates. (Derick) - Fixed crash with foreach() and temporary objects($obj->method()->a ...) where method returns a non-referenced object. (Andi, Zeev) - Fixed problem preventing startup errors from being displayed. - Fixed start-up problem if both SPL and SimpleXML were enabled. The double initialization of apache 1.3 was causing problems here. (Marcus, Derick) - Fixed bug #27606 (Expression must be a modifiable lvalue compiler error). (Derick) - Fixed bug #27597 (pg_fetch_array not returning false).', + 'raw' => 'Week specifier (ex. "1997W021") - Renamed php.ini option "zend2.implicit_clone" to "zend.ze1_compatibility_mode" as it doesn\'t only affect implicit cloning. (Andi, Zeev) - Methods that override parent methods are now subject to prototype checking, and have to be compatible with the method they\'re overriding - this check is disabled in compatibility mode. (Andi, Zeev) - Fixed crash in php_ini_scanned_files() when no additional INI files were actually parsed. (Jon) - Fixed bug in gdImageFilledRectangle in the bundled GD library, that required x1 < x2 and y1 < y2 for coordinates. (Derick) - Fixed crash with foreach() and temporary objects($obj->method()->a ...) where method returns a non-referenced object. (Andi, Zeev) - Fixed problem preventing startup errors from being displayed. (Marcus) - Fixed start-up problem if both SPL and SimpleXML were enabled. The double initialization of apache 1.3 was causing problems here. (Marcus, Derick) - Fixed bug #27606 (Expression must be a modifiable lvalue compiler error). (Derick) - Fixed bug #27597 (pg_fetch_array not returning false). (Marcus)', + ), + ), + 'fixed bug #27586 (arrayobject' => + array ( + ), + 'added new pspell functions' => + array ( + 0 => + array ( + 'message' => 'pspell_config_dict_dir()', + 'raw' => 'pspell_config_dict_dir()', + ), + 1 => + array ( + 'message' => 'pspell_config_data_dir()', + 'raw' => 'pspell_config_data_dir()', + ), + ), + 'added new interbase functions' => + array ( + 0 => + array ( + 'message' => 'ibase_service_attach() and ibase_service_detach().', + 'raw' => 'ibase_service_attach() and ibase_service_detach().', + ), + 1 => + array ( + 'message' => 'ibase_backup() and ibase_restore().', + 'raw' => 'ibase_backup() and ibase_restore().', + ), + 2 => + array ( + 'message' => 'ibase_maintain_db(), ibase_db_info() and ibase_server_info(). - Added context option "http"/"request_fulluri" to send entire URI in request which is required format for some proxies. (Sara) - Added optional third parameter \'strict\' to array_keys(). (Andrey) - Added stream_lock() method to userspace streams interface. (Hartmut, Wez) - Added xsltprocessor->registerPHPFunctions(). (Christian) - Readded support for using classes before they are declared according to the behavior in PHP 4. This won\'t work with classes who are using PHP 5 features such as interfaces. (Zeev, Andi) - Completely overhauled SimpleXML extension. (Marcus, Rob, Sterling) - Upgraded bundled SQLite library to version 2.8.11. (Ilia, Wez) - Improved destructor implementation to always call destructors on clean shutdown. An order of destruction is not guaranteed. (Zeev, Andi) - Redesigned exception support. This fixes many bugs in the previous design such as nested try\'s and problems with overloaded extensions. (Zeev, Andi) - Redesigned clone by adding a clone keyword (clone $obj) and copying all properties before __clone() is called. Also allows calling parent __clone function by using parent::__clone(). (Zeev, Andi) - Fixed interfaces to check for function return-by-reference equality when inheriting and implementing interfaces. (Andi, Zeev) - Fixed foreach() to respect property visibility. (Marcus) - Fixed problem with parse error in include() file not stopping PHP\'s execution. (Ilia) - Fixed var_export() to show public, protected and private modifiers properly. (Derick) - Fixed problems with longlong values in mysqli. (Georg) - Fixed class name case preserving of user defined classes. (Marcus) - Fixed bug #27145 (Unmangle private/protected property names before printing them inside error messages). (Ilia) - Fixed bug #27103 (preg_split(\'//u\') incorrectly splits UTF-8 strings into octets).', + 'raw' => 'ibase_maintain_db(), ibase_db_info() and ibase_server_info(). - Added context option "http"/"request_fulluri" to send entire URI in request which is required format for some proxies. (Sara) - Added optional third parameter \'strict\' to array_keys(). (Andrey) - Added stream_lock() method to userspace streams interface. (Hartmut, Wez) - Added xsltprocessor->registerPHPFunctions(). (Christian) - Readded support for using classes before they are declared according to the behavior in PHP 4. This won\'t work with classes who are using PHP 5 features such as interfaces. (Zeev, Andi) - Completely overhauled SimpleXML extension. (Marcus, Rob, Sterling) - Upgraded bundled SQLite library to version 2.8.11. (Ilia, Wez) - Improved destructor implementation to always call destructors on clean shutdown. An order of destruction is not guaranteed. (Zeev, Andi) - Redesigned exception support. This fixes many bugs in the previous design such as nested try\'s and problems with overloaded extensions. (Zeev, Andi) - Redesigned clone by adding a clone keyword (clone $obj) and copying all properties before __clone() is called. Also allows calling parent __clone function by using parent::__clone(). (Zeev, Andi) - Fixed interfaces to check for function return-by-reference equality when inheriting and implementing interfaces. (Andi, Zeev) - Fixed foreach() to respect property visibility. (Marcus) - Fixed problem with parse error in include() file not stopping PHP\'s execution. (Ilia) - Fixed var_export() to show public, protected and private modifiers properly. (Derick) - Fixed problems with longlong values in mysqli. (Georg) - Fixed class name case preserving of user defined classes. (Marcus) - Fixed bug #27145 (Unmangle private/protected property names before printing them inside error messages). (Ilia) - Fixed bug #27103 (preg_split(\'//u\') incorrectly splits UTF-8 strings into octets). (Moriyoshi)', + ), + ), + 'fixed bug #27042 (spl' => + array ( + ), + 'fixed bug #26947 (ext/dom' => + array ( + ), + 'fixed bug #26844 (ext/mime_magic' => + array ( + ), + 'fixed bug #26723 (domnode' => + array ( + ), + 'moved extensions to pecl' => + array ( + 0 => + array ( + 'message' => 'ext/crack', + 'raw' => 'ext/crack (Jani, Derick)', + ), + 1 => + array ( + 'message' => 'ext/db', + 'raw' => 'ext/db (Jani, Derick)', + ), + 2 => + array ( + 'message' => 'ext/mcal', + 'raw' => 'ext/mcal (Jani, Derick)', + ), + 3 => + array ( + 'message' => 'ext/qtdom', + 'raw' => 'ext/qtdom (Jani, Derick)', + ), + 4 => + array ( + 'message' => 'ext/notes (Wez) - Added \'c\' modifier to date() which returns the date in the ISO 8601 format. (Derick, Manuzhai) - Added an optional parameter to microtime() to get the time as float. (Andrey) - Added MacRoman encoding support to htmlentities(). (Derick, Marcus Bointon) - Added possibility to call PHP functions as XSLT-functions. (Christian) - Added possibility to prevent PHP from registering variables when input filter support is used. (Derick) - Added iconv stream filter (convert.iconv.*). (Moriyoshi) - Added EXSLT support in ext/xsl. (Christian) - Added qdbm handler for dba extension.', + 'raw' => 'ext/notes (Wez) - Added \'c\' modifier to date() which returns the date in the ISO 8601 format. (Derick, Manuzhai) - Added an optional parameter to microtime() to get the time as float. (Andrey) - Added MacRoman encoding support to htmlentities(). (Derick, Marcus Bointon) - Added possibility to call PHP functions as XSLT-functions. (Christian) - Added possibility to prevent PHP from registering variables when input filter support is used. (Derick) - Added iconv stream filter (convert.iconv.*). (Moriyoshi) - Added EXSLT support in ext/xsl. (Christian) - Added qdbm handler for dba extension. (mg at iceni dot pl, Marcus)', + ), + ), + 'added new functions' => + array ( + 0 => + array ( + 'message' => 'dba_key_split() to split inifile keys in an array.', + 'raw' => 'dba_key_split() to split inifile keys in an array. (Marcus)', + ), + 1 => + array ( + 'message' => 'time_nanosleep() signal safe sleep', + 'raw' => 'time_nanosleep() signal safe sleep (Magnus, Ilia)', + ), + 2 => + array ( + 'message' => 'headers_list().', + 'raw' => 'headers_list(). (Sara)', + ), + 3 => + array ( + 'message' => 'php_strip_whitespace(). strip whitespace & comments from a script.', + 'raw' => 'php_strip_whitespace(). strip whitespace & comments from a script. (Ilia)', + ), + 4 => + array ( + 'message' => 'php_check_syntax(). check php script for parse errors.', + 'raw' => 'php_check_syntax(). check php script for parse errors. (Ilia)', + ), + 5 => + array ( + 'message' => 'image_type_to_extension(). return extension based on image type.', + 'raw' => 'image_type_to_extension(). return extension based on image type. (Ilia)', + ), + 6 => + array ( + 'message' => 'stream_socket_sendto() and stream_socket_recvfrom().', + 'raw' => 'stream_socket_sendto() and stream_socket_recvfrom(). (Wez)', + ), + 7 => + array ( + 'message' => 'iconv_mime_decode_headers().', + 'raw' => 'iconv_mime_decode_headers(). (Moriyoshi)', + ), + 8 => + array ( + 'message' => 'get_declared_interfaces().', + 'raw' => 'get_declared_interfaces(). (Andrey, Marcus)', + ), + 9 => + array ( + 'message' => 'sqlite_fetch_column_types().', + 'raw' => 'sqlite_fetch_column_types(). (Ilia)', + ), + 10 => + array ( + 'message' => 'setrawcookie().', + 'raw' => 'setrawcookie(). (Brian)', + ), + 11 => + array ( + 'message' => 'pg_version().', + 'raw' => 'pg_version(). (Marcus)', + ), + 12 => + array ( + 'message' => 'dbase_get_header_info().', + 'raw' => 'dbase_get_header_info(). (Zak)', + ), + 13 => + array ( + 'message' => 'snmp_read_mib().', + 'raw' => 'snmp_read_mib(). (Jani)', + ), + 14 => + array ( + 'message' => 'http_build_query().', + 'raw' => 'http_build_query(). (Sara)', + ), + 15 => + array ( + 'message' => 'ftp_alloc().', + 'raw' => 'ftp_alloc(). (Sara)', + ), + 16 => + array ( + 'message' => 'array_udiff().', + 'raw' => 'array_udiff(). (Andrey)', + ), + 17 => + array ( + 'message' => 'array_udiff_assoc().', + 'raw' => 'array_udiff_assoc(). (Andrey)', + ), + 18 => + array ( + 'message' => 'array_udiff_uassoc().', + 'raw' => 'array_udiff_uassoc(). (Andrey)', + ), + 19 => + array ( + 'message' => 'array_diff_uassoc().', + 'raw' => 'array_diff_uassoc(). (Andrey)', + ), + 20 => + array ( + 'message' => 'convert_uuencode().', + 'raw' => 'convert_uuencode(). (Ilia)', + ), + 21 => + array ( + 'message' => 'convert_uudecode().', + 'raw' => 'convert_uudecode(). (Ilia)', + ), + 22 => + array ( + 'message' => 'substr_compare().', + 'raw' => 'substr_compare(). (Ilia)', + ), + 23 => + array ( + 'message' => 'pcntl_wait().', + 'raw' => 'pcntl_wait(). (GeorgeS)', + ), + ), + 'added proxy support to http' => + array ( + ), + 'added rename(), rmdir() and mkdir() support to ftp' => + array ( + ), + 'lots and lots of changes in the zend engine 2 since beta 1' => + array ( + 0 => + array ( + 'message' => 'Added Iterators', + 'raw' => 'Added Iterators', + ), + 1 => + array ( + 'message' => 'Improved memory manager', + 'raw' => 'Improved memory manager', + ), + 2 => + array ( + 'message' => 'Added Reflection API', + 'raw' => 'Added Reflection API', + ), + 3 => + array ( + 'message' => 'Removed the not so working namespaces support', + 'raw' => 'Removed the not so working namespaces support', + ), + 4 => + array ( + 'message' => 'Removed support for expressions within constant declarations.', + 'raw' => 'Removed support for expressions within constant declarations.', + ), + 5 => + array ( + 'message' => 'You can read about most changes in ZEND_CHANGES under the Zend directory.', + 'raw' => 'You can read about most changes in ZEND_CHANGES under the Zend directory.', + ), + ), + 'improved the dbx extension' => + array ( + 0 => + array ( + 'message' => 'Added DBX_RESULT_UNBUFFERED flag for dbx_query().', + 'raw' => 'Added DBX_RESULT_UNBUFFERED flag for dbx_query().', + ), + 1 => + array ( + 'message' => 'Added dbx_fetch_row()', + 'raw' => 'Added dbx_fetch_row()', + ), + 2 => + array ( + 'message' => 'Added SQLite support.', + 'raw' => 'Added SQLite support.', + ), + ), + 'improved the interbase extension' => + array ( + 0 => + array ( + 'message' => 'Added support for multiple databases into ibase_trans()', + 'raw' => 'Added support for multiple databases into ibase_trans()', + ), + 1 => + array ( + 'message' => 'Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE PROCEDURE statements into ibase_query()', + 'raw' => 'Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE PROCEDURE statements into ibase_query()', + ), + 2 => + array ( + 'message' => 'Added ability to bind PHP arrays to native Interbase arrays', + 'raw' => 'Added ability to bind PHP arrays to native Interbase arrays', + ), + 3 => + array ( + 'message' => 'Added ibase_commit_ret() and ibase_rollback_ret()', + 'raw' => 'Added ibase_commit_ret() and ibase_rollback_ret()', + ), + 4 => + array ( + 'message' => 'Added ibase_drop_db()', + 'raw' => 'Added ibase_drop_db()', + ), + 5 => + array ( + 'message' => 'Added ibase_gen_id()', + 'raw' => 'Added ibase_gen_id()', + ), + 6 => + array ( + 'message' => 'Added ibase_name_result()', + 'raw' => 'Added ibase_name_result()', + ), + 7 => + array ( + 'message' => 'Added ibase_errcode()', + 'raw' => 'Added ibase_errcode()', + ), + 8 => + array ( + 'message' => 'Added ibase_affected_rows() and ibase_num_params()', + 'raw' => 'Added ibase_affected_rows() and ibase_num_params()', + ), + 9 => + array ( + 'message' => 'Added ibase_param_info()', + 'raw' => 'Added ibase_param_info()', + ), + 10 => + array ( + 'message' => 'Added ibase_wait_event()', + 'raw' => 'Added ibase_wait_event()', + ), + 11 => + array ( + 'message' => 'Added ibase_set_event_handler() and ibase_free_event_handler() - Added new COM extension with integrated .Net support.', + 'raw' => 'Added ibase_set_event_handler() and ibase_free_event_handler() - Added new COM extension with integrated .Net support. (Wez)', + ), + ), + 'added "resume_pos" context option to "ftp' => + array ( + ), + 'fixed bug #24403 (preg_replace() problem' => + array ( + ), + 'added sqlite (http' => + array ( + 0 => + array ( + 'message' => 'Includes bundled SQLite library', + 'raw' => 'Includes bundled SQLite library', + ), + 1 => + array ( + 'message' => 'Enabled by default', + 'raw' => 'Enabled by default', + ), + ), + 'completely overhauled xml support' => + array ( + 0 => + array ( + 'message' => 'New simplexml extension.', + 'raw' => 'New simplexml extension. (Sterling)', + ), + 1 => + array ( + 'message' => 'New DOM extension.', + 'raw' => 'New DOM extension. (Rob, Chregu, Marcus)', + ), + 2 => + array ( + 'message' => 'New XSL extension.', + 'raw' => 'New XSL extension. (Chregu, Rob)', + ), + 3 => + array ( + 'message' => 'Moved the old DOM-XML and XSLT extensions to PECL.', + 'raw' => 'Moved the old DOM-XML and XSLT extensions to PECL. (James, Sterling)', + ), + 4 => + array ( + 'message' => 'ext/xml can now use either libxml2 or expat to parse XML.', + 'raw' => 'ext/xml can now use either libxml2 or expat to parse XML. (Sterling)', + ), + 5 => + array ( + 'message' => 'Removed bundled expat library.', + 'raw' => 'Removed bundled expat library. (Jani)', + ), + ), + 'new php.ini options' => + array ( + 0 => + array ( + 'message' => '"session.hash_function" and "session.hash_bits_per_character".', + 'raw' => '"session.hash_function" and "session.hash_bits_per_character". (Sascha)', + ), + 1 => + array ( + 'message' => '"mail.force_extra_paramaters".', + 'raw' => '"mail.force_extra_paramaters". (Derick)', + ), + 2 => + array ( + 'message' => '"register_long_arrays". (Zeev) - Improved the speed of internal functions that use callbacks by 40% due to a new internal fast_call_user_function() function.', + 'raw' => '"register_long_arrays". (Zeev) - Improved the speed of internal functions that use callbacks by 40% due to a new internal fast_call_user_function() function. (Sterling)', + ), + ), + 'improved the streams support' => + array ( + 0 => + array ( + 'message' => 'Improved performance of readfile(), fpassthru() and some internal streams operations under Win32.', + 'raw' => 'Improved performance of readfile(), fpassthru() and some internal streams operations under Win32.', + ), + 1 => + array ( + 'message' => 'stream_socket_client() - similar to fsockopen(), but more powerful.', + 'raw' => 'stream_socket_client() - similar to fsockopen(), but more powerful.', + ), + 2 => + array ( + 'message' => 'stream_socket_server() - Creates a server socket.', + 'raw' => 'stream_socket_server() - Creates a server socket.', + ), + 3 => + array ( + 'message' => 'stream_socket_accept() - Accept a client connection.', + 'raw' => 'stream_socket_accept() - Accept a client connection.', + ), + 4 => + array ( + 'message' => 'stream_socket_get_name() - Get local or remote name of socket.', + 'raw' => 'stream_socket_get_name() - Get local or remote name of socket.', + ), + 5 => + array ( + 'message' => 'stream_copy_to_stream()', + 'raw' => 'stream_copy_to_stream()', + ), + 6 => + array ( + 'message' => 'stream_get_line() - Reads either the specified number of bytes or until the ending string is found.', + 'raw' => 'stream_get_line() - Reads either the specified number of bytes or until the ending string is found. (Ilia)', + ), + 7 => + array ( + 'message' => 'Added context property to userspace streams object.', + 'raw' => 'Added context property to userspace streams object. (Sara)', + ), + 8 => + array ( + 'message' => 'Added generic crypto interface for streams.', + 'raw' => 'Added generic crypto interface for streams. (supports dynamic loading of OpenSSL)', + ), + 9 => + array ( + 'message' => 'Added lightweight streaming input abstraction to the Zend Engine scanners to provide uniform support for include()\'ing data from PHP streams across all platforms.', + 'raw' => 'Added lightweight streaming input abstraction to the Zend Engine scanners to provide uniform support for include()\'ing data from PHP streams across all platforms.', + ), + 10 => + array ( + 'message' => 'Added \'string.base64\' stream filter.', + 'raw' => 'Added \'string.base64\' stream filter. (Moriyoshi)', + ), + 11 => + array ( + 'message' => 'Renamed stream_register_wrapper() to stream_wrapper_register().', + 'raw' => 'Renamed stream_register_wrapper() to stream_wrapper_register(). (Derick)', + ), + ), + 'improved the gd extension' => + array ( + 0 => + array ( + 'message' => 'imagefilter() - Apply different filters to image.', + 'raw' => 'imagefilter() - Apply different filters to image. (Only available with bundled GD library)', + ), + 1 => + array ( + 'message' => 'Antialiased drawing support: o imageantialias() - (de)active antialias o imageline() and imagepolygon() antialias support - Changed the length parameter in fgetss() to be optional. - Changed ini parser to allow for handling of quoted multi-line values. (Ilia) - Changed get_extension_funcs() to return list of the built-in Zend Engine functions if "zend" is specified as the module name. (Ilia) - Changed array_search() to accept also objects as a needle. - Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater. (Derick) - Changed uniqid() parameters to be optional and allow any prefix length. (Marcus) - Added new iconv functions.', + 'raw' => 'Antialiased drawing support: o imageantialias() - (de)active antialias o imageline() and imagepolygon() antialias support - Changed the length parameter in fgetss() to be optional. (Moriyoshi) - Changed ini parser to allow for handling of quoted multi-line values. (Ilia) - Changed get_extension_funcs() to return list of the built-in Zend Engine functions if "zend" is specified as the module name. (Ilia) - Changed array_search() to accept also objects as a needle. (Moriyoshi) - Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater. (Derick) - Changed uniqid() parameters to be optional and allow any prefix length. (Marcus) - Added new iconv functions. (Moriyoshi)', + ), + 2 => + array ( + 'message' => 'iconv_strlen()', + 'raw' => 'iconv_strlen()', + ), + 3 => + array ( + 'message' => 'iconv_substr()', + 'raw' => 'iconv_substr()', + ), + 4 => + array ( + 'message' => 'iconv_strpos()', + 'raw' => 'iconv_strpos()', + ), + 5 => + array ( + 'message' => 'iconv_strrpos()', + 'raw' => 'iconv_strrpos()', + ), + 6 => + array ( + 'message' => 'iconv_mime_decode()', + 'raw' => 'iconv_mime_decode()', + ), + 7 => + array ( + 'message' => 'iconv_mime_encode()', + 'raw' => 'iconv_mime_encode()', + ), + ), + 'added misc. new functions' => + array ( + 0 => + array ( + 'message' => 'ldap_sasl_bind().', + 'raw' => 'ldap_sasl_bind(). (peter_c60@hotmail.com, Jani)', + ), + 1 => + array ( + 'message' => 'imap_getacl().', + 'raw' => 'imap_getacl(). (Dan, Holger Burbach)', + ), + 2 => + array ( + 'message' => 'file_put_contents().', + 'raw' => 'file_put_contents(). (Sterling)', + ), + 3 => + array ( + 'message' => 'proc_nice() - Changes priority of the current process.', + 'raw' => 'proc_nice() - Changes priority of the current process. (Ilia)', + ), + 4 => + array ( + 'message' => 'pcntl_getpriority() and pcntl_setpriority().', + 'raw' => 'pcntl_getpriority() and pcntl_setpriority(). (Ilia)', + ), + 5 => + array ( + 'message' => 'idate(), date_sunrise() and date_sunset().', + 'raw' => 'idate(), date_sunrise() and date_sunset(). (Moshe Doron)', + ), + 6 => + array ( + 'message' => 'strpbrk() - Searches a string for a list of characters.', + 'raw' => 'strpbrk() - Searches a string for a list of characters. (Ilia)', + ), + 7 => + array ( + 'message' => 'get_headers() - Returns headers sent by the server of the specified URL.', + 'raw' => 'get_headers() - Returns headers sent by the server of the specified URL. (Ilia)', + ), + 8 => + array ( + 'message' => 'str_split() - Breaks down a string into an array of elements based on length.', + 'raw' => 'str_split() - Breaks down a string into an array of elements based on length. (Ilia)', + ), + 9 => + array ( + 'message' => 'array_walk_recursive().', + 'raw' => 'array_walk_recursive(). (Ilia)', + ), + 10 => + array ( + 'message' => 'array_combine(). (Andrey) - Added optional parameter to get_browser() to make it return an array. (Jay) - Added optional parameter to openssl_sign() to specify the hashing algorithm. (scott@planetscott.ca, Derick) - Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which makes them return the digest as binary data. (Michael Bretterklieber, Derick) - Added optional parameter to mkdir() to make directory creation recursive. - Added optional parameter to file() which makes the result array not contain the line endings and to skip empty lines.', + 'raw' => 'array_combine(). (Andrey) - Added optional parameter to get_browser() to make it return an array. (Jay) - Added optional parameter to openssl_sign() to specify the hashing algorithm. (scott@planetscott.ca, Derick) - Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which makes them return the digest as binary data. (Michael Bretterklieber, Derick) - Added optional parameter to mkdir() to make directory creation recursive. (Ilia) - Added optional parameter to file() which makes the result array not contain the line endings and to skip empty lines. (Ilia)', + ), + ), + 'added new range() functionality' => + array ( + 0 => + array ( + 'message' => 'Support for float modifier.', + 'raw' => 'Support for float modifier. (Ilia)', + ), + 1 => + array ( + 'message' => 'Detection of numeric values inside strings passed as high & low.', + 'raw' => 'Detection of numeric values inside strings passed as high & low. (Ilia)', + ), + 2 => + array ( + 'message' => 'Proper handle the situations where high == low.', + 'raw' => 'Proper handle the situations where high == low. (Ilia)', + ), + 3 => + array ( + 'message' => 'Added an optional step parameter. (Jon) - Added encoding detection feature for expat XML parser. (Adam Dickmeiss, Moriyoshi) - Added missing multibyte (unicode) support and numeric entity support to html_entity_decode(). (Moriyoshi) - Added IPv6 support to ext/sockets.', + 'raw' => 'Added an optional step parameter. (Jon) - Added encoding detection feature for expat XML parser. (Adam Dickmeiss, Moriyoshi) - Added missing multibyte (unicode) support and numeric entity support to html_entity_decode(). (Moriyoshi) - Added IPv6 support to ext/sockets. (Sara)', + ), + ), + 'added "ftp' => + array ( + ), + 'added context options \'method\', \'header\' and \'content\' for "http' => + array ( + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/5.1/changelist.inc b/include/releases/5.1/changelist.inc new file mode 100644 index 0000000000..5b10e855e7 --- /dev/null +++ b/include/releases/5.1/changelist.inc @@ -0,0 +1,781 @@ + + array ( + 'date' => '24 Aug 2006', + 'modules' => + array ( + 'fixed bug #38488 (access to "php' => + array ( + ), + ), + ), + '5.1.5' => + array ( + 'date' => '17 Aug 2006', + 'modules' => + array ( + ), + ), + '5.1.4' => + array ( + 'date' => '04 May 2006', + 'modules' => + array ( + 'added pdo' => + array ( + ), + ), + ), + '5.1.3' => + array ( + 'date' => '28 Apr 2006', + 'modules' => + array ( + 'moved extensions to pecl' => + array ( + 0 => + array ( + 'message' => 'ext/msession (Derick) - Reimplemented FastCGI interface.', + 'raw' => 'ext/msession (Derick) - Reimplemented FastCGI interface. (Dmitry)', + ), + ), + 'improved spl' => + array ( + ), + 'improved simplexml' => + array ( + 0 => + array ( + 'message' => 'Added SimpleXMLElement::getName() to retrieve name of element.', + 'raw' => 'Added SimpleXMLElement::getName() to retrieve name of element.', + ), + 1 => + array ( + 'message' => 'Added ability to create elements on the fly.', + 'raw' => 'Added ability to create elements on the fly.', + ), + 2 => + array ( + 'message' => 'Added addChild() method for element creation supporting namespaces.', + 'raw' => 'Added addChild() method for element creation supporting namespaces.', + ), + 3 => + array ( + 'message' => 'Added addAttribute() method for attribute creation supporting namespaces.', + 'raw' => 'Added addAttribute() method for attribute creation supporting namespaces.', + ), + 4 => + array ( + 'message' => 'Added ability to delete specific elements and attributes by offset.', + 'raw' => 'Added ability to delete specific elements and attributes by offset.', + ), + ), + 'improved reflection api' => + array ( + 0 => + array ( + 'message' => 'Added ReflectionClass::newInstanceArgs($args).', + 'raw' => 'Added ReflectionClass::newInstanceArgs($args).', + ), + 1 => + array ( + 'message' => 'Added ability to analyze extension dependency.', + 'raw' => 'Added ability to analyze extension dependency.', + ), + 2 => + array ( + 'message' => 'Added ReflectionFunction::isDeprecated() and constant IS_DEPRECATED.', + 'raw' => 'Added ReflectionFunction::isDeprecated() and constant IS_DEPRECATED.', + ), + 3 => + array ( + 'message' => 'Added ReflectionParameter::getDeclaringClass().', + 'raw' => 'Added ReflectionParameter::getDeclaringClass().', + ), + 4 => + array ( + 'message' => 'Changed reflection constants to be prefixed with IS_.', + 'raw' => 'Changed reflection constants to be prefixed with IS_. (Johannes)', + ), + ), + 'improved curl extension' => + array ( + 0 => + array ( + 'message' => 'Added curl_setopt_array() function that allows setting of multiple options via an associated array.', + 'raw' => 'Added curl_setopt_array() function that allows setting of multiple options via an associated array.', + ), + 1 => + array ( + 'message' => 'Added the ability to retrieve the request message sent to the server.', + 'raw' => 'Added the ability to retrieve the request message sent to the server.', + ), + ), + 'improved gd extension' => + array ( + 0 => + array ( + 'message' => 'Added a weak/tolerant mode to the JPEG loader.', + 'raw' => 'Added a weak/tolerant mode to the JPEG loader.', + ), + 1 => + array ( + 'message' => 'Added filtering mode option to imagepng() to allow reducing file size.', + 'raw' => 'Added filtering mode option to imagepng() to allow reducing file size.', + ), + 2 => + array ( + 'message' => 'Fixed imagecolorallocate() and imagecolorallocatelapha() to return FALSE on error. - Changed get_headers() to retrieve headers also from non-200 responses. (Ilia) - Changed get_headers() to use the default context. (Ilia) - Added lchown() and lchgrp() to change user/group ownership of symlinks. (Derick) - Added support for exif date format in strtotime(). (Derick) - Added a check for special characters in the session name. (Ilia) - Added "consumed" stream filter.', + 'raw' => 'Fixed imagecolorallocate() and imagecolorallocatelapha() to return FALSE on error. - Changed get_headers() to retrieve headers also from non-200 responses. (Ilia) - Changed get_headers() to use the default context. (Ilia) - Added lchown() and lchgrp() to change user/group ownership of symlinks. (Derick) - Added support for exif date format in strtotime(). (Derick) - Added a check for special characters in the session name. (Ilia) - Added "consumed" stream filter. (Marcus)', + ), + ), + 'added new mysqli constants for bit and new_decimal field types' => + array ( + ), + 'fixed soapfault' => + array ( + ), + 'fixed crash with domimplementation' => + array ( + ), + 'fixed bug #37060 (type of retval of countable' => + array ( + ), + 'fixed bug #37017 (strtotime fails before 13' => + array ( + ), + 'fixed bug #36825 (exceptions thrown in arrayobject' => + array ( + ), + 'fixed bug #36756 (domdocument' => + array ( + ), + 'fixed bug #36749 (soap' => + array ( + ), + 'fixed bug #36629 (soapserver' => + array ( + ), + 'fixed bug #36575 (soap' => + array ( + ), + 'fixed bug #36572 (added pdo' => + array ( + ), + 'fixed bug #36359 (splfileobject' => + array ( + ), + 'fixed bug #36308 (reflectionproperty' => + array ( + ), + 'fixed bug #36295 (typo in splfileobject' => + array ( + ), + 'fixed bug #36258 (splfileobject' => + array ( + ), + 'fixed bug #36176 (pdo_pgsql - pdo' => + array ( + ), + 'fixed bug #35998 (splfileinfo' => + array ( + ), + ), + ), + '5.1.2' => + array ( + 'date' => '12 Jan 2006', + 'modules' => + array ( + 'added new extensions' => + array ( + 0 => + array ( + 'message' => 'XMLWriter', + 'raw' => 'XMLWriter', + ), + 1 => + array ( + 'message' => 'Hash - Added PNG compression support to GD extension. (Pierre) - Added reflection constants as class constants. (Johannes) - Added --enable-gcov configure option to enable C-level code coverage. (John, Jani, Ilia, Marcus) - Added missing support for \'B\' format identifier to date() function. (Ilia) - Changed reflection to be an extension.', + 'raw' => 'Hash - Added PNG compression support to GD extension. (Pierre) - Added reflection constants as class constants. (Johannes) - Added --enable-gcov configure option to enable C-level code coverage. (John, Jani, Ilia, Marcus) - Added missing support for \'B\' format identifier to date() function. (Ilia) - Changed reflection to be an extension. (Marcus)', + ), + ), + 'improved spl extension' => + array ( + 0 => + array ( + 'message' => 'Added class SplFileInfo as root class for DirectoryIterator and SplFileObject', + 'raw' => 'Added class SplFileInfo as root class for DirectoryIterator and SplFileObject', + ), + 1 => + array ( + 'message' => 'Added SplTempFileObject', + 'raw' => 'Added SplTempFileObject', + ), + ), + 'improved simplexml extension' => + array ( + 0 => + array ( + 'message' => 'Fixed memleaks', + 'raw' => 'Fixed memleaks', + ), + 1 => + array ( + 'message' => 'Fixed var_dump()', + 'raw' => 'Fixed var_dump()', + ), + 2 => + array ( + 'message' => 'Fixed isset/empty/(bool) behavior', + 'raw' => 'Fixed isset/empty/(bool) behavior', + ), + 3 => + array ( + 'message' => 'Fixed iterator edge cases', + 'raw' => 'Fixed iterator edge cases', + ), + 4 => + array ( + 'message' => 'Added methods getNamespaces(), getDocNamespaces() - Upgraded pear to version 1.4.6.', + 'raw' => 'Added methods getNamespaces(), getDocNamespaces() - Upgraded pear to version 1.4.6. (Greg)', + ), + ), + 'added constants for libxslt and libexslt versions' => + array ( + ), + 'fixed memory corruption when pdo' => + array ( + ), + 'fixed bug #35797 (segfault on pdostatement' => + array ( + ), + 'fixed bug #35730 (ext/mssql + freetds' => + array ( + ), + 'fixed bug #35629 (crash in http' => + array ( + ), + 'fixed bug #35377 (pdo_sqlite' => + array ( + ), + ), + ), + '5.1.1' => + array ( + 'date' => '28 Nov 2005', + 'modules' => + array ( + 'disabled native date class to prevent pear' => + array ( + ), + 'fixed bug #35391 (pdo_mysql' => + array ( + ), + 'added optional first parameter to xsltprocessor' => + array ( + 0 => + array ( + 'message' => 'pg_transaction_status() - in-transaction status of a database connection.', + 'raw' => 'pg_transaction_status() - in-transaction status of a database connection.', + ), + 1 => + array ( + 'message' => 'pg_query_params() - execution of parameterized queries.', + 'raw' => 'pg_query_params() - execution of parameterized queries.', + ), + 2 => + array ( + 'message' => 'pg_prepare() - prepare named queries.', + 'raw' => 'pg_prepare() - prepare named queries.', + ), + 3 => + array ( + 'message' => 'pg_execute() - execution of named prepared queries.', + 'raw' => 'pg_execute() - execution of named prepared queries.', + ), + 4 => + array ( + 'message' => 'pg_send_query_params() - async equivalent of pg_query_params().', + 'raw' => 'pg_send_query_params() - async equivalent of pg_query_params().', + ), + 5 => + array ( + 'message' => 'pg_send_prepare() - async equivalent of pg_prepare().', + 'raw' => 'pg_send_prepare() - async equivalent of pg_prepare().', + ), + 6 => + array ( + 'message' => 'pg_send_execute() - async equivalent of pg_execute().', + 'raw' => 'pg_send_execute() - async equivalent of pg_execute().', + ), + 7 => + array ( + 'message' => 'pg_result_error_field() - highly detailed error information, most importantly the SQLSTATE error code.', + 'raw' => 'pg_result_error_field() - highly detailed error information, most importantly the SQLSTATE error code.', + ), + 8 => + array ( + 'message' => 'pg_set_error_verbosity() - set verbosity of errors. - Added optional fifth parameter "count" to preg_replace_callback() and preg_replace() to count the number of replacements made. FR #32275. (Andrey) - Added optional third parameter "charlist" to str_word_count() which contains characters to be considered as word part. FR #31560. (Andrey, Ilia) - Added interface Serializable. (Stanislav, Marcus) - Added pg_field_type_oid() PostgreSQL function. (mauroi at digbang dot com) - Added zend_declare_property_...() and zend_update_property_...() API functions for bool, double and binary safe strings. (Hartmut) - Added possibility to access INI variables from within .ini file. (Andrei) - Added variable $_SERVER[\'REQUEST_TIME\'] containing request start time. (Ilia) - Added optional float parameter to gettimeofday(). (Ilia) - Added apache_reset_timeout() Apache1 function. - Added sqlite_fetch_column_types() 3rd argument for arrays. (Ilia) - Added optional offset parameter to stream_get_contents() and file_get_contents(). (Ilia) - Added optional maxlen parameter to file_get_contents(). (Ilia) - Added SAPI hook to get the current request time.', + 'raw' => 'pg_set_error_verbosity() - set verbosity of errors. - Added optional fifth parameter "count" to preg_replace_callback() and preg_replace() to count the number of replacements made. FR #32275. (Andrey) - Added optional third parameter "charlist" to str_word_count() which contains characters to be considered as word part. FR #31560. (Andrey, Ilia) - Added interface Serializable. (Stanislav, Marcus) - Added pg_field_type_oid() PostgreSQL function. (mauroi at digbang dot com) - Added zend_declare_property_...() and zend_update_property_...() API functions for bool, double and binary safe strings. (Hartmut) - Added possibility to access INI variables from within .ini file. (Andrei) - Added variable $_SERVER[\'REQUEST_TIME\'] containing request start time. (Ilia) - Added optional float parameter to gettimeofday(). (Ilia) - Added apache_reset_timeout() Apache1 function. (Rasmus) - Added sqlite_fetch_column_types() 3rd argument for arrays. (Ilia) - Added optional offset parameter to stream_get_contents() and file_get_contents(). (Ilia) - Added optional maxlen parameter to file_get_contents(). (Ilia) - Added SAPI hook to get the current request time. (Rasmus)', + ), + ), + 'added new functions' => + array ( + 0 => + array ( + 'message' => 'array_diff_key()', + 'raw' => 'array_diff_key() (Andrey)', + ), + 1 => + array ( + 'message' => 'array_diff_ukey()', + 'raw' => 'array_diff_ukey() (Andrey)', + ), + 2 => + array ( + 'message' => 'array_intersect_key()', + 'raw' => 'array_intersect_key() (Christiano Duarte)', + ), + 3 => + array ( + 'message' => 'array_intersect_ukey()', + 'raw' => 'array_intersect_ukey() (Christiano Duarte)', + ), + 4 => + array ( + 'message' => 'array_product()', + 'raw' => 'array_product() (Andrey)', + ), + 5 => + array ( + 'message' => 'DomDocumentFragment::appendXML()', + 'raw' => 'DomDocumentFragment::appendXML() (Christian)', + ), + 6 => + array ( + 'message' => 'fputcsv()', + 'raw' => 'fputcsv() (David Sklar)', + ), + 7 => + array ( + 'message' => 'htmlspecialchars_decode()', + 'raw' => 'htmlspecialchars_decode() (Ilia)', + ), + 8 => + array ( + 'message' => 'inet_pton()', + 'raw' => 'inet_pton() (Sara)', + ), + 9 => + array ( + 'message' => 'inet_ntop()', + 'raw' => 'inet_ntop() (Sara)', + ), + 10 => + array ( + 'message' => 'mysqli::client_info property', + 'raw' => 'mysqli::client_info property (Georg)', + ), + 11 => + array ( + 'message' => 'posix_access()', + 'raw' => 'posix_access() (Magnus)', + ), + 12 => + array ( + 'message' => 'posix_mknod()', + 'raw' => 'posix_mknod() (Magnus)', + ), + 13 => + array ( + 'message' => 'SimpleXMLElement::registerXPathNamespace()', + 'raw' => 'SimpleXMLElement::registerXPathNamespace() (Christian)', + ), + 14 => + array ( + 'message' => 'stream_context_get_default()', + 'raw' => 'stream_context_get_default() (Wez)', + ), + 15 => + array ( + 'message' => 'stream_socket_enable_crypto()', + 'raw' => 'stream_socket_enable_crypto() (Wez)', + ), + 16 => + array ( + 'message' => 'stream_wrapper_unregister()', + 'raw' => 'stream_wrapper_unregister() (Sara)', + ), + 17 => + array ( + 'message' => 'stream_wrapper_restore()', + 'raw' => 'stream_wrapper_restore() (Sara)', + ), + 18 => + array ( + 'message' => 'stream_filter_remove()', + 'raw' => 'stream_filter_remove() (Sara)', + ), + 19 => + array ( + 'message' => 'time_sleep_until()', + 'raw' => 'time_sleep_until() (Ilia)', + ), + ), + 'added domdocument' => + array ( + ), + 'improved performance of' => + array ( + 0 => + array ( + 'message' => 'general execution/compilation.', + 'raw' => 'general execution/compilation. (Andi, Thies, Sterling, Dmitry, Marcus)', + ), + 1 => + array ( + 'message' => 'switch() statement.', + 'raw' => 'switch() statement. (Dmitry)', + ), + 2 => + array ( + 'message' => 'several array functions.', + 'raw' => 'several array functions. (Marcus)', + ), + 3 => + array ( + 'message' => 'virtual path handling by adding a realpath() cache.', + 'raw' => 'virtual path handling by adding a realpath() cache. (Andi)', + ), + 4 => + array ( + 'message' => 'variable fetches.', + 'raw' => 'variable fetches. (Andi)', + ), + 5 => + array ( + 'message' => 'magic method invocations. (Marcus) - Improved support for embedded server in mysqli. - Improved mysqli extension.', + 'raw' => 'magic method invocations. (Marcus) - Improved support for embedded server in mysqli. (Georg) - Improved mysqli extension. (Georg)', + ), + 6 => + array ( + 'message' => 'added constructor for mysqli_stmt and mysqli_result classes', + 'raw' => 'added constructor for mysqli_stmt and mysqli_result classes', + ), + 7 => + array ( + 'message' => 'added new function mysqli_get_charset()', + 'raw' => 'added new function mysqli_get_charset()', + ), + 8 => + array ( + 'message' => 'added new function mysqli_set_charset()', + 'raw' => 'added new function mysqli_set_charset()', + ), + 9 => + array ( + 'message' => 'added new class mysqli_driver', + 'raw' => 'added new class mysqli_driver', + ), + 10 => + array ( + 'message' => 'added new class mysqli_warning', + 'raw' => 'added new class mysqli_warning', + ), + 11 => + array ( + 'message' => 'added new class mysqli_exception', + 'raw' => 'added new class mysqli_exception', + ), + 12 => + array ( + 'message' => 'added new class mysqli_sql_exception - Improved SPL extension.', + 'raw' => 'added new class mysqli_sql_exception - Improved SPL extension. (Marcus)', + ), + 13 => + array ( + 'message' => 'Moved RecursiveArrayIterator from examples into extension', + 'raw' => 'Moved RecursiveArrayIterator from examples into extension', + ), + 14 => + array ( + 'message' => 'Moved RecursiveFilterIterator from examples into extension', + 'raw' => 'Moved RecursiveFilterIterator from examples into extension', + ), + 15 => + array ( + 'message' => 'Added SplObjectStorage', + 'raw' => 'Added SplObjectStorage', + ), + 16 => + array ( + 'message' => 'Made all SPL constants class constants', + 'raw' => 'Made all SPL constants class constants', + ), + 17 => + array ( + 'message' => 'Renamed CachingRecursiveIterator to RecursiveCachingIterator to follow Recursive<*>Iterator naming scheme.', + 'raw' => 'Renamed CachingRecursiveIterator to RecursiveCachingIterator to follow Recursive<*>Iterator naming scheme.', + ), + 18 => + array ( + 'message' => 'added standard hierarchy of Exception classes', + 'raw' => 'added standard hierarchy of Exception classes', + ), + 19 => + array ( + 'message' => 'added interface Countable', + 'raw' => 'added interface Countable', + ), + 20 => + array ( + 'message' => 'added interfaces Subject and SplObserver', + 'raw' => 'added interfaces Subject and SplObserver', + ), + 21 => + array ( + 'message' => 'added spl_autoload*() functions', + 'raw' => 'added spl_autoload*() functions', + ), + 22 => + array ( + 'message' => 'converted several 5.0 examples into c code', + 'raw' => 'converted several 5.0 examples into c code', + ), + 23 => + array ( + 'message' => 'added class SplFileObject', + 'raw' => 'added class SplFileObject', + ), + 24 => + array ( + 'message' => 'added possibility to use a string with class_parents() and class_implements().', + 'raw' => 'added possibility to use a string with class_parents() and class_implements(). (Andrey)', + ), + ), + 'upgraded bundled libraries' => + array ( + 0 => + array ( + 'message' => 'PCRE library to version 6.2.', + 'raw' => 'PCRE library to version 6.2. (Andrei)', + ), + 1 => + array ( + 'message' => 'SQLite 3 library in ext/pdo_sqlite to 3.2.7.', + 'raw' => 'SQLite 3 library in ext/pdo_sqlite to 3.2.7. (Ilia)', + ), + 2 => + array ( + 'message' => 'SQLite 2 library in ext/sqlite to 2.8.16. (Ilia) - Upgraded bundled libraries in Windows distribution.', + 'raw' => 'SQLite 2 library in ext/sqlite to 2.8.16. (Ilia) - Upgraded bundled libraries in Windows distribution. (Edin)', + ), + 3 => + array ( + 'message' => 'zlib 1.2.3', + 'raw' => 'zlib 1.2.3', + ), + 4 => + array ( + 'message' => 'curl 7.14.0', + 'raw' => 'curl 7.14.0', + ), + 5 => + array ( + 'message' => 'openssl 0.9.8', + 'raw' => 'openssl 0.9.8', + ), + 6 => + array ( + 'message' => 'ming 0.3b', + 'raw' => 'ming 0.3b', + ), + 7 => + array ( + 'message' => 'libpq 8.0.1', + 'raw' => 'libpq (PostgreSQL) 8.0.1', + ), + ), + 'moved extensions to pecl' => + array ( + 0 => + array ( + 'message' => 'ext/cpdf', + 'raw' => 'ext/cpdf (Tony, Derick)', + ), + 1 => + array ( + 'message' => 'ext/dio', + 'raw' => 'ext/dio (Jani, Derick)', + ), + 2 => + array ( + 'message' => 'ext/fam', + 'raw' => 'ext/fam (Jani, Derick)', + ), + 3 => + array ( + 'message' => 'ext/ingres_ii', + 'raw' => 'ext/ingres_ii (Jani, Derick)', + ), + 4 => + array ( + 'message' => 'ext/mnogosearch', + 'raw' => 'ext/mnogosearch (Jani, Derick)', + ), + 5 => + array ( + 'message' => 'ext/w32api', + 'raw' => 'ext/w32api (Jani, Derick)', + ), + 6 => + array ( + 'message' => 'ext/yp', + 'raw' => 'ext/yp (Jani, Derick)', + ), + 7 => + array ( + 'message' => 'ext/mcve', + 'raw' => 'ext/mcve (Jani, Derick, Pierre)', + ), + 8 => + array ( + 'message' => 'ext/oracle', + 'raw' => 'ext/oracle (Jani, Derick)', + ), + 9 => + array ( + 'message' => 'ext/ovrimos', + 'raw' => 'ext/ovrimos (Jani, Derick, Pierre)', + ), + 10 => + array ( + 'message' => 'ext/pfpro', + 'raw' => 'ext/pfpro (Jani, Derick, Pierre)', + ), + 11 => + array ( + 'message' => 'ext/dbx', + 'raw' => 'ext/dbx (Jani, Derick)', + ), + 12 => + array ( + 'message' => 'ext/ircg', + 'raw' => 'ext/ircg (Jani, Derick)', + ), + ), + 'fixed pecl bug #3714 (pdo' => + array ( + ), + 'fixed bug in mysql' => + array ( + ), + 'fixed bug #35336 (crash on pdo' => + array ( + ), + 'fixed bug #35009 (zts' => + array ( + ), + 'fixed bug #34902 (mysqli' => + array ( + ), + 'fixed bug #34810 (mysqli' => + array ( + ), + 'fixed bug #34617 (zend_deactivate' => + array ( + ), + 'fixed bug #34453 (parsing http' => + array ( + ), + 'fixed bug #34449 (ext/soap' => + array ( + ), + 'fixed bug #34358 (fatal error' => + array ( + ), + 'fixed bug #34299 (reflectionclass' => + array ( + ), + 'fixed bug #33899 (cli' => + array ( + ), + 'fixed bug #33588 (ldap' => + array ( + ), + 'fixed bug #33427 (ext/odbc' => + array ( + ), + 'fixed bug #33340 (cli crash when calling php' => + array ( + ), + 'fixed bug #33299 (php' => + array ( + ), + 'fixed bug #33212 ([gcc 4]' => + array ( + ), + 'fixed bug #33200 (preg_replace()' => + array ( + ), + 'fixed bug #33150 (shtool' => + array ( + ), + 'fixed bug #32981 (reflectionmethod' => + array ( + ), + 'fixed bug #32932 (oracle ldap' => + array ( + ), + 'fixed bugs #32800, #32830 (ext/odbc' => + array ( + ), + 'fixed bug #32799 (crash' => + array ( + ), + 'fixed bug #32682 (ext/mssql' => + array ( + ), + 'fixed bug #32613 (ext/snmp' => + array ( + ), + 'fixed bug #32591 (ext/mysql' => + array ( + ), + 'fixed bug #32587 (apache2' => + array ( + ), + 'fixed bug #32405 (mysqli' => + array ( + ), + 'fixed bug #32013 (ext/mysqli bind_result causes fatal error' => + array ( + ), + 'fixed bug #31887 (isapi' => + array ( + ), + 'fixed bug #31033 (php' => + array ( + ), + 'fixed bug #29728 (reflection api feature' => + array ( + ), + 'fixed bug #29334 (win32 mail() provides incorrect date' => + array ( + ), + 'fixed bug #29210 (function' => + array ( + ), + 'fixed bug #29109 (soapfault exception' => + array ( + ), + 'fixed bug #28568 (sapi' => + array ( + ), + 'fixed bug #21306 (ext/sesssion' => + array ( + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/5.2/changelist.inc b/include/releases/5.2/changelist.inc new file mode 100644 index 0000000000..2adab19cec --- /dev/null +++ b/include/releases/5.2/changelist.inc @@ -0,0 +1,862 @@ + + array ( + 'date' => '06 Jan 2010', + 'modules' => + array ( + ), + ), + '5.2.16' => + array ( + 'date' => '16 Dec 2010', + 'modules' => + array ( + ), + ), + '5.2.15' => + array ( + 'date' => '09 Dec 2010', + 'modules' => + array ( + 'fixed null pointer dereference in ziparchive' => + array ( + ), + ), + ), + '5.2.14' => + array ( + 'date' => '22 Jul 2010', + 'modules' => + array ( + 'reset error state in pdo' => + array ( + ), + 'fixed bug #52163 (splfileobject' => + array ( + ), + 'fixed bug #51943 (aix' => + array ( + ), + 'fixed bug #51911 (reflectionparameter' => + array ( + ), + 'fixed bug #51609 (pg_copy_to' => + array ( + ), + 'fixed bug #51608 (pg_copy_to' => + array ( + ), + 'fixed bug #51532 (wrong prototype for splfileobject' => + array ( + ), + 'fixed bug #51393 (datetime' => + array ( + ), + ), + ), + '5.2.13' => + array ( + 'date' => '25 Feb 2010', + 'modules' => + array ( + 'fixed bug #50823 (reflectionfunction' => + array ( + ), + 'fixed bug #50791 (compile failure' => + array ( + ), + 'fixed bug #50661 (domdocument' => + array ( + ), + 'fixed bug #50508 (compile failure' => + array ( + ), + 'fixed bug #44827 (define() allows' => + array ( + ), + ), + ), + '5.2.12' => + array ( + 'date' => '17 Dec 2009', + 'modules' => + array ( + 'fixed crash in sqlitedatabase' => + array ( + ), + 'fixed bug #49719 (reflectionclass' => + array ( + ), + 'fixed bug #48764 (pdo_pgsql' => + array ( + ), + ), + ), + '5.2.11' => + array ( + 'date' => '17 Sep 2009', + 'modules' => + array ( + 'fixed bug #49286 (php' => + array ( + ), + 'fixed bug #49032 (splfileobject' => + array ( + ), + ), + ), + '5.2.10' => + array ( + 'date' => '17 Jun 2009', + 'modules' => + array ( + 'fixed bug #48336 (reflectionproperty' => + array ( + ), + 'fixed bug #48070 (pdo_oci' => + array ( + ), + 'fixed bug #47801 (__call() accessed via parent' => + array ( + ), + 'fixed bug #47667 (ziparchive' => + array ( + ), + 'fixed bug #47639 (pg_copy_from() warning' => + array ( + ), + 'fixed bug #46109 (memory leak when mysqli' => + array ( + ), + 'fixed bug #45614 (arrayiterator' => + array ( + ), + ), + ), + '5.2.9' => + array ( + 'date' => '26 Feb 2009', + 'modules' => + array ( + 'fixed bug #47049 (soapclient' => + array ( + ), + ), + ), + '5.2.8' => + array ( + 'date' => '08 Dec 2008', + 'modules' => + array ( + ), + ), + '5.2.7' => + array ( + 'date' => '04 Dec 2008', + 'modules' => + array ( + 'fixed endless loop in pdostatement' => + array ( + ), + 'fixed bug #46335 (domtext' => + array ( + ), + 'fixed bug #46292 (pdo' => + array ( + ), + 'fixed bug #46191 (bc break' => + array ( + ), + 'fixed bug #46157 (pdostatement' => + array ( + ), + 'fixed bug #46088 (regexiterator' => + array ( + ), + 'fixed bug #46053 (splfileobject' => + array ( + ), + 'fixed bug #46051 (splfileinfo' => + array ( + ), + 'fixed bug #46031 (segfault in appenditerator' => + array ( + ), + 'fixed bug #45765 (reflectionobject with default parameters of self' => + array ( + ), + 'fixed bug #45486 (mb_send_mail(); header \'content-type' => + array ( + ), + 'fixed bug #45303 (opening php' => + array ( + ), + 'fixed bug #44818 (php' => + array ( + ), + 'fixed bug #44327 (pdorow' => + array ( + ), + 'fixed bug #43731 (socket_getpeername' => + array ( + ), + 'fixed bug #43053 (regression' => + array ( + ), + 'fixed bug #42862 (imap toolkit crash' => + array ( + ), + 'fixed bug #42473 (ob_start php' => + array ( + ), + 'fixed bug #41348 (oci8' => + array ( + ), + 'fixed bug #14962 (pecl) (' => + array ( + ), + ), + ), + '5.2.6' => + array ( + 'date' => '01 May 2008', + 'modules' => + array ( + 'fixed a bug with pdo' => + array ( + ), + 'fixed bug #44166 (parameter handling flaw in pdo' => + array ( + ), + 'fixed bug #44159 (crash' => + array ( + ), + 'fixed bug #43216 (stream_is_local() returns false on "file' => + array ( + ), + 'fixed bug #42177 (warning "array_merge_recursive()' => + array ( + ), + 'fixed bug #41828 (failing to call recursiveiteratoriterator' => + array ( + ), + ), + ), + '5.2.5' => + array ( + 'date' => '08 Nov 2007', + 'modules' => + array ( + 'fixed bug #43099 (xmlwriter' => + array ( + ), + 'fixed bug #42943 (ext/mssql' => + array ( + ), + 'fixed bug #42917 (pdo' => + array ( + ), + 'fixed bug #42703 (exception raised in an iterator' => + array ( + ), + 'fixed bug #42637 (soapfault' => + array ( + ), + 'fixed bug #42359 (xsd' => + array ( + ), + ), + ), + '5.2.4' => + array ( + 'date' => '30 Aug 2007', + 'modules' => + array ( + 'added reflectionextension' => + array ( + ), + 'implemented fr #41884 (reflectionclass' => + array ( + ), + 'fixed pecl bug #11216 (crash in ziparchive' => + array ( + ), + 'fixed bug #42848 (status' => + array ( + ), + 'fixed bug #42015 (ldap_rename()' => + array ( + ), + 'fixed bug #41971 (pdostatement' => + array ( + ), + 'fixed bug #41904 (proc_open()' => + array ( + ), + 'fixed bug #41867 (simplexml' => + array ( + ), + 'fixed bug #41865 (fputcsv()' => + array ( + ), + 'fixed bug #41861 (simplexml' => + array ( + ), + 'fixed bug #41770 (ssl' => + array ( + ), + 'fixed bug #41691 (arrayobject' => + array ( + ), + 'fixed bug #41555 (configure failure' => + array ( + ), + 'fixed bug #41523 (strtotime(\'0000-00-00 00' => + array ( + ), + 'fixed bug #41433 (dba' => + array ( + ), + ), + ), + '5.2.3' => + array ( + 'date' => '31 May 2007', + 'modules' => + array ( + 'added pdo' => + array ( + ), + 'fixed bug #41525 (reflectionparameter' => + array ( + ), + 'fixed bug #41477 (no arginfo about soapclient' => + array ( + ), + 'fixed bug #41326 (writing empty tags with xmlwriter' => + array ( + ), + ), + ), + '5.2.2' => + array ( + 'date' => '03 May 2007', + 'modules' => + array ( + 'added tidynode' => + array ( + 0 => + array ( + 'message' => 'Added ability to encode arrays with "SOAP-ENC:Array" type instead of WSDL type. To activate the ability use "feature"=>SOAP_USE_XSI_ARRAY_TYPE option in SoapClient/SoapServer constructors. (Rob, Dmitry) - Added GMP_VERSION constant. (Tony) - Added --ri switch to CLI which allows to check extension information.', + 'raw' => 'Added ability to encode arrays with "SOAP-ENC:Array" type instead of WSDL type. To activate the ability use "feature"=>SOAP_USE_XSI_ARRAY_TYPE option in SoapClient/SoapServer constructors. (Rob, Dmitry) - Added GMP_VERSION constant. (Tony) - Added --ri switch to CLI which allows to check extension information. (Marcus)', + ), + ), + 'added openbasedir and safemode checks in zip' => + array ( + 0 => + array ( + 'message' => 'c-client to version 2006e', + 'raw' => 'c-client (imap) to version 2006e', + ), + 1 => + array ( + 'message' => 'libpq to version 8.2.3', + 'raw' => 'libpq (PostgreSQL) to version 8.2.3', + ), + 2 => + array ( + 'message' => 'libmysql to version 5.0.37', + 'raw' => 'libmysql (MySQL) to version 5.0.37', + ), + 3 => + array ( + 'message' => 'openssl to version 0.9.8e - Upgraded PCRE to version 7.0', + 'raw' => 'openssl to version 0.9.8e - Upgraded PCRE to version 7.0 (Nuno)', + ), + ), + 'fixed possible leak in ziparchive' => + array ( + ), + 'fixed bug #41061 ("visibility error" in reflectionfunction' => + array ( + ), + 'fixed bug #41026 (segfault when calling "self' => + array ( + ), + 'fixed bug #40815 (using strings like "class' => + array ( + ), + 'fixed bug #40794 (reflectionobject' => + array ( + ), + 'fixed bug #40548 (splfileinfo' => + array ( + ), + 'fixed bug #40546 (splfileinfo' => + array ( + ), + 'fixed bug #40442 (arrayobject' => + array ( + ), + ), + ), + '5.2.1' => + array ( + 'date' => '08 Feb 2007', + 'modules' => + array ( + 'moved extensions to pecl' => + array ( + 0 => + array ( + 'message' => 'xmlwriter_write_dtd_entity() - Added a meta tag to phpinfo() output to prevent search engines from indexing the page. (Ilia) - Added new function, sys_get_temp_dir(). (Hartmut) - Added missing object support to file_put_contents(). (Ilia) - Added support for md2, ripemd256 and ripemd320 algos to hash(). (Sara) - Added forward support for (binary) cast. (Derick) - Added optimization for imageline with horizontal and vertical lines (Pierre) - Removed dependency from SHELL32.DLL. (Dmitry) - Removed double "wrong parameter count" warnings in various functions.', + 'raw' => 'xmlwriter_write_dtd_entity() - Added a meta tag to phpinfo() output to prevent search engines from indexing the page. (Ilia) - Added new function, sys_get_temp_dir(). (Hartmut) - Added missing object support to file_put_contents(). (Ilia) - Added support for md2, ripemd256 and ripemd320 algos to hash(). (Sara) - Added forward support for (binary) cast. (Derick) - Added optimization for imageline with horizontal and vertical lines (Pierre) - Removed dependency from SHELL32.DLL. (Dmitry) - Removed double "wrong parameter count" warnings in various functions. (Hannes)', + ), + 1 => + array ( + 'message' => 'ext/informix', + 'raw' => 'ext/informix (Derick, Tony)', + ), + 2 => + array ( + 'message' => 'use HeapAlloc() instead of VirtualAlloc()', + 'raw' => 'use HeapAlloc() instead of VirtualAlloc()', + ), + 3 => + array ( + 'message' => 'use "win32" storage manager (instead of "malloc") on Windows by default - Zip Extension Improvements', + 'raw' => 'use "win32" storage manager (instead of "malloc") on Windows by default - Zip Extension Improvements (Pierre)', + ), + 4 => + array ( + 'message' => 'Fixed leak in statName and stateIndex', + 'raw' => 'Fixed leak in statName and stateIndex', + ), + 5 => + array ( + 'message' => 'Fixed return setComment', + 'raw' => 'Fixed return setComment (Hannes)', + ), + 6 => + array ( + 'message' => 'Added addEmptyDir method - Filter Extension Improvements', + 'raw' => 'Added addEmptyDir method - Filter Extension Improvements (Ilia, Pierre)', + ), + 7 => + array ( + 'message' => 'Fixed a bug when callback function returns a non-modified value.', + 'raw' => 'Fixed a bug when callback function returns a non-modified value.', + ), + 8 => + array ( + 'message' => 'Added filter support for $_SERVER in cgi/apache2 sapis.', + 'raw' => 'Added filter support for $_SERVER in cgi/apache2 sapis.', + ), + 9 => + array ( + 'message' => 'Make sure PHP_SELF is filtered in Apache 1 sapi.', + 'raw' => 'Make sure PHP_SELF is filtered in Apache 1 sapi.', + ), + 10 => + array ( + 'message' => 'Fixed bug #39358 .', + 'raw' => 'Fixed bug #39358 (INSTALL_HEADERS contains incorrect reference to php_filter.h).', + ), + 11 => + array ( + 'message' => 'Added "default" option that allows a default value to be set for an invalid or missing value.', + 'raw' => 'Added "default" option that allows a default value to be set for an invalid or missing value.', + ), + 12 => + array ( + 'message' => 'Invalid filters fails instead of returning unsafe value', + 'raw' => 'Invalid filters fails instead of returning unsafe value', + ), + 13 => + array ( + 'message' => 'Fixed possible double encoding problem with sanitizing filters', + 'raw' => 'Fixed possible double encoding problem with sanitizing filters', + ), + 14 => + array ( + 'message' => 'Make use of space-strict strip_tags() function', + 'raw' => 'Make use of space-strict strip_tags() function', + ), + 15 => + array ( + 'message' => 'Fixed whitespace trimming', + 'raw' => 'Fixed whitespace trimming', + ), + 16 => + array ( + 'message' => 'Added support for FastCGI environment variables. (Dmitry) - PDO_MySQL Extension Improvements', + 'raw' => 'Added support for FastCGI environment variables. (Dmitry) - PDO_MySQL Extension Improvements (Ilia)', + ), + 17 => + array ( + 'message' => 'Enabled buffered queries by default.', + 'raw' => 'Enabled buffered queries by default.', + ), + 18 => + array ( + 'message' => 'Enabled prepared statement emulation by default.', + 'raw' => 'Enabled prepared statement emulation by default.', + ), + 19 => + array ( + 'message' => 'COM initialization/deinitialization are done only if necessary', + 'raw' => 'COM initialization/deinitialization are done only if necessary', + ), + 20 => + array ( + 'message' => 'removed unnecessary checks for ISREG file and corresponding stat() calls', + 'raw' => 'removed unnecessary checks for ISREG file and corresponding stat() calls', + ), + 21 => + array ( + 'message' => 'opendir() is reimplementation using GetFistFile/GetNextFile those are faster then _findfirst/_findnext', + 'raw' => 'opendir() is reimplementation using GetFistFile/GetNextFile those are faster then _findfirst/_findnext', + ), + 22 => + array ( + 'message' => 'implemented registry cache that prevent registry lookup on each request. In case of modification of corresponding registry-tree PHP will reload it automatic', + 'raw' => 'implemented registry cache that prevent registry lookup on each request. In case of modification of corresponding registry-tree PHP will reload it automatic', + ), + 23 => + array ( + 'message' => 'start timeout thread only if necessary', + 'raw' => 'start timeout thread only if necessary', + ), + 24 => + array ( + 'message' => 'stat() is reimplementation using GetFileAttributesEx(). The new implementation is faster then implementation in MS VC CRT, but it doesn\'t support Windows 95. - Streams optimization', + 'raw' => 'stat() is reimplementation using GetFileAttributesEx(). The new implementation is faster then implementation in MS VC CRT, but it doesn\'t support Windows 95. - Streams optimization (Dmitry)', + ), + 25 => + array ( + 'message' => 'removed unnecessary ftell() calls', + 'raw' => 'removed unnecessary ftell() calls (one call for each included PHP file)', + ), + 26 => + array ( + 'message' => 'disabled calls to read() after EOF', + 'raw' => 'disabled calls to read() after EOF', + ), + ), + 'fixed bug #40228 (ziparchive' => + array ( + ), + 'fixed bug #40076 (zend_alloc.c' => + array ( + ), + 'fixed bug #39884 (reflectionparameter' => + array ( + ), + 'fixed bug #39832 (soap server' => + array ( + ), + 'fixed bug #39571 (timeout ssl' => + array ( + ), + 'fixed bug #39564 (pdo' => + array ( + ), + 'fixed bug #39506 (archive corrupt with ziparchive' => + array ( + ), + 'fixed bug #39438 (fatal error' => + array ( + ), + 'fixed pecl bug #7295 (ora-01405' => + array ( + ), + ), + ), + '5.2.0' => + array ( + 'date' => '02 Nov 2006', + 'modules' => + array ( + 'added soapserver' => + array ( + ), + 'added rfc2397 (data' => + array ( + ), + 'added simplexmlelement' => + array ( + ), + 'added domnode' => + array ( + ), + 'moved extensions to pecl' => + array ( + 0 => + array ( + 'message' => 'ext/filepro', + 'raw' => 'ext/filepro (Derick, Tony)', + ), + 1 => + array ( + 'message' => 'ext/hwapi (Derick, Tony) - Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are enabled.', + 'raw' => 'ext/hwapi (Derick, Tony) - Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are enabled. (Stefan E., Ilia)', + ), + ), + 'improved snmp extension' => + array ( + 0 => + array ( + 'message' => 'Renamed snmp_set_oid_numeric_print() to snmp_set_oid_output_format().', + 'raw' => 'Renamed snmp_set_oid_numeric_print() to snmp_set_oid_output_format().', + ), + 1 => + array ( + 'message' => 'Added 2 new constants: SNMP_OID_OUTPUT_FULL and SNMP_OID_OUTPUT_NUMERIC', + 'raw' => 'Added 2 new constants: SNMP_OID_OUTPUT_FULL and SNMP_OID_OUTPUT_NUMERIC', + ), + 2 => + array ( + 'message' => 'Fixed bug #37564 (AES privacy encryption not possible due to net-snmp 5.2 compatibility issue).', + 'raw' => 'Fixed bug #37564 (AES privacy encryption not possible due to net-snmp 5.2 compatibility issue). (Patch: scott dot moynes+php at gmail dot com)', + ), + ), + 'improved openssl extension' => + array ( + 0 => + array ( + 'message' => 'Added support for all supported algorithms in openssl_verify', + 'raw' => 'Added support for all supported algorithms in openssl_verify', + ), + 1 => + array ( + 'message' => 'Added openssl_pkey_get_details, returns the details of a key', + 'raw' => 'Added openssl_pkey_get_details, returns the details of a key', + ), + 2 => + array ( + 'message' => 'Added x509 v3 extensions support', + 'raw' => 'Added x509 v3 extensions support', + ), + 3 => + array ( + 'message' => 'Added openssl_csr_get_subject() and openssl_csr_get_public_key()', + 'raw' => 'Added openssl_csr_get_subject() and openssl_csr_get_public_key()', + ), + 4 => + array ( + 'message' => 'Added 3 new constants OPENSSL_VERSION_TEXT and OPENSSL_VERSION_NUMBER and OPENSSL_KEYTYPE_EC', + 'raw' => 'Added 3 new constants OPENSSL_VERSION_TEXT and OPENSSL_VERSION_NUMBER and OPENSSL_KEYTYPE_EC', + ), + ), + 'improved the zend memory manager' => + array ( + 0 => + array ( + 'message' => 'Removed unnecessary "--disable-zend-memory-manager" configure option.', + 'raw' => 'Removed unnecessary "--disable-zend-memory-manager" configure option.', + ), + 1 => + array ( + 'message' => 'Added "--enable-malloc-mm" configure option which is enabled by default in debug builds to allow using internal and external memory debuggers.', + 'raw' => 'Added "--enable-malloc-mm" configure option which is enabled by default in debug builds to allow using internal and external memory debuggers.', + ), + 2 => + array ( + 'message' => 'Allow tweaking the memory manager with ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment variables.', + 'raw' => 'Allow tweaking the memory manager with ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment variables.', + ), + 3 => + array ( + 'message' => 'For more information: Zend/README.ZEND_MM - Improved safe_mode check for the error_log() function. - Improved the error reporting in SOAP extension on request failure. - Improved crypt() on win32 to be about 10 times faster and to have friendlier license. (Frank, Dmitry) - Improved performance of the implode() function on associated arrays. - Improved performance of str_replace() when doing 1 char to 1 char or 1 char to many chars replacement.', + 'raw' => 'For more information: Zend/README.ZEND_MM - Improved safe_mode check for the error_log() function. (Ilia) - Improved the error reporting in SOAP extension on request failure. (Ilia) - Improved crypt() on win32 to be about 10 times faster and to have friendlier license. (Frank, Dmitry) - Improved performance of the implode() function on associated arrays. (Ilia) - Improved performance of str_replace() when doing 1 char to 1 char or 1 char to many chars replacement. (Ilia)', + ), + ), + 'improved apache2filter sapi' => + array ( + 0 => + array ( + 'message' => 'Allowed PHP to be an arbitrary filter in the chain and read the script from the Apache stream.', + 'raw' => 'Allowed PHP to be an arbitrary filter in the chain and read the script from the Apache stream. (John)', + ), + 1 => + array ( + 'message' => 'Added support for apache2filter in the Windows build including binary support for both Apache 2.0.x (php5apache2_filter.dll) and Apache 2.2.x (php5apache2_2_filter.dll).', + 'raw' => 'Added support for apache2filter in the Windows build including binary support for both Apache 2.0.x (php5apache2_filter.dll) and Apache 2.2.x (php5apache2_2_filter.dll). (Edin)', + ), + ), + 'improved apache2handler sapi' => + array ( + 0 => + array ( + 'message' => 'Changed ap_set_content_type() to be called only once.', + 'raw' => 'Changed ap_set_content_type() to be called only once. (Mike)', + ), + 1 => + array ( + 'message' => 'Added support for Apache 2.2 handler in the Windows distribution.', + 'raw' => 'Added support for Apache 2.2 handler in the Windows distribution. (Edin)', + ), + ), + 'improved fastcgi sapi' => + array ( + 0 => + array ( + 'message' => 'Removed source compatibility with libfcgi.', + 'raw' => 'Removed source compatibility with libfcgi.', + ), + 1 => + array ( + 'message' => 'Optimized access to FastCGI environment variables by using HashTable instead of linear search.', + 'raw' => 'Optimized access to FastCGI environment variables by using HashTable instead of linear search.', + ), + 2 => + array ( + 'message' => 'Allowed PHP_FCGI_MAX_REQUESTS=0 that assumes no limit.', + 'raw' => 'Allowed PHP_FCGI_MAX_REQUESTS=0 that assumes no limit.', + ), + 3 => + array ( + 'message' => 'Allowed PHP_FCGI_CHILDREN=0 that assumes no worker children.', + 'raw' => 'Allowed PHP_FCGI_CHILDREN=0 that assumes no worker children. (FastCGI requests are handled by main process itself)', + ), + ), + 'improved curl' => + array ( + 0 => + array ( + 'message' => 'Added control character checks for "open_basedir" and "safe_mode" checks.', + 'raw' => 'Added control character checks for "open_basedir" and "safe_mode" checks. (Ilia)', + ), + 1 => + array ( + 'message' => 'Added implementation of curl_multi_info_read().', + 'raw' => 'Added implementation of curl_multi_info_read(). (Brian)', + ), + ), + 'improved pcre' => + array ( + 0 => + array ( + 'message' => 'Added run-time configurable backtracking/recursion limits.', + 'raw' => 'Added run-time configurable backtracking/recursion limits.', + ), + 1 => + array ( + 'message' => 'Added preg_last_error().', + 'raw' => 'Added preg_last_error(). (Andrei)', + ), + ), + 'improved pdo' => + array ( + 0 => + array ( + 'message' => 'Added new attribute ATTR_DEFAULT_FETCH_MODE.', + 'raw' => 'Added new attribute ATTR_DEFAULT_FETCH_MODE. (Pierre)', + ), + 1 => + array ( + 'message' => 'Added FETCH_PROPS_LATE.', + 'raw' => 'Added FETCH_PROPS_LATE. (Marcus)', + ), + ), + 'improved spl' => + array ( + 0 => + array ( + 'message' => 'Made most iterator code exception safe.', + 'raw' => 'Made most iterator code exception safe.', + ), + 1 => + array ( + 'message' => 'Added RegExIterator and RecursiveRegExIterator.', + 'raw' => 'Added RegExIterator and RecursiveRegExIterator.', + ), + 2 => + array ( + 'message' => 'Added full caching support and ArrayAccess to CachingIterator.', + 'raw' => 'Added full caching support and ArrayAccess to CachingIterator.', + ), + 3 => + array ( + 'message' => 'Added array functions to ArrayObject/ArrayIterator and made them faster.', + 'raw' => 'Added array functions to ArrayObject/ArrayIterator and made them faster.', + ), + 4 => + array ( + 'message' => 'Added support for reading csv and skipping empty lines in SplFileObject.', + 'raw' => 'Added support for reading csv and skipping empty lines in SplFileObject.', + ), + 5 => + array ( + 'message' => 'Added CachingIterator::TOSTRING_USE_INNER, calls inner iterator __toString.', + 'raw' => 'Added CachingIterator::TOSTRING_USE_INNER, calls inner iterator __toString.', + ), + 6 => + array ( + 'message' => 'Added ability to set the CSV separator per SplFileObject.', + 'raw' => 'Added ability to set the CSV separator per SplFileObject.', + ), + ), + 'improved xmlreader' => + array ( + 0 => + array ( + 'message' => 'Added readInnerXml(), xmlReader::setSchema().', + 'raw' => 'Added readInnerXml(), xmlReader::setSchema().', + ), + 1 => + array ( + 'message' => 'Added readInnerXML(), readOuterXML(), readString(), setSchema().', + 'raw' => 'Added readInnerXML(), readOuterXML(), readString(), setSchema(). (2.6.20+)', + ), + 2 => + array ( + 'message' => 'Changed to passing libxml options when loading reader.', + 'raw' => 'Changed to passing libxml options when loading reader.', + ), + ), + 'fixed xsltprocessor' => + array ( + ), + 'fixed bug #39039 (ssl' => + array ( + ), + 'fixed bug #38700 (soapclient' => + array ( + ), + 'fixed bug #38653 (memory leak in reflectionclass' => + array ( + ), + 'fixed bug #38488 (access to "php' => + array ( + ), + 'fixed bug #38217 (reflectionclass' => + array ( + ), + 'fixed bug #38194 (reflectionclass' => + array ( + ), + 'fixed bug #38146 (cannot use array returned from foo' => + array ( + ), + 'fixed bug #38132 (reflectionclass' => + array ( + ), + 'fixed bug #37923 (display constant value in reflection' => + array ( + ), + 'fixed bug #37709 (possible crash in pdo' => + array ( + ), + 'fixed bug #37565 (using reflection' => + array ( + ), + 'fixed bug #37523 (namespaces added too late, leads to missing xsi' => + array ( + ), + 'fixed bug #33770 (https' => + array ( + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/5.3/changelist.inc b/include/releases/5.3/changelist.inc new file mode 100644 index 0000000000..58f58a3cf0 --- /dev/null +++ b/include/releases/5.3/changelist.inc @@ -0,0 +1,5630 @@ + + array ( + 'date' => '14 Aug 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset).', + 'raw' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow).', + 'raw' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67249 (printf out-of-bounds read).', + 'raw' => 'Fixed bug #67249 (printf out-of-bounds read). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67250 (iptcparse out-of-bounds read).', + 'raw' => 'Fixed bug #67250 (iptcparse out-of-bounds read). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read).', + 'raw' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator).', + 'raw' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi)', + 'raw' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi) (CVE-2014-3981)', + ), + 7 => + array ( + 'message' => 'Fixed bug #67399 (putenv with empty variable may lead to crash).', + 'raw' => 'Fixed bug #67399 (putenv with empty variable may lead to crash). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515).', + 'raw' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515). (Stefan Esser)', + ), + 9 => + array ( + 'message' => 'Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability).', + 'raw' => 'Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability). (Stefan Esser)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in com_event_sink .', + 'raw' => 'Fixed missing type checks in com_event_sink (Yussuf Khalil, Stas).', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712)', + 'raw' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read).', + 'raw' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read).', + 'raw' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65873 (Integer overflow in exif_read_data()).', + 'raw' => 'Fixed bug #65873 (Integer overflow in exif_read_data()). (Stas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files).', + 'raw' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check).', + 'raw' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check). (CVE-2014-0207)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS).', + 'raw' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS). (CVE-2014-0238)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation).', + 'raw' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation). (CVE-2014-0237)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size).', + 'raw' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (Francisco Alonso, Jan Kaluza, Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check).', + 'raw' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (Francisco Alonso, Jan Kaluza, Remi)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check).', + 'raw' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (Francisco Alonso, Jan Kaluza, Remi)', + ), + 7 => + array ( + 'message' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check).', + 'raw' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (Francisco Alonso, Jan Kaluza, Remi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67349 (Locale::parseLocale Double Free).', + 'raw' => 'Fixed bug #67349 (Locale::parseLocale Double Free). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)).', + 'raw' => 'Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)). (Stas)', + ), + ), + 'network' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67432 (Fix potential segfault in dns_check_record()). (CVE-2014-4049).', + 'raw' => 'Fixed bug #67432 (Fix potential segfault in dns_check_record()). (CVE-2014-4049). (Sara)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in OpenSSL options .', + 'raw' => 'Fixed missing type checks in OpenSSL options (Yussuf Khalil, Stas).', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in php_session_create_id .', + 'raw' => 'Fixed missing type checks in php_session_create_id (Yussuf Khalil, Stas).', + ), + ), + ), + ), + '5.3.28' => + array ( + 'date' => '12 Dec 2013', + 'modules' => + array ( + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed handling null bytes in subjectAltName (CVE-2013-4073).', + 'raw' => 'Fixed handling null bytes in subjectAltName (CVE-2013-4073). (Christian Heimes)', + ), + 1 => + array ( + 'message' => 'Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420). .', + 'raw' => 'Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420). (Stefan Esser).', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185).', + 'raw' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185). (Stas)', + ), + ), + ), + ), + '5.3.27' => + array ( + 'date' => '11 Jul 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC).', + 'raw' => 'Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64960 (Segfault in gc_zval_possible_root).', + 'raw' => 'Fixed bug #64960 (Segfault in gc_zval_possible_root). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64934 (Apache2 TS crash with get_browser()).', + 'raw' => 'Fixed bug #64934 (Apache2 TS crash with get_browser()). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #63186 (compile failure on netbsd).', + 'raw' => 'Fixed bug #63186 (compile failure on netbsd). (Matteo)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53437 (Crash when using unserialized DatePeriod instance).', + 'raw' => 'Fixed bug #53437 (Crash when using unserialized DatePeriod instance). (Gustavo, Derick, Anatol)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64037 (Firebird return wrong value for numeric field).', + 'raw' => 'Fixed bug #64037 (Firebird return wrong value for numeric field). (Matheus Degiovani, Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62024 (Cannot insert second row with null using parametrized query).', + 'raw' => 'Fixed bug #62024 (Cannot insert second row with null using parametrized query). (patch by james@kenjim.com, Matheus Degiovani, Matteo)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64949 (Buffer overflow in _pdo_pgsql_error).', + 'raw' => 'Fixed bug #64949 (Buffer overflow in _pdo_pgsql_error). (Remi)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64609 (pg_convert enum type support).', + 'raw' => 'Fixed bug #64609 (pg_convert enum type support). (Matteo)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems).', + 'raw' => 'Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems). (Laruence)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65236 (heap corruption in xml parser).', + 'raw' => 'Fixed bug #65236 (heap corruption in xml parser). (Rob)', + ), + ), + ), + ), + '5.3.26' => + array ( + 'date' => '06 Jun 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110).', + 'raw' => 'Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110). (Stas)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64895 (Integer overflow in SndToJewish).', + 'raw' => 'Fixed bug #64895 (Integer overflow in SndToJewish). (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan.', + 'raw' => 'Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan. (Remi)', + ), + 1 => + array ( + 'message' => 'Log a warning when a syscall fails.', + 'raw' => 'Log a warning when a syscall fails. (Remi)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed).', + 'raw' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64214 (PHAR PHPTs intermittently crash when run on DFS, SMB or with non std tmp dir).', + 'raw' => 'Fixed bug #64214 (PHAR PHPTs intermittently crash when run on DFS, SMB or with non std tmp dir). (Pierre)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64).', + 'raw' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64). (Anatol)', + ), + ), + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64821 (Custom Exception crash when internal properties overridden).', + 'raw' => 'Fixed bug #64821 (Custom Exception crash when internal properties overridden). (Anatol)', + ), + ), + ), + ), + '5.3.25' => + array ( + 'date' => '09 May 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault).', + 'raw' => 'Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64458 (dns_get_record result with string of length -1).', + 'raw' => 'Fixed bug #64458 (dns_get_record result with string of length -1). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bugs #47675 and #64577 (fd leak on Solaris).', + 'raw' => 'Fixed bugs #47675 and #64577 (fd leak on Solaris). (Rasmus)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed Windows x64 version of stream_socket_pair() and improved error handling.', + 'raw' => 'Fixed Windows x64 version of stream_socket_pair() and improved error handling. (Anatol Belski)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64342 (ZipArchive::addFile() has to check for file existence).', + 'raw' => 'Fixed bug #64342 (ZipArchive::addFile() has to check for file existence). (Anatol)', + ), + ), + ), + ), + '5.3.24' => + array ( + 'date' => '11 Apr 2013', + 'modules' => + array ( + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62343 (Show class_alias In get_declared_classes())', + 'raw' => 'Fixed bug #62343 (Show class_alias In get_declared_classes()) (Dmitry)', + ), + 1 => + array ( + 'message' => 'Merged PCRE 8.32).', + 'raw' => 'Merged PCRE 8.32). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind).', + 'raw' => 'Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind). (Andrey)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62852 (Unserialize Invalid Date causes crash).', + 'raw' => 'Fixed bug #62852 (Unserialize Invalid Date causes crash). (Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Bug #64452 (Zip crash intermittently).', + 'raw' => 'Bug #64452 (Zip crash intermittently). (Anatol)', + ), + ), + ), + ), + '5.3.23' => + array ( + 'date' => '14 Mar 2013', + 'modules' => + array ( + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed timestamp update on Phar contents modification.', + 'raw' => 'Fixed timestamp update on Phar contents modification. (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64264 (SPLFixedArray toArray problem).', + 'raw' => 'Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS).', + 'raw' => 'Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS). (patch by kriss@krizalys.com, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52861 (unset fails with ArrayObject and deep arrays).', + 'raw' => 'Fixed bug #52861 (unset fails with ArrayObject and deep arrays). (Mike Willbanks)', + ), + ), + ), + ), + '5.3.22' => + array ( + 'date' => '21 Feb 2013', + 'modules' => + array ( + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64099 (Wrong TSRM usage in zend_Register_class alias).', + 'raw' => 'Fixed bug #64099 (Wrong TSRM usage in zend_Register_class alias). (Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63899 (Use after scope error in zend_compile).', + 'raw' => 'Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63943 (Bad warning text from strpos() on empty needle).', + 'raw' => 'Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55397 (comparsion of incomplete DateTime causes SIGSEGV).', + 'raw' => 'Fixed bug #55397 (comparsion of incomplete DateTime causes SIGSEGV). (Laruence, Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11).', + 'raw' => 'Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)', + ), + 1 => + array ( + 'message' => 'Added check that soap.wsdl_cache_dir conforms to open_basedir (CVE-2013-1635).', + 'raw' => 'Added check that soap.wsdl_cache_dir conforms to open_basedir (CVE-2013-1635). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Disabled external entities loading (CVE-2013-1643).', + 'raw' => 'Disabled external entities loading (CVE-2013-1643). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended).', + 'raw' => 'Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). (Nikita Popov)', + ), + ), + ), + ), + '5.3.21' => + array ( + 'date' => '17 Jan 2013', + 'modules' => + array ( + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).', + 'raw' => 'Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes)', + ), + ), + 'curl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (segfault due to libcurl connection caching).', + 'raw' => 'Fixed bug (segfault due to libcurl connection caching). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63795 (CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST).', + 'raw' => 'Fixed bug #63795 (CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST). (Pierrick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63352 (Can\'t enable hostname validation when using curl stream wrappers).', + 'raw' => 'Fixed bug #63352 (Can\'t enable hostname validation when using curl stream wrappers). (Pierrick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #55438 (Curlwapper is not sending http header randomly).', + 'raw' => 'Fixed bug #55438 (Curlwapper is not sending http header randomly). (phpnet@lostreality.org, Pierrick)', + ), + ), + ), + ), + '5.3.20' => + array ( + 'date' => '20 Dec 2012', + 'modules' => + array ( + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63635 (Segfault in gc_collect_cycles).', + 'raw' => 'Fixed bug #63635 (Segfault in gc_collect_cycles). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes from value).', + 'raw' => 'Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes from value). (Pierrick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63468 (wrong called method as callback with inheritance).', + 'raw' => 'Fixed bug #63468 (wrong called method as callback with inheritance). (Laruence)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63451 (config.guess file does not have AIX 7 defined, shared objects are not created).', + 'raw' => 'Fixed bug #63451 (config.guess file does not have AIX 7 defined, shared objects are not created). (kemcline at au1 dot ibm dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63377 (Segfault on output buffer).', + 'raw' => 'Fixed bug #63377 (Segfault on output buffer). (miau dot jp at gmail dot com, Laruence)', + ), + ), + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Enabled Apache 2.4 configure option for Windows', + 'raw' => 'Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63435 (Datetime::format(\'u\') sometimes wrong by 1 microsecond).', + 'raw' => 'Fixed bug #63435 (Datetime::format(\'u\') sometimes wrong by 1 microsecond). (Remi)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63248 (Load multiple magic files from a directory under Windows).', + 'raw' => 'Fixed bug #63248 (Load multiple magic files from a directory under Windows). (Anatoliy)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63590 (Different results in TS and NTS under Windows).', + 'raw' => 'Fixed bug #63590 (Different results in TS and NTS under Windows). (Anatoliy)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63581 (Possible null dereference and buffer overflow).', + 'raw' => 'Fixed bug #63581 (Possible null dereference and buffer overflow). (Remi)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63126 (DISABLE_AUTHENTICATOR ignores array).', + 'raw' => 'Fixed bug #63126 (DISABLE_AUTHENTICATOR ignores array). (Remi)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63398 (Segfault when polling closed link).', + 'raw' => 'Fixed bug #63398 (Segfault when polling closed link). (Laruence)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #63614 (Fatal error on Reflection).', + 'raw' => 'Fixed Bug #63614 (Fatal error on Reflection). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63271 (SOAP wsdl cache is not enabled after initial requests).', + 'raw' => 'Fixed bug #63271 (SOAP wsdl cache is not enabled after initial requests). (John Jawed, Dmitry)', + ), + ), + ), + ), + '5.3.19' => + array ( + 'date' => '22 Nov 2012', + 'modules' => + array ( + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63389 (Missing context check on libxml_set_streams_context() causes memleak).', + 'raw' => 'Fixed bug #63389 (Missing context check on libxml_set_streams_context() causes memleak). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63447 (max_input_vars doesn\'t filter variables when mbstring.encoding_translation = On).', + 'raw' => 'Fixed bug #63447 (max_input_vars doesn\'t filter variables when mbstring.encoding_translation = On). (Laruence)', + ), + ), + 'mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed compilation failure on mixed 32/64 bit systems.', + 'raw' => 'Fixed compilation failure on mixed 32/64 bit systems. (Andrey)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro)', + 'raw' => 'Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro) (Chris Jones)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63055 (Segfault in zend_gc with SF2 testsuite).', + 'raw' => 'Fixed bug #63055 (Segfault in zend_gc with SF2 testsuite). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63284 (Upgrade PCRE to 8.31).', + 'raw' => 'Fixed bug #63284 (Upgrade PCRE to 8.31). (Anatoliy)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec).', + 'raw' => 'Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec). (Martin Osvald, Remi)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62593 (Emulate prepares behave strangely with PARAM_BOOL).', + 'raw' => 'Fixed bug #62593 (Emulate prepares behave strangely with PARAM_BOOL). (Will Fitch)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63240 (stream_get_line() return contains delimiter string).', + 'raw' => 'Fixed bug #63240 (stream_get_line() return contains delimiter string). (Tjerk, Gustavo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63297 (Phar fails to write an openssl based signature).', + 'raw' => 'Fixed bug #63297 (Phar fails to write an openssl based signature). (Anatoliy)', + ), + ), + ), + ), + '5.3.18' => + array ( + 'date' => '18 Oct 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63111 (is_callable() lies for abstract static method).', + 'raw' => 'Fixed bug #63111 (is_callable() lies for abstract static method). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63093 (Segfault while load extension failed in zts-build).', + 'raw' => 'Fixed bug #63093 (Segfault while load extension failed in zts-build). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62976 (Notice: could not be converted to int when comparing some builtin classes).', + 'raw' => 'Fixed bug #62976 (Notice: could not be converted to int when comparing some builtin classes). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61767 (Shutdown functions not called in certain error situation).', + 'raw' => 'Fixed bug #61767 (Shutdown functions not called in certain error situation). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61442 (exception threw in __autoload can not be catched).', + 'raw' => 'Fixed bug #61442 (exception threw in __autoload can not be catched). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60909 (custom error handler throwing Exception + fatal error = no shutdown function).', + 'raw' => 'Fixed bug #60909 (custom error handler throwing Exception + fatal error = no shutdown function). (Dmitry)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62085 (file_get_contents a remote file by Curl wrapper will cause cpu Soaring).', + 'raw' => 'Fixed bug #62085 (file_get_contents a remote file by Curl wrapper will cause cpu Soaring). (Pierrick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62954 (startup problems fpm / php-fpm).', + 'raw' => 'Fixed bug #62954 (startup problems fpm / php-fpm). (fat)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62886 (PHP-FPM may segfault/hang on startup).', + 'raw' => 'Fixed bug #62886 (PHP-FPM may segfault/hang on startup). (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63085 (Systemd integration and daemonize).', + 'raw' => 'Fixed bug #63085 (Systemd integration and daemonize). (remi, fat)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62947 (Unneccesary warnings on FPM).', + 'raw' => 'Fixed bug #62947 (Unneccesary warnings on FPM). (fat)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62887 (Only /status?plain&full gives "last request cpu").', + 'raw' => 'Fixed bug #62887 (Only /status?plain&full gives "last request cpu"). (fat)', + ), + 5 => + array ( + 'message' => 'Fixed bug #62216 (Add PID to php-fpm init.d script).', + 'raw' => 'Fixed bug #62216 (Add PID to php-fpm init.d script). (fat)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix bug #62915 (defective cloning in several intl classes).', + 'raw' => 'Fix bug #62915 (defective cloning in several intl classes). (Gustavo)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60901 (Improve "tail" syntax for AIX installation)', + 'raw' => 'Fixed bug #60901 (Improve "tail" syntax for AIX installation) (Chris Jones)', + ), + 1 => + array ( + 'message' => 'Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice).', + 'raw' => 'Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Bug #62987 (Assigning to ArrayObject[null][something] overrides all undefined variables).', + 'raw' => 'Bug #62987 (Assigning to ArrayObject[null][something] overrides all undefined variables). (Laruence)', + ), + ), + ), + ), + '5.3.17' => + array ( + 'date' => '13 Sep 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (segfault while build with zts and GOTO vm-kind).', + 'raw' => 'Fixed bug (segfault while build with zts and GOTO vm-kind). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62955 (Only one directive is loaded from "Per Directory Values" Windows registry).', + 'raw' => 'Fixed bug #62955 (Only one directive is loaded from "Per Directory Values" Windows registry). (aserbulov at parallels dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62763 (register_shutdown_function and extending class).', + 'raw' => 'Fixed bug #62763 (register_shutdown_function and extending class). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62744 (dangling pointers made by zend_disable_class).', + 'raw' => 'Fixed bug #62744 (dangling pointers made by zend_disable_class). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62716 (munmap() is called with the incorrect length).', + 'raw' => 'Fixed bug #62716 (munmap() is called with the incorrect length). (slangley@google.com)', + ), + 5 => + array ( + 'message' => 'Fixed bug ##62460 (php binaries installed as binary.dSYM).', + 'raw' => 'Fixed bug ##62460 (php binaries installed as binary.dSYM). (Reeze Xia)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE).', + 'raw' => 'Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false).', + 'raw' => 'Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false). (r.hampartsumyan@gmail.com, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62852 (Unserialize invalid DateTime causes crash).', + 'raw' => 'Fixed bug #62852 (Unserialize invalid DateTime causes crash). (reeze.xia@gmail.com)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62500 (Segfault in DateInterval class when extended).', + 'raw' => 'Fixed bug #62500 (Segfault in DateInterval class when extended). (Laruence)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62885 (mysqli_poll - Segmentation fault).', + 'raw' => 'Fixed bug #62885 (mysqli_poll - Segmentation fault). (Laruence)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()).', + 'raw' => 'Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()). (Laruence)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (segfault due to retval is not initialized).', + 'raw' => 'Fixed bug (segfault due to retval is not initialized). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray)', + 'raw' => 'Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray) (Laruence)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62838 (enchant_dict_quick_check() destroys zval, but fails to initialize it). .', + 'raw' => 'Fixed bug #62838 (enchant_dict_quick_check() destroys zval, but fails to initialize it). (Tony, Mateusz Goik).', + ), + ), + ), + ), + '5.3.16' => + array ( + 'date' => '16 Aug 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php).', + 'raw' => 'Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php). (Laruence)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false).', + 'raw' => 'Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false). (r.hampartsumyan@gmail.com, Laruence)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #62500 (Segfault in DateInterval class when extended).', + 'raw' => 'Fixed Bug #62500 (Segfault in DateInterval class when extended). (Laruence)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result).', + 'raw' => 'Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault).', + 'raw' => 'Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo)', + ), + ), + ), + ), + '5.3.15' => + array ( + 'date' => '19 Jul 2012', + 'modules' => + array ( + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51094 (parse_ini_file() with INI_SCANNER_RAW cuts a value that includes a semi-colon).', + 'raw' => 'Fixed bug #51094 (parse_ini_file() with INI_SCANNER_RAW cuts a value that includes a semi-colon). (Pierrick)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62146 com_dotnet cannot be built shared.', + 'raw' => 'Fixed bug #62146 com_dotnet cannot be built shared. (Johannes)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed potential overflow in _php_stream_scandir, CVE-2012-2688.', + 'raw' => 'Fixed potential overflow in _php_stream_scandir, CVE-2012-2688. (Jason Powell, Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62432 (ReflectionMethod random corrupt memory on high concurrent).', + 'raw' => 'Fixed bug #62432 (ReflectionMethod random corrupt memory on high concurrent). (Johannes)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed Salt).', + 'raw' => 'Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed Salt). (Anthony Ferrara)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed magic file regex support.', + 'raw' => 'Fixed magic file regex support. (Felipe)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61045 (fpm don\'t send error log to fastcgi clients).', + 'raw' => 'Fixed bug #61045 (fpm don\'t send error log to fastcgi clients). (fat)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61835 (php-fpm is not allowed to run as root).', + 'raw' => 'Fixed bug #61835 (php-fpm is not allowed to run as root). (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61295 (php-fpm should not fail with commented \'user\' for non-root start).', + 'raw' => 'Fixed bug #61295 (php-fpm should not fail with commented \'user\' for non-root start). (fat)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61026 (FPM pools can listen on the same address).', + 'raw' => 'Fixed bug #61026 (FPM pools can listen on the same address). (fat)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62033 (php-fpm exits with status 0 on some failures to start).', + 'raw' => 'Fixed bug #62033 (php-fpm exits with status 0 on some failures to start). (fat)', + ), + 5 => + array ( + 'message' => 'Fixed bug #62153 (when using unix sockets, multiples FPM instances can be launched without errors).', + 'raw' => 'Fixed bug #62153 (when using unix sockets, multiples FPM instances can be launched without errors). (fat)', + ), + 6 => + array ( + 'message' => 'Fixed bug #62160 (Add process.priority to set nice(2) priorities).', + 'raw' => 'Fixed bug #62160 (Add process.priority to set nice(2) priorities). (fat)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61218 (FPM drops connection while receiving some binary values in FastCGI requests).', + 'raw' => 'Fixed bug #61218 (FPM drops connection while receiving some binary values in FastCGI requests). (fat)', + ), + 8 => + array ( + 'message' => 'Fixed bug #62205 (php-fpm segfaults (null passed to strstr)).', + 'raw' => 'Fixed bug #62205 (php-fpm segfaults (null passed to strstr)). (fat)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62083 (grapheme_extract() memory leaks).', + 'raw' => 'Fixed bug #62083 (grapheme_extract() memory leaks). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62081 (IntlDateFormatter constructor leaks memory when called twice).', + 'raw' => 'Fixed bug #62081 (IntlDateFormatter constructor leaks memory when called twice). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62070 (Collator::getSortKey() returns garbage).', + 'raw' => 'Fixed bug #62070 (Collator::getSortKey() returns garbage). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62017 (datefmt_create with incorrectly encoded timezone leaks pattern).', + 'raw' => 'Fixed bug #62017 (datefmt_create with incorrectly encoded timezone leaks pattern). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60785 (memory leak in IntlDateFormatter constructor).', + 'raw' => 'Fixed bug #60785 (memory leak in IntlDateFormatter constructor). (Gustavo)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Reverted fix for bug #61537.', + 'raw' => 'Reverted fix for bug #61537. (Johannes)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62227 (Invalid phar stream path causes crash).', + 'raw' => 'Fixed bug #62227 (Invalid phar stream path causes crash). (Felipe)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62384 (Attempting to invoke a Closure more than once causes segfault).', + 'raw' => 'Fixed bug #62384 (Attempting to invoke a Closure more than once causes segfault). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks with constant).', + 'raw' => 'Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks with constant). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62262 (RecursiveArrayIterator does not implement Countable).', + 'raw' => 'Fixed bug #62262 (RecursiveArrayIterator does not implement Countable). (Nikita Popov)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed open_basedir bypass, CVE-2012-3365.', + 'raw' => 'Fixed open_basedir bypass, CVE-2012-3365. (Johannes, reported by Yury Maryshev)', + ), + ), + 'xml writer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62064 (memory leak in the XML Writer module).', + 'raw' => 'Fixed bug #62064 (memory leak in the XML Writer module). (jean-pierre dot lozi at lip6 dot fr)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Upgraded libzip to 0.10.1', + 'raw' => 'Upgraded libzip to 0.10.1 (Anatoliy)', + ), + ), + ), + ), + '5.3.14' => + array ( + 'date' => '14 Jun 2012', + 'modules' => + array ( + 'cli sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61546 (functions related to current script failed when chdir() in cli sapi).', + 'raw' => 'Fixed bug #61546 (functions related to current script failed when chdir() in cli sapi). (Laruence, reeze.xia@gmail.com)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61948 (CURLOPT_COOKIEFILE \'\' raises open_basedir restriction).', + 'raw' => 'Fixed bug #61948 (CURLOPT_COOKIEFILE \'\' raises open_basedir restriction). (Laruence)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62146 com_dotnet cannot be built shared.', + 'raw' => 'Fixed bug #62146 com_dotnet cannot be built shared. (Johannes)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed CVE-2012-2143.', + 'raw' => 'Fixed CVE-2012-2143. (Solar Designer)', + ), + 1 => + array ( + 'message' => 'Fixed missing bound check in iptcparse().', + 'raw' => 'Fixed missing bound check in iptcparse(). (chris at chiappa.net)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62373 (serialize() generates wrong reference to the object).', + 'raw' => 'Fixed bug #62373 (serialize() generates wrong reference to the object). (Moriyoshi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62005 (unexpected behavior when incrementally assigning to a member of a null object).', + 'raw' => 'Fixed bug #62005 (unexpected behavior when incrementally assigning to a member of a null object). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61991 (long overflow in realpath_cache_get()).', + 'raw' => 'Fixed bug #61991 (long overflow in realpath_cache_get()). (Anatoliy)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61764 (\'I\' unpacks n as signed if n > 2^31-1 on LP64).', + 'raw' => 'Fixed bug #61764 (\'I\' unpacks n as signed if n > 2^31-1 on LP64). (Gustavo)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61730 (Segfault from array_walk modifying an array passed by reference).', + 'raw' => 'Fixed bug #61730 (Segfault from array_walk modifying an array passed by reference). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61713 (Logic error in charset detection for htmlentities).', + 'raw' => 'Fixed bug #61713 (Logic error in charset detection for htmlentities). (Anatoliy)', + ), + 8 => + array ( + 'message' => 'Fixed bug #54197 ([PATH=] sections incompatibility with user_ini.filename set to null).', + 'raw' => 'Fixed bug #54197 ([PATH=] sections incompatibility with user_ini.filename set to null). (Anatoliy)', + ), + 9 => + array ( + 'message' => 'Changed php://fd to be available only for CLI.', + 'raw' => 'Changed php://fd to be available only for CLI.', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61812 (Uninitialised value used in libmagic).', + 'raw' => 'Fixed bug #61812 (Uninitialised value used in libmagic). (Laruence, Gustavo)', + ), + ), + 'iconv extension' => + array ( + 0 => + array ( + 'message' => '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.', + 'raw' => '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. (Moriyoshi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62082 (Memory corruption in internal function get_icu_disp_value_src_php()).', + 'raw' => 'Fixed bug #62082 (Memory corruption in internal function get_icu_disp_value_src_php()). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61537 (json_encode() incorrectly truncates/discards information).', + 'raw' => 'Fixed bug #61537 (json_encode() incorrectly truncates/discards information). (Adam)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61755 (A parsing bug in the prepared statements can lead to access violations).', + 'raw' => 'Fixed bug #61755 (A parsing bug in the prepared statements can lead to access violations). (Johannes)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix bug #61065 (Secunia SA44335).', + 'raw' => 'Fix bug #61065 (Secunia SA44335). (Rasmus)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61961 (file_get_contents leaks when access empty file with maxlen set).', + 'raw' => 'Fixed bug #61961 (file_get_contents leaks when access empty file with maxlen set). (Reeze)', + ), + ), + ), + ), + '5.3.13' => + array ( + 'date' => '08 May 2012', + 'modules' => + array ( + ), + ), + '5.3.12' => + array ( + 'date' => '03 May 2012', + 'modules' => + array ( + ), + ), + '5.3.11' => + array ( + 'date' => '26 Apr 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Improve fix for PHP-CGI query string parameter vulnerability, CVE-2012-2311. (Stas) - Fix PHP-CGI query string parameter vulnerability, CVE-2012-1823.', + 'raw' => 'Improve fix for PHP-CGI query string parameter vulnerability, CVE-2012-2311. (Stas) - Fix PHP-CGI query string parameter vulnerability, CVE-2012-1823. (Rasmus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61650 (ini parser crashes when using ${xxxx} ini variables (without apache2)).', + 'raw' => 'Fixed bug #61650 (ini parser crashes when using ${xxxx} ini variables (without apache2)). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes).', + 'raw' => 'Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61165 (Segfault - strip_tags()).', + 'raw' => 'Fixed bug #61165 (Segfault - strip_tags()). (Laruence)', + ), + 4 => + array ( + 'message' => 'Improved max_input_vars directive to check nested variables .', + 'raw' => 'Improved max_input_vars directive to check nested variables (Dmitry).', + ), + 5 => + array ( + 'message' => 'Fixed bug #61095 (Incorect lexing of 0x00*+).', + 'raw' => 'Fixed bug #61095 (Incorect lexing of 0x00*+). (Etienne)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode).', + 'raw' => 'Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode). (Nikic, Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61072 (Memory leak when restoring an exception handler).', + 'raw' => 'Fixed bug #61072 (Memory leak when restoring an exception handler). (Nikic, Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX).', + 'raw' => 'Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #61043 (Regression in magic_quotes_gpc fix for CVE-2012-0831).', + 'raw' => 'Fixed bug #61043 (Regression in magic_quotes_gpc fix for CVE-2012-0831). (Ondřej Surý)', + ), + 10 => + array ( + 'message' => 'Fixed bug #61000 (Exceeding max nesting level doesn\'t delete numerical vars).', + 'raw' => 'Fixed bug #61000 (Exceeding max nesting level doesn\'t delete numerical vars). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #60895 (Possible invalid handler usage in windows random functions).', + 'raw' => 'Fixed bug #60895 (Possible invalid handler usage in windows random functions). (Pierre)', + ), + 12 => + array ( + 'message' => 'Fixed bug #60825 (Segfault when running symfony 2 tests).', + 'raw' => 'Fixed bug #60825 (Segfault when running symfony 2 tests). (Dmitry, Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #60801 (strpbrk() mishandles NUL byte).', + 'raw' => 'Fixed bug #60801 (strpbrk() mishandles NUL byte). (Adam)', + ), + 14 => + array ( + 'message' => 'Fixed bug #60569 (Nullbyte truncates Exception $message).', + 'raw' => 'Fixed bug #60569 (Nullbyte truncates Exception $message). (Ilia)', + ), + 15 => + array ( + 'message' => 'Fixed bug #60227 (header() cannot detect the multi-line header with CR).', + 'raw' => 'Fixed bug #60227 (header() cannot detect the multi-line header with CR). (rui, Gustavo)', + ), + 16 => + array ( + 'message' => 'Fixed bug #60222 (time_nanosleep() does validate input params).', + 'raw' => 'Fixed bug #60222 (time_nanosleep() does validate input params). (Ilia)', + ), + 17 => + array ( + 'message' => 'Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172).', + 'raw' => 'Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172). (Stas, lekensteyn at gmail dot com, Pierre)', + ), + 18 => + array ( + 'message' => 'Fixed bug #52719 (array_walk_recursive crashes if third param of the function is by reference).', + 'raw' => 'Fixed bug #52719 (array_walk_recursive crashes if third param of the function is by reference). (Nikita Popov)', + ), + 19 => + array ( + 'message' => 'Fixed bug #51860 (Include fails with toplevel symlink to /).', + 'raw' => 'Fixed bug #51860 (Include fails with toplevel symlink to /). (Dmitry)', + ), + 20 => + array ( + 'message' => 'Added debug info handler to DOM objects.', + 'raw' => 'Added debug info handler to DOM objects. (Gustavo, Joey Smith)', + ), + 21 => + array ( + 'message' => 'Fixed bug #61430 (Transposed memset() params in sapi/fpm/fpm/fpm_shm.c).', + 'raw' => 'Fixed bug #61430 (Transposed memset() params in sapi/fpm/fpm/fpm_shm.c). (michaelhood at gmail dot com, Ilia)', + ), + 22 => + array ( + 'message' => 'Fixed bug #60947 (Segmentation fault while executing ibase_db_info).', + 'raw' => 'Fixed bug #60947 (Segmentation fault while executing ibase_db_info). (Ilia)', + ), + 23 => + array ( + 'message' => 'Fixed bug #61172 (Add Apache 2.4 support).', + 'raw' => 'Fixed bug #61172 (Add Apache 2.4 support). (Chris Jones)', + ), + 24 => + array ( + 'message' => 'Upgraded libmagic to 5.11', + 'raw' => 'Upgraded libmagic to 5.11 (Pierre, Anatoliy)', + ), + 25 => + array ( + 'message' => 'Fixed bug #61565 where php_stream_open_wrapper_ex tries to open a directory descriptor under windows.', + 'raw' => 'Fixed bug #61565 where php_stream_open_wrapper_ex tries to open a directory descriptor under windows. (Anatoliy)', + ), + 26 => + array ( + 'message' => 'Fixed bug #61566 failure caused by the posix lseek and read versions under windows in cdf_read().', + 'raw' => 'Fixed bug #61566 failure caused by the posix lseek and read versions under windows in cdf_read(). (Anatoliy)', + ), + 27 => + array ( + 'message' => 'Fixed bug #61173 (Unable to detect error from finfo constructor).', + 'raw' => 'Fixed bug #61173 (Unable to detect error from finfo constructor). (Gustavo)', + ), + ), + 'firebird database extension (ibase)' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60802 gives segfault when passing params).', + 'raw' => 'Fixed bug #60802 (ibase_trans() gives segfault when passing params).', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61367 (open_basedir bypass using libxml RSHUTDOWN).', + 'raw' => 'Fixed bug #61367 (open_basedir bypass using libxml RSHUTDOWN). (Tim Starling)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61003 (mysql_stat() require a valid connection). .', + 'raw' => 'Fixed bug #61003 (mysql_stat() require a valid connection). (Johannes).', + ), + 2 => + array ( + 'message' => 'Fixed bug #61207 (PDO::nextRowset() after a multi-statement query doesn\'t always work).', + 'raw' => 'Fixed bug #61207 (PDO::nextRowset() after a multi-statement query doesn\'t always work). (Johannes)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61194 (PDO should export compression flag with myslqnd).', + 'raw' => 'Fixed bug #61194 (PDO should export compression flag with myslqnd). (Johannes)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61212 (PDO ODBC Segfaults on SQL_SUCESS_WITH_INFO).', + 'raw' => 'Fixed bug #61212 (PDO ODBC Segfaults on SQL_SUCESS_WITH_INFO). (Ilia)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61267 (pdo_pgsql\'s PDO::exec() returns the number of SELECTed rows on postgresql >= 9).', + 'raw' => 'Fixed bug #61267 (pdo_pgsql\'s PDO::exec() returns the number of SELECTed rows on postgresql >= 9). (ben dot pineau at gmail dot com)', + ), + ), + 'pdo_sqlite extension' => + array ( + 0 => + array ( + 'message' => 'Add createCollation support.', + 'raw' => 'Add createCollation support. (Damien)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60718 (Compile problem with libpq (PostgreSQL 7.3 or less).', + 'raw' => 'Fixed bug #60718 (Compile problem with libpq (PostgreSQL 7.3 or less). (Yasuo Ohgaki)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL bytes).', + 'raw' => 'Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL bytes). (Nikic)', + ), + ), + 'php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60811 (php-fpm compilation problem).', + 'raw' => 'Fixed bug #60811 (php-fpm compilation problem). (rasmus)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61088 (Memory leak in readline_callback_handler_install).', + 'raw' => 'Fixed bug #61088 (Memory leak in readline_callback_handler_install). (Nikic, Laruence)', + ), + 1 => + array ( + 'message' => 'Add open_basedir checks to readline_write_history and readline_read_history.', + 'raw' => 'Add open_basedir checks to readline_write_history and readline_read_history. (Rasmus, reported by Mateusz Goik)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61388 (ReflectionObject:getProperties() issues invalid reads when get_properties returns a hash table with (inaccessible) dynamic numeric properties).', + 'raw' => 'Fixed bug #61388 (ReflectionObject:getProperties() issues invalid reads when get_properties returns a hash table with (inaccessible) dynamic numeric properties). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60968 (Late static binding doesn\'t work with ReflectionMethod::invokeArgs()).', + 'raw' => 'Fixed bug #60968 (Late static binding doesn\'t work with ReflectionMethod::invokeArgs()). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed basic HTTP authentication for WSDL sub requests.', + 'raw' => 'Fixed basic HTTP authentication for WSDL sub requests. (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60887 (SoapClient ignores user_agent option and sends no User-Agent header).', + 'raw' => 'Fixed bug #60887 (SoapClient ignores user_agent option and sends no User-Agent header). (carloschilazo at gmail dot com)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60842, #51775 (Chunked response parsing error when chunksize length line is > 10 bytes).', + 'raw' => 'Fixed bug #60842, #51775 (Chunked response parsing error when chunksize length line is > 10 bytes). (Ilia)', + ), + 5 => + array ( + 'message' => 'Fixed bug #49853 (Soap Client stream context header option ignored).', + 'raw' => 'Fixed bug #49853 (Soap Client stream context header option ignored). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed memory leak when calling SplFileInfo\'s constructor twice.', + 'raw' => 'Fixed memory leak when calling SplFileInfo\'s constructor twice. (Felipe)', + ), + 7 => + array ( + 'message' => '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).', + 'raw' => '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). (Gustavo)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61347 (inconsistent isset behavior of Arrayobject).', + 'raw' => 'Fixed bug #61347 (inconsistent isset behavior of Arrayobject). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #61326 (ArrayObject comparison).', + 'raw' => 'Fixed bug #61326 (ArrayObject comparison). (Gustavo)', + ), + ), + 'sqlite3 extension' => + array ( + 0 => + array ( + 'message' => 'Add createCollation() method.', + 'raw' => 'Add createCollation() method. (Brad Dewar)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60860 (session.save_handler=user without defined function core dumps).', + 'raw' => 'Fixed bug #60860 (session.save_handler=user without defined function core dumps). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()).', + 'raw' => 'Fixed bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()). (Ilia)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61371 (stream_context_create() causes memory leaks on use streams_socket_create).', + 'raw' => 'Fixed bug #61371 (stream_context_create() causes memory leaks on use streams_socket_create). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61253 (Wrappers opened with errors concurrency problem on ZTS).', + 'raw' => 'Fixed bug #61253 (Wrappers opened with errors concurrency problem on ZTS). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61115 (stream related segfault on fatal error in php_stream_context_link).', + 'raw' => 'Fixed bug #61115 (stream related segfault on fatal error in php_stream_context_link). (Gustavo)', + ), + 3 => + array ( + 'message' => '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.', + 'raw' => '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. (Gustavo)', + ), + 4 => + array ( + 'message' => 'Further fix for bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read).', + 'raw' => 'Further fix for bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read). (Gustavo)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths).', + 'raw' => 'Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths). (Ilia)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54682 (tidy null pointer dereference).', + 'raw' => 'Fixed bug #54682 (tidy null pointer dereference). (Tony, David Soria Parra)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable).', + 'raw' => 'Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable). (Nikita Popov)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals).', + 'raw' => 'Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals). (Nikic)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61139 (gzopen leaks when specifying invalid mode).', + 'raw' => 'Fixed bug #61139 (gzopen leaks when specifying invalid mode). (Nikic)', + ), + ), + ), + ), + '5.3.10' => + array ( + 'date' => '02 Feb 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed arbitrary remote code execution vulnerability reported by Stefan Esser, CVE-2012-0830.', + 'raw' => 'Fixed arbitrary remote code execution vulnerability reported by Stefan Esser, CVE-2012-0830. (Stas, Dmitry)', + ), + ), + ), + ), + '5.3.9' => + array ( + 'date' => '10 Jan 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added max_input_vars directive to prevent attacks based on hash collisions (CVE-2011-4885) .', + 'raw' => 'Added max_input_vars directive to prevent attacks based on hash collisions (CVE-2011-4885) (Dmitry).', + ), + 1 => + array ( + 'message' => 'Fixed bug #60205 (possible integer overflow in content_length).', + 'raw' => 'Fixed bug #60205 (possible integer overflow in content_length). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60139 (Anonymous functions create cycles not detected by the GC).', + 'raw' => 'Fixed bug #60139 (Anonymous functions create cycles not detected by the GC). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60138 (GC crash with referenced array in RecursiveArrayIterator) .', + 'raw' => 'Fixed bug #60138 (GC crash with referenced array in RecursiveArrayIterator) (Dmitry).', + ), + 4 => + array ( + 'message' => 'Fixed bug #60120 (proc_open\'s streams may hang with stdin/out/err when the data exceeds or is equal to 2048 bytes).', + 'raw' => 'Fixed bug #60120 (proc_open\'s streams may hang with stdin/out/err when the data exceeds or is equal to 2048 bytes). (Pierre, Pascal Borreli)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60099 (__halt_compiler() works in braced namespaces).', + 'raw' => 'Fixed bug #60099 (__halt_compiler() works in braced namespaces). (Felipe)', + ), + 6 => + array ( + 'message' => 'Fixed bug #60019 (Function time_nanosleep() is undefined on OS X).', + 'raw' => 'Fixed bug #60019 (Function time_nanosleep() is undefined on OS X). (Ilia)', + ), + 7 => + array ( + 'message' => 'Fixed bug #55874 (GCC does not provide __sync_fetch_and_add on some archs).', + 'raw' => 'Fixed bug #55874 (GCC does not provide __sync_fetch_and_add on some archs). (klightspeed at netspace dot net dot au)', + ), + 8 => + array ( + 'message' => 'Fixed bug #55798 (serialize followed by unserialize with numeric object prop. gives integer prop).', + 'raw' => 'Fixed bug #55798 (serialize followed by unserialize with numeric object prop. gives integer prop). (Gustavo)', + ), + 9 => + array ( + 'message' => 'Fixed bug #55749 (TOCTOU issue in getenv() on Windows builds).', + 'raw' => 'Fixed bug #55749 (TOCTOU issue in getenv() on Windows builds). (Pierre)', + ), + 10 => + array ( + 'message' => 'Fixed bug #55707 (undefined reference to `__sync_fetch_and_add_4\' on Linux parisc).', + 'raw' => 'Fixed bug #55707 (undefined reference to `__sync_fetch_and_add_4\' on Linux parisc). (Felipe)', + ), + 11 => + array ( + 'message' => 'Fixed bug #55674 (fgetcsv & str_getcsv skip empty fields in some tab-separated records).', + 'raw' => 'Fixed bug #55674 (fgetcsv & str_getcsv skip empty fields in some tab-separated records). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #55649 (Undefined function Bug()).', + 'raw' => 'Fixed bug #55649 (Undefined function Bug()). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #55622 (memory corruption in parse_ini_string).', + 'raw' => 'Fixed bug #55622 (memory corruption in parse_ini_string). (Pierre)', + ), + 14 => + array ( + 'message' => 'Fixed bug #55576 (Cannot conditionally move uploaded file without race condition).', + 'raw' => 'Fixed bug #55576 (Cannot conditionally move uploaded file without race condition). (Gustavo)', + ), + 15 => + array ( + 'message' => 'Fixed bug #55510: $_FILES \'name\' missing first character after upload.', + 'raw' => 'Fixed bug #55510: $_FILES \'name\' missing first character after upload. (Arpad)', + ), + 16 => + array ( + 'message' => 'Fixed bug #55509 (segfault on x86_64 using more than 2G memory).', + 'raw' => 'Fixed bug #55509 (segfault on x86_64 using more than 2G memory). (Laruence)', + ), + 17 => + array ( + 'message' => 'Fixed bug #55504 (Content-Type header is not parsed correctly on HTTP POST request).', + 'raw' => 'Fixed bug #55504 (Content-Type header is not parsed correctly on HTTP POST request). (Hannes)', + ), + 18 => + array ( + 'message' => 'Fixed bug #55475 (is_a() triggers autoloader, new optional 3rd argument to is_a and is_subclass_of).', + 'raw' => 'Fixed bug #55475 (is_a() triggers autoloader, new optional 3rd argument to is_a and is_subclass_of). (alan_k)', + ), + 19 => + array ( + 'message' => 'Fixed bug #52461 (Incomplete doctype and missing xmlns).', + 'raw' => 'Fixed bug #52461 (Incomplete doctype and missing xmlns). (virsacer at web dot de, Pierre)', + ), + 20 => + array ( + 'message' => 'Fixed bug #55366 (keys lost when using substr_replace an array).', + 'raw' => 'Fixed bug #55366 (keys lost when using substr_replace an array). (Arpad)', + ), + 21 => + array ( + 'message' => 'Fixed bug #55273 (base64_decode() with strict rejects whitespace after pad).', + 'raw' => 'Fixed bug #55273 (base64_decode() with strict rejects whitespace after pad). (Ilia)', + ), + 22 => + array ( + 'message' => 'Fixed bug #52624 (tempnam() by-pass open_basedir with nonnexistent directory).', + 'raw' => 'Fixed bug #52624 (tempnam() by-pass open_basedir with nonnexistent directory). (Felipe)', + ), + 23 => + array ( + 'message' => 'Fixed bug #50982 (incorrect assumption of PAGE_SIZE size).', + 'raw' => 'Fixed bug #50982 (incorrect assumption of PAGE_SIZE size). (Dmitry)', + ), + 24 => + array ( + 'message' => 'Fixed invalid free in call_user_method() function.', + 'raw' => 'Fixed invalid free in call_user_method() function. (Felipe)', + ), + 25 => + array ( + 'message' => 'Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes).', + 'raw' => 'Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes). (Felipe)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60377 (bcscale related crashes on 64bits platforms).', + 'raw' => 'Fixed bug #60377 (bcscale related crashes on 64bits platforms). (shm)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55797 (Integer overflow in SdnToGregorian leads to segfault (in optimized builds).', + 'raw' => 'Fixed bug #55797 (Integer overflow in SdnToGregorian leads to segfault (in optimized builds). (Gustavo)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60439 (curl_copy_handle segfault when used with CURLOPT_PROGRESSFUNCTION).', + 'raw' => 'Fixed bug #60439 (curl_copy_handle segfault when used with CURLOPT_PROGRESSFUNCTION). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54798 (Segfault when CURLOPT_STDERR file pointer is closed before calling curl_exec).', + 'raw' => 'Fixed bug #54798 (Segfault when CURLOPT_STDERR file pointer is closed before calling curl_exec). (Hannes)', + ), + 2 => + array ( + 'message' => 'Fixed issues were curl_copy_handle() would sometimes lose copied preferences.', + 'raw' => 'Fixed issues were curl_copy_handle() would sometimes lose copied preferences. (Hannes)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60373 (Startup errors with log_errors on cause segfault).', + 'raw' => 'Fixed bug #60373 (Startup errors with log_errors on cause segfault). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60236 (TLA timezone dates are not converted properly from timestamp).', + 'raw' => 'Fixed bug #60236 (TLA timezone dates are not converted properly from timestamp). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #55253 (DateTime::add() and sub() result -1 hour on objects with time zone type 2).', + 'raw' => 'Fixed bug #55253 (DateTime::add() and sub() result -1 hour on objects with time zone type 2). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #54851 (DateTime::createFromFormat() doesn\'t interpret "D").', + 'raw' => 'Fixed bug #54851 (DateTime::createFromFormat() doesn\'t interpret "D"). (Derick)', + ), + 4 => + array ( + 'message' => 'Fixed bug #53502 (strtotime with timezone memory leak).', + 'raw' => 'Fixed bug #53502 (strtotime with timezone memory leak). (Derick)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52062 (large timestamps with DateTime::getTimestamp and DateTime::setTimestamp).', + 'raw' => 'Fixed bug #52062 (large timestamps with DateTime::getTimestamp and DateTime::setTimestamp). (Derick)', + ), + 6 => + array ( + 'message' => 'Fixed bug #51994 (date_parse_from_format is parsing invalid date using \'yz\' format).', + 'raw' => 'Fixed bug #51994 (date_parse_from_format is parsing invalid date using \'yz\' format). (Derick)', + ), + 7 => + array ( + 'message' => 'Fixed bug #52113 (Seg fault while creating (by unserialization) DatePeriod).', + 'raw' => 'Fixed bug #52113 (Seg fault while creating (by unserialization) DatePeriod). (Derick)', + ), + 8 => + array ( + 'message' => 'Fixed bug #48476 (cloning extended DateTime class without calling parent::__constr crashed PHP).', + 'raw' => 'Fixed bug #48476 (cloning extended DateTime class without calling parent::__constr crashed PHP). (Hannes)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60150 (Integer overflow during the parsing of invalid exif header). (CVE-2011-4566)', + 'raw' => 'Fixed bug #60150 (Integer overflow during the parsing of invalid exif header). (CVE-2011-4566) (Stas, flolechaud at gmail dot com)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60094 (C++ comment fails in c89).', + 'raw' => 'Fixed bug #60094 (C++ comment fails in c89). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed possible memory leak in finfo_open().', + 'raw' => 'Fixed possible memory leak in finfo_open(). (Felipe)', + ), + 2 => + array ( + 'message' => 'Fixed memory leak when calling the Finfo constructor twice.', + 'raw' => 'Fixed memory leak when calling the Finfo constructor twice. (Felipe)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #55478 (FILTER_VALIDATE_EMAIL fails with internationalized domain name addresses containing >1 -).', + 'raw' => 'Fixed Bug #55478 (FILTER_VALIDATE_EMAIL fails with internationalized domain name addresses containing >1 -). (Ilia)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60183 (out of sync ftp responses).', + 'raw' => 'Fixed bug #60183 (out of sync ftp responses). (bram at ebskamp dot me, rasmus)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60160 (imagefill() doesn\'t work correctly for small images).', + 'raw' => 'Fixed bug #60160 (imagefill() doesn\'t work correctly for small images). (Florian)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61487 (Incorrent bounds checking in grapheme_strpos).', + 'raw' => 'Fixed bug #61487 (Incorrent bounds checking in grapheme_strpos). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60192 (SegFault when Collator not constructed properly).', + 'raw' => 'Fixed bug #60192 (SegFault when Collator not constructed properly). (Florian)', + ), + 2 => + array ( + 'message' => 'Fixed memory leak in several Intl locale functions.', + 'raw' => 'Fixed memory leak in several Intl locale functions. (Felipe)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55543 (json_encode() with JSON_NUMERIC_CHECK fails on objects with numeric string properties).', + 'raw' => 'Fixed bug #55543 (json_encode() with JSON_NUMERIC_CHECK fails on objects with numeric string properties). (Ilia, dchurch at sciencelogic dot com)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed possible crash in mb_ereg_search_init() using empty pattern.', + 'raw' => 'Fixed possible crash in mb_ereg_search_init() using empty pattern. (Felipe)', + ), + ), + 'ms sql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60267 (Compile failure with freetds 0.91).', + 'raw' => 'Fixed bug #60267 (Compile failure with freetds 0.91). (Felipe)', + ), + ), + 'mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55550 (mysql.trace_mode miscounts result sets).', + 'raw' => 'Fixed bug #55550 (mysql.trace_mode miscounts result sets). (Johannes)', + ), + ), + 'mysqli extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55859 (mysqli->stat property access gives error).', + 'raw' => 'Fixed bug #55859 (mysqli->stat property access gives error). (Andrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55582 (mysqli_num_rows() returns always 0 for unbuffered, when mysqlnd is used).', + 'raw' => 'Fixed bug #55582 (mysqli_num_rows() returns always 0 for unbuffered, when mysqlnd is used). (Andrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #55703 (PHP crash when calling mysqli_fetch_fields).', + 'raw' => 'Fixed bug #55703 (PHP crash when calling mysqli_fetch_fields). (eran at zend dot com, Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #55609 (mysqlnd cannot be built shared).', + 'raw' => 'Fixed bug #55609 (mysqlnd cannot be built shared). (Johannes)', + ), + 4 => + array ( + 'message' => 'Fixed bug #55067 (MySQL doesn\'t support compression - wrong config option).', + 'raw' => 'Fixed bug #55067 (MySQL doesn\'t support compression - wrong config option). (Andrey)', + ), + ), + 'nsapi sapi' => + array ( + 0 => + array ( + 'message' => 'Don\'t set $_SERVER[\'HTTPS\'] on unsecure connection (bug #55403).', + 'raw' => 'Don\'t set $_SERVER[\'HTTPS\'] on unsecure connection (bug #55403). (Uwe Schindler)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60279 (Fixed NULL pointer dereference in stream_socket_enable_crypto, case when ssl_handle of session_stream is not initialized.)', + 'raw' => 'Fixed bug #60279 (Fixed NULL pointer dereference in stream_socket_enable_crypto, case when ssl_handle of session_stream is not initialized.) (shm)', + ), + 1 => + array ( + 'message' => 'Fix segfault with older versions of OpenSSL.', + 'raw' => 'Fix segfault with older versions of OpenSSL. (Scott)', + ), + ), + 'oracle database extension (oci8)' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #59985 (show normal warning text for OCI_NO_DATA).', + 'raw' => 'Fixed bug #59985 (show normal warning text for OCI_NO_DATA). (Chris Jones)', + ), + 1 => + array ( + 'message' => 'Increased maximum Oracle error message buffer length for new 11.2.0.3 size.', + 'raw' => 'Increased maximum Oracle error message buffer length for new 11.2.0.3 size. (Chris Jones)', + ), + 2 => + array ( + 'message' => 'Improve internal initalization failure error messages.', + 'raw' => 'Improve internal initalization failure error messages. (Chris Jones)', + ), + 3 => + array ( + 'message' => 'Fixed bug #55776 (PDORow to session bug).', + 'raw' => 'Fixed bug #55776 (PDORow to session bug). (Johannes)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48877 ("bindValue" and "bindParam" do not work for PDO Firebird).', + 'raw' => 'Fixed bug #48877 ("bindValue" and "bindParam" do not work for PDO Firebird). (Mariuz)', + ), + 1 => + array ( + 'message' => 'Fixed bug #47415 .', + 'raw' => 'Fixed bug #47415 (PDO_Firebird segfaults when passing lowercased column name to bindColumn).', + ), + 2 => + array ( + 'message' => 'Fixed bug #53280 (PDO_Firebird segfaults if query column count less than param count).', + 'raw' => 'Fixed bug #53280 (PDO_Firebird segfaults if query column count less than param count). (Mariuz)', + ), + ), + 'pdo mysql driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60155 (pdo_mysql.default_socket ignored).', + 'raw' => 'Fixed bug #60155 (pdo_mysql.default_socket ignored). (Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55870 (PDO ignores all SSL parameters when used with mysql native driver).', + 'raw' => 'Fixed bug #55870 (PDO ignores all SSL parameters when used with mysql native driver). (Pierre)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54158 (MYSQLND+PDO MySQL requires #define MYSQL_OPT_LOCAL_INFILE).', + 'raw' => 'Fixed bug #54158 (MYSQLND+PDO MySQL requires #define MYSQL_OPT_LOCAL_INFILE). (Andrey)', + ), + ), + 'pdo oci driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55768 (PDO_OCI can\'t resume Oracle session after it\'s been killed).', + 'raw' => 'Fixed bug #55768 (PDO_OCI can\'t resume Oracle session after it\'s been killed). (mikhail dot v dot gavrilov at gmail dot com, Chris Jones, Tony)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60261 (NULL pointer dereference in phar).', + 'raw' => 'Fixed bug #60261 (NULL pointer dereference in phar). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60164 (Stubs of a specific length break phar_open_from_fp scanning for __HALT_COMPILER).', + 'raw' => 'Fixed bug #60164 (Stubs of a specific length break phar_open_from_fp scanning for __HALT_COMPILER). (Ralph Schindler)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53872 (internal corruption of phar).', + 'raw' => 'Fixed bug #53872 (internal corruption of phar). (Hannes)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52013 (Unable to decompress files in a compressed phar).', + 'raw' => 'Fixed bug #52013 (Unable to decompress files in a compressed phar). (Hannes)', + ), + ), + 'php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Dropped restriction of not setting the same value multiple times, the last one holds.', + 'raw' => 'Dropped restriction of not setting the same value multiple times, the last one holds. (giovanni at giacobbi dot net, fat)', + ), + 1 => + array ( + 'message' => 'Added .phar to default authorized extensions.', + 'raw' => 'Added .phar to default authorized extensions. (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60659 (FPM does not clear auth_user on request accept).', + 'raw' => 'Fixed bug #60659 (FPM does not clear auth_user on request accept). (bonbons at linux-vserver dot org)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60629 (memory corruption when web server closed the fcgi fd).', + 'raw' => 'Fixed bug #60629 (memory corruption when web server closed the fcgi fd). (fat)', + ), + 4 => + array ( + 'message' => 'Enhance error log when the primary script can\'t be open. FR #60199.', + 'raw' => 'Enhance error log when the primary script can\'t be open. FR #60199. (fat)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60179 (php_flag and php_value does not work properly).', + 'raw' => 'Fixed bug #60179 (php_flag and php_value does not work properly). (fat)', + ), + 6 => + array ( + 'message' => 'Fixed bug #55577 (status.html does not install).', + 'raw' => 'Fixed bug #55577 (status.html does not install). (fat)', + ), + 7 => + array ( + 'message' => 'Fixed bug #55533 (The -d parameter doesn\'t work).', + 'raw' => 'Fixed bug #55533 (The -d parameter doesn\'t work). (fat)', + ), + 8 => + array ( + 'message' => 'Fixed bug #55526 (Heartbeat causes a lot of unnecessary events).', + 'raw' => 'Fixed bug #55526 (Heartbeat causes a lot of unnecessary events). (fat)', + ), + 9 => + array ( + 'message' => 'Fixed bug #55486 (status show BIG processes number).', + 'raw' => 'Fixed bug #55486 (status show BIG processes number). (fat)', + ), + 10 => + array ( + 'message' => 'Enhanced security by limiting access to user defined extensions. FR #55181.', + 'raw' => 'Enhanced security by limiting access to user defined extensions. FR #55181. (fat)', + ), + 11 => + array ( + 'message' => 'Added process.max to control the number of process FPM can fork. FR #55166.', + 'raw' => 'Added process.max to control the number of process FPM can fork. FR #55166. (fat)', + ), + 12 => + array ( + 'message' => '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.', + 'raw' => '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. (fat)', + ), + 13 => + array ( + 'message' => 'Lowered default value for Process Manager. FR #54098.', + 'raw' => 'Lowered default value for Process Manager. FR #54098. (fat)', + ), + 14 => + array ( + 'message' => 'Implemented FR #52569 (Add the "ondemand" process-manager to allow zero children).', + 'raw' => 'Implemented FR #52569 (Add the "ondemand" process-manager to allow zero children). (fat)', + ), + 15 => + array ( + 'message' => 'Added partial syslog support (on error_log only). FR #52052.', + 'raw' => 'Added partial syslog support (on error_log only). FR #52052. (fat)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60244 (pg_fetch_* functions do not validate that row param is >0).', + 'raw' => 'Fixed bug #60244 (pg_fetch_* functions do not validate that row param is >0). (Ilia)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60367 (Reflection and Late Static Binding).', + 'raw' => 'Fixed bug #60367 (Reflection and Late Static Binding). (Laruence)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55267 (session_regenerate_id fails after header sent).', + 'raw' => 'Fixed bug #55267 (session_regenerate_id fails after header sent). (Hannes)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => '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).', + 'raw' => '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). (chregu, rrichards)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54911 (Access to a undefined member in inherit SoapClient may cause Segmentation Fault).', + 'raw' => 'Fixed bug #54911 (Access to a undefined member in inherit SoapClient may cause Segmentation Fault). (Dmitry)', + ), + 2 => + array ( + 'message' => '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).', + 'raw' => '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). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #44686 (SOAP-ERROR: Parsing WSDL with references).', + 'raw' => 'Fixed bug #44686 (SOAP-ERROR: Parsing WSDL with references). (Dmitry)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60048 (sa_len a #define on IRIX).', + 'raw' => 'Fixed bug #60048 (sa_len a #define on IRIX). (china at thewrittenword dot com)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60082 (Crash in ArrayObject() when using recursive references).', + 'raw' => 'Fixed bug #60082 (Crash in ArrayObject() when using recursive references). (Tony)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55807 (Wrong value for splFileObject::SKIP_EMPTY).', + 'raw' => 'Fixed bug #55807 (Wrong value for splFileObject::SKIP_EMPTY). (jgotti at modedemploi dot fr, Hannes)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54304 (RegexIterator::accept() doesn\'t work with scalar values).', + 'raw' => 'Fixed bug #54304 (RegexIterator::accept() doesn\'t work with scalar values). (Hannes)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read).', + 'raw' => 'Fixed bug #60455 (stream_get_line misbehaves if EOF is not detected together with the last read). (Gustavo)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference).', + 'raw' => 'Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference). (Maksymilian Arciemowicz, Felipe)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => '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.', + 'raw' => '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. (Chregu, Nicolas Gregoire)', + ), + ), + ), + ), + '5.3.8' => + array ( + 'date' => '23 Aug 2011', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55439 (crypt() returns only the salt for MD5).', + 'raw' => 'Fixed bug #55439 (crypt() returns only the salt for MD5). (Stas)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Reverted a change in timeout handling restoring PHP 5.3.6 behavior, as the new behavior caused mysqlnd SSL connections to hang (#55283).', + 'raw' => 'Reverted a change in timeout handling restoring PHP 5.3.6 behavior, as the new behavior caused mysqlnd SSL connections to hang (#55283). (Pierre, Andrey, Johannes)', + ), + ), + ), + ), + '5.3.7' => + array ( + 'date' => '18 Aug 2011', + 'modules' => + array ( + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55156 (ReflectionClass::getDocComment() returns comment even though the class has none).', + 'raw' => 'Fixed bug #55156 (ReflectionClass::getDocComment() returns comment even though the class has none). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55007 (compiler fail after previous fail).', + 'raw' => 'Fixed bug #55007 (compiler fail after previous fail). (Felipe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54910 (Crash when calling call_user_func with unknown function name).', + 'raw' => 'Fixed bug #54910 (Crash when calling call_user_func with unknown function name). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #54804 (__halt_compiler and imported namespaces).', + 'raw' => 'Fixed bug #54804 (__halt_compiler and imported namespaces). (Pierrick, Felipe)', + ), + 4 => + array ( + 'message' => 'Fixed bug #54624 (class_alias and type hint).', + 'raw' => 'Fixed bug #54624 (class_alias and type hint). (Felipe)', + ), + 5 => + array ( + 'message' => 'Fixed bug #54585 (track_errors causes segfault).', + 'raw' => 'Fixed bug #54585 (track_errors causes segfault). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #54423 (classes from dl()\'ed extensions are not destroyed).', + 'raw' => 'Fixed bug #54423 (classes from dl()\'ed extensions are not destroyed). (Tony, Dmitry)', + ), + 7 => + array ( + 'message' => 'Fixed bug #54372 (Crash accessing global object itself returned from its __get() handle).', + 'raw' => 'Fixed bug #54372 (Crash accessing global object itself returned from its __get() handle). (Dmitry)', + ), + 8 => + array ( + 'message' => 'Fixed bug #54367 (Use of closure causes problem in ArrayAccess).', + 'raw' => 'Fixed bug #54367 (Use of closure causes problem in ArrayAccess). (Dmitry)', + ), + 9 => + array ( + 'message' => 'Fixed bug #54358 (Closure, use and reference).', + 'raw' => 'Fixed bug #54358 (Closure, use and reference). (Dmitry)', + ), + 10 => + array ( + 'message' => 'Fixed bug #54262 (Crash when assigning value to a dimension in a non-array).', + 'raw' => 'Fixed bug #54262 (Crash when assigning value to a dimension in a non-array). (Dmitry)', + ), + 11 => + array ( + 'message' => 'Fixed bug #54039 (use() of static variables in lambda functions can break staticness).', + 'raw' => 'Fixed bug #54039 (use() of static variables in lambda functions can break staticness). (Dmitry)', + ), + 12 => + array ( + 'message' => 'Updated crypt_blowfish to 1.2. ((CVE-2011-2483)', + 'raw' => 'Updated crypt_blowfish to 1.2. ((CVE-2011-2483) (Solar Designer)', + ), + 13 => + array ( + 'message' => 'Removed warning when argument of is_a() or is_subclass_of() is not a known class.', + 'raw' => 'Removed warning when argument of is_a() or is_subclass_of() is not a known class. (Stas)', + ), + 14 => + array ( + 'message' => 'Fixed crash in error_log(). Reported by Mateusz Kocielski.', + 'raw' => 'Fixed crash in error_log(). (Felipe) Reported by Mateusz Kocielski.', + ), + 15 => + array ( + 'message' => 'Added PHP_MANDIR constant telling where the manpages were installed into, and an --man-dir argument to php-config.', + 'raw' => 'Added PHP_MANDIR constant telling where the manpages were installed into, and an --man-dir argument to php-config. (Hannes)', + ), + 16 => + array ( + 'message' => 'Fixed a crash inside dtor for error handling.', + 'raw' => 'Fixed a crash inside dtor for error handling. (Ilia)', + ), + 17 => + array ( + 'message' => 'Fixed buffer overflow on overlog salt in crypt().', + 'raw' => 'Fixed buffer overflow on overlog salt in crypt(). (Clément LECIGNE, Stas)', + ), + 18 => + array ( + 'message' => 'Implemented FR #54459 (Range function accuracy).', + 'raw' => 'Implemented FR #54459 (Range function accuracy). (Adam)', + ), + 19 => + array ( + 'message' => 'Fixed bug #55399 (parse_url() incorrectly treats \':\' as a valid path).', + 'raw' => 'Fixed bug #55399 (parse_url() incorrectly treats \':\' as a valid path). (Ilia)', + ), + 20 => + array ( + 'message' => 'Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off).', + 'raw' => 'Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off). (Dmitry)', + ), + 21 => + array ( + 'message' => 'Fixed bug #55295 [NEW]: popen_ex on windows, fixed possible heap overflow', + 'raw' => 'Fixed bug #55295 [NEW]: popen_ex on windows, fixed possible heap overflow (Pierre)', + ), + 22 => + array ( + 'message' => 'Fixed bug #55258 (Windows Version Detecting Error).', + 'raw' => 'Fixed bug #55258 (Windows Version Detecting Error). ( xiaomao5 at live dot com, Pierre)', + ), + 23 => + array ( + 'message' => 'Fixed bug #55187 (readlink returns weird characters when false result).', + 'raw' => 'Fixed bug #55187 (readlink returns weird characters when false result). (Pierre)', + ), + 24 => + array ( + 'message' => 'Fixed bug #55082 (var_export() doesn\'t escape properties properly).', + 'raw' => 'Fixed bug #55082 (var_export() doesn\'t escape properties properly). (Gustavo)', + ), + 25 => + array ( + 'message' => 'Fixed bug #55014 (Compile failure due to improper use of ctime_r()).', + 'raw' => 'Fixed bug #55014 (Compile failure due to improper use of ctime_r()). (Ilia)', + ), + 26 => + array ( + 'message' => 'Fixed bug #54939 (File path injection vulnerability in RFC1867 File upload filename). (Felipe) Reported by Krzysztof Kotowicz.', + 'raw' => 'Fixed bug #54939 (File path injection vulnerability in RFC1867 File upload filename). (Felipe) Reported by Krzysztof Kotowicz. (CVE-2011-2202)', + ), + 27 => + array ( + 'message' => 'Fixed bug #54935 php_win_err can lead to crash.', + 'raw' => 'Fixed bug #54935 php_win_err can lead to crash. (Pierre)', + ), + 28 => + array ( + 'message' => 'Fixed bug #54924 (assert.* is not being reset upon request shutdown).', + 'raw' => 'Fixed bug #54924 (assert.* is not being reset upon request shutdown). (Ilia)', + ), + 29 => + array ( + 'message' => 'Fixed bug #54895 (Fix compiling with older gcc version without need for membar_producer macro).', + 'raw' => 'Fixed bug #54895 (Fix compiling with older gcc version without need for membar_producer macro). (mhei at heimpold dot de)', + ), + 30 => + array ( + 'message' => 'Fixed bug #54866 (incorrect accounting for realpath_cache_size).', + 'raw' => 'Fixed bug #54866 (incorrect accounting for realpath_cache_size). (Dustin Ward)', + ), + 31 => + array ( + 'message' => 'Fixed bug #54723 (getimagesize() doesn\'t check the full ico signature).', + 'raw' => 'Fixed bug #54723 (getimagesize() doesn\'t check the full ico signature). (Scott)', + ), + 32 => + array ( + 'message' => 'Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size).', + 'raw' => 'Fixed bug #54721 (Different Hashes on Windows, BSD and Linux on wrong Salt size). (Pierre, os at irj dot ru)', + ), + 33 => + array ( + 'message' => 'Fixed bug #54580 (get_browser() segmentation fault when browscap ini directive is set through php_admin_value).', + 'raw' => 'Fixed bug #54580 (get_browser() segmentation fault when browscap ini directive is set through php_admin_value). (Gustavo)', + ), + 34 => + array ( + 'message' => 'Fixed bug #54332 (Crash in zend_mm_check_ptr // Heap corruption).', + 'raw' => 'Fixed bug #54332 (Crash in zend_mm_check_ptr // Heap corruption). (Dmitry)', + ), + 35 => + array ( + 'message' => 'Fixed bug #54305 (Crash in gc_remove_zval_from_buffer).', + 'raw' => 'Fixed bug #54305 (Crash in gc_remove_zval_from_buffer). (Dmitry)', + ), + 36 => + array ( + 'message' => 'Fixed bug #54238 (use-after-free in substr_replace()). (Stas)', + 'raw' => 'Fixed bug #54238 (use-after-free in substr_replace()). (Stas) (CVE-2011-1148)', + ), + 37 => + array ( + 'message' => 'Fixed bug #54204 (Can\'t set a value with a PATH section in php.ini).', + 'raw' => 'Fixed bug #54204 (Can\'t set a value with a PATH section in php.ini). (Pierre)', + ), + 38 => + array ( + 'message' => 'Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment).', + 'raw' => 'Fixed bug #54180 (parse_url() incorrectly parses path when ? in fragment). (tomas dot brastavicius at quantum dot lt, Pierrick)', + ), + 39 => + array ( + 'message' => 'Fixed bug #54137 (file_get_contents POST request sends additional line break).', + 'raw' => 'Fixed bug #54137 (file_get_contents POST request sends additional line break). (maurice-php at mertinkat dot net, Ilia)', + ), + 40 => + array ( + 'message' => 'Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields).', + 'raw' => 'Fixed bug #53848 (fgetcsv() ignores spaces at beginnings of fields). (Ilia)', + ), + 41 => + array ( + 'message' => '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.', + 'raw' => '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. (Gustavo)', + ), + 42 => + array ( + 'message' => 'Fixed bug #53727 (Inconsistent behavior of is_subclass_of with interfaces)', + 'raw' => 'Fixed bug #53727 (Inconsistent behavior of is_subclass_of with interfaces) (Ralph Schindler, Dmitry)', + ), + 43 => + array ( + 'message' => 'Fixed bug #52935 (call exit in user_error_handler cause stream relate core).', + 'raw' => 'Fixed bug #52935 (call exit in user_error_handler cause stream relate core). (Gustavo)', + ), + 44 => + array ( + 'message' => 'Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning).', + 'raw' => 'Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning). (Ilia)', + ), + 45 => + array ( + 'message' => 'Fixed bug #50816 (Using class constants in array definition fails).', + 'raw' => 'Fixed bug #50816 (Using class constants in array definition fails). (Pierrick, Dmitry)', + ), + 46 => + array ( + 'message' => 'Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter).', + 'raw' => 'Fixed bug #50363 (Invalid parsing in convert.quoted-printable-decode filter). (slusarz at curecanti dot org)', + ), + 47 => + array ( + 'message' => 'Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using TMPDIR on Windows).', + 'raw' => 'Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using TMPDIR on Windows). (Pierre)', + ), + ), + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54529 (SAPI crashes on apache_config.c:197).', + 'raw' => 'Fixed bug #54529 (SAPI crashes on apache_config.c:197). (hebergement at riastudio dot fr)', + ), + ), + 'cli sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52496 (Zero exit code on option parsing failure).', + 'raw' => 'Fixed bug #52496 (Zero exit code on option parsing failure). (Ilia)', + ), + ), + 'curl extension' => + array ( + 0 => + array ( + 'message' => 'Added ini option curl.cainfo (support for custom cert db).', + 'raw' => 'Added ini option curl.cainfo (support for custom cert db). (Pierre)', + ), + 1 => + array ( + 'message' => 'Added CURLINFO_REDIRECT_URL support.', + 'raw' => 'Added CURLINFO_REDIRECT_URL support. (Daniel Stenberg, Pierre)', + ), + 2 => + array ( + 'message' => 'Added support for CURLOPT_MAX_RECV_SPEED_LARGE and CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815.', + 'raw' => 'Added support for CURLOPT_MAX_RECV_SPEED_LARGE and CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815. (Pierrick)', + ), + ), + 'datetime extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug where the DateTime object got changed while using date_diff().', + 'raw' => 'Fixed bug where the DateTime object got changed while using date_diff(). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54340 (DateTime::add() method bug).', + 'raw' => 'Fixed bug #54340 (DateTime::add() method bug). (Adam)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54316 (DateTime::createFromFormat does not handle trailing \'|\' correctly).', + 'raw' => 'Fixed bug #54316 (DateTime::createFromFormat does not handle trailing \'|\' correctly). (Adam)', + ), + 3 => + array ( + 'message' => 'Fixed bug #54283 (new DatePeriod(NULL) causes crash).', + 'raw' => 'Fixed bug #54283 (new DatePeriod(NULL) causes crash). (Felipe)', + ), + 4 => + array ( + 'message' => 'Fixed bug #51819 (Case discrepancy in timezone names cause Uncaught exception and fatal error).', + 'raw' => 'Fixed bug #51819 (Case discrepancy in timezone names cause Uncaught exception and fatal error). (Hannes)', + ), + ), + 'dba extension' => + array ( + 0 => + array ( + 'message' => 'Supress warning on non-existent file open with Berkeley DB 5.2.', + 'raw' => 'Supress warning on non-existent file open with Berkeley DB 5.2. (Chris Jones)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54242 (dba_insert returns true if key already exists).', + 'raw' => 'Fixed bug #54242 (dba_insert returns true if key already exists). (Felipe)', + ), + ), + 'exif extesion' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54121 (error message format string typo).', + 'raw' => 'Fixed bug #54121 (error message format string typo). (Ilia)', + ), + ), + 'fileinfo extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54934 (Unresolved symbol strtoull in HP-UX 11.11).', + 'raw' => 'Fixed bug #54934 (Unresolved symbol strtoull in HP-UX 11.11). (Felipe)', + ), + ), + 'filter extension' => + array ( + 0 => + array ( + 'message' => 'Added 3rd parameter to filter_var_array() and filter_input_array() functions that allows disabling addition of empty elements.', + 'raw' => 'Added 3rd parameter to filter_var_array() and filter_input_array() functions that allows disabling addition of empty elements. (Ilia)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53037 (FILTER_FLAG_EMPTY_STRING_NULL is not implemented).', + 'raw' => 'Fixed bug #53037 (FILTER_FLAG_EMPTY_STRING_NULL is not implemented). (Ilia)', + ), + ), + 'interbase extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54269 (Short exception message buffer causes crash).', + 'raw' => 'Fixed bug #54269 (Short exception message buffer causes crash). (Felipe)', + ), + ), + 'intl extension' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #54561 (Expose ICU version info).', + 'raw' => 'Implemented FR #54561 (Expose ICU version info). (David Zuelke, Ilia)', + ), + 1 => + array ( + 'message' => 'Implemented FR #54540 (Allow loading of arbitrary resource bundles when fallback is disabled).', + 'raw' => 'Implemented FR #54540 (Allow loading of arbitrary resource bundles when fallback is disabled). (David Zuelke, Stas)', + ), + ), + 'imap extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55313 (Number of retries not set when params specified).', + 'raw' => 'Fixed bug #55313 (Number of retries not set when params specified). (kevin at kevinlocke dot name)', + ), + ), + 'json extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54484 (Empty string in json_decode doesn\'t reset json_last_error()).', + 'raw' => 'Fixed bug #54484 (Empty string in json_decode doesn\'t reset json_last_error()). (Ilia)', + ), + ), + 'ldap extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53339 (Fails to build when compilng with gcc 4.5 and DSO libraries).', + 'raw' => 'Fixed bug #53339 (Fails to build when compilng with gcc 4.5 and DSO libraries). (Clint Byrum, Raphael)', + ), + ), + 'libxml extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54601 (Removing the doctype node segfaults).', + 'raw' => 'Fixed bug #54601 (Removing the doctype node segfaults). (Hannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54440 (libxml extension ignores default context).', + 'raw' => 'Fixed bug #54440 (libxml extension ignores default context). (Gustavo)', + ), + ), + 'mbstring extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54494 (mb_substr() mishandles UTF-32LE and UCS-2LE).', + 'raw' => 'Fixed bug #54494 (mb_substr() mishandles UTF-32LE and UCS-2LE). (Gustavo)', + ), + ), + 'mcrypt extension' => + array ( + 0 => + array ( + 'message' => 'Change E_ERROR to E_WARNING in mcrypt_create_iv when not enough data has been fetched (Windows).', + 'raw' => 'Change E_ERROR to E_WARNING in mcrypt_create_iv when not enough data has been fetched (Windows). (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55169 (mcrypt_create_iv always fails to gather sufficient random data on Windows).', + 'raw' => 'Fixed bug #55169 (mcrypt_create_iv always fails to gather sufficient random data on Windows). (Pierre)', + ), + 2 => + array ( + 'message' => 'Fixed crash when using more than 28,000 bound parameters. Workaround is to set mysqlnd.net_cmd_buffer_size to at least 9000.', + 'raw' => 'Fixed crash when using more than 28,000 bound parameters. Workaround is to set mysqlnd.net_cmd_buffer_size to at least 9000. (Andrey)', + ), + 3 => + array ( + 'message' => 'Fixed bug #54674 mysqlnd valid_sjis_(head|tail) is using invalid operator and range).', + 'raw' => 'Fixed bug #54674 mysqlnd valid_sjis_(head|tail) is using invalid operator and range). (nihen at megabbs dot com, Andrey)', + ), + ), + 'mysqli extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55283 (SSL options set by mysqli_ssl_set ignored for MySQLi persistent connections).', + 'raw' => 'Fixed bug #55283 (SSL options set by mysqli_ssl_set ignored for MySQLi persistent connections). (Andrey)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #54221 (mysqli::get_warnings segfault when used in multi queries).', + 'raw' => 'Fixed Bug #54221 (mysqli::get_warnings segfault when used in multi queries). (Andrey)', + ), + ), + 'openssl extension' => + array ( + 0 => + array ( + 'message' => 'openssl_encrypt()/openssl_decrypt() truncated keys of variable length ciphers to the OpenSSL default for the algorithm.', + 'raw' => 'openssl_encrypt()/openssl_decrypt() truncated keys of variable length ciphers to the OpenSSL default for the algorithm. (Scott)', + ), + 1 => + array ( + 'message' => 'On blocking SSL sockets respect the timeout option where possible.', + 'raw' => 'On blocking SSL sockets respect the timeout option where possible. (Scott)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54992 (Stream not closed and error not returned when SSL CN_match fails).', + 'raw' => 'Fixed bug #54992 (Stream not closed and error not returned when SSL CN_match fails). (Gustavo, laird_ngrps at dodo dot com dot au)', + ), + ), + 'oracle database extension (oci8)' => + array ( + 0 => + array ( + 'message' => 'Added oci_client_version() returning the runtime Oracle client library version.', + 'raw' => 'Added oci_client_version() returning the runtime Oracle client library version. (Chris Jones)', + ), + 1 => + array ( + 'message' => 'PCRE extension:', + 'raw' => 'PCRE extension:', + ), + 2 => + array ( + 'message' => 'Increased the backtrack limit from 100000 to 1000000', + 'raw' => 'Increased the backtrack limit from 100000 to 1000000 (Rasmus)', + ), + ), + 'pdo extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54929 (Parse error with single quote in sql comment).', + 'raw' => 'Fixed bug #54929 (Parse error with single quote in sql comment). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52104 (bindColumn creates Warning regardless of ATTR_ERRMODE settings).', + 'raw' => 'Fixed bug #52104 (bindColumn creates Warning regardless of ATTR_ERRMODE settings). (Ilia)', + ), + ), + 'pdo dblib driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54329 (MSSql extension memory leak).', + 'raw' => 'Fixed bug #54329 (MSSql extension memory leak). (dotslashpok at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54167 (PDO_DBLIB returns null on SQLUNIQUE field).', + 'raw' => 'Fixed bug #54167 (PDO_DBLIB returns null on SQLUNIQUE field). (mjh at hodginsmedia dot com, Felipe)', + ), + ), + 'pdo odbc driver' => + array ( + 0 => + array ( + 'message' => 'Fixed data type usage in 64bit.', + 'raw' => 'Fixed data type usage in 64bit. (leocsilva at gmail dot com)', + ), + ), + 'pdo mysql driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54644 (wrong pathes in php_pdo_mysql_int.h).', + 'raw' => 'Fixed bug #54644 (wrong pathes in php_pdo_mysql_int.h). (Tony, Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53782 (foreach throws irrelevant exception).', + 'raw' => 'Fixed bug #53782 (foreach throws irrelevant exception). (Johannes, Andrey)', + ), + 2 => + array ( + 'message' => 'Implemented FR #48587 (MySQL PDO driver doesn\'t support SSL connections).', + 'raw' => 'Implemented FR #48587 (MySQL PDO driver doesn\'t support SSL connections). (Rob)', + ), + ), + 'pdo postgresql driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54318 (Non-portable grep option used in PDO pgsql configuration).', + 'raw' => 'Fixed bug #54318 (Non-portable grep option used in PDO pgsql configuration). (bwalton at artsci dot utoronto dot ca)', + ), + ), + 'pdo oracle driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44989 (64bit Oracle RPMs still not supported by pdo-oci).', + 'raw' => 'Fixed bug #44989 (64bit Oracle RPMs still not supported by pdo-oci). (jbnance at tresgeek dot net)', + ), + ), + 'phar extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54395 (Phar::mount() crashes when calling with wrong parameters).', + 'raw' => 'Fixed bug #54395 (Phar::mount() crashes when calling with wrong parameters). (Felipe)', + ), + ), + 'php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #54499 (FPM ping and status_path should handle HEAD request).', + 'raw' => 'Implemented FR #54499 (FPM ping and status_path should handle HEAD request). (fat)', + ), + 1 => + array ( + 'message' => 'Implemented FR #54172 (Overriding the pid file location of php-fpm).', + 'raw' => 'Implemented FR #54172 (Overriding the pid file location of php-fpm). (fat)', + ), + 2 => + array ( + 'message' => 'Fixed missing Expires and Cache-Control headers for ping and status pages.', + 'raw' => 'Fixed missing Expires and Cache-Control headers for ping and status pages. (fat)', + ), + 3 => + array ( + 'message' => 'Fixed memory leak. Reported and fixed by Giovanni Giacobbi.', + 'raw' => 'Fixed memory leak. (fat) Reported and fixed by Giovanni Giacobbi.', + ), + 4 => + array ( + 'message' => 'Fixed wrong value of log_level when invoking fpm with -tt.', + 'raw' => 'Fixed wrong value of log_level when invoking fpm with -tt. (fat)', + ), + 5 => + array ( + 'message' => 'Added xml format to the status page.', + 'raw' => 'Added xml format to the status page. (fat)', + ), + 6 => + array ( + 'message' => 'Removed timestamp in logs written by children processes.', + 'raw' => 'Removed timestamp in logs written by children processes. (fat)', + ), + 7 => + array ( + 'message' => 'Fixed exit at FPM startup on fpm_resources_prepare() errors.', + 'raw' => 'Fixed exit at FPM startup on fpm_resources_prepare() errors. (fat)', + ), + 8 => + array ( + 'message' => 'Added master rlimit_files and rlimit_core in the global configuration settings.', + 'raw' => 'Added master rlimit_files and rlimit_core in the global configuration settings. (fat)', + ), + 9 => + array ( + 'message' => 'Removed pid in debug logs written by chrildren processes.', + 'raw' => 'Removed pid in debug logs written by chrildren processes. (fat)', + ), + 10 => + array ( + 'message' => 'Added custom access log (also added per request %CPU and memory mesurement).', + 'raw' => 'Added custom access log (also added per request %CPU and memory mesurement). (fat)', + ), + 11 => + array ( + 'message' => 'Added a real scoreboard and several improvements to the status page.', + 'raw' => 'Added a real scoreboard and several improvements to the status page. (fat)', + ), + ), + 'reflection extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54347 (reflection_extension does not lowercase module function name).', + 'raw' => 'Fixed bug #54347 (reflection_extension does not lowercase module function name). (Felipe, laruence at yahoo dot com dot cn)', + ), + ), + 'soap extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55323 (SoapClient segmentation fault when XSD_TYPEKIND_EXTENSION contains itself).', + 'raw' => 'Fixed bug #55323 (SoapClient segmentation fault when XSD_TYPEKIND_EXTENSION contains itself). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54312 (soap_version logic bug).', + 'raw' => 'Fixed bug #54312 (soap_version logic bug). (tom at samplonius dot org)', + ), + ), + 'sockets extension' => + array ( + 0 => + array ( + 'message' => 'Fixed stack buffer overflow in socket_connect(). (CVE-2011-1938) Found by Mateusz Kocielski, Marek Kroemeke and Filip Palian.', + 'raw' => 'Fixed stack buffer overflow in socket_connect(). (CVE-2011-1938) Found by Mateusz Kocielski, Marek Kroemeke and Filip Palian. (Felipe)', + ), + 1 => + array ( + 'message' => 'Changed socket_set_block() and socket_set_nonblock() so they emit warnings on error.', + 'raw' => 'Changed socket_set_block() and socket_set_nonblock() so they emit warnings on error. (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #51958 (socket_accept() fails on IPv6 server sockets).', + 'raw' => 'Fixed bug #51958 (socket_accept() fails on IPv6 server sockets). (Gustavo)', + ), + ), + 'spl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54971 (Wrong result when using iterator_to_array with use_keys on true).', + 'raw' => 'Fixed bug #54971 (Wrong result when using iterator_to_array with use_keys on true). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54970 (SplFixedArray::setSize() isn\'t resizing).', + 'raw' => 'Fixed bug #54970 (SplFixedArray::setSize() isn\'t resizing). (Felipe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54609 (Certain implementation(s) of SplFixedArray cause hard crash).', + 'raw' => 'Fixed bug #54609 (Certain implementation(s) of SplFixedArray cause hard crash). (Felipe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #54384 (Dual iterators, GlobIterator, SplFileObject and SplTempFileObject crash when user-space classes don\'t call the paren constructor).', + 'raw' => 'Fixed bug #54384 (Dual iterators, GlobIterator, SplFileObject and SplTempFileObject crash when user-space classes don\'t call the paren constructor). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #54292 (Wrong parameter causes crash in SplFileObject::__construct()).', + 'raw' => 'Fixed bug #54292 (Wrong parameter causes crash in SplFileObject::__construct()). (Felipe)', + ), + 5 => + array ( + 'message' => 'Fixed bug #54291 (Crash iterating DirectoryIterator for dir name starting with \\0).', + 'raw' => 'Fixed bug #54291 (Crash iterating DirectoryIterator for dir name starting with \\0). (Gustavo)', + ), + 6 => + array ( + 'message' => 'Fixed bug #54281 (Crash in non-initialized RecursiveIteratorIterator).', + 'raw' => 'Fixed bug #54281 (Crash in non-initialized RecursiveIteratorIterator). (Felipe)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54946 (stream_get_contents infinite loop).', + 'raw' => 'Fixed bug #54946 (stream_get_contents infinite loop). (Hannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54623 (Segfault when writing to a persistent socket after closing a copy of the socket).', + 'raw' => 'Fixed bug #54623 (Segfault when writing to a persistent socket after closing a copy of the socket). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54681 (addGlob() crashes on invalid flags).', + 'raw' => 'Fixed bug #54681 (addGlob() crashes on invalid flags). (Felipe)', + ), + ), + ), + ), + '5.3.6' => + array ( + 'date' => '17 Mar 2011', + 'modules' => + array ( + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Indirect reference to $this fails to resolve if direct $this is never used in method.', + 'raw' => 'Indirect reference to $this fails to resolve if direct $this is never used in method. (Scott)', + ), + 1 => + array ( + 'message' => 'Added options to debug backtrace functions.', + 'raw' => 'Added options to debug backtrace functions. (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug numerous crashes due to setlocale (crash on error, pcre, mysql etc.) on Windows in thread safe mode.', + 'raw' => 'Fixed bug numerous crashes due to setlocale (crash on error, pcre, mysql etc.) on Windows in thread safe mode. (Pierre)', + ), + 3 => + array ( + 'message' => 'Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime error).', + 'raw' => 'Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime error). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed Bug #53958 (Closures can\'t \'use\' shared variables by value and by reference).', + 'raw' => 'Fixed Bug #53958 (Closures can\'t \'use\' shared variables by value and by reference). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed Bug #53629 (memory leak inside highlight_string()).', + 'raw' => 'Fixed Bug #53629 (memory leak inside highlight_string()). (Hannes, Ilia)', + ), + 6 => + array ( + 'message' => 'Fixed Bug #51458 (Lack of error context with nested exceptions).', + 'raw' => 'Fixed Bug #51458 (Lack of error context with nested exceptions). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed Bug #47143 (Throwing an exception in a destructor causes a fatal error).', + 'raw' => 'Fixed Bug #47143 (Throwing an exception in a destructor causes a fatal error). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #43512 (same parameter name can be used multiple times in method/function definition).', + 'raw' => 'Fixed bug #43512 (same parameter name can be used multiple times in method/function definition). (Felipe)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Added ability to connect to HTTPS sites through proxy with basic authentication using stream_context/http/header/Proxy-Authorization', + 'raw' => 'Added ability to connect to HTTPS sites through proxy with basic authentication using stream_context/http/header/Proxy-Authorization (Dmitry)', + ), + 1 => + array ( + 'message' => 'Changed default value of ini directive serialize_precision from 100 to 17.', + 'raw' => 'Changed default value of ini directive serialize_precision from 100 to 17. (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54055 (buffer overrun with high values for precision ini setting).', + 'raw' => 'Fixed bug #54055 (buffer overrun with high values for precision ini setting). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53959 (reflection data for fgetcsv out-of-date).', + 'raw' => 'Fixed bug #53959 (reflection data for fgetcsv out-of-date). (Richard)', + ), + 4 => + array ( + 'message' => 'Fixed bug #53577 (Regression introduced in 5.3.4 in open_basedir with a trailing forward slash).', + 'raw' => 'Fixed bug #53577 (Regression introduced in 5.3.4 in open_basedir with a trailing forward slash). (lekensteyn at gmail dot com, Pierre)', + ), + 5 => + array ( + 'message' => 'Fixed bug #53682 (Fix compile on the VAX).', + 'raw' => 'Fixed bug #53682 (Fix compile on the VAX). (Rasmus, jklos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #48484 (array_product() always returns 0 for an empty array).', + 'raw' => 'Fixed bug #48484 (array_product() always returns 0 for an empty array). (Ilia)', + ), + 7 => + array ( + 'message' => 'Fixed bug #48607 (fwrite() doesn\'t check reply from ftp server before exiting).', + 'raw' => 'Fixed bug #48607 (fwrite() doesn\'t check reply from ftp server before exiting). (Ilia)', + ), + ), + 'calendar extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53574 (Integer overflow in SdnToJulian, sometimes leading to segfault).', + 'raw' => 'Fixed bug #53574 (Integer overflow in SdnToJulian, sometimes leading to segfault). (Gustavo)', + ), + ), + 'dom extension' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #39771 (Made DOMDocument::saveHTML accept an optional DOMNode like DOMDocument::saveXML).', + 'raw' => 'Implemented FR #39771 (Made DOMDocument::saveHTML accept an optional DOMNode like DOMDocument::saveXML). (Gustavo)', + ), + ), + 'datetime extension' => + array ( + 0 => + array ( + 'message' => 'Fixed a bug in DateTime->modify() where absolute date/time statements had no effect.', + 'raw' => 'Fixed a bug in DateTime->modify() where absolute date/time statements had no effect. (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53729 (DatePeriod fails to initialize recurrences on 64bit big-endian systems).', + 'raw' => 'Fixed bug #53729 (DatePeriod fails to initialize recurrences on 64bit big-endian systems). (Derick, rein@basefarm.no)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52808 (Segfault when specifying interval as two dates).', + 'raw' => 'Fixed bug #52808 (Segfault when specifying interval as two dates). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52738 (Can\'t use new properties in class extended from DateInterval).', + 'raw' => 'Fixed bug #52738 (Can\'t use new properties in class extended from DateInterval). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #52290 (setDate, setISODate, setTime works wrong when DateTime created from timestamp).', + 'raw' => 'Fixed bug #52290 (setDate, setISODate, setTime works wrong when DateTime created from timestamp). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52063 (DateTime constructor\'s second argument doesn\'t have a null default value).', + 'raw' => 'Fixed bug #52063 (DateTime constructor\'s second argument doesn\'t have a null default value). (Gustavo, Stas)', + ), + ), + 'exif extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54002 (crash on crafted tag, reported by Luca Carettoni). (Pierre)', + 'raw' => 'Fixed bug #54002 (crash on crafted tag, reported by Luca Carettoni). (Pierre) (CVE-2011-0708)', + ), + ), + 'filter extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53924 (FILTER_VALIDATE_URL doesn\'t validate port number).', + 'raw' => 'Fixed bug #53924 (FILTER_VALIDATE_URL doesn\'t validate port number). (Ilia, Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges).', + 'raw' => 'Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges). (Ilia)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52209 (INPUT_ENV returns NULL for set variables (CLI)).', + 'raw' => 'Fixed bug #52209 (INPUT_ENV returns NULL for set variables (CLI)). (Ilia)', + ), + 3 => + array ( + 'message' => 'Fixed bug #47435 (FILTER_FLAG_NO_RES_RANGE don\'t work with ipv6).', + 'raw' => 'Fixed bug #47435 (FILTER_FLAG_NO_RES_RANGE don\'t work with ipv6). (Ilia, valli at icsurselva dot ch)', + ), + ), + 'fileinfo extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54016 (finfo_file() Cannot determine filetype in archives).', + 'raw' => 'Fixed bug #54016 (finfo_file() Cannot determine filetype in archives). (Hannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53837 (_() crashes on Windows when no LANG or LANGUAGE environment variable are set).', + 'raw' => 'Fixed bug #53837 (_() crashes on Windows when no LANG or LANGUAGE environment variable are set). (Pierre)', + ), + ), + 'imap extension' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #53812 (get MIME headers of the part of the email).', + 'raw' => 'Implemented FR #53812 (get MIME headers of the part of the email). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53377 (imap_mime_header_decode() doesn\'t ignore \\t during long MIME header unfolding).', + 'raw' => 'Fixed bug #53377 (imap_mime_header_decode() doesn\'t ignore \\t during long MIME header unfolding). (Adam)', + ), + ), + 'intl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53612 (Segmentation fault when using cloned several intl objects).', + 'raw' => 'Fixed bug #53612 (Segmentation fault when using cloned several intl objects). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values).', + 'raw' => 'Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values). (Felipe)', + ), + 2 => + array ( + 'message' => 'Implemented clone functionality for number, date & message formatters. .', + 'raw' => 'Implemented clone functionality for number, date & message formatters. (Stas).', + ), + ), + 'json extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53963 (Ensure error_code is always set during some failed decodings).', + 'raw' => 'Fixed bug #53963 (Ensure error_code is always set during some failed decodings). (Scott)', + ), + 1 => + array ( + 'message' => 'Fixed problem with always returning 0 as num_rows for unbuffered sets.', + 'raw' => 'Fixed problem with always returning 0 as num_rows for unbuffered sets. (Andrey, Ulf)', + ), + ), + 'mysql improved extension' => + array ( + 0 => + array ( + 'message' => 'Added \'db\' and \'catalog\' keys to the field fetching functions (FR #39847).', + 'raw' => 'Added \'db\' and \'catalog\' keys to the field fetching functions (FR #39847). (Kalle)', + ), + 1 => + array ( + 'message' => 'Fixed buggy counting of affected rows when using the text protocol. The collected statistics were wrong when multi_query was used with mysqlnd', + 'raw' => 'Fixed buggy counting of affected rows when using the text protocol. The collected statistics were wrong when multi_query was used with mysqlnd (Andrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53795 (Connect Error from MySqli (mysqlnd) when using SSL).', + 'raw' => 'Fixed bug #53795 (Connect Error from MySqli (mysqlnd) when using SSL). (Kalle)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53503 (mysqli::query returns false after successful LOAD DATA query).', + 'raw' => 'Fixed bug #53503 (mysqli::query returns false after successful LOAD DATA query). (Kalle, Andrey)', + ), + 4 => + array ( + 'message' => 'Fixed bug #53425 (mysqli_real_connect() ignores client flags when built to call libmysql).', + 'raw' => 'Fixed bug #53425 (mysqli_real_connect() ignores client flags when built to call libmysql). (Kalle, tre-php-net at crushedhat dot com)', + ), + ), + 'openssl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed stream_socket_enable_crypto() not honoring the socket timeout in server mode.', + 'raw' => 'Fixed stream_socket_enable_crypto() not honoring the socket timeout in server mode. (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54060 (Memory leaks when openssl_encrypt).', + 'raw' => 'Fixed bug #54060 (Memory leaks when openssl_encrypt). (Pierre)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54061 (Memory leaks when openssl_decrypt).', + 'raw' => 'Fixed bug #54061 (Memory leaks when openssl_decrypt). (Pierre)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53592 (stream_socket_enable_crypto() busy-waits in client mode).', + 'raw' => 'Fixed bug #53592 (stream_socket_enable_crypto() busy-waits in client mode). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Implemented FR #53447 (Cannot disable SessionTicket extension for servers that do not support it) by adding a no_ticket SSL context option.', + 'raw' => 'Implemented FR #53447 (Cannot disable SessionTicket extension for servers that do not support it) by adding a no_ticket SSL context option. (Adam, Tony)', + ), + ), + 'pdo mysql driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53551 (PDOStatement execute segfaults for pdo_mysql driver).', + 'raw' => 'Fixed bug #53551 (PDOStatement execute segfaults for pdo_mysql driver). (Johannes)', + ), + 1 => + array ( + 'message' => 'Implemented FR #47802 (Support for setting character sets in DSN strings).', + 'raw' => 'Implemented FR #47802 (Support for setting character sets in DSN strings). (Kalle)', + ), + ), + 'pdo oracle driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #39199 (Cannot load Lob data with more than 4000 bytes on ORACLE 10).', + 'raw' => 'Fixed bug #39199 (Cannot load Lob data with more than 4000 bytes on ORACLE 10). (spatar at mail dot nnov dot ru)', + ), + ), + 'pdo postgresql driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53517 (segfault in pgsql_stmt_execute() when postgres is down).', + 'raw' => 'Fixed bug #53517 (segfault in pgsql_stmt_execute() when postgres is down). (gyp at balabit dot hu)', + ), + ), + 'phar extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54247 (format-string vulnerability on Phar). (Felipe)', + 'raw' => 'Fixed bug #54247 (format-string vulnerability on Phar). (Felipe) (CVE-2011-1153)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53541 (format string bug in ext/phar).', + 'raw' => 'Fixed bug #53541 (format string bug in ext/phar). (crrodriguez at opensuse dot org, Ilia)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53898 (PHAR reports invalid error message, when the directory does not exist).', + 'raw' => 'Fixed bug #53898 (PHAR reports invalid error message, when the directory does not exist). (Ilia)', + ), + ), + 'php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Enforce security in the fastcgi protocol parsing.', + 'raw' => 'Enforce security in the fastcgi protocol parsing. (ef-lists at email dotde)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53777 (php-fpm log format now match php_error log format).', + 'raw' => 'Fixed bug #53777 (php-fpm log format now match php_error log format). (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53527 (php-fpm --test doesn\'t set a valuable return value).', + 'raw' => 'Fixed bug #53527 (php-fpm --test doesn\'t set a valuable return value). (fat)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53434 (php-fpm slowlog now also logs the original request).', + 'raw' => 'Fixed bug #53434 (php-fpm slowlog now also logs the original request). (fat)', + ), + ), + 'readline extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53630 (Fixed parameter handling inside readline() function).', + 'raw' => 'Fixed bug #53630 (Fixed parameter handling inside readline() function). (jo at feuersee dot de, Ilia)', + ), + ), + 'reflection extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53915 (ReflectionClass::getConstant(s) emits fatal error on constants with self::).', + 'raw' => 'Fixed bug #53915 (ReflectionClass::getConstant(s) emits fatal error on constants with self::). (Gustavo)', + ), + ), + 'shmop extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54193 (Integer overflow in shmop_read()). (Felipe) Reported by Jose Carlos Norte ', + 'raw' => 'Fixed bug #54193 (Integer overflow in shmop_read()). (Felipe) Reported by Jose Carlos Norte (CVE-2011-1092)', + ), + ), + 'snmp extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51336 (snmprealwalk (snmp v1) does not handle end of OID tree correctly).', + 'raw' => 'Fixed bug #51336 (snmprealwalk (snmp v1) does not handle end of OID tree correctly). (Boris Lytochkin)', + ), + ), + 'soap extension' => + array ( + 0 => + array ( + 'message' => 'Fixed possible crash introduced by the NULL poisoning patch.', + 'raw' => 'Fixed possible crash introduced by the NULL poisoning patch. (Mateusz Kocielski, Pierre)', + ), + ), + 'spl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak in DirectoryIterator::getExtension() and SplFileInfo::getExtension().', + 'raw' => 'Fixed memory leak in DirectoryIterator::getExtension() and SplFileInfo::getExtension(). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53914 (SPL assumes HAVE_GLOB is defined).', + 'raw' => 'Fixed bug #53914 (SPL assumes HAVE_GLOB is defined). (Chris Jones)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53515 (property_exists incorrect on ArrayObject null and 0 values).', + 'raw' => 'Fixed bug #53515 (property_exists incorrect on ArrayObject null and 0 values). (Felipe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #49608 (Using CachingIterator on DirectoryIterator instance segfaults).', + 'raw' => 'Fixed bug #49608 (Using CachingIterator on DirectoryIterator instance segfaults). (Felipe)', + ), + 4 => + array ( + 'message' => 'Added SplFileInfo::getExtension(). FR #48767.', + 'raw' => 'Added SplFileInfo::getExtension(). FR #48767. (Peter Cowburn)', + ), + ), + 'sqlite3 extension' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaked introduced by the NULL poisoning patch.', + 'raw' => 'Fixed memory leaked introduced by the NULL poisoning patch. (Mateusz Kocielski, Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed memory leak on SQLite3Result and SQLite3Stmt when assigning to a reference.', + 'raw' => 'Fixed memory leak on SQLite3Result and SQLite3Stmt when assigning to a reference. (Felipe)', + ), + 2 => + array ( + 'message' => 'Add SQlite3_Stmt::readonly() for checking if a statement is read only.', + 'raw' => 'Add SQlite3_Stmt::readonly() for checking if a statement is read only. (Scott)', + ), + 3 => + array ( + 'message' => 'Implemented FR #53466 (SQLite3Result::columnType() should return false after all of the rows have been fetched).', + 'raw' => 'Implemented FR #53466 (SQLite3Result::columnType() should return false after all of the rows have been fetched). (Scott)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54092 (Segmentation fault when using HTTP proxy with the FTP wrapper).', + 'raw' => 'Fixed bug #54092 (Segmentation fault when using HTTP proxy with the FTP wrapper). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53913 (Streams functions assume HAVE_GLOB is defined).', + 'raw' => 'Fixed bug #53913 (Streams functions assume HAVE_GLOB is defined). (Chris Jones)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53903 (userspace stream stat callback does not separate the elements of the returned array before converting them).', + 'raw' => 'Fixed bug #53903 (userspace stream stat callback does not separate the elements of the returned array before converting them). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Implemented FR #26158 (open arbitrary file descriptor with fopen).', + 'raw' => 'Implemented FR #26158 (open arbitrary file descriptor with fopen). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #54089 (token_get_all() does not stop after __halt_compiler).', + 'raw' => 'Fixed bug #54089 (token_get_all() does not stop after __halt_compiler). (Nikita Popov, Ilia)', + ), + ), + 'xsl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaked introduced by the NULL poisoning patch.', + 'raw' => 'Fixed memory leaked introduced by the NULL poisoning patch. (Mateusz Kocielski, Pierre)', + ), + ), + 'zip extension' => + array ( + 0 => + array ( + 'message' => 'Added the filename into the return value of stream_get_meta_data().', + 'raw' => 'Added the filename into the return value of stream_get_meta_data(). (Hannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53923 (Zip functions assume HAVE_GLOB is defined).', + 'raw' => 'Fixed bug #53923 (Zip functions assume HAVE_GLOB is defined). (Adam)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53893 (Wrong return value for ZipArchive::extractTo()).', + 'raw' => 'Fixed bug #53893 (Wrong return value for ZipArchive::extractTo()). (Pierre)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive). (Stas, Maksymilian Arciemowicz).', + 'raw' => 'Fixed bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive). (Stas, Maksymilian Arciemowicz). (CVE-2011-0421)', + ), + 4 => + array ( + 'message' => 'Fixed bug #53854 (Missing constants for compression type).', + 'raw' => 'Fixed bug #53854 (Missing constants for compression type). (Richard, Adam)', + ), + 5 => + array ( + 'message' => 'Fixed bug #53603 (ZipArchive should quiet stat errors).', + 'raw' => 'Fixed bug #53603 (ZipArchive should quiet stat errors). (brad dot froehle at gmail dot com, Gustavo)', + ), + 6 => + array ( + 'message' => 'Fixed bug #53579 (stream_get_contents() segfaults on ziparchive streams).', + 'raw' => 'Fixed bug #53579 (stream_get_contents() segfaults on ziparchive streams). (Hannes)', + ), + 7 => + array ( + 'message' => 'Fixed bug #53568 (swapped memset arguments in struct initialization).', + 'raw' => 'Fixed bug #53568 (swapped memset arguments in struct initialization). (crrodriguez at opensuse dot org)', + ), + 8 => + array ( + 'message' => 'Fixed bug #53166 (Missing parameters in docs and reflection definition).', + 'raw' => 'Fixed bug #53166 (Missing parameters in docs and reflection definition). (Richard)', + ), + 9 => + array ( + 'message' => 'Fixed bug #49072 (feof never returns true for damaged file in zip).', + 'raw' => 'Fixed bug #49072 (feof never returns true for damaged file in zip). (Gustavo, Richard Quadling)', + ), + ), + ), + ), + '5.3.5' => + array ( + 'date' => '06 Jan 2011', + 'modules' => + array ( + ), + ), + '5.3.4' => + array ( + 'date' => '09 Dec 2010', + 'modules' => + array ( + 'security enhancements' => + array ( + 0 => + array ( + 'message' => 'Fixed crash in zip extract method (possible CWE-170).', + 'raw' => 'Fixed crash in zip extract method (possible CWE-170). (Maksymilian Arciemowicz, Pierre)', + ), + 1 => + array ( + 'message' => 'Paths with NULL in them (foo\\0bar.txt) are now considered as invalid.', + 'raw' => 'Paths with NULL in them (foo\\0bar.txt) are now considered as invalid. (Rasmus)', + ), + 2 => + array ( + 'message' => 'Fixed a possible double free in imap extension (Identified by Mateusz Kocielski). (CVE-2010-4150).', + 'raw' => 'Fixed a possible double free in imap extension (Identified by Mateusz Kocielski). (CVE-2010-4150). (Ilia)', + ), + 3 => + array ( + 'message' => 'Fixed NULL pointer dereference in ZipArchive::getArchiveComment. (CVE-2010-3709).', + 'raw' => 'Fixed NULL pointer dereference in ZipArchive::getArchiveComment. (CVE-2010-3709). (Maksymilian Arciemowicz)', + ), + 4 => + array ( + 'message' => 'Fixed possible flaw in open_basedir (CVE-2010-3436).', + 'raw' => 'Fixed possible flaw in open_basedir (CVE-2010-3436). (Pierre)', + ), + 5 => + array ( + 'message' => 'Fixed MOPS-2010-24, fix string validation. (CVE-2010-2950).', + 'raw' => 'Fixed MOPS-2010-24, fix string validation. (CVE-2010-2950). (Pierre)', + ), + 6 => + array ( + 'message' => 'Fixed symbolic resolution support when the target is a DFS share.', + 'raw' => 'Fixed symbolic resolution support when the target is a DFS share. (Pierre)', + ), + 7 => + array ( + 'message' => 'Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with large amount of data) (CVE-2010-3710).', + 'raw' => 'Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with large amount of data) (CVE-2010-3710). (Adam)', + ), + ), + 'general improvements' => + array ( + 0 => + array ( + 'message' => 'Added stat support for zip stream.', + 'raw' => 'Added stat support for zip stream. (Pierre)', + ), + 1 => + array ( + 'message' => 'Added follow_location (enabled by default) option for the http stream support.', + 'raw' => 'Added follow_location (enabled by default) option for the http stream support. (Pierre)', + ), + 2 => + array ( + 'message' => 'Improved support for is_link and related functions on Windows.', + 'raw' => 'Improved support for is_link and related functions on Windows. (Pierre)', + ), + 3 => + array ( + 'message' => 'Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al.', + 'raw' => 'Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al. (Gustavo)', + ), + ), + 'implemented feature requests' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect zend multibyte at runtime.', + 'raw' => 'Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect zend multibyte at runtime. (Kalle)', + ), + 1 => + array ( + 'message' => 'Implemented FR #52173, added functions pcntl_get_last_error() and pcntl_strerror().', + 'raw' => 'Implemented FR #52173, added functions pcntl_get_last_error() and pcntl_strerror(). (nick dot telford at gmail dot com, Arnaud)', + ), + 2 => + array ( + 'message' => 'Implemented symbolic links support for open_basedir checks.', + 'raw' => 'Implemented symbolic links support for open_basedir checks. (Pierre)', + ), + 3 => + array ( + 'message' => 'Implemented FR #51804, SplFileInfo::getLinkTarget on Windows.', + 'raw' => 'Implemented FR #51804, SplFileInfo::getLinkTarget on Windows. (Pierre)', + ), + 4 => + array ( + 'message' => '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.', + 'raw' => '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. (Gustavo)', + ), + ), + 'improved mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Added new character sets to mysqlnd, which are available in MySQL 5.5', + 'raw' => 'Added new character sets to mysqlnd, which are available in MySQL 5.5 (Andrey)', + ), + ), + 'improved php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Added \'-p/--prefix\' to php-fpm to use a custom prefix and run multiple instances.', + 'raw' => 'Added \'-p/--prefix\' to php-fpm to use a custom prefix and run multiple instances. (fat)', + ), + 1 => + array ( + 'message' => 'Added custom process title for FPM.', + 'raw' => 'Added custom process title for FPM. (fat)', + ), + 2 => + array ( + 'message' => 'Added \'-t/--test\' to php-fpm to check and validate FPM conf file.', + 'raw' => 'Added \'-t/--test\' to php-fpm to check and validate FPM conf file. (fat)', + ), + 3 => + array ( + 'message' => 'Added statistics about listening socket queue length for FPM.', + 'raw' => 'Added statistics about listening socket queue length for FPM. (andrei dot nigmatulin at gmail dot com, fat)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed extract() to do not overwrite $GLOBALS and $this when using EXTR_OVERWRITE.', + 'raw' => 'Fixed extract() to do not overwrite $GLOBALS and $this when using EXTR_OVERWRITE. (jorto at redhat dot com)', + ), + 1 => + array ( + 'message' => '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 .', + 'raw' => '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 (Gustavo).', + ), + 2 => + array ( + 'message' => 'Changed the $context parameter on copy() to actually have an effect.', + 'raw' => 'Changed the $context parameter on copy() to actually have an effect. (Kalle)', + ), + 3 => + array ( + 'message' => 'Fixed htmlentities/htmlspecialchars accepting certain ill-formed UTF-8 sequences.', + 'raw' => 'Fixed htmlentities/htmlspecialchars accepting certain ill-formed UTF-8 sequences. (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #53409 (sleep() returns NULL on Windows).', + 'raw' => 'Fixed bug #53409 (sleep() returns NULL on Windows). (Pierre)', + ), + 5 => + array ( + 'message' => 'Fixed bug #53319 (strip_tags() may strip \'
    \' incorrectly).', + 'raw' => 'Fixed bug #53319 (strip_tags() may strip \'
    \' incorrectly). (Felipe)', + ), + 6 => + array ( + 'message' => 'Fixed bug #53304 (quot_print_decode does not handle lower-case hex digits).', + 'raw' => 'Fixed bug #53304 (quot_print_decode does not handle lower-case hex digits). (Ilia, daniel dot mueller at inexio dot net)', + ), + 7 => + array ( + 'message' => 'Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char).', + 'raw' => 'Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char). (Justin Martin)', + ), + 8 => + array ( + 'message' => 'Fixed bug #53226 (file_exists fails on big filenames).', + 'raw' => 'Fixed bug #53226 (file_exists fails on big filenames). (Adam)', + ), + 9 => + array ( + 'message' => 'Fixed bug #53198 (changing INI setting "from" with ini_set did not have any effect).', + 'raw' => 'Fixed bug #53198 (changing INI setting "from" with ini_set did not have any effect). (Gustavo)', + ), + 10 => + array ( + 'message' => '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).', + 'raw' => '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). (gm at tlink dot de, Gustavo)', + ), + 11 => + array ( + 'message' => 'Fixed bug #53141 (autoload misbehaves if called from closing session).', + 'raw' => 'Fixed bug #53141 (autoload misbehaves if called from closing session). (ladislav at marek dot su)', + ), + 12 => + array ( + 'message' => '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.', + 'raw' => '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. (Gustavo)', + ), + 13 => + array ( + 'message' => 'Fixed bug #52931 (strripos not overloaded with function overloading enabled).', + 'raw' => 'Fixed bug #52931 (strripos not overloaded with function overloading enabled). (Felipe)', + ), + 14 => + array ( + 'message' => 'Fixed bug #52772 (var_dump() doesn\'t check for the existence of get_class_name before calling it).', + 'raw' => 'Fixed bug #52772 (var_dump() doesn\'t check for the existence of get_class_name before calling it). (Kalle, Gustavo)', + ), + 15 => + array ( + 'message' => 'Fixed bug #52534 (var_export array with negative key).', + 'raw' => 'Fixed bug #52534 (var_export array with negative key). (Felipe)', + ), + 16 => + array ( + 'message' => 'Fixed bug #52327 (base64_decode() improper handling of leading padding in strict mode).', + 'raw' => 'Fixed bug #52327 (base64_decode() improper handling of leading padding in strict mode). (Ilia)', + ), + 17 => + array ( + 'message' => 'Fixed bug #52260 (dns_get_record fails with non-existing domain on Windows).', + 'raw' => 'Fixed bug #52260 (dns_get_record fails with non-existing domain on Windows). (a_jelly_doughnut at phpbb dot com, Pierre)', + ), + 18 => + array ( + 'message' => 'Fixed bug #50953 (socket will not connect to IPv4 address when the host has both IPv4 and IPv6 addresses, on Windows).', + 'raw' => 'Fixed bug #50953 (socket will not connect to IPv4 address when the host has both IPv4 and IPv6 addresses, on Windows). (Gustavo, Pierre)', + ), + 19 => + array ( + 'message' => 'Fixed bug #50524 (proc_open on Windows does not respect cwd as it does on other platforms).', + 'raw' => 'Fixed bug #50524 (proc_open on Windows does not respect cwd as it does on other platforms). (Pierre)', + ), + 20 => + array ( + 'message' => 'Fixed bug #49687 (utf8_decode vulnerabilities and deficiencies in the number of reported malformed sequences). (CVE-2010-3870)', + 'raw' => 'Fixed bug #49687 (utf8_decode vulnerabilities and deficiencies in the number of reported malformed sequences). (CVE-2010-3870) (Gustavo)', + ), + 21 => + array ( + 'message' => 'Fixed bug #49407 (get_html_translation_table doesn\'t handle UTF-8).', + 'raw' => 'Fixed bug #49407 (get_html_translation_table doesn\'t handle UTF-8). (Gustavo)', + ), + 22 => + array ( + 'message' => 'Fixed bug #48831 (php -i has different output to php --ini).', + 'raw' => 'Fixed bug #48831 (php -i has different output to php --ini). (Richard, Pierre)', + ), + 23 => + array ( + 'message' => 'Fixed bug #47643 (array_diff() takes over 3000 times longer than php 5.2.4).', + 'raw' => 'Fixed bug #47643 (array_diff() takes over 3000 times longer than php 5.2.4). (Felipe)', + ), + 24 => + array ( + 'message' => 'Fixed bug #47168 (printf of floating point variable prints maximum of 40 decimal places).', + 'raw' => 'Fixed bug #47168 (printf of floating point variable prints maximum of 40 decimal places). (Ilia)', + ), + 25 => + array ( + 'message' => 'Fixed bug #46587 (mt_rand() does not check that max is greater than min).', + 'raw' => 'Fixed bug #46587 (mt_rand() does not check that max is greater than min). (Ilia)', + ), + 26 => + array ( + 'message' => 'Fixed bug #29085 (bad default include_path on Windows).', + 'raw' => 'Fixed bug #29085 (bad default include_path on Windows). (Pierre)', + ), + 27 => + array ( + 'message' => 'Fixed bug #25927 (get_html_translation_table calls the \' ' instead of ').', + 'raw' => 'Fixed bug #25927 (get_html_translation_table calls the \' ' instead of '). (Gustavo)', + ), + ), + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Reverted fix for bug #51176 (Static calling in non-static method behaves like $this->).', + 'raw' => 'Reverted fix for bug #51176 (Static calling in non-static method behaves like $this->). (Felipe)', + ), + 1 => + array ( + 'message' => 'Changed deprecated ini options on startup from E_WARNING to E_DEPRECATED.', + 'raw' => 'Changed deprecated ini options on startup from E_WARNING to E_DEPRECATED. (Kalle)', + ), + 2 => + array ( + 'message' => 'Fixed NULL dereference in lex_scan on zend multibyte builds where the script had a flex incompatible encoding and there was no converter.', + 'raw' => 'Fixed NULL dereference in lex_scan on zend multibyte builds where the script had a flex incompatible encoding and there was no converter. (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed covariance of return-by-ref constraints.', + 'raw' => 'Fixed covariance of return-by-ref constraints. (Etienne)', + ), + 4 => + array ( + 'message' => 'Fixed bug #53305 (E_NOTICE when defining a constant starts with __COMPILER_HALT_OFFSET__).', + 'raw' => 'Fixed bug #53305 (E_NOTICE when defining a constant starts with __COMPILER_HALT_OFFSET__). (Felipe)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF).', + 'raw' => 'Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early).', + 'raw' => 'Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry)', + ), + 7 => + array ( + 'message' => 'Fixed bug #52786 (PHP should reset section to [PHP] after ini sections).', + 'raw' => 'Fixed bug #52786 (PHP should reset section to [PHP] after ini sections). (Fedora at famillecollet dot com)', + ), + 8 => + array ( + 'message' => 'Fixed bug #52508 (newline problem with parse_ini_file+INI_SCANNER_RAW).', + 'raw' => 'Fixed bug #52508 (newline problem with parse_ini_file+INI_SCANNER_RAW). (Felipe)', + ), + 9 => + array ( + 'message' => 'Fixed bug #52484 (__set() ignores setting properties with empty names).', + 'raw' => 'Fixed bug #52484 (__set() ignores setting properties with empty names). (Felipe)', + ), + 10 => + array ( + 'message' => 'Fixed bug #52361 (Throwing an exception in a destructor causes invalid catching).', + 'raw' => 'Fixed bug #52361 (Throwing an exception in a destructor causes invalid catching). (Dmitry)', + ), + 11 => + array ( + 'message' => 'Fixed bug #51008 (Zend/tests/bug45877.phpt fails).', + 'raw' => 'Fixed bug #51008 (Zend/tests/bug45877.phpt fails). (Dmitry)', + ), + ), + 'build issues' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52436 (Compile error if systems do not have stdint.h)', + 'raw' => 'Fixed bug #52436 (Compile error if systems do not have stdint.h) (Sriram Natarajan)', + ), + 1 => + array ( + 'message' => 'Fixed bug #50345 (nanosleep not detected properly on some solaris versions).', + 'raw' => 'Fixed bug #50345 (nanosleep not detected properly on some solaris versions). (Ulf, Tony)', + ), + 2 => + array ( + 'message' => 'Fixed bug #49215 (make fails on glob_wrapper).', + 'raw' => 'Fixed bug #49215 (make fails on glob_wrapper). (Felipe)', + ), + ), + 'calendar extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52744 (cal_days_in_month incorrect for December 1 BCE).', + 'raw' => 'Fixed bug #52744 (cal_days_in_month incorrect for December 1 BCE). (gpap at internet dot gr, Adam)', + ), + ), + 'curl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52828 (curl_setopt does not accept persistent streams).', + 'raw' => 'Fixed bug #52828 (curl_setopt does not accept persistent streams). (Gustavo, Ilia)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52827 (cURL leaks handle and causes assertion error (CURLOPT_STDERR)).', + 'raw' => 'Fixed bug #52827 (cURL leaks handle and causes assertion error (CURLOPT_STDERR)). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52202 (CURLOPT_PRIVATE gets corrupted).', + 'raw' => 'Fixed bug #52202 (CURLOPT_PRIVATE gets corrupted). (Ilia)', + ), + 3 => + array ( + 'message' => 'Fixed bug #50410 (curl extension slows down PHP on Windows).', + 'raw' => 'Fixed bug #50410 (curl extension slows down PHP on Windows). (Pierre)', + ), + ), + 'datetime extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53297 (gettimeofday implementation in php/win32/time.c can return 1 million microsecs).', + 'raw' => 'Fixed bug #53297 (gettimeofday implementation in php/win32/time.c can return 1 million microsecs). (ped at 7gods dot org)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52668 (Iterating over a dateperiod twice is broken).', + 'raw' => 'Fixed bug #52668 (Iterating over a dateperiod twice is broken). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52454 (Relative dates and getTimestamp increments by one day).', + 'raw' => 'Fixed bug #52454 (Relative dates and getTimestamp increments by one day). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52430 (date_parse parse 24:xx:xx as valid time).', + 'raw' => 'Fixed bug #52430 (date_parse parse 24:xx:xx as valid time). (Derick)', + ), + 4 => + array ( + 'message' => 'Added support for the ( and ) delimiters/separators to DateTime::createFromFormat().', + 'raw' => 'Added support for the ( and ) delimiters/separators to DateTime::createFromFormat(). (Derick)', + ), + ), + 'dba extension' => + array ( + 0 => + array ( + 'message' => 'Added Berkeley DB 5.1 support to the DBA extension.', + 'raw' => 'Added Berkeley DB 5.1 support to the DBA extension. (Oracle Corp.)', + ), + ), + 'dom extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52656 (DOMCdataSection does not work with splitText).', + 'raw' => 'Fixed bug #52656 (DOMCdataSection does not work with splitText). (Ilia)', + ), + ), + 'filter extension' => + array ( + 0 => + array ( + 'message' => 'Fixed the filter extension accepting IPv4 octets with a leading 0 as that belongs to the unsupported "dotted octal" representation.', + 'raw' => 'Fixed the filter extension accepting IPv4 octets with a leading 0 as that belongs to the unsupported "dotted octal" representation. (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53236 (problems in the validation of IPv6 addresses with leading and trailing :: in the filter extension).', + 'raw' => 'Fixed bug #53236 (problems in the validation of IPv6 addresses with leading and trailing :: in the filter extension). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #50117 (problems in the validation of IPv6 addresses with IPv4 addresses and ::).', + 'raw' => 'Fixed bug #50117 (problems in the validation of IPv6 addresses with IPv4 addresses and ::). (Gustavo)', + ), + ), + 'gd extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53492 (fix crash if anti-aliasing steps are invalid).', + 'raw' => 'Fixed bug #53492 (fix crash if anti-aliasing steps are invalid). (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed potential memory leak on a png error', + 'raw' => 'Fixed potential memory leak on a png error (Rasmus, Paul Saab)', + ), + ), + 'gmp extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52906 (gmp_mod returns negative result when non-negative is expected).', + 'raw' => 'Fixed bug #52906 (gmp_mod returns negative result when non-negative is expected). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52849 (GNU MP invalid version match).', + 'raw' => 'Fixed bug #52849 (GNU MP invalid version match). (Adam)', + ), + ), + 'hash extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51003 (unaligned memory access in ext/hash/hash_tiger.c).', + 'raw' => 'Fixed bug #51003 (unaligned memory access in ext/hash/hash_tiger.c). (Mike, Ilia)', + ), + ), + 'iconv extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52941 (The \'iconv_mime_decode_headers\' function is skipping headers).', + 'raw' => 'Fixed bug #52941 (The \'iconv_mime_decode_headers\' function is skipping headers). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52599 (iconv output handler outputs incorrect content type when flags are used).', + 'raw' => 'Fixed bug #52599 (iconv output handler outputs incorrect content type when flags are used). (Ilia)', + ), + 2 => + array ( + 'message' => 'Fixed bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded words).', + 'raw' => 'Fixed bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded words). (Ilia)', + ), + ), + 'intl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed crashes on invalid parameters in intl extension. (CVE-2010-4409).', + 'raw' => 'Fixed crashes on invalid parameters in intl extension. (CVE-2010-4409). (Stas, Maksymilian Arciemowicz)', + ), + 1 => + array ( + 'message' => 'Added support for formatting the timestamp stored in a DateTime object.', + 'raw' => 'Added support for formatting the timestamp stored in a DateTime object. (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #50590 (IntlDateFormatter::parse result is limited to the integer range).', + 'raw' => 'Fixed bug #50590 (IntlDateFormatter::parse result is limited to the integer range). (Stas)', + ), + ), + 'mbstring extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53273 (mb_strcut() returns garbage with the excessive length parameter). (CVE-2010-4156)', + 'raw' => 'Fixed bug #53273 (mb_strcut() returns garbage with the excessive length parameter). (CVE-2010-4156) (Mateusz Kocielski, Pierre, Moriyoshi)', + ), + 1 => + array ( + 'message' => '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) .', + 'raw' => '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) (Gustavo).', + ), + 2 => + array ( + 'message' => 'Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header).', + 'raw' => 'Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header). (Adam)', + ), + ), + 'mssql extension' => + array ( + 0 => + array ( + 'message' => 'Fixed possible crash in mssql_fetch_batch().', + 'raw' => 'Fixed possible crash in mssql_fetch_batch(). (Kalle)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52843 (Segfault when optional parameters are not passed in to mssql_connect).', + 'raw' => 'Fixed bug #52843 (Segfault when optional parameters are not passed in to mssql_connect). (Felipe)', + ), + ), + 'mysql extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52636 (php_mysql_fetch_hash writes long value into int).', + 'raw' => 'Fixed bug #52636 (php_mysql_fetch_hash writes long value into int). (Kalle, rein at basefarm dot no)', + ), + ), + 'mysqli extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52891 (Wrong data inserted with mysqli/mysqlnd when using mysqli_stmt_bind_param and value> PHP_INT_MAX).', + 'raw' => 'Fixed bug #52891 (Wrong data inserted with mysqli/mysqlnd when using mysqli_stmt_bind_param and value> PHP_INT_MAX). (Andrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52686 (mysql_stmt_attr_[gs]et argument points to incorrect type).', + 'raw' => 'Fixed bug #52686 (mysql_stmt_attr_[gs]et argument points to incorrect type). (rein at basefarm dot no)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52654 (mysqli doesn\'t install headers with structures it uses).', + 'raw' => 'Fixed bug #52654 (mysqli doesn\'t install headers with structures it uses). (Andrey)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52433 (Call to undefined method mysqli::poll() - must be static).', + 'raw' => 'Fixed bug #52433 (Call to undefined method mysqli::poll() - must be static). (Andrey)', + ), + 4 => + array ( + 'message' => 'Fixed bug #52417 (MySQLi build failure with mysqlnd on MacOS X).', + 'raw' => 'Fixed bug #52417 (MySQLi build failure with mysqlnd on MacOS X). (Andrey)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52413 (MySQLi/libmysql build failure on OS X, FreeBSD).', + 'raw' => 'Fixed bug #52413 (MySQLi/libmysql build failure on OS X, FreeBSD). (Andrey)', + ), + 6 => + array ( + 'message' => 'Fixed bug #52390 (mysqli_report() should be per-request setting).', + 'raw' => 'Fixed bug #52390 (mysqli_report() should be per-request setting). (Kalle)', + ), + 7 => + array ( + 'message' => 'Fixed bug #52302 (mysqli_fetch_all does not work with MYSQLI_USE_RESULT).', + 'raw' => 'Fixed bug #52302 (mysqli_fetch_all does not work with MYSQLI_USE_RESULT). (Andrey)', + ), + 8 => + array ( + 'message' => 'Fixed bug #52221 (Misbehaviour of magic_quotes_runtime (get/set)).', + 'raw' => 'Fixed bug #52221 (Misbehaviour of magic_quotes_runtime (get/set)). (Andrey)', + ), + 9 => + array ( + 'message' => 'Fixed bug #45921 (Can\'t initialize character set hebrew).', + 'raw' => 'Fixed bug #45921 (Can\'t initialize character set hebrew). (Andrey)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52613 (crash in mysqlnd after hitting memory limit).', + 'raw' => 'Fixed bug #52613 (crash in mysqlnd after hitting memory limit). (Andrey)', + ), + ), + 'odbc extension' => + array ( + ), + 'openssl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed possible blocking behavior in openssl_random_pseudo_bytes on Windows.', + 'raw' => 'Fixed possible blocking behavior in openssl_random_pseudo_bytes on Windows. (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53136 (Invalid read on openssl_csr_new()).', + 'raw' => 'Fixed bug #53136 (Invalid read on openssl_csr_new()). (Felipe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52947 (segfault when ssl stream option capture_peer_cert_chain used).', + 'raw' => 'Fixed bug #52947 (segfault when ssl stream option capture_peer_cert_chain used). (Felipe)', + ), + ), + 'oracle database extension (oci8)' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53284 (Valgrind warnings in oci_set_* functions)', + 'raw' => 'Fixed bug #53284 (Valgrind warnings in oci_set_* functions) (Oracle Corp.)', + ), + 1 => + array ( + 'message' => '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.', + 'raw' => '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. (Oracle Corp.)', + ), + ), + 'pcntl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52784 (Race condition when handling many concurrent signals).', + 'raw' => 'Fixed bug #52784 (Race condition when handling many concurrent signals). (nick dot telford at gmail dot com, Arnaud)', + ), + ), + 'pcre extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52971 (PCRE-Meta-Characters not working with utf-8).', + 'raw' => 'Fixed bug #52971 (PCRE-Meta-Characters not working with utf-8). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52732 (Docs say preg_match() returns FALSE on error, but it returns int(0)).', + 'raw' => 'Fixed bug #52732 (Docs say preg_match() returns FALSE on error, but it returns int(0)). (slugonamission at gmail dot com)', + ), + ), + 'phar extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50987 (unaligned memory access in phar.c).', + 'raw' => 'Fixed bug #50987 (unaligned memory access in phar.c). (geissert at debian dot org, Ilia)', + ), + ), + 'php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53412 (segfault when using -y).', + 'raw' => 'Fixed bug #53412 (segfault when using -y). (fat)', + ), + 1 => + array ( + 'message' => 'Fixed inconsistent backlog default value (-1) in FPM on many systems.', + 'raw' => 'Fixed inconsistent backlog default value (-1) in FPM on many systems. (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52501 (libevent made FPM crashed when forking -- libevent has been removed).', + 'raw' => 'Fixed bug #52501 (libevent made FPM crashed when forking -- libevent has been removed). (fat)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they were not available).', + 'raw' => 'Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they were not available). (fat)', + ), + 4 => + array ( + 'message' => 'Fixed bug #52693 (configuration file errors are not logged to stderr).', + 'raw' => 'Fixed bug #52693 (configuration file errors are not logged to stderr). (fat)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52674 (FPM Status page returns inconsistent Content-Type headers).', + 'raw' => 'Fixed bug #52674 (FPM Status page returns inconsistent Content-Type headers). (fat)', + ), + 6 => + array ( + 'message' => 'Fixed bug #52498 (libevent was not only linked to php-fpm).', + 'raw' => 'Fixed bug #52498 (libevent was not only linked to php-fpm). (fat)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52699 (PDO bindValue writes long int 32bit enum).', + 'raw' => 'Fixed bug #52699 (PDO bindValue writes long int 32bit enum). (rein at basefarm dot no)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52487 (PDO::FETCH_INTO leaks memory).', + 'raw' => 'Fixed bug #52487 (PDO::FETCH_INTO leaks memory). (Felipe)', + ), + ), + 'pdo dblib driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52546 (pdo_dblib segmentation fault when iterating MONEY values).', + 'raw' => 'Fixed bug #52546 (pdo_dblib segmentation fault when iterating MONEY values). (Felipe)', + ), + ), + 'pdo firebird driver' => + array ( + 0 => + array ( + 'message' => 'Restored firebird support (VC9 builds only).', + 'raw' => 'Restored firebird support (VC9 builds only). (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53335 (pdo_firebird did not implement rowCount()).', + 'raw' => 'Fixed bug #53335 (pdo_firebird did not implement rowCount()). (preeves at ibphoenix dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53323 (pdo_firebird getAttribute() crash).', + 'raw' => 'Fixed bug #53323 (pdo_firebird getAttribute() crash). (preeves at ibphoenix dot com)', + ), + ), + 'pdo mysql driver' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52745 (Binding params doesn\'t work when selecting a date inside a CASE-WHEN).', + 'raw' => 'Fixed bug #52745 (Binding params doesn\'t work when selecting a date inside a CASE-WHEN). (Andrey)', + ), + ), + 'postgresql extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47199 (pg_delete() fails on NULL).', + 'raw' => 'Fixed bug #47199 (pg_delete() fails on NULL). (ewgraf at gmail dot com)', + ), + ), + 'reflection extension' => + array ( + 0 => + array ( + 'message' => 'Fixed ReflectionProperty::isDefault() giving a wrong result for properties obtained with ReflectionClass::getProperties().', + 'raw' => 'Fixed ReflectionProperty::isDefault() giving a wrong result for properties obtained with ReflectionClass::getProperties(). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53366 (Reflection doesnt get dynamic property value from getProperty()).', + 'raw' => 'Fixed bug #53366 (Reflection doesnt get dynamic property value from getProperty()). (Felipe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52854 (ReflectionClass::newInstanceArgs does not work for classes without constructors).', + 'raw' => 'Fixed bug #52854 (ReflectionClass::newInstanceArgs does not work for classes without constructors). (Johannes)', + ), + ), + 'soap extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44248 (RFC2616 transgression while HTTPS request through proxy with SoapClient object).', + 'raw' => 'Fixed bug #44248 (RFC2616 transgression while HTTPS request through proxy with SoapClient object). (Dmitry)', + ), + ), + 'spl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53362 (Segmentation fault when extending SplFixedArray).', + 'raw' => 'Fixed bug #53362 (Segmentation fault when extending SplFixedArray). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53279 (SplFileObject doesn\'t initialise default CSV escape character).', + 'raw' => 'Fixed bug #53279 (SplFileObject doesn\'t initialise default CSV escape character). (Adam)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53144 (Segfault in SplObjectStorage::removeAll()).', + 'raw' => 'Fixed bug #53144 (Segfault in SplObjectStorage::removeAll()). (Felipe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53071 (SPLObjectStorage defeats gc_collect_cycles).', + 'raw' => 'Fixed bug #53071 (SPLObjectStorage defeats gc_collect_cycles). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #52573 (SplFileObject::fscanf Segmentation fault).', + 'raw' => 'Fixed bug #52573 (SplFileObject::fscanf Segmentation fault). (Felipe)', + ), + 5 => + array ( + 'message' => 'Fixed bug #51763 (SplFileInfo::getType() does not work symbolic link and directory).', + 'raw' => 'Fixed bug #51763 (SplFileInfo::getType() does not work symbolic link and directory). (Pierre)', + ), + 6 => + array ( + 'message' => 'Fixed bug #50481 (Storing many SPLFixedArray in an array crashes).', + 'raw' => 'Fixed bug #50481 (Storing many SPLFixedArray in an array crashes). (Felipe)', + ), + 7 => + array ( + 'message' => 'Fixed bug #50579 (RegexIterator::REPLACE doesn\'t work).', + 'raw' => 'Fixed bug #50579 (RegexIterator::REPLACE doesn\'t work). (Felipe)', + ), + ), + 'sqlite3 extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53463 (sqlite3 columnName() segfaults on bad column_number).', + 'raw' => 'Fixed bug #53463 (sqlite3 columnName() segfaults on bad column_number). (Felipe)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => '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.', + 'raw' => '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. (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails with streams opened with, inter alia, the \'xb\' mode).', + 'raw' => 'Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails with streams opened with, inter alia, the \'xb\' mode). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53006 (stream_get_contents has an unpredictable behavior when the underlying stream does not support seeking).', + 'raw' => 'Fixed bug #53006 (stream_get_contents has an unpredictable behavior when the underlying stream does not support seeking). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52944 (Invalid write on second and subsequent reads with an inflate filter fed invalid data).', + 'raw' => 'Fixed bug #52944 (Invalid write on second and subsequent reads with an inflate filter fed invalid data). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the stream).', + 'raw' => 'Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the stream). (Gustavo)', + ), + ), + 'wddx extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52468 (wddx_deserialize corrupts integer field value when left empty).', + 'raw' => 'Fixed bug #52468 (wddx_deserialize corrupts integer field value when left empty). (Felipe)', + ), + ), + 'zlib extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52926 (zlib fopen wrapper does not use context).', + 'raw' => 'Fixed bug #52926 (zlib fopen wrapper does not use context). (Gustavo)', + ), + ), + ), + ), + '5.3.3' => + array ( + 'date' => '22 Jul 2010', + 'modules' => + array ( + 'reset error state in pdo' => + array ( + ), + 'implemented fr#51295 (sqlite3' => + array ( + ), + 'fixed a possible memory corruption in arrayobject' => + array ( + ), + 'fixed bug #52115 (mysqli_result' => + array ( + ), + 'fixed bug #51943 (aix' => + array ( + ), + 'fixed bug #51911 (reflectionparameter' => + array ( + ), + 'fixed bug #51690 (phar' => + array ( + ), + 'fixed bug #51609 (pg_copy_to' => + array ( + ), + 'fixed bug #51608 (pg_copy_to' => + array ( + ), + 'fixed bug #51393 (datetime' => + array ( + ), + 'fixed bug #50055 (datetime' => + array ( + ), + 'fixed bug #49778 (dateinterval' => + array ( + ), + 'fixed bug #49081 (datetime' => + array ( + ), + 'fixed bug #49059 (datetime' => + array ( + ), + 'fixed bug #48983 (domdocument' => + array ( + ), + 'fixed bug #48361 (splfileinfo' => + array ( + ), + ), + ), + '5.3.2' => + array ( + 'date' => '04 Mar 2010', + 'modules' => + array ( + 'added reflectionmethod' => + array ( + ), + 'added collator' => + array ( + ), + 'fixed bug #50661 (domdocument' => + array ( + ), + 'fixed bug #50508 (compile failure' => + array ( + ), + 'fixed bug #50458 (pdo' => + array ( + ), + 'fixed bug #50152 (reflectionclass' => + array ( + ), + 'fixed bug #50146 (property_exists' => + array ( + ), + 'fixed bug #49938 (phar' => + array ( + ), + 'fixed bug #49719 (reflectionclass' => + array ( + ), + 'fixed bug #49560 (oci8' => + array ( + ), + 'fixed bug #44827 (define() allows' => + array ( + ), + ), + ), + '5.3.1' => + array ( + 'date' => '19 Nov 2009', + 'modules' => + array ( + 'fixed crash in sqlitedatabase' => + array ( + ), + 'fixed bug #49286 (php' => + array ( + ), + 'fixed bug #49064 (--enable-session=shared does not work' => + array ( + ), + 'fixed bug #49032 (splfileobject' => + array ( + ), + 'fixed bug #48872 (string.c' => + array ( + ), + 'fixed bug #48757 (reflectionfunction' => + array ( + ), + 'fixed bug #48745 (mysqlnd' => + array ( + ), + 'fixed bug #48719 (parse_ini_*()' => + array ( + ), + 'fixed bug #48660 (parse_ini_*()' => + array ( + ), + 'fixed bug #48198 error' => + array ( + ), + ), + ), + '5.3.0' => + array ( + 'date' => '30 Jun 2009', + 'modules' => + array ( + 'moved extensions to pecl (derick, lukas, pierre, scott)' => + array ( + 0 => + array ( + 'message' => 'ext/dbase', + 'raw' => 'ext/dbase', + ), + 1 => + array ( + 'message' => 'ext/fbsql', + 'raw' => 'ext/fbsql', + ), + 2 => + array ( + 'message' => 'ext/fdf', + 'raw' => 'ext/fdf', + ), + 3 => + array ( + 'message' => 'ext/ncurses', + 'raw' => 'ext/ncurses', + ), + 4 => + array ( + 'message' => 'ext/mhash', + 'raw' => 'ext/mhash (BC layer is now entirely within ext/hash)', + ), + 5 => + array ( + 'message' => 'ext/ming', + 'raw' => 'ext/ming', + ), + 6 => + array ( + 'message' => 'ext/msql', + 'raw' => 'ext/msql', + ), + 7 => + array ( + 'message' => 'ext/sybase', + 'raw' => 'ext/sybase (not maintained anymore, sybase_ct has to be used instead)', + ), + ), + 'improved php syntax and semantics' => + array ( + 0 => + array ( + 'message' => 'Added lambda functions and closures.', + 'raw' => 'Added lambda functions and closures. (Christian Seiler, Dmitry)', + ), + 1 => + array ( + 'message' => 'Added "jump label" operator (limited "goto").', + 'raw' => 'Added "jump label" operator (limited "goto"). (Dmitry, Sara)', + ), + 2 => + array ( + 'message' => 'Added NOWDOC syntax.', + 'raw' => 'Added NOWDOC syntax. (Gwynne Raskind, Stas, Dmitry)', + ), + 3 => + array ( + 'message' => 'Added HEREDOC syntax with double quotes.', + 'raw' => 'Added HEREDOC syntax with double quotes. (Lars Strojny, Felipe)', + ), + 4 => + array ( + 'message' => 'Added support for using static HEREDOCs to initialize static variables and class members or constants.', + 'raw' => 'Added support for using static HEREDOCs to initialize static variables and class members or constants. (Matt)', + ), + 5 => + array ( + 'message' => 'Improved syntax highlighting and consistency for variables in double-quoted strings and literal text in HEREDOCs and backticks.', + 'raw' => 'Improved syntax highlighting and consistency for variables in double-quoted strings and literal text in HEREDOCs and backticks. (Matt)', + ), + 6 => + array ( + 'message' => 'Added "?:" operator.', + 'raw' => 'Added "?:" operator. (Marcus)', + ), + 7 => + array ( + 'message' => 'Added support for namespaces.', + 'raw' => 'Added support for namespaces. (Dmitry, Stas, Gregory, Marcus)', + ), + 8 => + array ( + 'message' => 'Added support for Late Static Binding.', + 'raw' => 'Added support for Late Static Binding. (Dmitry, Etienne Kneuss)', + ), + 9 => + array ( + 'message' => 'Added support for __callStatic() magic method.', + 'raw' => 'Added support for __callStatic() magic method. (Sara)', + ), + 10 => + array ( + 'message' => 'Added forward_static_call(_array) to complete LSB.', + 'raw' => 'Added forward_static_call(_array) to complete LSB. (Mike Lively)', + ), + 11 => + array ( + 'message' => 'Added support for dynamic access of static members using $foo::myFunc().', + 'raw' => 'Added support for dynamic access of static members using $foo::myFunc(). (Etienne Kneuss)', + ), + 12 => + array ( + 'message' => 'Improved checks for callbacks.', + 'raw' => 'Improved checks for callbacks. (Marcus)', + ), + 13 => + array ( + 'message' => 'Added __DIR__ constant.', + 'raw' => 'Added __DIR__ constant. (Lars Strojny)', + ), + 14 => + array ( + 'message' => '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.', + 'raw' => '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)', + ), + 15 => + array ( + 'message' => 'Added "request_order" INI variable to control specifically $_REQUEST behavior.', + 'raw' => 'Added "request_order" INI variable to control specifically $_REQUEST behavior. (Stas)', + ), + 16 => + array ( + 'message' => 'Added support for exception linking.', + 'raw' => 'Added support for exception linking. (Marcus)', + ), + 17 => + array ( + 'message' => 'Added ability to handle exceptions in destructors.', + 'raw' => 'Added ability to handle exceptions in destructors. (Marcus)', + ), + ), + 'improved php runtime speed and memory usage' => + array ( + 0 => + array ( + 'message' => 'Substitute global-scope, persistent constants with their values at compile time.', + 'raw' => 'Substitute global-scope, persistent constants with their values at compile time. (Matt)', + ), + 1 => + array ( + 'message' => 'Optimized ZEND_SIGNED_MULTIPLY_LONG().', + 'raw' => 'Optimized ZEND_SIGNED_MULTIPLY_LONG(). (Matt)', + ), + 2 => + array ( + 'message' => 'Removed direct executor recursion.', + 'raw' => 'Removed direct executor recursion. (Dmitry)', + ), + 3 => + array ( + 'message' => 'Use fastcall calling convention in executor on x86.', + 'raw' => 'Use fastcall calling convention in executor on x86. (Dmitry)', + ), + 4 => + array ( + 'message' => 'Use IS_CV for direct access to $this variable.', + 'raw' => 'Use IS_CV for direct access to $this variable. (Dmitry)', + ), + 5 => + array ( + 'message' => 'Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR).', + 'raw' => 'Use ZEND_FREE() opcode instead of ZEND_SWITCH_FREE(IS_TMP_VAR). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Lazy EG(active_symbol_table) initialization.', + 'raw' => 'Lazy EG(active_symbol_table) initialization. (Dmitry)', + ), + 7 => + array ( + 'message' => 'Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not used.', + 'raw' => 'Optimized ZEND_RETURN opcode to not allocate and copy return value if it is not used. (Dmitry)', + ), + 8 => + array ( + 'message' => 'Replaced all flex based scanners with re2c based scanners.', + 'raw' => 'Replaced all flex based scanners with re2c based scanners. (Marcus, Nuno, Scott)', + ), + 9 => + array ( + 'message' => 'Added garbage collector. .', + 'raw' => 'Added garbage collector. (David Wang, Dmitry).', + ), + 10 => + array ( + 'message' => 'Improved PHP binary size and startup speed with GCC4 visibility control.', + 'raw' => 'Improved PHP binary size and startup speed with GCC4 visibility control. (Nuno)', + ), + 11 => + array ( + 'message' => 'Improved engine stack implementation for better performance and stability.', + 'raw' => 'Improved engine stack implementation for better performance and stability. (Dmitry)', + ), + 12 => + array ( + 'message' => 'Improved memory usage by moving constants to read only memory.', + 'raw' => 'Improved memory usage by moving constants to read only memory. (Dmitry, Pierre)', + ), + 13 => + array ( + 'message' => 'Changed exception handling. Now each op_array doesn\'t contain ZEND_HANDLE_EXCEPTION opcode in the end.', + 'raw' => 'Changed exception handling. Now each op_array doesn\'t contain ZEND_HANDLE_EXCEPTION opcode in the end. (Dmitry)', + ), + 14 => + array ( + 'message' => 'Optimized require_once() and include_once() by eliminating fopen(3) on second usage.', + 'raw' => 'Optimized require_once() and include_once() by eliminating fopen(3) on second usage. (Dmitry)', + ), + 15 => + array ( + 'message' => 'Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode.', + 'raw' => 'Optimized ZEND_FETCH_CLASS + ZEND_ADD_INTERFACE into single ZEND_ADD_INTERFACE opcode. (Dmitry)', + ), + 16 => + array ( + 'message' => 'Optimized string searching for a single character.', + 'raw' => 'Optimized string searching for a single character. (Michal Dziemianko, Scott)', + ), + 17 => + array ( + 'message' => 'Optimized interpolated strings to use one less opcode.', + 'raw' => 'Optimized interpolated strings to use one less opcode. (Matt)', + ), + ), + 'improved php.ini handling' => + array ( + 0 => + array ( + 'message' => 'Added ".htaccess" style user-defined php.ini files support for CGI/FastCGI.', + 'raw' => 'Added ".htaccess" style user-defined php.ini files support for CGI/FastCGI.', + ), + 1 => + array ( + 'message' => '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.', + 'raw' => '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.', + ), + 2 => + array ( + 'message' => 'Added better error reporting for php.ini syntax errors.', + 'raw' => 'Added better error reporting for php.ini syntax errors.', + ), + 3 => + array ( + 'message' => 'Allowed using full path to load modules using "extension" directive.', + 'raw' => 'Allowed using full path to load modules using "extension" directive.', + ), + 4 => + array ( + 'message' => 'Allowed "ini-variables" to be used almost everywhere ini php.ini files.', + 'raw' => 'Allowed "ini-variables" to be used almost everywhere ini php.ini files.', + ), + 5 => + array ( + 'message' => 'Allowed using alphanumeric/variable indexes in "array" ini options.', + 'raw' => 'Allowed using alphanumeric/variable indexes in "array" ini options.', + ), + 6 => + array ( + 'message' => '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.', + 'raw' => '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.', + ), + 7 => + array ( + 'message' => 'Fixed get_cfg_var() to be able to return "array" ini options.', + 'raw' => 'Fixed get_cfg_var() to be able to return "array" ini options.', + ), + 8 => + array ( + 'message' => 'Added optional parameter to ini_get_all() to only retrieve the current value.', + 'raw' => 'Added optional parameter to ini_get_all() to only retrieve the current value. (Hannes)', + ), + ), + 'improved windows support' => + array ( + 0 => + array ( + 'message' => 'Update all libraries to their latest stable version. .', + 'raw' => 'Update all libraries to their latest stable version. (Pierre, Rob, Liz, Garrett).', + ), + 1 => + array ( + 'message' => 'Added Windows support for stat(), touch(), filemtime(), filesize() and related functions.', + 'raw' => 'Added Windows support for stat(), touch(), filemtime(), filesize() and related functions. (Pierre)', + ), + 2 => + array ( + 'message' => 'Re-added socket_create_pair() for Windows in sockets extension.', + 'raw' => 'Re-added socket_create_pair() for Windows in sockets extension. (Kalle)', + ), + 3 => + array ( + 'message' => 'Added inet_pton() and inet_ntop() also for Windows platforms.', + 'raw' => 'Added inet_pton() and inet_ntop() also for Windows platforms. (Kalle, Pierre)', + ), + 4 => + array ( + 'message' => 'Added mcrypt_create_iv() for Windows platforms.', + 'raw' => 'Added mcrypt_create_iv() for Windows platforms. (Pierre)', + ), + 5 => + array ( + 'message' => 'Added ACL Cache support on Windows.', + 'raw' => 'Added ACL Cache support on Windows. (Kanwaljeet Singla, Pierre, Venkat Raman Don)', + ), + 6 => + array ( + 'message' => 'Added constants based on Windows\' GetVersionEx information. PHP_WINDOWS_VERSION_* and PHP_WINDOWS_NT_*.', + 'raw' => 'Added constants based on Windows\' GetVersionEx information. PHP_WINDOWS_VERSION_* and PHP_WINDOWS_NT_*. (Pierre)', + ), + 7 => + array ( + 'message' => 'Added support for ACL (is_writable, is_readable, reports now correct results) on Windows.', + 'raw' => 'Added support for ACL (is_writable, is_readable, reports now correct results) on Windows. (Pierre, Venkat Raman Don, Kanwaljeet Singla)', + ), + 8 => + array ( + 'message' => 'Added support for fnmatch() on Windows.', + 'raw' => 'Added support for fnmatch() on Windows. (Pierre)', + ), + 9 => + array ( + 'message' => 'Added support for time_nanosleep() and time_sleep_until() on Windows.', + 'raw' => 'Added support for time_nanosleep() and time_sleep_until() on Windows. (Pierre)', + ), + 10 => + array ( + 'message' => 'Added support for symlink(), readlink(), linkinfo() and link() on Windows. They are available only when the running platform supports them.', + 'raw' => 'Added support for symlink(), readlink(), linkinfo() and link() on Windows. They are available only when the running platform supports them. (Pierre)', + ), + 11 => + array ( + 'message' => 'the GMP extension now relies on MPIR instead of the GMP library.', + 'raw' => 'the GMP extension now relies on MPIR instead of the GMP library. (Pierre)', + ), + 12 => + array ( + 'message' => 'Added Windows support for stream_socket_pair().', + 'raw' => 'Added Windows support for stream_socket_pair(). (Kalle)', + ), + 13 => + array ( + 'message' => 'Drop all external dependencies for the core features.', + 'raw' => 'Drop all external dependencies for the core features. (Pierre)', + ), + 14 => + array ( + 'message' => 'Drastically improve the build procedure :', + 'raw' => 'Drastically improve the build procedure (Pierre, Kalle, Rob):', + ), + 15 => + array ( + 'message' => 'VC9 or later support', + 'raw' => 'VC9 (Visual C++ 2008) or later support', + ), + 16 => + array ( + 'message' => 'Initial experimental x64 support', + 'raw' => 'Initial experimental x64 support', + ), + 17 => + array ( + 'message' => 'MSI installer now supports all recent Windows versions, including Windows 7.', + 'raw' => 'MSI installer now supports all recent Windows versions, including Windows 7. (John, Kanwaljeet Singla)', + ), + ), + 'improved and cleaned cgi code' => + array ( + 0 => + array ( + 'message' => 'FastCGI is now always enabled and cannot be disabled. See sapi/cgi/CHANGES for more details.', + 'raw' => 'FastCGI is now always enabled and cannot be disabled. See sapi/cgi/CHANGES for more details. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added CGI SAPI -T option which can be used to measure execution time of script repeated several times.', + 'raw' => 'Added CGI SAPI -T option which can be used to measure execution time of script repeated several times. (Dmitry)', + ), + ), + 'improved streams' => + array ( + 0 => + array ( + 'message' => 'Fixed confusing error message on failure when no errors are logged.', + 'raw' => 'Fixed confusing error message on failure when no errors are logged. (Greg)', + ), + 1 => + array ( + 'message' => 'Added stream_supports_lock() function.', + 'raw' => 'Added stream_supports_lock() function. (Benjamin Schulz)', + ), + 2 => + array ( + 'message' => 'Added context parameter for copy() function.', + 'raw' => 'Added context parameter for copy() function. (Sara)', + ), + 3 => + array ( + 'message' => 'Added "glob://" stream wrapper.', + 'raw' => 'Added "glob://" stream wrapper. (Marcus)', + ), + 4 => + array ( + 'message' => 'Added "params" as optional parameter for stream_context_create().', + 'raw' => 'Added "params" as optional parameter for stream_context_create(). (Sara)', + ), + 5 => + array ( + 'message' => 'Added ability to use stream wrappers in include_path.', + 'raw' => 'Added ability to use stream wrappers in include_path. (Gregory, Dmitry)', + ), + 6 => + array ( + 'message' => 'Added Windows support for dns_check_record(), dns_get_mx(), checkdnsrr() and getmxrr().', + 'raw' => 'Added Windows support for dns_check_record(), dns_get_mx(), checkdnsrr() and getmxrr(). (Pierre)', + ), + 7 => + array ( + 'message' => 'Added support for old style DNS functions (supports OSX and FBSD).', + 'raw' => 'Added support for old style DNS functions (supports OSX and FBSD). (Scott)', + ), + 8 => + array ( + 'message' => 'Added a new "entries" array in dns_check_record() containing the TXT elements.', + 'raw' => 'Added a new "entries" array in dns_check_record() containing the TXT elements. (Felipe, Pierre)', + ), + ), + 'improved hash extension' => + array ( + 0 => + array ( + 'message' => 'Changed mhash to be a wrapper layer around the hash extension.', + 'raw' => 'Changed mhash to be a wrapper layer around the hash extension. (Scott)', + ), + 1 => + array ( + 'message' => 'Added hash_copy() function.', + 'raw' => 'Added hash_copy() function. (Tony)', + ), + 2 => + array ( + 'message' => 'Added sha224 hash algorithm to the hash extension.', + 'raw' => 'Added sha224 hash algorithm to the hash extension. (Scott)', + ), + ), + 'improved imap support (pierre)' => + array ( + 0 => + array ( + 'message' => 'Added imap_gc() to clear the imap cache', + 'raw' => 'Added imap_gc() to clear the imap cache', + ), + 1 => + array ( + 'message' => 'Added imap_utf8_to_mutf7() and imap_mutf7_to_utf8()', + 'raw' => 'Added imap_utf8_to_mutf7() and imap_mutf7_to_utf8()', + ), + ), + 'improved mbstring extension' => + array ( + 0 => + array ( + 'message' => '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().', + 'raw' => '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.)' => + array ( + 0 => + array ( + 'message' => 'Added Database Resident Connection Pooling (DRCP) and Fast Application Notification support.', + 'raw' => 'Added Database Resident Connection Pooling (DRCP) and Fast Application Notification (FAN) support.', + ), + 1 => + array ( + 'message' => 'Added support for Oracle External Authentication .', + 'raw' => 'Added support for Oracle External Authentication (not supported on Windows).', + ), + 2 => + array ( + 'message' => 'Improve persistent connection handling of restarted DBs.', + 'raw' => 'Improve persistent connection handling of restarted DBs.', + ), + 3 => + array ( + 'message' => 'Added SQLT_AFC support to oci_bind_by_name.', + 'raw' => 'Added SQLT_AFC (aka CHAR datatype) support to oci_bind_by_name.', + ), + 4 => + array ( + 'message' => 'Fixed bug #45458', + 'raw' => 'Fixed bug #45458 (Numeric keys for associative arrays are not handled properly)', + ), + 5 => + array ( + 'message' => 'Fixed bug #41069 .', + 'raw' => 'Fixed bug #41069 (Segmentation fault with query over DB link).', + ), + 6 => + array ( + 'message' => 'Fixed define of SQLT_BDOUBLE and SQLT_BFLOAT constants with Oracle 10g ORACLE_HOME builds.', + 'raw' => 'Fixed define of SQLT_BDOUBLE and SQLT_BFLOAT constants with Oracle 10g ORACLE_HOME builds.', + ), + 7 => + array ( + 'message' => 'Changed default value of oci8.default_prefetch from 10 to 100.', + 'raw' => 'Changed default value of oci8.default_prefetch from 10 to 100.', + ), + 8 => + array ( + 'message' => 'Fixed PECL Bug #16035 (OCI8: oci_connect without ORACLE_HOME defined causes segfault)', + 'raw' => 'Fixed PECL Bug #16035 (OCI8: oci_connect without ORACLE_HOME defined causes segfault) (Chris Jones/Oracle Corp.)', + ), + 9 => + array ( + 'message' => 'Fixed PECL Bug #15988 (OCI8: sqlnet.ora isn\'t read with older Oracle libraries)', + 'raw' => 'Fixed PECL Bug #15988 (OCI8: sqlnet.ora isn\'t read with older Oracle libraries) (Chris Jones/Oracle Corp.)', + ), + 10 => + array ( + 'message' => 'Fixed PECL Bug #14268 (Allow "pecl install oci8" command to "autodetect" an Instant Client RPM install)', + 'raw' => 'Fixed PECL Bug #14268 (Allow "pecl install oci8" command to "autodetect" an Instant Client RPM install) (Chris Jones/Oracle Corp.)', + ), + 11 => + array ( + 'message' => 'Fixed PECL bug #12431 .', + 'raw' => 'Fixed PECL bug #12431 (OCI8 ping functionality is broken).', + ), + 12 => + array ( + 'message' => 'Allow building the PHP 5.3-based OCI8 code with PHP 4.3.9 onwards.', + 'raw' => 'Allow building (e.g from PECL) the PHP 5.3-based OCI8 code with PHP 4.3.9 onwards.', + ), + 13 => + array ( + 'message' => 'Provide separate extensions for Oracle 11g and 10g on Windows.', + 'raw' => 'Provide separate extensions for Oracle 11g and 10g on Windows. (Pierre, Chris)', + ), + ), + 'improved openssl extension' => + array ( + 0 => + array ( + 'message' => 'Added support for OpenSSL digest and cipher functions.', + 'raw' => 'Added support for OpenSSL digest and cipher functions. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added access to internal values of DSA, RSA and DH keys.', + 'raw' => 'Added access to internal values of DSA, RSA and DH keys. (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed a memory leak on openssl_decrypt().', + 'raw' => 'Fixed a memory leak on openssl_decrypt(). (Henrique)', + ), + 3 => + array ( + 'message' => 'Fixed segfault caused by openssl_pkey_new().', + 'raw' => 'Fixed segfault caused by openssl_pkey_new(). (Henrique)', + ), + 4 => + array ( + 'message' => 'Fixed bug caused by uninitilized variables in openssl_pkcs7_encrypt() and openssl_pkcs7_sign().', + 'raw' => 'Fixed bug caused by uninitilized variables in openssl_pkcs7_encrypt() and openssl_pkcs7_sign(). (Henrique)', + ), + 5 => + array ( + 'message' => 'Fixed error message in openssl_seal().', + 'raw' => 'Fixed error message in openssl_seal(). (Henrique)', + ), + ), + 'improved pcntl extension' => + array ( + 0 => + array ( + 'message' => 'Added pcntl_signal_dispatch().', + 'raw' => 'Added pcntl_signal_dispatch().', + ), + 1 => + array ( + 'message' => 'Added pcntl_sigprocmask().', + 'raw' => 'Added pcntl_sigprocmask().', + ), + 2 => + array ( + 'message' => 'Added pcntl_sigwaitinfo().', + 'raw' => 'Added pcntl_sigwaitinfo().', + ), + 3 => + array ( + 'message' => 'Added pcntl_sigtimedwait().', + 'raw' => 'Added pcntl_sigtimedwait().', + ), + ), + 'improved soap extension' => + array ( + 0 => + array ( + 'message' => 'Added support for element names in context of XMLSchema\'s .', + 'raw' => 'Added support for element names in context of XMLSchema\'s . (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added ability to use Traversable objects instead of plain arrays.', + 'raw' => 'Added ability to use Traversable objects instead of plain arrays. (Joshua Reese, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed possible crash bug caused by an uninitialized value.', + 'raw' => 'Fixed possible crash bug caused by an uninitialized value. (Zdash Urf)', + ), + ), + 'improved spl extension' => + array ( + 0 => + array ( + 'message' => 'Added SPL to list of standard extensions that cannot be disabled.', + 'raw' => 'Added SPL to list of standard extensions that cannot be disabled. (Marcus)', + ), + 1 => + array ( + 'message' => 'Added ability to store associative information with objects in SplObjectStorage.', + 'raw' => 'Added ability to store associative information with objects in SplObjectStorage. (Marcus)', + ), + 2 => + array ( + 'message' => 'Added ArrayAccess support to SplObjectStorage.', + 'raw' => 'Added ArrayAccess support to SplObjectStorage. (Marcus)', + ), + 3 => + array ( + 'message' => 'Added SplDoublyLinkedList, SplStack, SplQueue classes.', + 'raw' => 'Added SplDoublyLinkedList, SplStack, SplQueue classes. (Etienne)', + ), + 4 => + array ( + 'message' => 'Added FilesystemIterator.', + 'raw' => 'Added FilesystemIterator. (Marcus)', + ), + 5 => + array ( + 'message' => 'Added GlobIterator.', + 'raw' => 'Added GlobIterator. (Marcus)', + ), + 6 => + array ( + 'message' => 'Added SplHeap, SplMinHeap, SplMaxHeap, SplPriorityQueue classes.', + 'raw' => 'Added SplHeap, SplMinHeap, SplMaxHeap, SplPriorityQueue classes. (Etienne)', + ), + 7 => + array ( + 'message' => 'Added new parameter $prepend to spl_autoload_register().', + 'raw' => 'Added new parameter $prepend to spl_autoload_register(). (Etienne)', + ), + 8 => + array ( + 'message' => 'Added SplFixedArray.', + 'raw' => 'Added SplFixedArray. (Etienne, Tony)', + ), + 9 => + array ( + 'message' => 'Added delaying exceptions in SPL\'s autoload mechanism.', + 'raw' => 'Added delaying exceptions in SPL\'s autoload mechanism. (Marcus)', + ), + 10 => + array ( + 'message' => 'Added RecursiveTreeIterator.', + 'raw' => 'Added RecursiveTreeIterator. (Arnaud, Marcus)', + ), + 11 => + array ( + 'message' => 'Added MultipleIterator.', + 'raw' => 'Added MultipleIterator. (Arnaud, Marcus, Johannes)', + ), + ), + 'improved zend engine' => + array ( + 0 => + array ( + 'message' => 'Added "compact" handler for Zend MM storage.', + 'raw' => 'Added "compact" handler for Zend MM storage. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added "+" and "*" specifiers to zend_parse_parameters().', + 'raw' => 'Added "+" and "*" specifiers to zend_parse_parameters(). (Andrei)', + ), + 2 => + array ( + 'message' => '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.', + 'raw' => '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' => + array ( + 0 => + array ( + 'message' => 'Added Blowfish and extended DES support. .', + 'raw' => 'Added Blowfish and extended DES support. (Using Blowfish implementation from Solar Designer).', + ), + 1 => + array ( + 'message' => '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.', + 'raw' => '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.', + ), + ), + 'added new extensions' => + array ( + 0 => + array ( + 'message' => 'Added Enchant extension as a way to access spell checkers.', + 'raw' => 'Added Enchant extension as a way to access spell checkers. (Pierre)', + ), + 1 => + array ( + 'message' => 'Added fileinfo extension as replacement for mime_magic extension.', + 'raw' => 'Added fileinfo extension as replacement for mime_magic extension. (Derick)', + ), + 2 => + array ( + 'message' => 'Added intl extension for Internationalization.', + 'raw' => 'Added intl extension for Internationalization. (Ed B., Vladimir I., Dmitry L., Stanislav M., Vadim S., Kirti V.)', + ), + 3 => + array ( + 'message' => 'Added mysqlnd extension as replacement for libmysql for ext/mysql, mysqli and PDO_mysql.', + 'raw' => 'Added mysqlnd extension as replacement for libmysql for ext/mysql, mysqli and PDO_mysql. (Andrey, Johannes, Ulf)', + ), + 4 => + array ( + 'message' => 'Added phar extension for handling PHP Archives.', + 'raw' => 'Added phar extension for handling PHP Archives. (Greg, Marcus, Steph)', + ), + 5 => + array ( + 'message' => 'Added SQLite3 extension.', + 'raw' => 'Added SQLite3 extension. (Scott)', + ), + ), + 'added new date/time functionality' => + array ( + 0 => + array ( + 'message' => 'date_parse_from_format(): Parse date/time strings according to a format.', + 'raw' => 'date_parse_from_format(): Parse date/time strings according to a format.', + ), + 1 => + array ( + 'message' => 'date_create_from_format()/DateTime::createFromFormat(): Create a date/time object by parsing a date/time string according to a given format.', + 'raw' => 'date_create_from_format()/DateTime::createFromFormat(): Create a date/time object by parsing a date/time string according to a given format.', + ), + 2 => + array ( + 'message' => 'date_get_last_errors()/DateTime::getLastErrors(): Return a list of warnings and errors that were found while parsing a date/time string through:', + 'raw' => 'date_get_last_errors()/DateTime::getLastErrors(): Return a list of warnings and errors that were found while parsing a date/time string through:', + ), + 3 => + array ( + 'message' => 'strtotime() / new DateTime', + 'raw' => 'strtotime() / new DateTime', + ), + 4 => + array ( + 'message' => 'date_create_from_format() / DateTime::createFromFormat()', + 'raw' => 'date_create_from_format() / DateTime::createFromFormat()', + ), + 5 => + array ( + 'message' => 'date_parse_from_format().', + 'raw' => 'date_parse_from_format().', + ), + 6 => + array ( + 'message' => 'support for abbreviation and offset based timezone specifiers for the \'e\' format specifier, DateTime::__construct(), DateTime::getTimeZone() and DateTimeZone::getName().', + 'raw' => 'support for abbreviation and offset based timezone specifiers for the \'e\' format specifier, DateTime::__construct(), DateTime::getTimeZone() and DateTimeZone::getName().', + ), + 7 => + array ( + 'message' => 'support for selectively listing timezone identifiers by continent or country code through timezone_identifiers_list() / DateTimezone::listIdentifiers().', + 'raw' => 'support for selectively listing timezone identifiers by continent or country code through timezone_identifiers_list() / DateTimezone::listIdentifiers().', + ), + 8 => + array ( + 'message' => 'timezone_location_get() / DateTimezone::getLocation() for retrieving location information from timezones.', + 'raw' => 'timezone_location_get() / DateTimezone::getLocation() for retrieving location information from timezones.', + ), + 9 => + array ( + 'message' => 'date_timestamp_set() / DateTime::setTimestamp() to set a Unix timestamp without invoking the date parser.', + 'raw' => 'date_timestamp_set() / DateTime::setTimestamp() to set a Unix timestamp without invoking the date parser. (Scott, Derick)', + ), + 10 => + array ( + 'message' => 'date_timestamp_get() / DateTime::getTimestamp() to retrieve the Unix timestamp belonging to a date object.', + 'raw' => 'date_timestamp_get() / DateTime::getTimestamp() to retrieve the Unix timestamp belonging to a date object.', + ), + 11 => + array ( + 'message' => 'two optional parameters to timezone_transitions_get() / DateTimeZone::getTranstions() to limit the range of transitions being returned.', + 'raw' => 'two optional parameters to timezone_transitions_get() / DateTimeZone::getTranstions() to limit the range of transitions being returned.', + ), + 12 => + array ( + 'message' => 'support for "first/last day of " style texts.', + 'raw' => 'support for "first/last day of " style texts.', + ), + 13 => + array ( + 'message' => 'support for date/time strings returned by MS SQL.', + 'raw' => 'support for date/time strings returned by MS SQL.', + ), + 14 => + array ( + 'message' => 'support for serialization and unserialization of DateTime objects.', + 'raw' => 'support for serialization and unserialization of DateTime objects.', + ), + 15 => + array ( + 'message' => 'support for diffing date/times through date_diff() / DateTime::diff().', + 'raw' => 'support for diffing date/times through date_diff() / DateTime::diff().', + ), + 16 => + array ( + 'message' => 'support for adding/subtracting weekdays with strtotime() and DateTime::modify().', + 'raw' => 'support for adding/subtracting weekdays with strtotime() and DateTime::modify().', + ), + 17 => + array ( + 'message' => 'DateInterval class to represent the difference between two date/times.', + 'raw' => 'DateInterval class to represent the difference between two date/times.', + ), + 18 => + array ( + 'message' => 'support for parsing ISO intervals for use with DateInterval.', + 'raw' => 'support for parsing ISO intervals for use with DateInterval.', + ), + 19 => + array ( + 'message' => 'date_add() / DateTime::add(), date_sub() / DateTime::sub() for applying an interval to an existing date/time.', + 'raw' => 'date_add() / DateTime::add(), date_sub() / DateTime::sub() for applying an interval to an existing date/time.', + ), + 20 => + array ( + 'message' => '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.', + 'raw' => '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.', + ), + 21 => + array ( + 'message' => 'support for " of" and "last of" phrases to be used with months - like in "last saturday of februari 2008".', + 'raw' => 'support for " of" and "last of" phrases to be used with months - like in "last saturday of februari 2008".', + ), + 22 => + array ( + 'message' => 'support for "back of " and "front of " phrases that are used in Scotland.', + 'raw' => 'support for "back of " and "front of " phrases that are used in Scotland.', + ), + 23 => + array ( + 'message' => '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.', + 'raw' => '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 reflectionproperty' => + array ( + ), + 'added firebird specific attributes that can be set via pdo' => + array ( + ), + 'added domnode' => + array ( + ), + 'added table info to pdo' => + array ( + ), + 'added splobjectstorage' => + array ( + ), + 'implemented fr #41712 (curl progress callback' => + array ( + ), + 'fixed an issue with reflectionproperty' => + array ( + ), + 'fixed an issue in date() where a' => + array ( + ), + 'fixed bug #48185 (warning' => + array ( + ), + 'fixed bug #47534 (recursivediteratoryiterator' => + array ( + ), + 'fixed bug #47243 (oci8' => + array ( + ), + 'fixed bug #46994 (oci8' => + array ( + ), + 'fixed bug #46755 (warning' => + array ( + ), + 'fixed bug #46623 (oci8' => + array ( + ), + 'fixed bug #46268 (datetime' => + array ( + ), + 'fixed bug #46099 (xsltprocessor' => + array ( + ), + 'fixed bug #45757 (freebsd4.11 build failure' => + array ( + ), + 'fixed bug #45432 (pdo' => + array ( + ), + 'fixed bug #44409 (pdo' => + array ( + ), + 'fixed bug #43008 (php' => + array ( + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/5.4/changelist.inc b/include/releases/5.4/changelist.inc new file mode 100644 index 0000000000..2d33e055b7 --- /dev/null +++ b/include/releases/5.4/changelist.inc @@ -0,0 +1,5278 @@ + + array ( + 'date' => '16 Oct 2014', + 'modules' => + array ( + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66584 (Segmentation fault on statement deallocation)', + 'raw' => 'Fixed bug #66584 (Segmentation fault on statement deallocation) (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed).', + 'raw' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed). (ArdB)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67985 (Incorrect last used array index copied to new array after unset).', + 'raw' => 'Fixed bug #67985 (Incorrect last used array index copied to new array after unset). (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669)', + 'raw' => 'Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669) (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68089 (NULL byte injection - cURL lib).', + 'raw' => 'Fixed bug #68089 (NULL byte injection - cURL lib). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670)', + 'raw' => 'Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670) (Stas)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Reverted fixes for bug #41631, due to regressions.', + 'raw' => 'Reverted fixes for bug #41631, due to regressions. (Stas)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668)', + 'raw' => 'Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668) (Stas)', + ), + ), + ), + ), + '5.4.33' => + array ( + 'date' => '18 Sep 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47358 (glob returns error, should be empty array()).', + 'raw' => 'Fixed bug #47358 (glob returns error, should be empty array()). (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65463 (SIGSEGV during zend_shutdown()).', + 'raw' => 'Fixed bug #65463 (SIGSEGV during zend_shutdown()). (Keyur Govande)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66036 (Crash on SIGTERM in apache process).', + 'raw' => 'Fixed bug #66036 (Crash on SIGTERM in apache process). (Keyur Govande)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41631 (socket timeouts not honored in blocking SSL reads).', + 'raw' => 'Fixed bug #41631 (socket timeouts not honored in blocking SSL reads). (Daniel Lowrey)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66091 (memory leaks in DateTime constructor).', + 'raw' => 'Fixed bug #66091 (memory leaks in DateTime constructor). (Tjerk)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed #67606 (FPM with mod_fastcgi/apache2.4 is broken).', + 'raw' => 'Fixed #67606 (FPM with mod_fastcgi/apache2.4 is broken). (David Zuelke)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Made fontFetch\'s path parser thread-safe.', + 'raw' => 'Made fontFetch\'s path parser thread-safe. (Sara)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67873 (Segfaults in php_wddx_serialize_var).', + 'raw' => 'Fixed bug #67873 (Segfaults in php_wddx_serialize_var). (Anatol, Remi)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67724 (chained zlib filters silently fail with large amounts of data).', + 'raw' => 'Fixed bug #67724 (chained zlib filters silently fail with large amounts of data). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67865 (internal corruption phar error).', + 'raw' => 'Fixed bug #67865 (internal corruption phar error). (Mike)', + ), + ), + ), + ), + '5.4.32' => + array ( + 'date' => '21 Aug 2014', + 'modules' => + array ( + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in com_event_sink.', + 'raw' => 'Fixed missing type checks in com_event_sink. (Yussuf Khalil, Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #41577 (DOTNET is successful once per server run).', + 'raw' => 'Fixed bug #41577 (DOTNET is successful once per server run). (Aidas Kasparas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538)', + 'raw' => 'Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587)', + 'raw' => 'Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587) (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66901 (php-gd \'c_color\' NULL pointer dereference). (CVE-2014-2497).', + 'raw' => 'Fixed bug #66901 (php-gd \'c_color\' NULL pointer dereference). (CVE-2014-2497). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120)', + 'raw' => 'Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120) (Ryan Mauger)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated LiteSpeed SAPI code from V5.5 to V6.6', + 'raw' => 'Updated LiteSpeed SAPI code from V5.5 to V6.6 (George Wang)', + ), + ), + 'network' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597)', + 'raw' => 'Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597) (Remi)', + ), + ), + 'milter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67715 (php-milter does not build and crashes randomly).', + 'raw' => 'Fixed bug #67715 (php-milter does not build and crashes randomly). (Mike)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in OpenSSL options .', + 'raw' => 'Fixed missing type checks in OpenSSL options (Yussuf Khalil, Stas).', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55496 (Interactive mode doesn\'t force a newline before the prompt).', + 'raw' => 'Fixed bug #55496 (Interactive mode doesn\'t force a newline before the prompt). (Bob, Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67496 (Save command history when exiting interactive shell with control-c).', + 'raw' => 'Fixed bug #67496 (Save command history when exiting interactive shell with control-c). (Dmitry Saprykin, Johannes)', + ), + ), + 'sessions' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in php_session_create_id. .', + 'raw' => 'Fixed missing type checks in php_session_create_id. (Yussuf Khalil, Stas).', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698)', + 'raw' => 'Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698) (research at insighti dot org, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670)', + 'raw' => 'Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670) (Laruence)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67693 (incorrect push to the empty array)', + 'raw' => 'Fixed bug #67693 (incorrect push to the empty array) (Tjerk)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60616 (odbc_fetch_into returns junk data at end of multi-byte char fields).', + 'raw' => 'Fixed bug #60616 (odbc_fetch_into returns junk data at end of multi-byte char fields). (Keyur)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67839 (mysqli does not handle 4-byte floats correctly).', + 'raw' => 'Fixed bug #67839 (mysqli does not handle 4-byte floats correctly). (Keyur)', + ), + ), + ), + ), + '5.4.31' => + array ( + 'date' => '24 Jul 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67428 (header(\'Location: foo\') will override a 308-399 response code).', + 'raw' => 'Fixed bug #67428 (header(\'Location: foo\') will override a 308-399 response code). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67436 (Autoloader isn\'t called if two method definitions don\'t match).', + 'raw' => 'Fixed bug #67436 (Autoloader isn\'t called if two method definitions don\'t match). (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0).', + 'raw' => 'Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0). (Ferenc)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67151 (strtr with empty array crashes).', + 'raw' => 'Fixed bug #67151 (strtr with empty array crashes). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012).', + 'raw' => 'Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012). (Christian Wenz)', + ), + 5 => + array ( + 'message' => 'Implemented FR #34407 (ucwords and Title Case).', + 'raw' => 'Implemented FR #34407 (ucwords and Title Case). (Tjerk)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #67429 (CLI server is missing some new HTTP response codes).', + 'raw' => 'Implemented FR #67429 (CLI server is missing some new HTTP response codes). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66830 (Empty header causes PHP built-in web server to hang).', + 'raw' => 'Fixed bug #66830 (Empty header causes PHP built-in web server to hang). (Adam)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67530 (error_log=syslog ignored).', + 'raw' => 'Fixed bug #67530 (error_log=syslog ignored). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67531 (syslog cannot be set in pool configuration).', + 'raw' => 'Fixed bug #67531 (syslog cannot be set in pool configuration). (Remi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting).', + 'raw' => 'Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting). (Stas)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3.', + 'raw' => 'Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3. (Adam)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67587 (Redirection loop on nginx with FPM).', + 'raw' => 'Fixed bug #67587 (Redirection loop on nginx with FPM). (Christian Weiske)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67430 (http:// wrapper doesn\'t follow 308 redirects).', + 'raw' => 'Fixed bug #67430 (http:// wrapper doesn\'t follow 308 redirects). (Adam)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66827 (Session raises E_NOTICE when session name variable is array).', + 'raw' => 'Fixed bug #66827 (Session raises E_NOTICE when session name variable is array). (Yasuo)', + ), + ), + ), + ), + '5.4.30' => + array ( + 'date' => '26 Jun 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed BC break introduced by patch for bug #67072.', + 'raw' => 'Fixed BC break introduced by patch for bug #67072. (Anatol, Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases).', + 'raw' => 'Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases). (Levi Morrison)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi)', + 'raw' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi) (CVE-2014-3981)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67399 (putenv with empty variable may lead to crash).', + 'raw' => 'Fixed bug #67399 (putenv with empty variable may lead to crash). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability).', + 'raw' => 'Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability). (Stefan Esser)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #67406 (built-in web-server segfaults on startup).', + 'raw' => 'Fixed Bug #67406 (built-in web-server segfaults on startup). (Remi)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67308 (Serialize of DateTime truncates fractions of second).', + 'raw' => 'Fixed bug #67308 (Serialize of DateTime truncates fractions of second). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed regression in fix for bug #67118 (constructor can\'t be called twice).', + 'raw' => 'Fixed regression in fix for bug #67118 (constructor can\'t be called twice). (Remi)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check).', + 'raw' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check). (CVE-2014-0207)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (CVE-2014-3478)', + 'raw' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (CVE-2014-3478) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (CVE-2014-3479)', + 'raw' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (CVE-2014-3479) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (CVE-2014-3480)', + 'raw' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (CVE-2014-3480) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (CVE-2014-3487)', + 'raw' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (CVE-2014-3487) (Francisco Alonso, Jan Kaluza, Remi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67349 (Locale::parseLocale Double Free).', + 'raw' => 'Fixed bug #67349 (Locale::parseLocale Double Free). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)).', + 'raw' => 'Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)). (Stas)', + ), + ), + 'network' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049).', + 'raw' => 'Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049). (Sara)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65698 (certificates validity parsing does not work past 2050).', + 'raw' => 'Fixed bug #65698 (certificates validity parsing does not work past 2050). (Paul Oehler)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME).', + 'raw' => 'Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME). (Paul Oehler)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #49898 (Add SoapClient::__getCookies()).', + 'raw' => 'Implemented FR #49898 (Add SoapClient::__getCookies()). (Boro Sitnikovski)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset).', + 'raw' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator).', + 'raw' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67360 (Missing element after ArrayObject::getIterator).', + 'raw' => 'Fixed bug #67360 (Missing element after ArrayObject::getIterator). (Adam)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515).', + 'raw' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515). (Stefan Esser)', + ), + ), + ), + ), + '5.4.29' => + array ( + 'date' => '29 May 2014', + 'modules' => + array ( + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)).', + 'raw' => 'Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)). (Anatol)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65701 (copy() doesn\'t work when destination filename is created by tempnam()).', + 'raw' => 'Fixed bug #65701 (copy() doesn\'t work when destination filename is created by tempnam()). (Boro Sitnikovski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67072 (Echoing unserialized "SplFileObject" crash).', + 'raw' => 'Fixed bug #67072 (Echoing unserialized "SplFileObject" crash). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67245 (usage of memcpy() with overlapping src and dst in zend_exceptions.c).', + 'raw' => 'Fixed bug #67245 (usage of memcpy() with overlapping src and dst in zend_exceptions.c). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow).', + 'raw' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67249 (printf out-of-bounds read).', + 'raw' => 'Fixed bug #67249 (printf out-of-bounds read). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67250 (iptcparse out-of-bounds read).', + 'raw' => 'Fixed bug #67250 (iptcparse out-of-bounds read). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read).', + 'raw' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read). (Stas)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67118 (DateTime constructor crash with invalid data).', + 'raw' => 'Fixed bug #67118 (DateTime constructor crash with invalid data). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read).', + 'raw' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read).', + 'raw' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read). (Stas)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset).', + 'raw' => 'Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset). (Anatol)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files).', + 'raw' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS).', + 'raw' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS). (CVE-2014-0238)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation).', + 'raw' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation). (CVE-2014-0237)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor).', + 'raw' => 'Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor). (Julio Pintos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix bug #64498 ($phar->buildFromDirectory can\'t compress file with an accent in its name).', + 'raw' => 'Fix bug #64498 ($phar->buildFromDirectory can\'t compress file with an accent in its name). (PR #588)', + ), + ), + ), + ), + '5.4.28' => + array ( + 'date' => '01 May 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61019 (Out of memory on command stream_get_contents).', + 'raw' => 'Fixed bug #61019 (Out of memory on command stream_get_contents). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets).', + 'raw' => 'Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets). (Mike)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66171 (Symlinks and session handler allow open_basedir bypass).', + 'raw' => 'Fixed bug #66171 (Symlinks and session handler allow open_basedir bypass). (Jann Horn, Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66182 (exit in stream filter produces segfault).', + 'raw' => 'Fixed bug #66182 (exit in stream filter produces segfault). (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66736 (fpassthru broken).', + 'raw' => 'Fixed bug #66736 (fpassthru broken). (Mike)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67024 (getimagesize should recognize BMP files with negative height).', + 'raw' => 'Fixed bug #67024 (getimagesize should recognize BMP files with negative height). (Gabor Buella)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67033 (Remove reference to Windows 95).', + 'raw' => 'Fixed bug #67033 (Remove reference to Windows 95). (Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent).', + 'raw' => 'Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent). (Freek Lijten)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied).', + 'raw' => 'Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied). (Boro Sitnikovski)', + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65715 (php5embed.lib isn\'t provided anymore).', + 'raw' => 'Fixed bug #65715 (php5embed.lib isn\'t provided anymore). (Anatol)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian).', + 'raw' => 'Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian). (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66482 .', + 'raw' => 'Fixed bug #66482 (unknown entry \'priority\' in php-fpm.conf).', + ), + 1 => + array ( + 'message' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185).', + 'raw' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185). (Stas)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set).', + 'raw' => 'Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set). (Kevin Israel)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed issue with null bytes in LDAP bindings.', + 'raw' => 'Fixed issue with null bytes in LDAP bindings. (Matthew Daley)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix bug #66942 (memory leak in openssl_seal()).', + 'raw' => 'Fix bug #66942 (memory leak in openssl_seal()). (Chuan Ma)', + ), + 1 => + array ( + 'message' => 'Fix bug #66952 (memory leak in openssl_open()).', + 'raw' => 'Fix bug #66952 (memory leak in openssl_open()). (Chuan Ma)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66084 (simplexml_load_string() mangles empty node name)', + 'raw' => 'Fixed bug #66084 (simplexml_load_string() mangles empty node name) (Anatol)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://").', + 'raw' => 'Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://"). (Anatol)', + ), + ), + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed Apache log issue caused by APR\'s lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120).', + 'raw' => 'Fixed Apache log issue caused by APR\'s lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120). (Jeff Trawick)', + ), + ), + ), + ), + '5.4.27' => + array ( + 'date' => '03 Apr 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60602 (proc_open() changes environment array)', + 'raw' => 'Fixed bug #60602 (proc_open() changes environment array) (Tjerk)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345)', + 'raw' => 'Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345) (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Added clear_env configuration directive to disable clearenv() call.', + 'raw' => 'Added clear_env configuration directive to disable clearenv() call. (Github PR# 598, Paul Annesley)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66872 (invalid argument crashes gmp_testbit)', + 'raw' => 'Fixed bug #66872 (invalid argument crashes gmp_testbit) (Pierre)', + ), + ), + 'mail' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66535 (Don\'t add newline after X-PHP-Originating-Script)', + 'raw' => 'Fixed bug #66535 (Don\'t add newline after X-PHP-Originating-Script) (Tjerk)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed)', + 'raw' => 'Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed) (Remi)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1).', + 'raw' => 'Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1). (Remi)', + ), + ), + ), + ), + '5.4.26' => + array ( + 'date' => '06 Mar 2014', + 'modules' => + array ( + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65753 (JsonSerializeable couldn\'t implement on module extension)', + 'raw' => 'Fixed bug #65753 (JsonSerializeable couldn\'t implement on module extension) (chobieeee@php.net)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943)', + 'raw' => 'Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66820 (out-of-bounds memory access in fileinfo).', + 'raw' => 'Fixed bug #66820 (out-of-bounds memory access in fileinfo). (Remi)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Implemented ldap_modify_batch (https://wiki.php.net/rfc/ldap_modify_batch).', + 'raw' => 'Implemented ldap_modify_batch (https://wiki.php.net/rfc/ldap_modify_batch). (Ondřej Hošek)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66501 (Add EC key support to php_openssl_is_private_key).', + 'raw' => 'Fixed bug #66501 (Add EC key support to php_openssl_is_private_key). (Mark Zedwood)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added warning for dangerous client encoding and remove possible injections for pg_insert()/pg_update()/pg_delete()/pg_select().', + 'raw' => 'Added warning for dangerous client encoding and remove possible injections for pg_insert()/pg_update()/pg_delete()/pg_select(). (Yasuo)', + ), + ), + ), + ), + '5.4.25' => + array ( + 'date' => '06 Feb 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66286 (Incorrect object comparison with inheritance).', + 'raw' => 'Fixed bug #66286 (Incorrect object comparison with inheritance). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66509 (copy() arginfo has changed starting from 5.4).', + 'raw' => 'Fixed bug #66509 (copy() arginfo has changed starting from 5.4). (Will Fitch)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66283 (Segmentation fault after memory_limit).', + 'raw' => 'Fixed bug #66283 (Segmentation fault after memory_limit). (Johannes)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62479 (PDO-psql cannot connect if password contains spaces).', + 'raw' => 'Fixed bug #62479 (PDO-psql cannot connect if password contains spaces). (Will Fitch, Ilia)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66481 (Calls to session_name() segfault when session.name is null).', + 'raw' => 'Fixed bug #66481 (Calls to session_name() segfault when session.name is null). (Laruence)', + ), + ), + ), + ), + '5.4.24' => + array ( + 'date' => '10 Jan 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added validation of class names in the autoload process.', + 'raw' => 'Added validation of class names in the autoload process. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed invalid C code in zend_strtod.c.', + 'raw' => 'Fixed invalid C code in zend_strtod.c. (Lior Kaplan)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61645 (fopen and O_NONBLOCK).', + 'raw' => 'Fixed bug #61645 (fopen and O_NONBLOCK). (Mike)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712)', + 'raw' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63391 (Incorrect/inconsistent day of week prior to the year 1600).', + 'raw' => 'Fixed bug #63391 (Incorrect/inconsistent day of week prior to the year 1600). (Derick, T. Carter)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61599 (Wrong Day of Week).', + 'raw' => 'Fixed bug #61599 (Wrong Day of Week). (Derick, T. Carter)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65196 (Passing DOMDocumentFragment to DOMDocument::saveHTML() Produces invalid Markup).', + 'raw' => 'Fixed bug #65196 (Passing DOMDocumentFragment to DOMDocument::saveHTML() Produces invalid Markup). (Mike)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65873 (Integer overflow in exif_read_data()).', + 'raw' => 'Fixed bug #65873 (Integer overflow in exif_read_data()). (Stas)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66229 (128.0.0.0/16 isn\'t reserved any longer).', + 'raw' => 'Fixed bug #66229 (128.0.0.0/16 isn\'t reserved any longer). (Adam)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64405 (Use freetype-config for determining freetype2 dir(s)).', + 'raw' => 'Fixed bug #64405 (Use freetype-config for determining freetype2 dir(s)). (Adam)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66311 (Stack smashing protection kills PDO/ODBC queries).', + 'raw' => 'Fixed bug #66311 (Stack smashing protection kills PDO/ODBC queries). (michael at orlitzky dot com)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed SNMP_ERR_TOOBIG handling for bulk walk operations.', + 'raw' => 'Fixed SNMP_ERR_TOOBIG handling for bulk walk operations. (Boris Lytochkin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #49634 (Segfault throwing an exception in a XSL registered function).', + 'raw' => 'Fixed bug #49634 (Segfault throwing an exception in a XSL registered function). (Mike)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #66321 (ZipArchive::open() ze_obj->filename_len not real).', + 'raw' => 'Fixed Bug #66321 (ZipArchive::open() ze_obj->filename_len not real). (Remi)', + ), + ), + ), + ), + '5.4.23' => + array ( + 'date' => '12 Dec 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66094 (unregister_tick_function tries to cast a Closure to a string).', + 'raw' => 'Fixed bug #66094 (unregister_tick_function tries to cast a Closure to a string). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65969 (Chain assignment with T_LIST failure).', + 'raw' => 'Fixed bug #65969 (Chain assignment with T_LIST failure). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65947 (basename is no more working after fgetcsv in certain situation).', + 'raw' => 'Fixed bug #65947 (basename is no more working after fgetcsv in certain situation). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly").', + 'raw' => 'Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly"). (Andrea Faulds)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66043 (Segfault calling bind_param() on mysqli).', + 'raw' => 'Fixed bug #66043 (Segfault calling bind_param() on mysqli). (Laruence)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66124 (mysqli under mysqlnd loses precision when bind_param with \'i\').', + 'raw' => 'Fixed bug #66124 (mysqli under mysqlnd loses precision when bind_param with \'i\'). (Andrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66141 (mysqlnd quote function is wrong with NO_BACKSLASH_ESCAPES after failed query).', + 'raw' => 'Fixed bug #66141 (mysqlnd quote function is wrong with NO_BACKSLASH_ESCAPES after failed query). (Andrey)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420). .', + 'raw' => 'Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420). (Stefan Esser).', + ), + 1 => + array ( + 'message' => 'Fixed bug 65946', + 'raw' => 'Fixed bug 65946 (sql_parser permanently converts values bound to strings)', + ), + ), + ), + ), + '5.4.22' => + array ( + 'date' => '14 Nov 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65911 (scope resolution operator - strange behavior with $this).', + 'raw' => 'Fixed bug #65911 (scope resolution operator - strange behavior with $this). (Bob Weinand)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65818 (Segfault with built-in webserver and chunked transfer encoding).', + 'raw' => 'Fixed bug #65818 (Segfault with built-in webserver and chunked transfer encoding). (Felipe)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed crash on unknown encoding.', + 'raw' => 'Fixed crash on unknown encoding. (Draal)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65667 (ftp_nb_continue produces segfault).', + 'raw' => 'Fixed bug #65667 (ftp_nb_continue produces segfault). (Philip Hofstetter)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65950 (Field name truncation if the field name is bigger than 32 characters).', + 'raw' => 'Fixed bug #65950 (Field name truncation if the field name is bigger than 32 characters). (patch submitted by: michael dot y at zend dot com, Yasuo)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66033 (Segmentation Fault when constructor of PDO statement throws an exception).', + 'raw' => 'Fixed bug #66033 (Segmentation Fault when constructor of PDO statement throws an exception). (Laruence)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65808 (the socket_connect() won\'t work with IPv6 address).', + 'raw' => 'Fixed bug #65808 (the socket_connect() won\'t work with IPv6 address). (Mike)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64760 (var_export() does not use full precision for floating-point numbers)', + 'raw' => 'Fixed bug #64760 (var_export() does not use full precision for floating-point numbers) (Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66395 (basename function doesn\'t remove drive letter).', + 'raw' => 'Fixed bug #66395 (basename function doesn\'t remove drive letter). (Anatol)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51936 (Crash with clone XMLReader).', + 'raw' => 'Fixed bug #51936 (Crash with clone XMLReader). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64230 (XMLReader does not suppress errors).', + 'raw' => 'Fixed bug #64230 (XMLReader does not suppress errors). (Mike)', + ), + ), + ), + ), + '5.4.21' => + array ( + 'date' => '17 Oct 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65322 (compile time errors won\'t trigger auto loading).', + 'raw' => 'Fixed bug #65322 (compile time errors won\'t trigger auto loading). (Nikita)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65633 (built-in server treat some http headers as case-sensitive).', + 'raw' => 'Fixed bug #65633 (built-in server treat some http headers as case-sensitive). (Adam)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64157 (DateTime::createFromFormat() reports confusing error message).', + 'raw' => 'Fixed bug #64157 (DateTime::createFromFormat() reports confusing error message). (Boro Sitnikovski)', + ), + ), + 'dba extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65708 (dba functions cast $key param to string in-place, bypassing copy on write).', + 'raw' => 'Fixed bug #65708 (dba functions cast $key param to string in-place, bypassing copy on write). (Adam)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Add RFC 6598 IPs to reserved addresses.', + 'raw' => 'Add RFC 6598 IPs to reserved addresses. (Sebastian Nohn)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64441 (FILTER_VALIDATE_URL rejects fully qualified domain names).', + 'raw' => 'Fixed bug #64441 (FILTER_VALIDATE_URL rejects fully qualified domain names). (Syra)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65721 (configure script broken in 5.5.4 and 5.4.20 when enabling imap).', + 'raw' => 'Fixed bug #65721 (configure script broken in 5.5.4 and 5.4.20 when enabling imap). (ryotakatsuki at gmail dot com)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61548 (content-type must appear at the end of headers for 201 Location to work in http).', + 'raw' => 'Fixed bug #61548 (content-type must appear at the end of headers for 201 Location to work in http). (Mike)', + ), + ), + 'build system' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62396 (\'make test\' crashes starting with 5.3.14 (missing gzencode())).', + 'raw' => 'Fixed bug #62396 (\'make test\' crashes starting with 5.3.14 (missing gzencode())). (Mike)', + ), + ), + ), + ), + '5.4.20' => + array ( + 'date' => '19 Sep 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60598 (cli/apache sapi segfault on objects manipulation).', + 'raw' => 'Fixed bug #60598 (cli/apache sapi segfault on objects manipulation). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65579 (Using traits with get_class_methods causes segfault).', + 'raw' => 'Fixed bug #65579 (Using traits with get_class_methods causes segfault). (Adam)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65490 (Duplicate calls to get lineno & filename for DTRACE_FUNCTION_*).', + 'raw' => 'Fixed bug #65490 (Duplicate calls to get lineno & filename for DTRACE_FUNCTION_*). (Chris Jones)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65483 (quoted-printable encode stream filter incorrectly encoding spaces).', + 'raw' => 'Fixed bug #65483 (quoted-printable encode stream filter incorrectly encoding spaces). (Michael M Slusarz)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65481 (shutdown segfault due to serialize)', + 'raw' => 'Fixed bug #65481 (shutdown segfault due to serialize) (Mike)', + ), + 5 => + array ( + 'message' => 'Fixed bug #65470 (Segmentation fault in zend_error() with --enable-dtrace).', + 'raw' => 'Fixed bug #65470 (Segmentation fault in zend_error() with --enable-dtrace). (Chris Jones, Kris Van Hees)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference fails).', + 'raw' => 'Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference fails). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #65304 (Use of max int in array_sum).', + 'raw' => 'Fixed bug #65304 (Use of max int in array_sum). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very limited case).', + 'raw' => 'Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very limited case). (Arpad)', + ), + 9 => + array ( + 'message' => 'Fixed bug #65225 (PHP_BINARY incorrectly set).', + 'raw' => 'Fixed bug #65225 (PHP_BINARY incorrectly set). (Patrick Allaert)', + ), + 10 => + array ( + 'message' => 'Improved fix for bug #63186 (compile failure on netbsd).', + 'raw' => 'Improved fix for bug #63186 (compile failure on netbsd). (Matteo)', + ), + 11 => + array ( + 'message' => 'Fixed bug #62692 (PHP fails to build with DTrace).', + 'raw' => 'Fixed bug #62692 (PHP fails to build with DTrace). (Chris Jones, Kris Van Hees)', + ), + 12 => + array ( + 'message' => 'Fixed bug #61759 (class_alias() should accept classes with leading backslashes).', + 'raw' => 'Fixed bug #61759 (class_alias() should accept classes with leading backslashes). (Julien)', + ), + 13 => + array ( + 'message' => 'Fixed bug #61345 (CGI mode - make install don\'t work).', + 'raw' => 'Fixed bug #61345 (CGI mode - make install don\'t work). (Michael Heimpold)', + ), + 14 => + array ( + 'message' => 'Cherry-picked some DTrace build commits from PHP 5.5 branch', + 'raw' => 'Cherry-picked some DTrace build commits (allowing builds on Linux, bug #62691, and bug #63706) from PHP 5.5 branch', + ), + 15 => + array ( + 'message' => 'Fixed bug #61268 (--enable-dtrace leads make to clobber Zend/zend_dtrace.d)', + 'raw' => 'Fixed bug #61268 (--enable-dtrace leads make to clobber Zend/zend_dtrace.d) (Chris Jones)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65458 (curl memory leak).', + 'raw' => 'Fixed bug #65458 (curl memory leak). (Adam)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65554 (createFromFormat broken when weekday name is followed by some delimiters). .', + 'raw' => 'Fixed bug #65554 (createFromFormat broken when weekday name is followed by some delimiters). (Valentin Logvinskiy, Stas).', + ), + 1 => + array ( + 'message' => 'Fixed bug #65564 (stack-buffer-overflow in DateTimeZone stuff caught by AddressSanitizer). .', + 'raw' => 'Fixed bug #65564 (stack-buffer-overflow in DateTimeZone stuff caught by AddressSanitizer). (Remi).', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64802 (openssl_x509_parse fails to parse subject properly in some cases).', + 'raw' => 'Fixed bug #64802 (openssl_x509_parse fails to parse subject properly in some cases). (Mark Jones)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62129 (rfc1867 crashes php even though turned off).', + 'raw' => 'Fixed bug #62129 (rfc1867 crashes php even though turned off). (gxd305 at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #50308 (session id not appended properly for empty anchor tags).', + 'raw' => 'Fixed bug #50308 (session id not appended properly for empty anchor tags). (Arpad)', + ), + 2 => + array ( + 'message' => 'Fixed possible buffer overflow under Windows. Note: Not a security fix.', + 'raw' => 'Fixed possible buffer overflow under Windows. Note: Not a security fix. (Yasuo)', + ), + 3 => + array ( + 'message' => 'Changed session.auto_start to PHP_INI_PERDIR.', + 'raw' => 'Changed session.auto_start to PHP_INI_PERDIR. (Yasuo)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65018 (SoapHeader problems with SoapServer).', + 'raw' => 'Fixed bug #65018 (SoapHeader problems with SoapServer). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65328 (Segfault when getting SplStack object Value).', + 'raw' => 'Fixed bug #65328 (Segfault when getting SplStack object Value). (Laruence)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64953 (Postgres prepared statement positional parameter casting).', + 'raw' => 'Fixed bug #64953 (Postgres prepared statement positional parameter casting). (Mike)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for some specific contents).', + 'raw' => 'Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for some specific contents). (Stas)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65336 (pg_escape_literal/identifier() silently returns false).', + 'raw' => 'Fixed bug #65336 (pg_escape_literal/identifier() silently returns false). (Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update() /pg_delete()/pg_insert()).', + 'raw' => 'Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update() /pg_delete()/pg_insert()). (Yasuo)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65391 (Unable to send vary header user-agent when ob_start(\'ob_gzhandler\') is called)', + 'raw' => 'Fixed bug #65391 (Unable to send vary header user-agent when ob_start(\'ob_gzhandler\') is called) (Mike)', + ), + ), + ), + ), + '5.4.19' => + array ( + 'date' => '22 Aug 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64503 (Compilation fails with error: conflicting types for \'zendparse\').', + 'raw' => 'Fixed bug #64503 (Compilation fails with error: conflicting types for \'zendparse\'). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed UMR in fix for CVE-2013-4248.', + 'raw' => 'Fixed UMR in fix for CVE-2013-4248.', + ), + ), + ), + ), + '5.4.18' => + array ( + 'date' => '15 Aug 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value). .', + 'raw' => 'Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value). (Andrey avp200681 gmail com).', + ), + 1 => + array ( + 'message' => 'Fixed bug #65254 (Exception not catchable when exception thrown in autoload with a namespace).', + 'raw' => 'Fixed bug #65254 (Exception not catchable when exception thrown in autoload with a namespace). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65108 (is_callable() triggers Fatal Error).', + 'raw' => 'Fixed bug #65108 (is_callable() triggers Fatal Error). (David Soria Parra, Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65088 (Generated configure script is malformed on OpenBSD).', + 'raw' => 'Fixed bug #65088 (Generated configure script is malformed on OpenBSD). (Adam)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62964 (Possible XSS on "Registered stream filters" info).', + 'raw' => 'Fixed bug #62964 (Possible XSS on "Registered stream filters" info). (david at nnucomputerwhiz dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #62672 (Error on serialize of ArrayObject).', + 'raw' => 'Fixed bug #62672 (Error on serialize of ArrayObject). (Lior Kaplan)', + ), + 6 => + array ( + 'message' => 'Fixed bug #62475 (variant_* functions causes crash when null given as an argument).', + 'raw' => 'Fixed bug #62475 (variant_* functions causes crash when null given as an argument). (Felipe)', + ), + 7 => + array ( + 'message' => 'Fixed bug #60732 (php_error_docref links to invalid pages).', + 'raw' => 'Fixed bug #60732 (php_error_docref links to invalid pages). (Jakub Vrana)', + ), + 8 => + array ( + 'message' => 'Fixed bug #65226 (chroot() does not get enabled).', + 'raw' => 'Fixed bug #65226 (chroot() does not get enabled). (Anatol)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #65143 (Missing php-cgi man page).', + 'raw' => 'Fixed Bug #65143 (Missing php-cgi man page). (Remi)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65066 (Cli server not responsive when responding with 422 http status code).', + 'raw' => 'Fixed bug #65066 (Cli server not responsive when responding with 422 http status code). (Adam)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62665 (curl.cainfo doesn\'t appear in php.ini).', + 'raw' => 'Fixed bug #62665 (curl.cainfo doesn\'t appear in php.ini). (Lior Kaplan)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63983 (enabling FPM borks compile on FreeBSD).', + 'raw' => 'Fixed bug #63983 (enabling FPM borks compile on FreeBSD). (chibisuke at web dot de, Felipe)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65228 (FTPs memory leak with SSL).', + 'raw' => 'Fixed bug #65228 (FTPs memory leak with SSL). (marco dot beierer at mbsecurity dot ch)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65227 (Memory leak in gmp_cmp second parameter).', + 'raw' => 'Fixed bug #65227 (Memory leak in gmp_cmp second parameter). (Felipe)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64467 (Segmentation fault after imap_reopen failure).', + 'raw' => 'Fixed bug #64467 (Segmentation fault after imap_reopen failure). (askalski at gmail dot com)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62759 (Buggy grapheme_substr() on edge case).', + 'raw' => 'Fixed bug #62759 (Buggy grapheme_substr() on edge case). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions).', + 'raw' => 'Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions). (Stas)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed segfault in mysqlnd when doing long prepare.', + 'raw' => 'Fixed segfault in mysqlnd when doing long prepare. (Andrey)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61387 (NULL valued anonymous column causes segfault in odbc_fetch_array).', + 'raw' => 'Fixed bug #61387 (NULL valued anonymous column causes segfault in odbc_fetch_array). (Brandon Kirsch)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed handling null bytes in subjectAltName (CVE-2013-4248).', + 'raw' => 'Fixed handling null bytes in subjectAltName (CVE-2013-4248). (Christian Heimes)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Allowed PDO_OCI to compile with Oracle Database 12c client libraries.', + 'raw' => 'Allowed PDO_OCI to compile with Oracle Database 12c client libraries. (Chris Jones)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65219 (PDO/dblib not working anymore ("use dbName" not sent)).', + 'raw' => 'Fixed bug #65219 (PDO/dblib not working anymore ("use dbName" not sent)). (Stanley Sufficool)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed meta data retrieve when OID is larger than 2^31.', + 'raw' => 'Fixed meta data retrieve when OID is larger than 2^31. (Yasuo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #65142 (Missing phar man page).', + 'raw' => 'Fixed Bug #65142 (Missing phar man page). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62535 ($_SESSION[$key]["cancel_upload"] doesn\'t work as documented).', + 'raw' => 'Fixed bug #62535 ($_SESSION[$key]["cancel_upload"] doesn\'t work as documented). (Arpad)', + ), + 2 => + array ( + 'message' => 'Fixed bug #35703 (when session_name("123") consist only digits, should warning).', + 'raw' => 'Fixed bug #35703 (when session_name("123") consist only digits, should warning). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #49175 (mod_files.sh does not support hash bits). Patch by oorza2k5 at gmail dot com', + 'raw' => 'Fixed bug #49175 (mod_files.sh does not support hash bits). Patch by oorza2k5 at gmail dot com (Yasuo)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #63472 (Setting SO_BINDTODEVICE with socket_set_option).', + 'raw' => 'Implemented FR #63472 (Setting SO_BINDTODEVICE with socket_set_option). (Damjan Cvetko)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65136 (RecursiveDirectoryIterator segfault).', + 'raw' => 'Fixed bug #65136 (RecursiveDirectoryIterator segfault). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61828 (Memleak when calling Directory(Recursive)Iterator /Spl(Temp)FileObject ctor twice).', + 'raw' => 'Fixed bug #61828 (Memleak when calling Directory(Recursive)Iterator /Spl(Temp)FileObject ctor twice). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, keys are strings).', + 'raw' => 'Fixed bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, keys are strings). (Adam)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65236 (heap corruption in xml parser, CVE-2013-4113).', + 'raw' => 'Fixed bug #65236 (heap corruption in xml parser, CVE-2013-4113). (Rob)', + ), + ), + ), + ), + '5.4.17' => + array ( + 'date' => '04 Jul 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64988 (Class loading order affects E_STRICT warning).', + 'raw' => 'Fixed bug #64988 (Class loading order affects E_STRICT warning). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC).', + 'raw' => 'Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64960 (Segfault in gc_zval_possible_root).', + 'raw' => 'Fixed bug #64960 (Segfault in gc_zval_possible_root). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #64936 (doc comments picked up from previous scanner run).', + 'raw' => 'Fixed bug #64936 (doc comments picked up from previous scanner run). (Stas, Jonathan Oddy)', + ), + 4 => + array ( + 'message' => 'Fixed bug #64934 (Apache2 TS crash with get_browser()).', + 'raw' => 'Fixed bug #64934 (Apache2 TS crash with get_browser()). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #64166 (quoted-printable-encode stream filter incorrectly discarding whitespace).', + 'raw' => 'Fixed bug #64166 (quoted-printable-encode stream filter incorrectly discarding whitespace). (Michael M Slusarz)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53437 (Crash when using unserialized DatePeriod instance).', + 'raw' => 'Fixed bug #53437 (Crash when using unserialized DatePeriod instance). (Gustavo, Derick, Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #64915 (error_log ignored when daemonize=0).', + 'raw' => 'Fixed Bug #64915 (error_log ignored when daemonize=0). (Remi)', + ), + 1 => + array ( + 'message' => 'Implemented FR #64764 (add support for FPM init.d script).', + 'raw' => 'Implemented FR #64764 (add support for FPM init.d script). (Lior Kaplan)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to the same db server).', + 'raw' => 'Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to the same db server). (Laruence)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63638 (Cannot connect to SQL Server 2008 with PDO dblib).', + 'raw' => 'Fixed bug #63638 (Cannot connect to SQL Server 2008 with PDO dblib). (Stanley Sufficool)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64338 (pdo_dblib can\'t connect to Azure SQL).', + 'raw' => 'Fixed bug #64338 (pdo_dblib can\'t connect to Azure SQL). (Stanley Sufficool)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64808 (FreeTDS PDO getColumnMeta on a prepared but not executed statement crashes).', + 'raw' => 'Fixed bug #64808 (FreeTDS PDO getColumnMeta on a prepared but not executed statement crashes). (Stanley Sufficool)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64037 (Firebird return wrong value for numeric field).', + 'raw' => 'Fixed bug #64037 (Firebird return wrong value for numeric field). (Matheus Degiovani, Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62024 (Cannot insert second row with null using parametrized query).', + 'raw' => 'Fixed bug #62024 (Cannot insert second row with null using parametrized query). (patch by james@kenjim.com, Matheus Degiovani, Matteo)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48724 (getColumnMeta() doesn\'t return native_type for BIT, TINYINT and YEAR).', + 'raw' => 'Fixed bug #48724 (getColumnMeta() doesn\'t return native_type for BIT, TINYINT and YEAR). (Antony, Daniel Beardsley)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #64949 (Buffer overflow in _pdo_pgsql_error).', + 'raw' => 'Fixed Bug #64949 (Buffer overflow in _pdo_pgsql_error). (Remi)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64609 (pg_convert enum type support).', + 'raw' => 'Fixed bug #64609 (pg_convert enum type support). (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65015 (pg_send_query does not flush send buffer) patch submitted by: adam at vektah dot net', + 'raw' => 'Fixed bug #65015 (pg_send_query does not flush send buffer) patch submitted by: adam at vektah dot net (Yasuo)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Implement FR #55694 (Expose additional readline variable to prevent default filename completion).', + 'raw' => 'Implement FR #55694 (Expose additional readline variable to prevent default filename completion). (Hartmel)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems).', + 'raw' => 'Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems). (Laruence)', + ), + ), + ), + ), + '5.4.16' => + array ( + 'date' => '06 Jun 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110).', + 'raw' => 'Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64853 (Use of no longer available ini directives causes crash on TS build).', + 'raw' => 'Fixed bug #64853 (Use of no longer available ini directives causes crash on TS build). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64729 (compilation failure on x32).', + 'raw' => 'Fixed bug #64729 (compilation failure on x32). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #64720 (SegFault on zend_deactivate).', + 'raw' => 'Fixed bug #64720 (SegFault on zend_deactivate). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #64660 (Segfault on memory exhaustion within function definition).', + 'raw' => 'Fixed bug #64660 (Segfault on memory exhaustion within function definition). (Stas, reported by Juha Kylmänen)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64895 (Integer overflow in SndToJewish).', + 'raw' => 'Fixed bug #64895 (Integer overflow in SndToJewish). (Remi)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64830 (mimetype detection segfaults on mp3 file).', + 'raw' => 'Fixed bug #64830 (mimetype detection segfaults on mp3 file). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Ignore QUERY_STRING when sent in SCRIPT_FILENAME.', + 'raw' => 'Ignore QUERY_STRING when sent in SCRIPT_FILENAME. (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan.', + 'raw' => 'Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan. (Remi)', + ), + 2 => + array ( + 'message' => 'Log a warning when a syscall fails.', + 'raw' => 'Log a warning when a syscall fails. (Remi)', + ), + 3 => + array ( + 'message' => 'Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file.', + 'raw' => 'Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file. (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed).', + 'raw' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #64214 (PHAR PHPTs intermittently crash when run on DFS, SMB or with non std tmp dir).', + 'raw' => 'Fixed bug #64214 (PHAR PHPTs intermittently crash when run on DFS, SMB or with non std tmp dir). (Pierre)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64765 (Some IPv6 addresses get interpreted wrong).', + 'raw' => 'Fixed bug #64765 (Some IPv6 addresses get interpreted wrong). (Boris Lytochkin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64159 (Truncated snmpget).', + 'raw' => 'Fixed bug #64159 (Truncated snmpget). (Boris Lytochkin)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64).', + 'raw' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64). (Anatol)', + ), + ), + 'zend engine' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64821 (Custom Exceptions crash when internal properties overridden).', + 'raw' => 'Fixed bug #64821 (Custom Exceptions crash when internal properties overridden). (Anatol)', + ), + ), + ), + ), + '5.4.15' => + array ( + 'date' => '09 May 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault).', + 'raw' => 'Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64458 (dns_get_record result with string of length -1).', + 'raw' => 'Fixed bug #64458 (dns_get_record result with string of length -1). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64433 (follow_location parameter of context is ignored for most response codes).', + 'raw' => 'Fixed bug #64433 (follow_location parameter of context is ignored for most response codes). (Sergey Akbarov)', + ), + 3 => + array ( + 'message' => 'Fixed bugs #47675 and #64577', + 'raw' => 'Fixed bugs #47675 and #64577 (fd leak on Solaris)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Upgraded libmagic to 5.14.', + 'raw' => 'Upgraded libmagic to 5.14. (Anatol)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed).', + 'raw' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed). (Laruence)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64342 (ZipArchive::addFile() has to check for file existence).', + 'raw' => 'Fixed bug #64342 (ZipArchive::addFile() has to check for file existence). (Anatol)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed Windows x64 version of stream_socket_pair() and improved error handling.', + 'raw' => 'Fixed Windows x64 version of stream_socket_pair() and improved error handling. (Anatol Belski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64).', + 'raw' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64). (Anatol)', + ), + ), + ), + ), + '5.4.14' => + array ( + 'date' => '11 Apr 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64529 (Ran out of opcode space).', + 'raw' => 'Fixed bug #64529 (Ran out of opcode space). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64515 (Memoryleak when using the same variablename two times in function declaration).', + 'raw' => 'Fixed bug #64515 (Memoryleak when using the same variablename two times in function declaration). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64432 (more empty delimiter warning in strX methods).', + 'raw' => 'Fixed bug #64432 (more empty delimiter warning in strX methods). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #64417 (ArrayAccess::&offsetGet() in a trait causes fatal error).', + 'raw' => 'Fixed bug #64417 (ArrayAccess::&offsetGet() in a trait causes fatal error). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #64370 (microtime(true) less than $_SERVER[\'REQUEST_TIME_FLOAT\']).', + 'raw' => 'Fixed bug #64370 (microtime(true) less than $_SERVER[\'REQUEST_TIME_FLOAT\']). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11).', + 'raw' => 'Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11). (Dmitry, Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #63976 (Parent class incorrectly using child constant in class property).', + 'raw' => 'Fixed bug #63976 (Parent class incorrectly using child constant in class property). (Dmitry)', + ), + 7 => + array ( + 'message' => 'Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly).', + 'raw' => 'Fixed bug #63914 (zend_do_fcall_common_helper_SPEC does not handle exceptions properly). (Jeff Welch)', + ), + 8 => + array ( + 'message' => 'Fixed bug #62343 (Show class_alias In get_declared_classes())', + 'raw' => 'Fixed bug #62343 (Show class_alias In get_declared_classes()) (Dmitry)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Merged PCRE 8.32.', + 'raw' => 'Merged PCRE 8.32. (Anatol)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly).', + 'raw' => 'Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly). (Boris Lytochkin)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Bug #64452 (Zip crash intermittently).', + 'raw' => 'Bug #64452 (Zip crash intermittently). (Anatol)', + ), + ), + ), + ), + '5.4.13' => + array ( + 'date' => '14 Mar 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64354 (Unserialize array of objects whose class can\'t be autoloaded fail).', + 'raw' => 'Fixed bug #64354 (Unserialize array of objects whose class can\'t be autoloaded fail). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64235 (Insteadof not work for class method in 5.4.11).', + 'raw' => 'Fixed bug #64235 (Insteadof not work for class method in 5.4.11). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64197 (_Offsetof() macro used but not defined on ARM/Clang).', + 'raw' => 'Fixed bug #64197 (_Offsetof() macro used but not defined on ARM/Clang). (Ard Biesheuvel)', + ), + 3 => + array ( + 'message' => 'Implemented FR #64175 (Added HTTP codes as of RFC 6585).', + 'raw' => 'Implemented FR #64175 (Added HTTP codes as of RFC 6585). (Jonh Wendell)', + ), + 4 => + array ( + 'message' => 'Fixed bug #64142 (dval to lval different behavior on ppc64).', + 'raw' => 'Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #64070 (Inheritance with Traits failed with error).', + 'raw' => 'Fixed bug #64070 (Inheritance with Traits failed with error). (Dmitry)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64128 (buit-in web server is broken on ppc64).', + 'raw' => 'Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'mb_split() can now handle empty matches like preg_split() does.', + 'raw' => 'mb_split() can now handle empty matches like preg_split() does. (Moriyoshi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind).', + 'raw' => 'Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind). (Andrey)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'New SSL stream context option to prevent CRIME attack vector.', + 'raw' => 'New SSL stream context option to prevent CRIME attack vector. (Daniel Lowrey, Lars)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61930 (openssl corrupts ssl key resource when using openssl_get_publickey()).', + 'raw' => 'Fixed bug #61930 (openssl corrupts ssl key resource when using openssl_get_publickey()). (Stas)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60840 (undefined symbol: mysqlnd_debug_std_no_trace_funcs).', + 'raw' => 'Fixed bug #60840 (undefined symbol: mysqlnd_debug_std_no_trace_funcs). (Johannes)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed timestamp update on Phar contents modification.', + 'raw' => 'Fixed timestamp update on Phar contents modification. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added check that soap.wsdl_cache_dir conforms to open_basedir (CVE-2013-1635).', + 'raw' => 'Added check that soap.wsdl_cache_dir conforms to open_basedir (CVE-2013-1635). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Disabled external entities loading (CVE-2013-1643, CVE-2013-1824).', + 'raw' => 'Disabled external entities loading (CVE-2013-1643, CVE-2013-1824). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64264 (SPLFixedArray toArray problem).', + 'raw' => 'Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS).', + 'raw' => 'Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS). (patch by kriss@krizalys.com, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended).', + 'raw' => 'Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). (Nikita Popov)', + ), + 3 => + array ( + 'message' => 'Fixed bug #52861 (unset fails with ArrayObject and deep arrays).', + 'raw' => 'Fixed bug #52861 (unset fails with ArrayObject and deep arrays). (Mike Willbanks)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64124 (IPv6 malformed).', + 'raw' => 'Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin)', + ), + ), + ), + ), + '5.4.12' => + array ( + 'date' => '21 Feb 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64099 (Wrong TSRM usage in zend_Register_class alias).', + 'raw' => 'Fixed bug #64099 (Wrong TSRM usage in zend_Register_class alias). (Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64011 (get_html_translation_table() output incomplete with HTML_ENTITIES and ISO-8859-1).', + 'raw' => 'Fixed bug #64011 (get_html_translation_table() output incomplete with HTML_ENTITIES and ISO-8859-1). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63982 (isset() inconsistently produces a fatal error on protected property).', + 'raw' => 'Fixed bug #63982 (isset() inconsistently produces a fatal error on protected property). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #63943 (Bad warning text from strpos() on empty needle).', + 'raw' => 'Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #63899 (Use after scope error in zend_compile).', + 'raw' => 'Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very different length).', + 'raw' => 'Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very different length). (Gustavo)', + ), + 6 => + array ( + 'message' => 'Fixed bug #63882 (zend_std_compare_objects crash on recursion).', + 'raw' => 'Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)', + ), + 7 => + array ( + 'message' => 'Fixed bug #63462 (Magic methods called twice for unset protected properties).', + 'raw' => 'Fixed bug #63462 (Magic methods called twice for unset protected properties). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #62524 (fopen follows redirects for non-3xx statuses).', + 'raw' => 'Fixed bug #62524 (fopen follows redirects for non-3xx statuses). (Wes Mason)', + ), + 9 => + array ( + 'message' => 'Support BITMAPV5HEADER in getimagesize().', + 'raw' => 'Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63699 (Performance improvements for various ext/date functions).', + 'raw' => 'Fixed bug #63699 (Performance improvements for various ext/date functions). (Lars, original patch by njaguar at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV.', + 'raw' => 'Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11).', + 'raw' => 'Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63228 (-Werror=format-security error in lsapi code).', + 'raw' => 'Fixed bug #63228 (-Werror=format-security error in lsapi code). (Elan Ruusamäe, George)', + ), + ), + 'ext/sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren\'t using sqlite3_*_int64 API).', + 'raw' => 'Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren\'t using sqlite3_*_int64 API). (srgoogleguy, Lars)', + ), + 1 => + array ( + 'message' => 'Fixed bug #57702 (Multi-row BLOB fetches).', + 'raw' => 'Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long testsuite).', + 'raw' => 'Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long testsuite). (hswong3i, Lars)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even on 64bit builds in pdo_sqlite).', + 'raw' => 'Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even on 64bit builds in pdo_sqlite). (srgoogleguy, Lars)', + ), + ), + ), + ), + '5.4.11' => + array ( + 'date' => '17 Jan 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).', + 'raw' => 'Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #43177 (Errors in eval()\'ed code produce status code 500). .', + 'raw' => 'Fixed bug #43177 (Errors in eval()\'ed code produce status code 500). (Todd Ruth, Stas).', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63757 (getenv() produces memory leak with CGI SAPI).', + 'raw' => 'Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0).', + 'raw' => 'Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0). (martin at divbyzero dot net, Lars)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63737 (json_decode does not properly decode with options parameter).', + 'raw' => 'Fixed bug #63737 (json_decode does not properly decode with options parameter). (Adam)', + ), + 1 => + array ( + 'message' => 'Update list of common mime types. Added webm, ogv, ogg.', + 'raw' => 'Update list of common mime types. Added webm, ogv, ogg. (Lars, pascalc at gmail dot com)', + ), + ), + 'curl extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (segfault due to libcurl connection caching).', + 'raw' => 'Fixed bug (segfault due to libcurl connection caching). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63859 (Memory leak when reusing curl-handle).', + 'raw' => 'Fixed bug #63859 (Memory leak when reusing curl-handle). (Pierrick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63795 (CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST).', + 'raw' => 'Fixed bug #63795 (CURL >= 7.28.0 no longer support value 1 for CURLOPT_SSL_VERIFYHOST). (Pierrick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #63352 (Can\'t enable hostname validation when using curl stream wrappers).', + 'raw' => 'Fixed bug #63352 (Can\'t enable hostname validation when using curl stream wrappers). (Pierrick)', + ), + 4 => + array ( + 'message' => 'Fixed bug #55438 (Curlwapper is not sending http header randomly).', + 'raw' => 'Fixed bug #55438 (Curlwapper is not sending http header randomly). (phpnet@lostreality.org, Pierrick)', + ), + ), + ), + ), + '5.4.10' => + array ( + 'date' => '20 Dec 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63726 (Memleak with static properties and internal/user classes).', + 'raw' => 'Fixed bug #63726 (Memleak with static properties and internal/user classes). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63635 (Segfault in gc_collect_cycles).', + 'raw' => 'Fixed bug #63635 (Segfault in gc_collect_cycles). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes from value).', + 'raw' => 'Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes from value). (Pierrick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #63468 (wrong called method as callback with inheritance).', + 'raw' => 'Fixed bug #63468 (wrong called method as callback with inheritance). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #63451 (config.guess file does not have AIX 7 defined, shared objects are not created).', + 'raw' => 'Fixed bug #63451 (config.guess file does not have AIX 7 defined, shared objects are not created). (kemcline at au1 dot ibm dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61557 (Crasher in tt-rss backend.php).', + 'raw' => 'Fixed bug #61557 (Crasher in tt-rss backend.php). (i dot am dot jack dot mail at gmail dot com)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61272 (ob_start callback gets passed empty string).', + 'raw' => 'Fixed bug #61272 (ob_start callback gets passed empty string). (Mike, casper at langemeijer dot eu)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63666 (Poor date() performance). .', + 'raw' => 'Fixed bug #63666 (Poor date() performance). (Paul Taulborg).', + ), + 1 => + array ( + 'message' => 'Fixed bug #63435 (Datetime::format(\'u\') sometimes wrong by 1 microsecond).', + 'raw' => 'Fixed bug #63435 (Datetime::format(\'u\') sometimes wrong by 1 microsecond). (Remi)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63126 (DISABLE_AUTHENTICATOR ignores array).', + 'raw' => 'Fixed bug #63126 (DISABLE_AUTHENTICATOR ignores array). (Remi)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63588 (use php_next_utf8_char and remove duplicate implementation).', + 'raw' => 'Fixed bug #63588 (use php_next_utf8_char and remove duplicate implementation). (Remi)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63361 (missing header).', + 'raw' => 'Fixed bug #63361 (missing header). (Remi)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63398 (Segfault when polling closed link).', + 'raw' => 'Fixed bug #63398 (Segfault when polling closed link). (Laruence)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63590 (Different results in TS and NTS under Windows).', + 'raw' => 'Fixed bug #63590 (Different results in TS and NTS under Windows). (Anatoliy)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63581 Possible null dereference and buffer overflow', + 'raw' => 'Fixed bug #63581 Possible null dereference and buffer overflow (Remi)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #63149 getColumnMeta should return the table name when system SQLite used.', + 'raw' => 'Fixed Bug #63149 getColumnMeta should return the table name when system SQLite used. (Remi)', + ), + ), + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Enabled Apache 2.4 configure option for Windows', + 'raw' => 'Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #63614 (Fatal error on Reflection).', + 'raw' => 'Fixed Bug #63614 (Fatal error on Reflection). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63271 (SOAP wsdl cache is not enabled after initial requests).', + 'raw' => 'Fixed bug #63271 (SOAP wsdl cache is not enabled after initial requests). (John Jawed, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #49341 (Add SO_REUSEPORT support for socket_set_option()).', + 'raw' => 'Fixed bug #49341 (Add SO_REUSEPORT support for socket_set_option()). (Igor Wiedler, Lars)', + ), + 3 => + array ( + 'message' => 'Fixed bug #63680 (Memleak in splfixedarray with cycle reference).', + 'raw' => 'Fixed bug #63680 (Memleak in splfixedarray with cycle reference). (Laruence)', + ), + ), + ), + ), + '5.4.9' => + array ( + 'date' => '22 Nov 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63305 (zend_mm_heap corrupted with traits).', + 'raw' => 'Fixed bug #63305 (zend_mm_heap corrupted with traits). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63369 ((un)serialize() leaves dangling pointers, causes crashes).', + 'raw' => 'Fixed bug #63369 ((un)serialize() leaves dangling pointers, causes crashes). (Tony, Andrew Sitnikov)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63241 (PHP fails to open Windows deduplicated files).', + 'raw' => 'Fixed bug #63241 (PHP fails to open Windows deduplicated files). (daniel dot stelter-gliese at innogames dot de)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62444 (Handle leak in is_readable on windows).', + 'raw' => 'Fixed bug #62444 (Handle leak in is_readable on windows). (krazyest at seznam dot cz)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63363 (Curl silently accepts boolean true for SSL_VERIFYHOST). Patch by John Jawed GitHub PR #221', + 'raw' => 'Fixed bug #63363 (Curl silently accepts boolean true for SSL_VERIFYHOST). Patch by John Jawed GitHub PR #221 (Anthony)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63248 (Load multiple magic files from a directory under Windows).', + 'raw' => 'Fixed bug #63248 (Load multiple magic files from a directory under Windows). (Anatoliy)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63389 (Missing context check on libxml_set_streams_context() causes memleak).', + 'raw' => 'Fixed bug #63389 (Missing context check on libxml_set_streams_context() causes memleak). (Laruence)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63447 (max_input_vars doesn\'t filter variables when mbstring.encoding_translation = On).', + 'raw' => 'Fixed bug #63447 (max_input_vars doesn\'t filter variables when mbstring.encoding_translation = On). (Laruence)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro)', + 'raw' => 'Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro) (Chris Jones)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63180 (Corruption of hash tables).', + 'raw' => 'Fixed bug #63180 (Corruption of hash tables). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63055 (Segfault in zend_gc with SF2 testsuite).', + 'raw' => 'Fixed bug #63055 (Segfault in zend_gc with SF2 testsuite). (Dmitry, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63284 (Upgrade PCRE to 8.31).', + 'raw' => 'Fixed bug #63284 (Upgrade PCRE to 8.31). (Anatoliy)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec).', + 'raw' => 'Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec). (Martin Osvald, Remi)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62593 (Emulate prepares behave strangely with PARAM_BOOL).', + 'raw' => 'Fixed bug #62593 (Emulate prepares behave strangely with PARAM_BOOL). (Will Fitch)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63297 (Phar fails to write an openssl based signature).', + 'raw' => 'Fixed bug #63297 (Phar fails to write an openssl based signature). (Anatoliy)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63240 (stream_get_line() return contains delimiter string).', + 'raw' => 'Fixed bug #63240 (stream_get_line() return contains delimiter string). (Tjerk, Gustavo)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63399 (ReflectionClass::getTraitAliases() incorrectly resolves traitnames).', + 'raw' => 'Fixed bug #63399 (ReflectionClass::getTraitAliases() incorrectly resolves traitnames). (Laruence)', + ), + ), + ), + ), + '5.4.8' => + array ( + 'date' => '18 Oct 2012', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #63242 (Default error page in PHP built-in web server uses outdated html/css).', + 'raw' => 'Implemented FR #63242 (Default error page in PHP built-in web server uses outdated html/css). (pascal.chevrel@free.fr)', + ), + 1 => + array ( + 'message' => 'Changed response to unknown HTTP method to 501 according to RFC. .', + 'raw' => 'Changed response to unknown HTTP method to 501 according to RFC. (Niklas Lindgren).', + ), + 2 => + array ( + 'message' => 'Support HTTP PATCH method. Patch by Niklas Lindgren, GitHub PR #190.', + 'raw' => 'Support HTTP PATCH method. Patch by Niklas Lindgren, GitHub PR #190. (Lars)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63219 (Segfault when aliasing trait method when autoloader throws excpetion).', + 'raw' => 'Fixed bug #63219 (Segfault when aliasing trait method when autoloader throws excpetion). (Laruence)', + ), + 1 => + array ( + 'message' => 'Added optional second argument for assert() to specify custom message. Patch by Lonny Kapelushnik (lonny@lonnylot.com).', + 'raw' => 'Added optional second argument for assert() to specify custom message. Patch by Lonny Kapelushnik (lonny@lonnylot.com). (Lars)', + ), + 2 => + array ( + 'message' => 'Support building PHP with the native client toolchain.', + 'raw' => 'Support building PHP with the native client toolchain. (Stuart Langley)', + ), + 3 => + array ( + 'message' => 'Added --offline option for tests.', + 'raw' => 'Added --offline option for tests. (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #63162 (parse_url does not match password component).', + 'raw' => 'Fixed bug #63162 (parse_url does not match password component). (husman)', + ), + 5 => + array ( + 'message' => 'Fixed bug #63111 (is_callable() lies for abstract static method).', + 'raw' => 'Fixed bug #63111 (is_callable() lies for abstract static method). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #63093 (Segfault while load extension failed in zts-build).', + 'raw' => 'Fixed bug #63093 (Segfault while load extension failed in zts-build). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #62976 (Notice: could not be converted to int when comparing some builtin classes).', + 'raw' => 'Fixed bug #62976 (Notice: could not be converted to int when comparing some builtin classes). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #62955 (Only one directive is loaded from "Per Directory Values" Windows registry).', + 'raw' => 'Fixed bug #62955 (Only one directive is loaded from "Per Directory Values" Windows registry). (aserbulov at parallels dot com)', + ), + 9 => + array ( + 'message' => 'Fixed bug #62907 (Double free when use traits).', + 'raw' => 'Fixed bug #62907 (Double free when use traits). (Dmitry)', + ), + 10 => + array ( + 'message' => 'Fixed bug #61767 (Shutdown functions not called in certain error situation).', + 'raw' => 'Fixed bug #61767 (Shutdown functions not called in certain error situation). (Dmitry)', + ), + 11 => + array ( + 'message' => 'Fixed bug #60909 (custom error handler throwing Exception + fatal error = no shutdown function).', + 'raw' => 'Fixed bug #60909 (custom error handler throwing Exception + fatal error = no shutdown function). (Dmitry)', + ), + 12 => + array ( + 'message' => 'Fixed bug #60723 (error_log error time has changed to UTC ignoring default timezone).', + 'raw' => 'Fixed bug #60723 (error_log error time has changed to UTC ignoring default timezone). (Laruence)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62085 (file_get_contents a remote file by Curl wrapper will cause cpu Soaring).', + 'raw' => 'Fixed bug #62085 (file_get_contents a remote file by Curl wrapper will cause cpu Soaring). (Pierrick)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62896 ("DateTime->modify(\'+0 days\')" modifies DateTime object)', + 'raw' => 'Fixed bug #62896 ("DateTime->modify(\'+0 days\')" modifies DateTime object) (Lonny Kapelushnik)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62561 (DateTime add \'P1D\' adds 25 hours).', + 'raw' => 'Fixed bug #62561 (DateTime add \'P1D\' adds 25 hours). (Lonny Kapelushnik)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63015 (Incorrect arginfo for DOMErrorHandler).', + 'raw' => 'Fixed bug #63015 (Incorrect arginfo for DOMErrorHandler). (Rob)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62954 (startup problems fpm / php-fpm).', + 'raw' => 'Fixed bug #62954 (startup problems fpm / php-fpm). (fat)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62886 (PHP-FPM may segfault/hang on startup).', + 'raw' => 'Fixed bug #62886 (PHP-FPM may segfault/hang on startup). (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63085 (Systemd integration and daemonize).', + 'raw' => 'Fixed bug #63085 (Systemd integration and daemonize). (remi, fat)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62947 (Unneccesary warnings on FPM).', + 'raw' => 'Fixed bug #62947 (Unneccesary warnings on FPM). (fat)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62887 (Only /status?plain&full gives "last request cpu").', + 'raw' => 'Fixed bug #62887 (Only /status?plain&full gives "last request cpu"). (fat)', + ), + 5 => + array ( + 'message' => 'Fixed bug #62216 (Add PID to php-fpm init.d script).', + 'raw' => 'Fixed bug #62216 (Add PID to php-fpm init.d script). (fat)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60901 (Improve "tail" syntax for AIX installation)', + 'raw' => 'Fixed bug #60901 (Improve "tail" syntax for AIX installation) (Chris Jones)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #61421 (OpenSSL signature verification missing RMD160, SHA224, SHA256, SHA384, SHA512).', + 'raw' => 'Implemented FR #61421 (OpenSSL signature verification missing RMD160, SHA224, SHA256, SHA384, SHA512). (Mark Jones)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63258 (seg fault with PDO and dblib using DBSETOPT(H->link, DBQUOTEDIDENT, 1)).', + 'raw' => 'Fixed bug #63258 (seg fault with PDO and dblib using DBSETOPT(H->link, DBQUOTEDIDENT, 1)). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec).', + 'raw' => 'Fixed bug #63235 (buffer overflow in use of SQLGetDiagRec). (Martin Osvald, Remi)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63214 (Large PDO Firebird Queries).', + 'raw' => 'Fixed bug #63214 (Large PDO Firebird Queries). (james at kenjim dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice).', + 'raw' => 'Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Bug #62987 (Assigning to ArrayObject[null][something] overrides all undefined variables).', + 'raw' => 'Bug #62987 (Assigning to ArrayObject[null][something] overrides all undefined variables). (Laruence)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Allow passing null as a default value to mb_substr() and mb_strcut(). Patch by Alexander Moskaliov via GitHub PR #133.', + 'raw' => 'Allow passing null as a default value to mb_substr() and mb_strcut(). Patch by Alexander Moskaliov via GitHub PR #133. (Lars)', + ), + ), + 'filter extension' => + array ( + 0 => + array ( + 'message' => 'Bug #49510: Boolean validation fails with FILTER_NULL_ON_FAILURE with empty string or false.', + 'raw' => 'Bug #49510: Boolean validation fails with FILTER_NULL_ON_FAILURE with empty string or false. (Lars)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63000 (MCAST_JOIN_GROUP on OSX is broken, merge of PR 185 by Igor Wiedler).', + 'raw' => 'Fixed bug #63000 (MCAST_JOIN_GROUP on OSX is broken, merge of PR 185 by Igor Wiedler). (Lars)', + ), + ), + ), + ), + '5.4.7' => + array ( + 'date' => '13 Sep 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (segfault while build with zts and GOTO vm-kind).', + 'raw' => 'Fixed bug (segfault while build with zts and GOTO vm-kind). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62844 (parse_url() does not recognize //). .', + 'raw' => 'Fixed bug #62844 (parse_url() does not recognize //). (Andrew Faulds).', + ), + 2 => + array ( + 'message' => 'Fixed bug #62829 (stdint.h included on platform where HAVE_STDINT_H is not set).', + 'raw' => 'Fixed bug #62829 (stdint.h included on platform where HAVE_STDINT_H is not set). (Felipe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62763 (register_shutdown_function and extending class).', + 'raw' => 'Fixed bug #62763 (register_shutdown_function and extending class). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62725 (Calling exit() in a shutdown function does not return the exit value).', + 'raw' => 'Fixed bug #62725 (Calling exit() in a shutdown function does not return the exit value). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #62744 (dangling pointers made by zend_disable_class).', + 'raw' => 'Fixed bug #62744 (dangling pointers made by zend_disable_class). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #62716 (munmap() is called with the incorrect length).', + 'raw' => 'Fixed bug #62716 (munmap() is called with the incorrect length). (slangley@google.com)', + ), + 7 => + array ( + 'message' => 'Fixed bug #62358 (Segfault when using traits a lot).', + 'raw' => 'Fixed bug #62358 (Segfault when using traits a lot). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #62328 (implementing __toString and a cast to string fails)', + 'raw' => 'Fixed bug #62328 (implementing __toString and a cast to string fails) (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #51363 (Fatal error raised by var_export() not caught by error handler).', + 'raw' => 'Fixed bug #51363 (Fatal error raised by var_export() not caught by error handler). (Lonny Kapelushnik)', + ), + 10 => + array ( + 'message' => 'Fixed bug #40459 (Stat and Dir stream wrapper methods do not call constructor).', + 'raw' => 'Fixed bug #40459 (Stat and Dir stream wrapper methods do not call constructor). (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62912 (CURLINFO_PRIMARY_* AND CURLINFO_LOCAL_* not exposed).', + 'raw' => 'Fixed bug #62912 (CURLINFO_PRIMARY_* AND CURLINFO_LOCAL_* not exposed). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE).', + 'raw' => 'Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE). (Pierrick)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed Spoofchecker not being registered on ICU 49.1.', + 'raw' => 'Fixed Spoofchecker not being registered on ICU 49.1. (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fix bug #62933 (ext/intl compilation error on icu 3.4.1).', + 'raw' => 'Fix bug #62933 (ext/intl compilation error on icu 3.4.1). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fix bug #62915 (defective cloning in several intl classes).', + 'raw' => 'Fix bug #62915 (defective cloning in several intl classes). (Gustavo)', + ), + ), + 'installation' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62460 (php binaries installed as binary.dSYM).', + 'raw' => 'Fixed bug #62460 (php binaries installed as binary.dSYM). (Reeze Xia)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55856 (preg_replace should fail on trailing garbage).', + 'raw' => 'Fixed bug #55856 (preg_replace should fail on trailing garbage). (reg dot php at alf dot nu)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()).', + 'raw' => 'Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()). (Laruence)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62892 (ReflectionClass::getTraitAliases crashes on importing trait methods as private).', + 'raw' => 'Fixed bug #62892 (ReflectionClass::getTraitAliases crashes on importing trait methods as private). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result).', + 'raw' => 'Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result). (Laruence)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (segfault due to retval is not initialized).', + 'raw' => 'Fixed bug (segfault due to retval is not initialized). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug (segfault due to PS(mod_user_implemented) not be reseted when close handler call exit).', + 'raw' => 'Fixed bug (segfault due to PS(mod_user_implemented) not be reseted when close handler call exit). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice).', + 'raw' => 'Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray)', + 'raw' => 'Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray) (Laruence)', + ), + 1 => + array ( + 'message' => 'Implemented FR #62840 (Add sort flag to ArrayObject::ksort).', + 'raw' => 'Implemented FR #62840 (Add sort flag to ArrayObject::ksort). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62836 (Seg fault or broken object references on unserialize()).', + 'raw' => 'Fixed bug #62836 (Seg fault or broken object references on unserialize()). (Laruence)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Merged PR 121 by minitux to add support for slow request counting on PHP FPM status page.', + 'raw' => 'Merged PR 121 by minitux to add support for slow request counting on PHP FPM status page. (Lars)', + ), + ), + ), + ), + '5.4.6' => + array ( + 'date' => '16 Aug 2012', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #62700 (have the console output \'Listening on http://localhost:8000\').', + 'raw' => 'Implemented FR #62700 (have the console output \'Listening on http://localhost:8000\'). (pascal.chevrel@free.fr)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file).', + 'raw' => 'Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62653: (unset($array[$float]) causes a crash).', + 'raw' => 'Fixed bug #62653: (unset($array[$float]) causes a crash). (Nikita Popov, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62565 (Crashes due non-initialized internal properties_table).', + 'raw' => 'Fixed bug #62565 (Crashes due non-initialized internal properties_table). (Felipe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php).', + 'raw' => 'Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php). (Laruence)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false).', + 'raw' => 'Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false). (r.hampartsumyan@gmail.com, Laruence)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #62500 (Segfault in DateInterval class when extended).', + 'raw' => 'Fixed Bug #62500 (Segfault in DateInterval class when extended). (Laruence)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61964 (finfo_open with directory causes invalid free).', + 'raw' => 'Fixed bug #61964 (finfo_open with directory causes invalid free). (reeze.xia@gmail.com)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62564 (Extending MessageFormatter and adding property causes crash).', + 'raw' => 'Fixed bug #62564 (Extending MessageFormatter and adding property causes crash). (Felipe)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62594 (segfault in mysqlnd_res_meta::set_mode).', + 'raw' => 'Fixed bug #62594 (segfault in mysqlnd_res_meta::set_mode). (Laruence)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62612 (readline extension compilation fails with sapi/cli/cli.h: No such file).', + 'raw' => 'Fixed bug #62612 (readline extension compilation fails with sapi/cli/cli.h: No such file). (Johannes)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #61602 (Allow access to name of constant used as default value).', + 'raw' => 'Implemented FR #61602 (Allow access to name of constant used as default value). (reeze.xia@gmail.com)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #55218 Get namespaces from current node.', + 'raw' => 'Implemented FR #55218 Get namespaces from current node. (Lonny)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault).', + 'raw' => 'Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61527 (ArrayIterator gives misleading notice on next() when moved to the end).', + 'raw' => 'Fixed bug #61527 (ArrayIterator gives misleading notice on next() when moved to the end). (reeze.xia@gmail.com)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62597 (segfault in php_stream_wrapper_log_error with ZTS build).', + 'raw' => 'Fixed bug #62597 (segfault in php_stream_wrapper_log_error with ZTS build). (Laruence)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression).', + 'raw' => 'Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression). (Laruence)', + ), + ), + ), + ), + '5.4.5' => + array ( + 'date' => '19 Jul 2012', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed Salt).', + 'raw' => 'Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed Salt). (Anthony Ferrara)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62432 (ReflectionMethod random corrupt memory on high concurrent).', + 'raw' => 'Fixed bug #62432 (ReflectionMethod random corrupt memory on high concurrent). (Johannes)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62373 (serialize() generates wrong reference to the object).', + 'raw' => 'Fixed bug #62373 (serialize() generates wrong reference to the object). (Moriyoshi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62357 (compile failure: (S) Arguments missing for built-in function __memcmp).', + 'raw' => 'Fixed bug #62357 (compile failure: (S) Arguments missing for built-in function __memcmp). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution).', + 'raw' => 'Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #51094 (parse_ini_file() with INI_SCANNER_RAW cuts a value that includes a semi-colon).', + 'raw' => 'Fixed bug #51094 (parse_ini_file() with INI_SCANNER_RAW cuts a value that includes a semi-colon). (Pierrick)', + ), + 6 => + array ( + 'message' => 'Fixed potential overflow in _php_stream_scandir (CVE-2012-2688).', + 'raw' => 'Fixed potential overflow in _php_stream_scandir (CVE-2012-2688). (Jason Powell, Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed information leak in ext exif', + 'raw' => 'Fixed information leak in ext exif (discovered by Martin Noga, Matthew "j00ru" Jurczyk, Gynvael Coldwind)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62205 (php-fpm segfaults (null passed to strstr)).', + 'raw' => 'Fixed bug #62205 (php-fpm segfaults (null passed to strstr)). (fat)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62160 (Add process.priority to set nice(2) priorities).', + 'raw' => 'Fixed bug #62160 (Add process.priority to set nice(2) priorities). (fat)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62153 (when using unix sockets, multiples FPM instances', + 'raw' => 'Fixed bug #62153 (when using unix sockets, multiples FPM instances', + ), + 3 => + array ( + 'message' => 'Fixed bug #62033 (php-fpm exits with status 0 on some failures to start).', + 'raw' => 'Fixed bug #62033 (php-fpm exits with status 0 on some failures to start). (fat)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61839 (Unable to cross-compile PHP with --enable-fpm).', + 'raw' => 'Fixed bug #61839 (Unable to cross-compile PHP with --enable-fpm). (fat)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61835 (php-fpm is not allowed to run as root).', + 'raw' => 'Fixed bug #61835 (php-fpm is not allowed to run as root). (fat)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61295 (php-fpm should not fail with commented \'user\'', + 'raw' => 'Fixed bug #61295 (php-fpm should not fail with commented \'user\'', + ), + 7 => + array ( + 'message' => 'Fixed bug #61218 (FPM drops connection while receiving some binary values in FastCGI requests).', + 'raw' => 'Fixed bug #61218 (FPM drops connection while receiving some binary values in FastCGI requests). (fat)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61045 (fpm don\'t send error log to fastcgi clients). for non-root start).', + 'raw' => 'Fixed bug #61045 (fpm don\'t send error log to fastcgi clients). (fat) for non-root start). (fat)', + ), + 9 => + array ( + 'message' => 'Fixed bug #61026 (FPM pools can listen on the same address). can be launched without errors).', + 'raw' => 'Fixed bug #61026 (FPM pools can listen on the same address). (fat) can be launched without errors). (fat)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fix bug #55042 (Erealloc in iconv.c unsafe).', + 'raw' => 'Fix bug #55042 (Erealloc in iconv.c unsafe). (Stas)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62083 (grapheme_extract() memory leaks).', + 'raw' => 'Fixed bug #62083 (grapheme_extract() memory leaks). (Gustavo)', + ), + 1 => + array ( + 'message' => 'ResourceBundle constructor now accepts NULL for the first two arguments.', + 'raw' => 'ResourceBundle constructor now accepts NULL for the first two arguments. (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62081 (IntlDateFormatter constructor leaks memory when called twice).', + 'raw' => 'Fixed bug #62081 (IntlDateFormatter constructor leaks memory when called twice). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62070 (Collator::getSortKey() returns garbage).', + 'raw' => 'Fixed bug #62070 (Collator::getSortKey() returns garbage). (Gustavo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62017 (datefmt_create with incorrectly encoded timezone leaks pattern).', + 'raw' => 'Fixed bug #62017 (datefmt_create with incorrectly encoded timezone leaks pattern). (Gustavo)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60785 (memory leak in IntlDateFormatter constructor).', + 'raw' => 'Fixed bug #60785 (memory leak in IntlDateFormatter constructor). (Gustavo)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61359 (json_encode() calls too many reallocs).', + 'raw' => 'Fixed bug #61359 (json_encode() calls too many reallocs). (Stas)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62266 (Custom extension segfaults during xmlParseFile with FPM SAPI).', + 'raw' => 'Fixed bug #62266 (Custom extension segfaults during xmlParseFile with FPM SAPI). (Gustavo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62227 (Invalid phar stream path causes crash).', + 'raw' => 'Fixed bug #62227 (Invalid phar stream path causes crash). (Felipe)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62186 (readline fails to compile - void function should not return a value).', + 'raw' => 'Fixed bug #62186 (readline fails to compile - void function should not return a value). (Johannes)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62384 (Attempting to invoke a Closure more than once causes segfault).', + 'raw' => 'Fixed bug #62384 (Attempting to invoke a Closure more than once causes segfault). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks with constant).', + 'raw' => 'Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks with constant). (Laruence)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62025 (__ss_family was changed on AIX 5.3).', + 'raw' => 'Fixed bug #62025 (__ss_family was changed on AIX 5.3). (Felipe)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62433 (Inconsistent behavior of RecursiveDirectoryIterator to dot files).', + 'raw' => 'Fixed bug #62433 (Inconsistent behavior of RecursiveDirectoryIterator to dot files). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62262 (RecursiveArrayIterator does not implement Countable).', + 'raw' => 'Fixed bug #62262 (RecursiveArrayIterator does not implement Countable). (Nikita Popov)', + ), + ), + 'xml writer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62064 (memory leak in the XML Writer module).', + 'raw' => 'Fixed bug #62064 (memory leak in the XML Writer module). (jean-pierre dot lozi at lip6 dot fr)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Upgraded libzip to 0.10.1', + 'raw' => 'Upgraded libzip to 0.10.1 (Anatoliy)', + ), + ), + ), + ), + '5.4.4' => + array ( + 'date' => '14 Jun 2012', + 'modules' => + array ( + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62146 com_dotnet cannot be built shared.', + 'raw' => 'Fixed bug #62146 com_dotnet cannot be built shared. (Johannes)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #61977 (Need CLI web-server support for files with .htm & svg extensions).', + 'raw' => 'Implemented FR #61977 (Need CLI web-server support for files with .htm & svg extensions). (Sixd, Laruence)', + ), + 1 => + array ( + 'message' => 'Improved performance while sending error page, this also fixed bug #61785 (Memory leak when access a non-exists file without router).', + 'raw' => 'Improved performance while sending error page, this also fixed bug #61785 (Memory leak when access a non-exists file without router). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61546 (functions related to current script failed when chdir() in cli sapi).', + 'raw' => 'Fixed bug #61546 (functions related to current script failed when chdir() in cli sapi). (Laruence, reeze.xia@gmail.com)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed missing bound check in iptcparse().', + 'raw' => 'Fixed missing bound check in iptcparse(). (chris at chiappa.net)', + ), + 1 => + array ( + 'message' => 'Fixed CVE-2012-2143.', + 'raw' => 'Fixed CVE-2012-2143. (Solar Designer)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62097 (fix for for bug #54547).', + 'raw' => 'Fixed bug #62097 (fix for for bug #54547). (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62005 (unexpected behavior when incrementally assigning to a member of a null object).', + 'raw' => 'Fixed bug #62005 (unexpected behavior when incrementally assigning to a member of a null object). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61978 (Object recursion not detected for classes that implement JsonSerializable).', + 'raw' => 'Fixed bug #61978 (Object recursion not detected for classes that implement JsonSerializable). (Felipe)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61991 (long overflow in realpath_cache_get()).', + 'raw' => 'Fixed bug #61991 (long overflow in realpath_cache_get()). (Anatoliy)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61922 (ZTS build doesn\'t accept zend.script_encoding config).', + 'raw' => 'Fixed bug #61922 (ZTS build doesn\'t accept zend.script_encoding config). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61827 (incorrect \\e processing on Windows)', + 'raw' => 'Fixed bug #61827 (incorrect \\e processing on Windows) (Anatoliy)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61782 (__clone/__destruct do not match other methods when checking access controls).', + 'raw' => 'Fixed bug #61782 (__clone/__destruct do not match other methods when checking access controls). (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #61764 (\'I\' unpacks n as signed if n > 2^31-1 on LP64).', + 'raw' => 'Fixed bug #61764 (\'I\' unpacks n as signed if n > 2^31-1 on LP64). (Gustavo)', + ), + 10 => + array ( + 'message' => 'Fixed bug #61761 (\'Overriding\' a private static method with a different signature causes crash).', + 'raw' => 'Fixed bug #61761 (\'Overriding\' a private static method with a different signature causes crash). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #61730 (Segfault from array_walk modifying an array passed by reference).', + 'raw' => 'Fixed bug #61730 (Segfault from array_walk modifying an array passed by reference). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #61728 (PHP crash when calling ob_start in request_shutdown phase).', + 'raw' => 'Fixed bug #61728 (PHP crash when calling ob_start in request_shutdown phase). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #61713 (Logic error in charset detection for htmlentities).', + 'raw' => 'Fixed bug #61713 (Logic error in charset detection for htmlentities). (Anatoliy)', + ), + 14 => + array ( + 'message' => 'Fixed bug #61660 (bin2hex(hex2bin($data)) != $data).', + 'raw' => 'Fixed bug #61660 (bin2hex(hex2bin($data)) != $data). (Nikita Popov)', + ), + 15 => + array ( + 'message' => 'Fixed bug #61650 (ini parser crashes when using ${xxxx} ini variables (without apache2)).', + 'raw' => 'Fixed bug #61650 (ini parser crashes when using ${xxxx} ini variables (without apache2)). (Laruence)', + ), + 16 => + array ( + 'message' => 'Fixed bug #61605 (header_remove() does not remove all headers).', + 'raw' => 'Fixed bug #61605 (header_remove() does not remove all headers). (Laruence)', + ), + 17 => + array ( + 'message' => 'Fixed bug #54547 (wrong equality of string numbers).', + 'raw' => 'Fixed bug #54547 (wrong equality of string numbers). (Gustavo)', + ), + 18 => + array ( + 'message' => 'Fixed bug #54197 ([PATH=] sections incompatibility with user_ini.filename set to null).', + 'raw' => 'Fixed bug #54197 ([PATH=] sections incompatibility with user_ini.filename set to null). (Anatoliy)', + ), + 19 => + array ( + 'message' => 'Changed php://fd to be available only for CLI.', + 'raw' => 'Changed php://fd to be available only for CLI.', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61948 (CURLOPT_COOKIEFILE \'\' raises open_basedir restriction).', + 'raw' => 'Fixed bug #61948 (CURLOPT_COOKIEFILE \'\' raises open_basedir restriction). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61812 (Uninitialised value used in libmagic).', + 'raw' => 'Fixed bug #61812 (Uninitialised value used in libmagic). (Laruence, Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61566 failure caused by the posix lseek and read versions under windows in cdf_read().', + 'raw' => 'Fixed bug #61566 failure caused by the posix lseek and read versions under windows in cdf_read(). (Anatoliy)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61565 where php_stream_open_wrapper_ex tries to open a directory descriptor under windows.', + 'raw' => 'Fixed bug #61565 where php_stream_open_wrapper_ex tries to open a directory descriptor under windows. (Anatoliy)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62082 (Memory corruption in internal function get_icu_disp_value_src_php()).', + 'raw' => 'Fixed bug #62082 (Memory corruption in internal function get_icu_disp_value_src_php()). (Gustavo)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61617 (Libxml tests failed(ht is already destroyed)).', + 'raw' => 'Fixed bug #61617 (Libxml tests failed(ht is already destroyed)). (Laruence)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61755 (A parsing bug in the prepared statements can lead to access violations).', + 'raw' => 'Fixed bug #61755 (A parsing bug in the prepared statements can lead to access violations). (Johannes)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61065 (Secunia SA44335, CVE-2012-2386).', + 'raw' => 'Fixed bug #61065 (Secunia SA44335, CVE-2012-2386). (Rasmus)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added pg_escape_identifier/pg_escape_literal.', + 'raw' => 'Added pg_escape_identifier/pg_escape_literal. (Yasuo Ohgaki)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61961 (file_get_contents leaks when access empty file with maxlen set).', + 'raw' => 'Fixed bug #61961 (file_get_contents leaks when access empty file with maxlen set). (Reeze)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61820 (using ob_gzhandler will complain about headers already sent when no compression).', + 'raw' => 'Fixed bug #61820 (using ob_gzhandler will complain about headers already sent when no compression). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61443 (can\'t change zlib.output_compression on the fly).', + 'raw' => 'Fixed bug #61443 (can\'t change zlib.output_compression on the fly). (Mike)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60761 (zlib.output_compression fails on refresh).', + 'raw' => 'Fixed bug #60761 (zlib.output_compression fails on refresh). (Mike)', + ), + ), + ), + ), + '5.4.3' => + array ( + 'date' => '08 May 2012', + 'modules' => + array ( + ), + ), + '5.4.2' => + array ( + 'date' => '03 May 2012', + 'modules' => + array ( + ), + ), + '5.4.1' => + array ( + 'date' => '26 Apr 2012', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fix bug #61807 - Buffer Overflow in apache_request_headers. (nyt-php at countercultured dot net). - Fix PHP-CGI query string parameter vulnerability, CVE-2012-1823.', + 'raw' => 'Fix bug #61807 - Buffer Overflow in apache_request_headers. (nyt-php at countercultured dot net). - Fix PHP-CGI query string parameter vulnerability, CVE-2012-1823. (Rasmus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61461 (missing checks around malloc() calls).', + 'raw' => 'Fixed bug #61461 (missing checks around malloc() calls). (Ilia)', + ), + 2 => + array ( + 'message' => 'Implemented FR #60850 (Built in web server does not set $_SERVER[\'SCRIPT_FILENAME\'] when using router).', + 'raw' => 'Implemented FR #60850 (Built in web server does not set $_SERVER[\'SCRIPT_FILENAME\'] when using router). (Laruence)', + ), + 3 => + array ( + 'message' => '"Connection: close" instead of "Connection: closed"', + 'raw' => '"Connection: close" instead of "Connection: closed" (Gustavo)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed crash in ZTS using same class in many threads.', + 'raw' => 'Fixed crash in ZTS using same class in many threads. (Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61374 (html_entity_decode tries to decode code points that don\'t exist in ISO-8859-1).', + 'raw' => 'Fixed bug #61374 (html_entity_decode tries to decode code points that don\'t exist in ISO-8859-1). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes).', + 'raw' => 'Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61225 (Incorrect lexing of 0b00*+).', + 'raw' => 'Fixed bug #61225 (Incorrect lexing of 0b00*+). (Pierrick)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61165 (Segfault - strip_tags()).', + 'raw' => 'Fixed bug #61165 (Segfault - strip_tags()). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61106 (Segfault when using header_register_callback).', + 'raw' => 'Fixed bug #61106 (Segfault when using header_register_callback). (Nikita Popov)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode).', + 'raw' => 'Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode). (Nikic, Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61072 (Memory leak when restoring an exception handler).', + 'raw' => 'Fixed bug #61072 (Memory leak when restoring an exception handler). (Nikic, Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX).', + 'raw' => 'Fixed bug #61058 (array_fill leaks if start index is PHP_INT_MAX). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #61052 (Missing error check in trait \'insteadof\' clause).', + 'raw' => 'Fixed bug #61052 (Missing error check in trait \'insteadof\' clause). (Stefan)', + ), + 10 => + array ( + 'message' => 'Fixed bug #61011 (Crash when an exception is thrown by __autoload accessing a static property).', + 'raw' => 'Fixed bug #61011 (Crash when an exception is thrown by __autoload accessing a static property). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #61000 (Exceeding max nesting level doesn\'t delete numerical vars).', + 'raw' => 'Fixed bug #61000 (Exceeding max nesting level doesn\'t delete numerical vars). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #60978 (exit code incorrect).', + 'raw' => 'Fixed bug #60978 (exit code incorrect). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #60911 (Confusing error message when extending traits).', + 'raw' => 'Fixed bug #60911 (Confusing error message when extending traits). (Stefan)', + ), + 14 => + array ( + 'message' => 'Fixed bug #60801 (strpbrk() mishandles NUL byte).', + 'raw' => 'Fixed bug #60801 (strpbrk() mishandles NUL byte). (Adam)', + ), + 15 => + array ( + 'message' => 'Fixed bug #60717 (Order of traits in use statement can cause a fatal error).', + 'raw' => 'Fixed bug #60717 (Order of traits in use statement can cause a fatal error). (Stefan)', + ), + 16 => + array ( + 'message' => 'Fixed bug #60573 (type hinting with "self" keyword causes weird errors).', + 'raw' => 'Fixed bug #60573 (type hinting with "self" keyword causes weird errors). (Laruence)', + ), + 17 => + array ( + 'message' => 'Fixed bug #60569 (Nullbyte truncates Exception $message).', + 'raw' => 'Fixed bug #60569 (Nullbyte truncates Exception $message). (Ilia)', + ), + 18 => + array ( + 'message' => 'Fixed bug #52719 (array_walk_recursive crashes if third param of the function is by reference).', + 'raw' => 'Fixed bug #52719 (array_walk_recursive crashes if third param of the function is by reference). (Nikita Popov)', + ), + 19 => + array ( + 'message' => 'Improve performance of set_exception_handler while doing reset', + 'raw' => 'Improve performance of set_exception_handler while doing reset (Laruence)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fix fileinfo test problems.', + 'raw' => 'Fix fileinfo test problems. (Anatoliy Belsky)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61430 (Transposed memset() params in sapi/fpm/fpm/fpm_shm.c).', + 'raw' => 'Fixed bug #61430 (Transposed memset() params in sapi/fpm/fpm/fpm_shm.c). (michaelhood at gmail dot com, Ilia)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60947 (Segmentation fault while executing ibase_db_info).', + 'raw' => 'Fixed bug #60947 (Segmentation fault while executing ibase_db_info). (Ilia)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61172 (Add Apache 2.4 support).', + 'raw' => 'Fixed bug #61172 (Add Apache 2.4 support). (Chris Jones)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61487 (Incorrent bounds checking in grapheme_strpos).', + 'raw' => 'Fixed bug #61487 (Incorrent bounds checking in grapheme_strpos). (Stas)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'MFH mb_ereg_replace_callback() for security enhancements.', + 'raw' => 'MFH mb_ereg_replace_callback() for security enhancements. (Rui)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61003 (mysql_stat() require a valid connection). .', + 'raw' => 'Fixed bug #61003 (mysql_stat() require a valid connection). (Johannes).', + ), + 2 => + array ( + 'message' => 'Fixed bug #61704 (Crash apache, phpinfo() threading issue).', + 'raw' => 'Fixed bug #61704 (Crash apache, phpinfo() threading issue). (Johannes)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60948 (mysqlnd FTBFS when -Wformat-security is enabled).', + 'raw' => 'Fixed bug #60948 (mysqlnd FTBFS when -Wformat-security is enabled). (Johannes)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61292 (Segfault while calling a method on an overloaded PDO object).', + 'raw' => 'Fixed bug #61292 (Segfault while calling a method on an overloaded PDO object). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61207 (PDO::nextRowset() after a multi-statement query doesn\'t always work).', + 'raw' => 'Fixed bug #61207 (PDO::nextRowset() after a multi-statement query doesn\'t always work). (Johannes)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61194 (PDO should export compression flag with myslqnd).', + 'raw' => 'Fixed bug #61194 (PDO should export compression flag with myslqnd). (Johannes)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61212 (PDO ODBC Segfaults on SQL_SUCESS_WITH_INFO).', + 'raw' => 'Fixed bug #61212 (PDO ODBC Segfaults on SQL_SUCESS_WITH_INFO). (Ilia)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL bytes).', + 'raw' => 'Fixed bug #61184 (Phar::webPhar() generates headers with trailing NUL bytes). (Nikita Popov)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61088 (Memory leak in readline_callback_handler_install).', + 'raw' => 'Fixed bug #61088 (Memory leak in readline_callback_handler_install). (Nikic, Laruence)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #61602 (Allow access to the name of constant used as function/method parameter\'s default value).', + 'raw' => 'Implemented FR #61602 (Allow access to the name of constant used as function/method parameter\'s default value). (reeze.xia@gmail.com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60968 (Late static binding doesn\'t work with ReflectionMethod::invokeArgs()).', + 'raw' => 'Fixed bug #60968 (Late static binding doesn\'t work with ReflectionMethod::invokeArgs()). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()).', + 'raw' => 'Fixed bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()). (Ilia)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61423 (gzip compression fails).', + 'raw' => 'Fixed bug #61423 (gzip compression fails). (Ilia)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60887 (SoapClient ignores user_agent option and sends no User-Agent header).', + 'raw' => 'Fixed bug #60887 (SoapClient ignores user_agent option and sends no User-Agent header). (carloschilazo at gmail dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60842, #51775 (Chunked response parsing error when chunksize length line is > 10 bytes).', + 'raw' => 'Fixed bug #60842, #51775 (Chunked response parsing error when chunksize length line is > 10 bytes). (Ilia)', + ), + 6 => + array ( + 'message' => 'Fixed bug #49853 (Soap Client stream context header option ignored).', + 'raw' => 'Fixed bug #49853 (Soap Client stream context header option ignored). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61453 (SplObjectStorage does not identify objects correctly).', + 'raw' => 'Fixed bug #61453 (SplObjectStorage does not identify objects correctly). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61347 (inconsistent isset behavior of Arrayobject).', + 'raw' => 'Fixed bug #61347 (inconsistent isset behavior of Arrayobject). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak in substr_replace.', + 'raw' => 'Fixed memory leak in substr_replace. (Pierrick)', + ), + 1 => + array ( + 'message' => 'Make max_file_uploads ini directive settable outside of php.ini', + 'raw' => 'Make max_file_uploads ini directive settable outside of php.ini (Rasmus)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61409 (Bad formatting on phpinfo()).', + 'raw' => 'Fixed bug #61409 (Bad formatting on phpinfo()). (Jakub Vrana)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60222 (time_nanosleep() does validate input params).', + 'raw' => 'Fixed bug #60222 (time_nanosleep() does validate input params). (Ilia)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths).', + 'raw' => 'Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths). (Ilia)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable).', + 'raw' => 'Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable). (Nikita Popov)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals).', + 'raw' => 'Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals). (Nikita Popov)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61306 (initialization of global inappropriate for ZTS).', + 'raw' => 'Fixed bug #61306 (initialization of global inappropriate for ZTS). (Gustavo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61287 (A particular string fails to decompress).', + 'raw' => 'Fixed bug #61287 (A particular string fails to decompress). (Mike)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61139 (gzopen leaks when specifying invalid mode).', + 'raw' => 'Fixed bug #61139 (gzopen leaks when specifying invalid mode). (Nikita Popov)', + ), + ), + ), + ), + '5.4.0' => + array ( + 'date' => '01 Mar 2012', + 'modules' => + array ( + 'installation' => + array ( + 0 => + array ( + 'message' => 'autoconf 2.59+ is now supported (and required) for generating the configure script with ./buildconf. Autoconf 2.60+ is desirable otherwise the configure help order may be incorrect.', + 'raw' => 'autoconf 2.59+ is now supported (and required) for generating the configure script with ./buildconf. Autoconf 2.60+ is desirable otherwise the configure help order may be incorrect. (Rasmus, Chris Jones)', + ), + ), + 'removed legacy features' => + array ( + 0 => + array ( + 'message' => 'break/continue $var syntax.', + 'raw' => 'break/continue $var syntax. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Safe mode and all related php.ini options.', + 'raw' => 'Safe mode and all related php.ini options. (Kalle)', + ), + 2 => + array ( + 'message' => 'register_globals and register_long_arrays php.ini options.', + 'raw' => 'register_globals and register_long_arrays php.ini options. (Kalle)', + ), + 3 => + array ( + 'message' => 'import_request_variables().', + 'raw' => 'import_request_variables(). (Kalle)', + ), + 4 => + array ( + 'message' => 'allow_call_time_pass_reference.', + 'raw' => 'allow_call_time_pass_reference. (Pierrick)', + ), + 5 => + array ( + 'message' => 'define_syslog_variables php.ini option and its associated function.', + 'raw' => 'define_syslog_variables php.ini option and its associated function. (Kalle)', + ), + 6 => + array ( + 'message' => 'highlight.bg php.ini option.', + 'raw' => 'highlight.bg php.ini option. (Kalle)', + ), + 7 => + array ( + 'message' => 'safe_mode, safe_mode_gid, safe_mode_include_dir, safe_mode_exec_dir, safe_mode_allowed_env_vars and safe_mode_protected_env_vars php.ini options.', + 'raw' => 'safe_mode, safe_mode_gid, safe_mode_include_dir, safe_mode_exec_dir, safe_mode_allowed_env_vars and safe_mode_protected_env_vars php.ini options.', + ), + 8 => + array ( + 'message' => 'zend.ze1_compatibility_mode php.ini option.', + 'raw' => 'zend.ze1_compatibility_mode php.ini option.', + ), + 9 => + array ( + 'message' => 'Session bug compatibility mode (session.bug_compat_42 and session.bug_compat_warn php.ini options).', + 'raw' => 'Session bug compatibility mode (session.bug_compat_42 and session.bug_compat_warn php.ini options). (Kalle)', + ), + 10 => + array ( + 'message' => 'session_is_registered(), session_register() and session_unregister() functions.', + 'raw' => 'session_is_registered(), session_register() and session_unregister() functions. (Kalle)', + ), + 11 => + array ( + 'message' => 'y2k_compliance php.ini option.', + 'raw' => 'y2k_compliance php.ini option. (Kalle)', + ), + 12 => + array ( + 'message' => 'magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase php.ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR.', + 'raw' => 'magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase php.ini options. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false, set_magic_quotes_runtime raises an E_CORE_ERROR. (Pierrick, Pierre)', + ), + 13 => + array ( + 'message' => 'Removed support for putenv("TZ=..") for setting the timezone.', + 'raw' => 'Removed support for putenv("TZ=..") for setting the timezone. (Derick)', + ), + 14 => + array ( + 'message' => 'Removed the timezone guessing algorithm in case the timezone isn\'t set with date.timezone or date_default_timezone_set(). Instead of a guessed timezone, "UTC" is now used instead.', + 'raw' => 'Removed the timezone guessing algorithm in case the timezone isn\'t set with date.timezone or date_default_timezone_set(). Instead of a guessed timezone, "UTC" is now used instead. (Derick)', + ), + ), + 'moved extensions to pecl' => + array ( + 0 => + array ( + 'message' => 'ext/sqlite. (Note: the ext/sqlite3 and ext/pdo_sqlite extensions are not affected)', + 'raw' => 'ext/sqlite. (Note: the ext/sqlite3 and ext/pdo_sqlite extensions are not affected) (Johannes)', + ), + ), + 'general improvements' => + array ( + 0 => + array ( + 'message' => 'Added short array syntax support ([1,2,3]), see UPGRADING guide for full details.', + 'raw' => 'Added short array syntax support ([1,2,3]), see UPGRADING guide for full details. (rsky0711 at gmail . com, sebastian.deutsch at 9elements . com, Pierre)', + ), + 1 => + array ( + 'message' => 'Added binary number format (0b001010).', + 'raw' => 'Added binary number format (0b001010). (Jonah dot Harris at gmail dot com)', + ), + 2 => + array ( + 'message' => 'Added support for Class::{expr}() syntax', + 'raw' => 'Added support for Class::{expr}() syntax (Pierrick)', + ), + 3 => + array ( + 'message' => 'Added multibyte support by default. Previously PHP had to be compiled with --enable-zend-multibyte. Now it can be enabled or disabled through the zend.multibyte directive in php.ini.', + 'raw' => 'Added multibyte support by default. Previously PHP had to be compiled with --enable-zend-multibyte. Now it can be enabled or disabled through the zend.multibyte directive in php.ini. (Dmitry)', + ), + 4 => + array ( + 'message' => 'Removed compile time dependency from ext/mbstring', + 'raw' => 'Removed compile time dependency from ext/mbstring (Dmitry)', + ), + 5 => + array ( + 'message' => 'Added support for Traits.', + 'raw' => 'Added support for Traits. (Stefan, with fixes by Dmitry and Laruence)', + ), + 6 => + array ( + 'message' => 'Added closure $this support back.', + 'raw' => 'Added closure $this support back. (Stas)', + ), + 7 => + array ( + 'message' => 'Added array dereferencing support.', + 'raw' => 'Added array dereferencing support. (Felipe)', + ), + 8 => + array ( + 'message' => 'Added callable typehint.', + 'raw' => 'Added callable typehint. (Hannes)', + ), + 9 => + array ( + 'message' => 'Added indirect method call through array. FR #47160.', + 'raw' => 'Added indirect method call through array. FR #47160. (Felipe)', + ), + 10 => + array ( + 'message' => 'Added DTrace support.', + 'raw' => 'Added DTrace support. (David Soria Parra)', + ), + 11 => + array ( + 'message' => 'Added class member access on instantiation (e.g. (new foo)->bar()) support.', + 'raw' => 'Added class member access on instantiation (e.g. (new foo)->bar()) support. (Felipe)', + ), + 12 => + array ( + 'message' => ' ' + array ( + 'message' => 'Implemented Zend Signal Handling (configurable option --enable-zend-signals, off by default).', + 'raw' => 'Implemented Zend Signal Handling (configurable option --enable-zend-signals, off by default). (Lucas Nealan, Arnaud Le Blanc, Brian Shire, Ilia)', + ), + 14 => + array ( + 'message' => 'Improved output layer, see README.NEW-OUTPUT-API for internals.', + 'raw' => 'Improved output layer, see README.NEW-OUTPUT-API for internals. (Mike)', + ), + 15 => + array ( + 'message' => 'Improved UNIX build system to allow building multiple PHP binary SAPIs and one SAPI module the same time. FR #53271, FR #52419.', + 'raw' => 'Improved UNIX build system to allow building multiple PHP binary SAPIs and one SAPI module the same time. FR #53271, FR #52419. (Jani)', + ), + 16 => + array ( + 'message' => 'Implemented closure rebinding as parameter to bindTo.', + 'raw' => 'Implemented closure rebinding as parameter to bindTo. (Gustavo Lopes)', + ), + 17 => + array ( + 'message' => 'Improved the warning message of incompatible arguments.', + 'raw' => 'Improved the warning message of incompatible arguments. (Laruence)', + ), + 18 => + array ( + 'message' => 'Improved ternary operator performance when returning arrays.', + 'raw' => 'Improved ternary operator performance when returning arrays. (Arnaud, Dmitry)', + ), + 19 => + array ( + 'message' => 'Changed error handlers to only generate docref links when the docref_root php.ini setting is not empty.', + 'raw' => 'Changed error handlers to only generate docref links when the docref_root php.ini setting is not empty. (Derick)', + ), + 20 => + array ( + 'message' => 'Changed silent conversion of array to string to produce a notice.', + 'raw' => 'Changed silent conversion of array to string to produce a notice. (Patrick)', + ), + 21 => + array ( + 'message' => 'Changed default encoding from ISO-8859-1 to UTF-8 when not specified in htmlspecialchars and htmlentities.', + 'raw' => 'Changed default encoding from ISO-8859-1 to UTF-8 when not specified in htmlspecialchars and htmlentities. (Rasmus)', + ), + 22 => + array ( + 'message' => 'Changed casting of null/\'\'/false into an Object when adding a property from E_STRICT into a warning.', + 'raw' => 'Changed casting of null/\'\'/false into an Object when adding a property from E_STRICT into a warning. (Scott)', + ), + 23 => + array ( + 'message' => 'Changed E_ALL to include E_STRICT.', + 'raw' => 'Changed E_ALL to include E_STRICT. (Stas)', + ), + 24 => + array ( + 'message' => 'Disabled Windows CRT warning by default, can be enabled again using the php.ini directive windows_show_crt_warnings.', + 'raw' => 'Disabled Windows CRT warning by default, can be enabled again using the php.ini directive windows_show_crt_warnings. (Pierre)', + ), + 25 => + array ( + 'message' => 'Fixed bug #55378: Binary number literal returns float number though its value is small enough.', + 'raw' => 'Fixed bug #55378: Binary number literal returns float number though its value is small enough. (Derick)', + ), + ), + 'improved zend engine memory usage' => + array ( + 0 => + array ( + 'message' => 'Improved parse error messages.', + 'raw' => 'Improved parse error messages. (Felipe)', + ), + 1 => + array ( + 'message' => 'Replaced zend_function.pass_rest_by_reference by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags.', + 'raw' => 'Replaced zend_function.pass_rest_by_reference by ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags.', + ), + 2 => + array ( + 'message' => 'Replaced zend_function.return_reference by ZEND_ACC_RETURN_REFERENCE in zend_function.fn_flags.', + 'raw' => 'Replaced zend_function.return_reference by ZEND_ACC_RETURN_REFERENCE in zend_function.fn_flags.', + ), + 3 => + array ( + 'message' => 'Removed zend_arg_info.required_num_args as it was only needed for internal functions. Now the first arg_info for internal functions is represented by the zend_internal_function_info structure.', + 'raw' => 'Removed zend_arg_info.required_num_args as it was only needed for internal functions. Now the first arg_info for internal functions (which has special meaning) is represented by the zend_internal_function_info structure.', + ), + 4 => + array ( + 'message' => 'Moved zend_op_array.size, size_var, size_literal, current_brk_cont, backpatch_count into CG(context) as they are used only during compilation.', + 'raw' => 'Moved zend_op_array.size, size_var, size_literal, current_brk_cont, backpatch_count into CG(context) as they are used only during compilation.', + ), + 5 => + array ( + 'message' => 'Moved zend_op_array.start_op into EG(start_op) as it\'s used only for \'interactive\' execution of a single top-level op-array.', + 'raw' => 'Moved zend_op_array.start_op into EG(start_op) as it\'s used only for \'interactive\' execution of a single top-level op-array.', + ), + 6 => + array ( + 'message' => 'Replaced zend_op_array.done_pass_two by ZEND_ACC_DONE_PASS_TWO in zend_op_array.fn_flags.', + 'raw' => 'Replaced zend_op_array.done_pass_two by ZEND_ACC_DONE_PASS_TWO in zend_op_array.fn_flags.', + ), + 7 => + array ( + 'message' => 'op_array.vars array is trimmed during pass_two.', + 'raw' => 'op_array.vars array is trimmed (reallocated) during pass_two.', + ), + 8 => + array ( + 'message' => 'Replaced zend_class_entry.constants_updated by ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags.', + 'raw' => 'Replaced zend_class_entry.constants_updated by ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags.', + ), + 9 => + array ( + 'message' => 'Reduced the size of zend_class_entry by sharing the same memory space by different information for internal and user classes. See zend_class_entry.info union.', + 'raw' => 'Reduced the size of zend_class_entry by sharing the same memory space by different information for internal and user classes. See zend_class_entry.info union.', + ), + 10 => + array ( + 'message' => 'Reduced size of temp_variable.', + 'raw' => 'Reduced size of temp_variable.', + ), + ), + 'improved zend engine - performance tweaks and optimizations' => + array ( + 0 => + array ( + 'message' => 'Inlined most probable code-paths for arithmetic operations directly into executor.', + 'raw' => 'Inlined most probable code-paths for arithmetic operations directly into executor.', + ), + 1 => + array ( + 'message' => 'Eliminated unnecessary iterations during request startup/shutdown.', + 'raw' => 'Eliminated unnecessary iterations during request startup/shutdown.', + ), + 2 => + array ( + 'message' => 'Changed $GLOBALS into a JIT autoglobal, so it\'s initialized only if used.', + 'raw' => 'Changed $GLOBALS into a JIT autoglobal, so it\'s initialized only if used. (this may affect opcode caches!)', + ), + 3 => + array ( + 'message' => 'Improved performance of @ operator.', + 'raw' => 'Improved performance of @ (silence) operator.', + ), + 4 => + array ( + 'message' => 'Simplified string offset reading. Given $str="abc" then $str[1][0] is now a legal construct.', + 'raw' => 'Simplified string offset reading. Given $str="abc" then $str[1][0] is now a legal construct.', + ), + 5 => + array ( + 'message' => 'Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties.', + 'raw' => 'Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties.', + ), + 6 => + array ( + 'message' => 'Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed.', + 'raw' => 'Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed.', + ), + 7 => + array ( + 'message' => 'ZEND_RECV now always has IS_CV as its result.', + 'raw' => 'ZEND_RECV now always has IS_CV as its result.', + ), + 8 => + array ( + 'message' => 'ZEND_CATCH now has to be used only with constant class names.', + 'raw' => 'ZEND_CATCH now has to be used only with constant class names.', + ), + 9 => + array ( + 'message' => 'ZEND_FETCH_DIM_? may fetch array and dimension operands in different order.', + 'raw' => 'ZEND_FETCH_DIM_? may fetch array and dimension operands in different order.', + ), + 10 => + array ( + 'message' => 'Simplified ZEND_FETCH_*_R operations. They can\'t be used with the EXT_TYPE_UNUSED flag any more. This is a very rare and useless case. ZEND_FREE might be required after them instead.', + 'raw' => 'Simplified ZEND_FETCH_*_R operations. They can\'t be used with the EXT_TYPE_UNUSED flag any more. This is a very rare and useless case. ZEND_FREE might be required after them instead.', + ), + 11 => + array ( + 'message' => 'Split ZEND_RETURN into two new instructions ZEND_RETURN and ZEND_RETURN_BY_REF.', + 'raw' => 'Split ZEND_RETURN into two new instructions ZEND_RETURN and ZEND_RETURN_BY_REF.', + ), + 12 => + array ( + 'message' => 'Optimized access to global constants using values with pre-calculated hash_values from the literals table.', + 'raw' => 'Optimized access to global constants using values with pre-calculated hash_values from the literals table.', + ), + 13 => + array ( + 'message' => 'Optimized access to static properties using executor specialization. A constant class name may be used as a direct operand of ZEND_FETCH_* instruction without previous ZEND_FETCH_CLASS.', + 'raw' => 'Optimized access to static properties using executor specialization. A constant class name may be used as a direct operand of ZEND_FETCH_* instruction without previous ZEND_FETCH_CLASS.', + ), + 14 => + array ( + 'message' => 'zend_stack and zend_ptr_stack allocation is delayed until actual usage.', + 'raw' => 'zend_stack and zend_ptr_stack allocation is delayed until actual usage.', + ), + ), + 'other improvements to zend engine' => + array ( + 0 => + array ( + 'message' => 'Added an optimization which saves memory and emalloc/efree calls for empty HashTables.', + 'raw' => 'Added an optimization which saves memory and emalloc/efree calls for empty HashTables. (Stas, Dmitry)', + ), + 1 => + array ( + 'message' => 'Added ability to reset user opcode handlers .', + 'raw' => 'Added ability to reset user opcode handlers (Yoram).', + ), + 2 => + array ( + 'message' => 'Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table.', + 'raw' => 'Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table. (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed (disabled) inline-caching for ZEND_OVERLOADED_FUNCTION methods.', + 'raw' => 'Fixed (disabled) inline-caching for ZEND_OVERLOADED_FUNCTION methods. (Dmitry)', + ), + ), + 'improved core functions' => + array ( + 0 => + array ( + 'message' => 'Enforce an extended class\' __construct arguments to match the abstract constructor in the base class.', + 'raw' => 'Enforce an extended class\' __construct arguments to match the abstract constructor in the base class.', + ), + 1 => + array ( + 'message' => 'Disallow reusing superglobal names as parameter names.', + 'raw' => 'Disallow reusing superglobal names as parameter names.', + ), + 2 => + array ( + 'message' => 'Added optional argument to debug_backtrace() and debug_print_backtrace() to limit the amount of stack frames returned.', + 'raw' => 'Added optional argument to debug_backtrace() and debug_print_backtrace() to limit the amount of stack frames returned. (Sebastian, Patrick)', + ), + 3 => + array ( + 'message' => 'Added hex2bin() function.', + 'raw' => 'Added hex2bin() function. (Scott)', + ), + 4 => + array ( + 'message' => 'number_format() no longer truncates multibyte decimal points and thousand separators to the first byte. FR #53457.', + 'raw' => 'number_format() no longer truncates multibyte decimal points and thousand separators to the first byte. FR #53457. (Adam)', + ), + 5 => + array ( + 'message' => 'Added support for object references in recursive serialize() calls. FR #36424.', + 'raw' => 'Added support for object references in recursive serialize() calls. FR #36424. (Mike)', + ), + 6 => + array ( + 'message' => 'Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions (sort, rsort, ksort, krsort, asort, arsort and array_multisort). FR#55158', + 'raw' => 'Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions (sort, rsort, ksort, krsort, asort, arsort and array_multisort). FR#55158 (Arpad)', + ), + 7 => + array ( + 'message' => 'Added stream metadata API support and stream_metadata() stream class handler.', + 'raw' => 'Added stream metadata API support and stream_metadata() stream class handler. (Stas)', + ), + 8 => + array ( + 'message' => 'User wrappers can now define a stream_truncate() method that responds to truncation, e.g. through ftruncate(). FR #53888.', + 'raw' => 'User wrappers can now define a stream_truncate() method that responds to truncation, e.g. through ftruncate(). FR #53888. (Gustavo)', + ), + 9 => + array ( + 'message' => 'Improved unserialize() performance.', + 'raw' => 'Improved unserialize() performance. (galaxy dot mipt at gmail dot com, Kalle)', + ), + 10 => + array ( + 'message' => 'Changed array_combine() to return empty array instead of FALSE when both parameter arrays are empty. FR #34857.', + 'raw' => 'Changed array_combine() to return empty array instead of FALSE when both parameter arrays are empty. FR #34857. (joel.perras@gmail.com)', + ), + 11 => + array ( + 'message' => 'Fixed bug #61095 (Incorect lexing of 0x00*+).', + 'raw' => 'Fixed bug #61095 (Incorect lexing of 0x00*+). (Etienne)', + ), + 12 => + array ( + 'message' => 'Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with $double=false).', + 'raw' => 'Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with $double=false). (Gustavo)', + ), + 13 => + array ( + 'message' => 'Fixed bug #60895 (Possible invalid handler usage in windows random functions).', + 'raw' => 'Fixed bug #60895 (Possible invalid handler usage in windows random functions). (Pierre)', + ), + 14 => + array ( + 'message' => 'Fixed bug #60879 (unserialize() Does not invoke __wakeup() on object).', + 'raw' => 'Fixed bug #60879 (unserialize() Does not invoke __wakeup() on object). (Pierre, Steve)', + ), + 15 => + array ( + 'message' => 'Fixed bug #60825 (Segfault when running symfony 2 tests).', + 'raw' => 'Fixed bug #60825 (Segfault when running symfony 2 tests). (Dmitry, Laruence)', + ), + 16 => + array ( + 'message' => 'Fixed bug #60627 .', + 'raw' => 'Fixed bug #60627 (httpd.worker segfault on startup with php_value).', + ), + 17 => + array ( + 'message' => 'Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax).', + 'raw' => 'Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax). (Dmitry)', + ), + 18 => + array ( + 'message' => 'Fixed bug #60611 (Segmentation fault with Cls::{expr}() syntax).', + 'raw' => 'Fixed bug #60611 (Segmentation fault with Cls::{expr}() syntax). (Laruence) (Laruence)', + ), + 19 => + array ( + 'message' => 'Fixed bug #60558 (Invalid read and writes).', + 'raw' => 'Fixed bug #60558 (Invalid read and writes). (Laruence)', + ), + 20 => + array ( + 'message' => 'Fixed bug #60444 (Segmentation fault with include & class extending). .', + 'raw' => 'Fixed bug #60444 (Segmentation fault with include & class extending). (Laruence, Dmitry).', + ), + 21 => + array ( + 'message' => 'Fixed bug #60362 (non-existent sub-sub keys should not have values).', + 'raw' => 'Fixed bug #60362 (non-existent sub-sub keys should not have values). (Laruence, alan_k, Stas)', + ), + 22 => + array ( + 'message' => 'Fixed bug #60350 (No string escape code for ESC (ascii 27), normally \\e).', + 'raw' => 'Fixed bug #60350 (No string escape code for ESC (ascii 27), normally \\e). (php at mickweiss dot com)', + ), + 23 => + array ( + 'message' => 'Fixed bug #60321 (ob_get_status(true) no longer returns an array when buffer is empty).', + 'raw' => 'Fixed bug #60321 (ob_get_status(true) no longer returns an array when buffer is empty). (Pierrick)', + ), + 24 => + array ( + 'message' => 'Fixed bug #60282 (Segfault when using ob_gzhandler() with open buffers).', + 'raw' => 'Fixed bug #60282 (Segfault when using ob_gzhandler() with open buffers). (Laruence)', + ), + 25 => + array ( + 'message' => 'Fixed bug #60240 (invalid read/writes when unserializing specially crafted strings).', + 'raw' => 'Fixed bug #60240 (invalid read/writes when unserializing specially crafted strings). (Mike)', + ), + 26 => + array ( + 'message' => 'Fixed bug #60227 (header() cannot detect the multi-line header with CR(0x0D)).', + 'raw' => 'Fixed bug #60227 (header() cannot detect the multi-line header with CR(0x0D)). (rui)', + ), + 27 => + array ( + 'message' => 'Fixed bug #60174 (Notice when array in method prototype error).', + 'raw' => 'Fixed bug #60174 (Notice when array in method prototype error). (Laruence)', + ), + 28 => + array ( + 'message' => 'Fixed bug #60169 (Conjunction of ternary and list crashes PHP).', + 'raw' => 'Fixed bug #60169 (Conjunction of ternary and list crashes PHP). (Laruence)', + ), + 29 => + array ( + 'message' => 'Fixed bug #60038 (SIGALRM cause segfault in php_error_cb). (Laruence)', + 'raw' => 'Fixed bug #60038 (SIGALRM cause segfault in php_error_cb). (Laruence) (klightspeed at netspace dot net dot au)', + ), + 30 => + array ( + 'message' => 'Fixed bug #55871 (Interruption in substr_replace()).', + 'raw' => 'Fixed bug #55871 (Interruption in substr_replace()). (Stas)', + ), + 31 => + array ( + 'message' => 'Fixed bug #55801 (Behavior of unserialize has changed).', + 'raw' => 'Fixed bug #55801 (Behavior of unserialize has changed). (Mike)', + ), + 32 => + array ( + 'message' => 'Fixed bug #55758 (Digest Authenticate missed in 5.4) .', + 'raw' => 'Fixed bug #55758 (Digest Authenticate missed in 5.4) . (Laruence)', + ), + 33 => + array ( + 'message' => 'Fixed bug #55748 (multiple NULL Pointer Dereference with zend_strndup()) (CVE-2011-4153).', + 'raw' => 'Fixed bug #55748 (multiple NULL Pointer Dereference with zend_strndup()) (CVE-2011-4153). (Stas)', + ), + 34 => + array ( + 'message' => 'Fixed bug #55124 (recursive mkdir fails with current (dot) directory in path).', + 'raw' => 'Fixed bug #55124 (recursive mkdir fails with current (dot) directory in path). (Pierre)', + ), + 35 => + array ( + 'message' => 'Fixed bug #55084 (Function registered by header_register_callback is called only once per process).', + 'raw' => 'Fixed bug #55084 (Function registered by header_register_callback is called only once per process). (Hannes)', + ), + 36 => + array ( + 'message' => 'Implement FR #54514 (Get php binary path during script execution).', + 'raw' => 'Implement FR #54514 (Get php binary path during script execution). (Laruence)', + ), + 37 => + array ( + 'message' => 'Fixed bug #52211 (iconv() returns part of string on error).', + 'raw' => 'Fixed bug #52211 (iconv() returns part of string on error). (Felipe)', + ), + 38 => + array ( + 'message' => 'Fixed bug #51860 (Include fails with toplevel symlink to /).', + 'raw' => 'Fixed bug #51860 (Include fails with toplevel symlink to /). (Dmitry)', + ), + ), + 'improved generic sapi support' => + array ( + 0 => + array ( + 'message' => 'Added $_SERVER[\'REQUEST_TIME_FLOAT\'] to include microsecond precision.', + 'raw' => 'Added $_SERVER[\'REQUEST_TIME_FLOAT\'] to include microsecond precision. (Patrick)', + ), + 1 => + array ( + 'message' => 'Added header_register_callback() which is invoked immediately prior to the sending of headers and after default headers have been added.', + 'raw' => 'Added header_register_callback() which is invoked immediately prior to the sending of headers and after default headers have been added. (Scott)', + ), + 2 => + array ( + 'message' => 'Added http_response_code() function. FR #52555.', + 'raw' => 'Added http_response_code() function. FR #52555. (Paul Dragoonis, Kalle)', + ), + 3 => + array ( + 'message' => 'Fixed bug #55500 (Corrupted $_FILES indices lead to security concern). (CVE-2012-1172).', + 'raw' => 'Fixed bug #55500 (Corrupted $_FILES indices lead to security concern). (CVE-2012-1172). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172).', + 'raw' => 'Fixed bug #54374 (Insufficient validating of upload name leading to corrupted $_FILES indices). (CVE-2012-1172). (Stas, lekensteyn at gmail dot com)', + ), + ), + 'improved cli sapi' => + array ( + 0 => + array ( + 'message' => 'Added built-in web server that is intended for testing purpose.', + 'raw' => 'Added built-in web server that is intended for testing purpose. (Moriyoshi, Laruence, and fixes by Pierre, Derick, Arpad, chobieee at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Added command line option --rz which shows information of the named Zend extension.', + 'raw' => 'Added command line option --rz which shows information of the named Zend extension. (Johannes)', + ), + 2 => + array ( + 'message' => 'Interactive readline shell improvements:', + 'raw' => 'Interactive readline shell improvements: (Johannes)', + ), + 3 => + array ( + 'message' => 'Added "cli.pager" php.ini setting to set a pager for output.', + 'raw' => 'Added "cli.pager" php.ini setting to set a pager for output.', + ), + 4 => + array ( + 'message' => 'Added "cli.prompt" php.ini setting to configure the shell prompt.', + 'raw' => 'Added "cli.prompt" php.ini setting to configure the shell prompt.', + ), + 5 => + array ( + 'message' => 'Added shortcut #inisetting=value to change php.ini settings at run-time.', + 'raw' => 'Added shortcut #inisetting=value to change php.ini settings at run-time.', + ), + 6 => + array ( + 'message' => 'Changed shell not to terminate on fatal errors.', + 'raw' => 'Changed shell not to terminate on fatal errors.', + ), + 7 => + array ( + 'message' => 'Interactive shell works with shared readline extension. FR #53878.', + 'raw' => 'Interactive shell works with shared readline extension. FR #53878.', + ), + ), + 'improved cgi/fastcgi sapi' => + array ( + 0 => + array ( + 'message' => 'Added apache compatible functions: apache_child_terminate(), getallheaders(), apache_request_headers() and apache_response_headers()', + 'raw' => 'Added apache compatible functions: apache_child_terminate(), getallheaders(), apache_request_headers() and apache_response_headers()', + ), + 1 => + array ( + 'message' => 'Improved performance of FastCGI request parsing.', + 'raw' => 'Improved performance of FastCGI request parsing.', + ), + 2 => + array ( + 'message' => 'Fixed reinitialization of SAPI callbacks after php_module_startup().', + 'raw' => 'Fixed reinitialization of SAPI callbacks after php_module_startup(). (Dmitry)', + ), + ), + 'improved php-fpm sapi' => + array ( + 0 => + array ( + 'message' => 'Removed EXPERIMENTAL flag.', + 'raw' => 'Removed EXPERIMENTAL flag. (fat)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60659 (FPM does not clear auth_user on request accept).', + 'raw' => 'Fixed bug #60659 (FPM does not clear auth_user on request accept). (bonbons at linux-vserver dot org)', + ), + ), + 'improved litespeed sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55769 (Make Fails with "Missing Separator" error).', + 'raw' => 'Fixed bug #55769 (Make Fails with "Missing Separator" error). (Adam)', + ), + ), + 'improved date extension' => + array ( + 0 => + array ( + 'message' => 'Added the + modifier to parseFromFormat to allow trailing text in the string to parse without throwing an error.', + 'raw' => 'Added the + modifier to parseFromFormat to allow trailing text in the string to parse without throwing an error. (Stas, Derick)', + ), + ), + 'improved dba extension' => + array ( + 0 => + array ( + 'message' => 'Added Tokyo Cabinet abstract DB support.', + 'raw' => 'Added Tokyo Cabinet abstract DB support. (Michael Maclean)', + ), + 1 => + array ( + 'message' => 'Added Berkeley DB 5 support.', + 'raw' => 'Added Berkeley DB 5 support. (Johannes, Chris Jones)', + ), + ), + 'improved dom extension' => + array ( + 0 => + array ( + 'message' => 'Added the ability to pass options to loadHTML', + 'raw' => 'Added the ability to pass options to loadHTML (Chregu, fxmulder at gmail dot com)', + ), + ), + 'improved filesystem functions' => + array ( + 0 => + array ( + 'message' => 'scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value. FR #53407.', + 'raw' => 'scandir() now accepts SCANDIR_SORT_NONE as a possible sorting_order value. FR #53407. (Adam)', + ), + ), + 'improved hash extension' => + array ( + 0 => + array ( + 'message' => 'Added Jenkins\'s one-at-a-time hash support.', + 'raw' => 'Added Jenkins\'s one-at-a-time hash support. (Martin Jansen)', + ), + 1 => + array ( + 'message' => 'Added FNV-1 hash support.', + 'raw' => 'Added FNV-1 hash support. (Michael Maclean)', + ), + 2 => + array ( + 'message' => 'Made Adler32 algorithm faster. FR #53213.', + 'raw' => 'Made Adler32 algorithm faster. FR #53213. (zavasek at yandex dot ru)', + ), + 3 => + array ( + 'message' => 'Removed Salsa10/Salsa20, which are actually stream ciphers', + 'raw' => 'Removed Salsa10/Salsa20, which are actually stream ciphers (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60221 (Tiger hash output byte order)', + 'raw' => 'Fixed bug #60221 (Tiger hash output byte order) (Mike)', + ), + ), + 'improved intl extension' => + array ( + 0 => + array ( + 'message' => 'Added Spoofchecker class, allows checking for visibly confusable characters and other security issues.', + 'raw' => 'Added Spoofchecker class, allows checking for visibly confusable characters and other security issues. (Scott)', + ), + 1 => + array ( + 'message' => 'Added Transliterator class, allowing transliteration of strings.', + 'raw' => 'Added Transliterator class, allowing transliteration of strings. (Gustavo)', + ), + 2 => + array ( + 'message' => 'Added support for UTS #46.', + 'raw' => 'Added support for UTS #46. (Gustavo)', + ), + 3 => + array ( + 'message' => 'Fixed build on Fedora 15 / Ubuntu 11.', + 'raw' => 'Fixed build on Fedora 15 / Ubuntu 11. (Hannes)', + ), + 4 => + array ( + 'message' => 'Fixed bug #55562 (grapheme_substr() returns false on big length).', + 'raw' => 'Fixed bug #55562 (grapheme_substr() returns false on big length). (Stas)', + ), + ), + 'improved json extension' => + array ( + 0 => + array ( + 'message' => 'Added new json_encode() option JSON_UNESCAPED_UNICODE. FR #53946.', + 'raw' => 'Added new json_encode() option JSON_UNESCAPED_UNICODE. FR #53946. (Alexander, Gwynne)', + ), + 1 => + array ( + 'message' => 'Added JsonSerializable interface.', + 'raw' => 'Added JsonSerializable interface. (Sara)', + ), + 2 => + array ( + 'message' => 'Added JSON_BIGINT_AS_STRING, extended json_decode() sig with $options.', + 'raw' => 'Added JSON_BIGINT_AS_STRING, extended json_decode() sig with $options. (Sara)', + ), + 3 => + array ( + 'message' => 'Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers.', + 'raw' => 'Added support for JSON_NUMERIC_CHECK option in json_encode() that converts numeric strings to integers. (Ilia)', + ), + 4 => + array ( + 'message' => 'Added new json_encode() option JSON_UNESCAPED_SLASHES. FR #49366.', + 'raw' => 'Added new json_encode() option JSON_UNESCAPED_SLASHES. FR #49366. (Adam)', + ), + 5 => + array ( + 'message' => 'Added new json_encode() option JSON_PRETTY_PRINT. FR #44331.', + 'raw' => 'Added new json_encode() option JSON_PRETTY_PRINT. FR #44331. (Adam)', + ), + ), + 'improved ldap extension' => + array ( + 0 => + array ( + 'message' => 'Added paged results support. FR #42060.', + 'raw' => 'Added paged results support. FR #42060. (ando@OpenLDAP.org, iarenuno@eteo.mondragon.edu, jeanseb@au-fil-du.net, remy.saissy@gmail.com)', + ), + ), + 'improved mbstring extension' => + array ( + 0 => + array ( + 'message' => 'Added Shift_JIS/UTF-8 Emoji (pictograms) support.', + 'raw' => 'Added Shift_JIS/UTF-8 Emoji (pictograms) support. (Rui)', + ), + 1 => + array ( + 'message' => 'Added JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004) support.', + 'raw' => 'Added JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004) support. (Rui)', + ), + 2 => + array ( + 'message' => 'Ill-formed UTF-8 check for security enhancements.', + 'raw' => 'Ill-formed UTF-8 check for security enhancements. (Rui)', + ), + 3 => + array ( + 'message' => 'Added MacJapanese (Shift_JIS) and gb18030 encoding support.', + 'raw' => 'Added MacJapanese (Shift_JIS) and gb18030 encoding support. (Rui)', + ), + 4 => + array ( + 'message' => 'Added encode/decode in hex format to mb_[en|de]code_numericentity().', + 'raw' => 'Added encode/decode in hex format to mb_[en|de]code_numericentity(). (Rui)', + ), + 5 => + array ( + 'message' => 'Added user JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004) support.', + 'raw' => 'Added user JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004) support. (Rui)', + ), + 6 => + array ( + 'message' => 'Added the user defined area for CP936 and CP950 .', + 'raw' => 'Added the user defined area for CP936 and CP950 (Rui).', + ), + 7 => + array ( + 'message' => 'Fixed bug #60306 (Characters lost while converting from cp936 to utf8).', + 'raw' => 'Fixed bug #60306 (Characters lost while converting from cp936 to utf8). (Laruence)', + ), + ), + 'improved mysql extensions' => + array ( + 0 => + array ( + 'message' => 'MySQL: Deprecated mysql_list_dbs(). FR #50667.', + 'raw' => 'MySQL: Deprecated mysql_list_dbs(). FR #50667. (Andrey)', + ), + 1 => + array ( + 'message' => 'mysqlnd: Added named pipes support. FR #48082.', + 'raw' => 'mysqlnd: Added named pipes support. FR #48082. (Andrey)', + ), + 2 => + array ( + 'message' => 'MySQLi: Added iterator support in MySQLi. mysqli_result implements Traversable.', + 'raw' => 'MySQLi: Added iterator support in MySQLi. mysqli_result implements Traversable. (Andrey, Johannes)', + ), + 3 => + array ( + 'message' => 'PDO_mysql: Removed support for linking with MySQL client libraries older than 4.1.', + 'raw' => 'PDO_mysql: Removed support for linking with MySQL client libraries older than 4.1. (Johannes)', + ), + 4 => + array ( + 'message' => 'ext/mysql, mysqli and pdo_mysql now use mysqlnd by default.', + 'raw' => 'ext/mysql, mysqli and pdo_mysql now use mysqlnd by default. (Johannes)', + ), + 5 => + array ( + 'message' => 'Fixed bug #55473 (mysql_pconnect leaks file descriptors on reconnect).', + 'raw' => 'Fixed bug #55473 (mysql_pconnect leaks file descriptors on reconnect). (Andrey, Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #55653 (PS crash with libmysql when binding same variable as param and out).', + 'raw' => 'Fixed bug #55653 (PS crash with libmysql when binding same variable as param and out). (Laruence)', + ), + ), + 'improved openssl extension' => + array ( + 0 => + array ( + 'message' => 'Added AES support. FR #48632.', + 'raw' => 'Added AES support. FR #48632. (yonas dot y at gmail dot com, Pierre)', + ), + 1 => + array ( + 'message' => 'Added no padding option to openssl_encrypt()/openssl_decrypt().', + 'raw' => 'Added no padding option to openssl_encrypt()/openssl_decrypt(). (Scott)', + ), + 2 => + array ( + 'message' => 'Use php\'s implementation for Windows Crypto API in openssl_random_pseudo_bytes.', + 'raw' => 'Use php\'s implementation for Windows Crypto API in openssl_random_pseudo_bytes. (Pierre)', + ), + 3 => + array ( + 'message' => 'On error in openssl_random_pseudo_bytes() made sure we set strong result to false.', + 'raw' => 'On error in openssl_random_pseudo_bytes() made sure we set strong result to false. (Scott)', + ), + 4 => + array ( + 'message' => 'Fixed possible attack in SSL sockets with SSL 3.0 / TLS 1.0. CVE-2011-3389.', + 'raw' => 'Fixed possible attack in SSL sockets with SSL 3.0 / TLS 1.0. CVE-2011-3389. (Scott)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61124 (Crash when decoding an invalid base64 encoded string).', + 'raw' => 'Fixed bug #61124 (Crash when decoding an invalid base64 encoded string). (me at ktamura dot com, Scott)', + ), + ), + 'improved pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed PDO objects binary incompatibility.', + 'raw' => 'Fixed PDO objects binary incompatibility. (Dmitry)', + ), + ), + 'pdo dblib driver' => + array ( + 0 => + array ( + 'message' => 'Added nextRowset support.', + 'raw' => 'Added nextRowset support.', + ), + 1 => + array ( + 'message' => 'Fixed bug #50755 .', + 'raw' => 'Fixed bug #50755 (PDO DBLIB Fails with OOM).', + ), + ), + 'improved postgresql extension' => + array ( + 0 => + array ( + 'message' => 'Added support for "extra" parameter for PGNotify().', + 'raw' => 'Added support for "extra" parameter for PGNotify(). (r dot i dot k at free dot fr, Ilia)', + ), + ), + 'improved pcre extension' => + array ( + 0 => + array ( + 'message' => 'Changed third parameter of preg_match_all() to optional. FR #53238.', + 'raw' => 'Changed third parameter of preg_match_all() to optional. FR #53238. (Adam)', + ), + ), + 'improved readline extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54450 (Enable callback support when built against libedit).', + 'raw' => 'Fixed bug #54450 (Enable callback support when built against libedit). (fedora at famillecollet dot com, Hannes)', + ), + ), + 'improved reflection extension' => + array ( + 0 => + array ( + 'message' => 'Added ReflectionClass::newInstanceWithoutConstructor() to create a new instance of a class without invoking its constructor. FR #55490.', + 'raw' => 'Added ReflectionClass::newInstanceWithoutConstructor() to create a new instance of a class without invoking its constructor. FR #55490. (Sebastian)', + ), + 1 => + array ( + 'message' => 'Added ReflectionExtension::isTemporary() and ReflectionExtension::isPersistent() methods.', + 'raw' => 'Added ReflectionExtension::isTemporary() and ReflectionExtension::isPersistent() methods. (Johannes)', + ), + 2 => + array ( + 'message' => 'Added ReflectionZendExtension class.', + 'raw' => 'Added ReflectionZendExtension class. (Johannes)', + ), + 3 => + array ( + 'message' => 'Added ReflectionClass::isCloneable().', + 'raw' => 'Added ReflectionClass::isCloneable(). (Felipe)', + ), + ), + 'improved session extension' => + array ( + 0 => + array ( + 'message' => 'Expose session status via new function, session_status (FR #52982)', + 'raw' => 'Expose session status via new function, session_status (FR #52982) (Arpad)', + ), + 1 => + array ( + 'message' => 'Added support for object-oriented session handlers.', + 'raw' => 'Added support for object-oriented session handlers. (Arpad)', + ), + 2 => + array ( + 'message' => 'Added support for storing upload progress feedback in session data.', + 'raw' => 'Added support for storing upload progress feedback in session data. (Arnaud)', + ), + 3 => + array ( + 'message' => 'Changed session.entropy_file to default to /dev/urandom or /dev/arandom if either is present at compile time.', + 'raw' => 'Changed session.entropy_file to default to /dev/urandom or /dev/arandom if either is present at compile time. (Rasmus)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60860 (session.save_handler=user without defined function core dumps).', + 'raw' => 'Fixed bug #60860 (session.save_handler=user without defined function core dumps). (Felipe)', + ), + 5 => + array ( + 'message' => 'Implement FR #60551 (session_set_save_handler should support a core\'s session handler interface).', + 'raw' => 'Implement FR #60551 (session_set_save_handler should support a core\'s session handler interface). (Arpad)', + ), + 6 => + array ( + 'message' => 'Fixed bug #60640 (invalid return values).', + 'raw' => 'Fixed bug #60640 (invalid return values). (Arpad)', + ), + ), + 'improved snmp extension (boris lytochkin)' => + array ( + 0 => + array ( + 'message' => 'Added OO API. FR #53594 .', + 'raw' => 'Added OO API. FR #53594 (php-snmp rewrite).', + ), + 1 => + array ( + 'message' => 'Sanitized return values of existing functions. Now it returns FALSE on failure.', + 'raw' => 'Sanitized return values of existing functions. Now it returns FALSE on failure.', + ), + 2 => + array ( + 'message' => 'Allow ~infinite OIDs in GET/GETNEXT/SET queries. Autochunk them to max_oids upon request.', + 'raw' => 'Allow ~infinite OIDs in GET/GETNEXT/SET queries. Autochunk them to max_oids upon request.', + ), + 3 => + array ( + 'message' => 'Introducing unit tests for extension with ~full coverage.', + 'raw' => 'Introducing unit tests for extension with ~full coverage.', + ), + 4 => + array ( + 'message' => 'IPv6 support.', + 'raw' => 'IPv6 support. (FR #42918)', + ), + 5 => + array ( + 'message' => 'Way of representing OID value can now be changed when SNMP_VALUE_OBJECT is used for value output mode. Use or\'ed SNMP_VALUE_LIBRARY(default if not specified) or SNMP_VALUE_PLAIN.', + 'raw' => 'Way of representing OID value can now be changed when SNMP_VALUE_OBJECT is used for value output mode. Use or\'ed SNMP_VALUE_LIBRARY(default if not specified) or SNMP_VALUE_PLAIN. (FR #54502)', + ), + 6 => + array ( + 'message' => 'Fixed bug #60749 (SNMP module should not strip non-standard SNMP port from hostname).', + 'raw' => 'Fixed bug #60749 (SNMP module should not strip non-standard SNMP port from hostname). (Boris Lytochkin)', + ), + 7 => + array ( + 'message' => 'Fixed bug #60585 (php build fails with USE flag snmp when IPv6 support is disabled).', + 'raw' => 'Fixed bug #60585 (php build fails with USE flag snmp when IPv6 support is disabled). (Boris Lytochkin)', + ), + 8 => + array ( + 'message' => 'Fixed bug #53862', + 'raw' => 'Fixed bug #53862 (snmp_set_oid_output_format does not allow returning to default)', + ), + 9 => + array ( + 'message' => 'Fixed bug #46065 persists between requests)', + 'raw' => 'Fixed bug #46065 (snmp_set_quick_print() persists between requests)', + ), + 10 => + array ( + 'message' => 'Fixed bug #45893', + 'raw' => 'Fixed bug #45893 (Snmp buffer limited to 2048 char)', + ), + 11 => + array ( + 'message' => 'Fixed bug #44193', + 'raw' => 'Fixed bug #44193 (snmp v3 noAuthNoPriv doesn\'t work)', + ), + ), + 'improved soap extension' => + array ( + 0 => + array ( + 'message' => 'Added new SoapClient option "keep_alive". FR #60329.', + 'raw' => 'Added new SoapClient option "keep_alive". FR #60329. (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed basic HTTP authentication for WSDL sub requests.', + 'raw' => 'Fixed basic HTTP authentication for WSDL sub requests. (Dmitry)', + ), + ), + 'improved spl extension' => + array ( + 0 => + array ( + 'message' => 'Added RegexIterator::getRegex() method.', + 'raw' => 'Added RegexIterator::getRegex() method. (Joshua Thijssen)', + ), + 1 => + array ( + 'message' => 'Added SplObjectStorage::getHash() hook.', + 'raw' => 'Added SplObjectStorage::getHash() hook. (Etienne)', + ), + 2 => + array ( + 'message' => 'Added CallbackFilterIterator and RecursiveCallbackFilterIterator.', + 'raw' => 'Added CallbackFilterIterator and RecursiveCallbackFilterIterator. (Arnaud)', + ), + 3 => + array ( + 'message' => 'Added missing class_uses(..) as pointed out by #55266', + 'raw' => 'Added missing class_uses(..) as pointed out by #55266 (Stefan)', + ), + 4 => + array ( + 'message' => 'Immediately reject wrong usages of directories under Spl(Temp)FileObject and friends.', + 'raw' => 'Immediately reject wrong usages of directories under Spl(Temp)FileObject and friends. (Etienne, Pierre)', + ), + 5 => + array ( + 'message' => 'FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use the default stream context.', + 'raw' => 'FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use the default stream context. (Hannes)', + ), + 6 => + array ( + 'message' => 'Fixed bug #60201 (SplFileObject::setCsvControl does not expose third argument via Reflection).', + 'raw' => 'Fixed bug #60201 (SplFileObject::setCsvControl does not expose third argument via Reflection). (Peter)', + ), + 7 => + array ( + 'message' => 'Fixed bug #55287 (spl_classes() not includes CallbackFilter classes)', + 'raw' => 'Fixed bug #55287 (spl_classes() not includes CallbackFilter classes) (sasezaki at gmail dot com, salathe)', + ), + ), + 'improved sysvshm extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55750 (memory copy issue in sysvshm extension).', + 'raw' => 'Fixed bug #55750 (memory copy issue in sysvshm extension). (Ilia, jeffhuang9999 at gmail dot com)', + ), + ), + 'improved tidy extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference).', + 'raw' => 'Fixed bug #54682 (Tidy::diagnose() NULL pointer dereference). (Maksymilian Arciemowicz, Felipe)', + ), + ), + 'improved tokenizer extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54089 (token_get_all with regards to __halt_compiler is not binary safe).', + 'raw' => 'Fixed bug #54089 (token_get_all with regards to __halt_compiler is not binary safe). (Nikita Popov)', + ), + ), + 'improved xsl extension' => + array ( + 0 => + array ( + 'message' => 'Added XsltProcessor::setSecurityPrefs($options) and getSecurityPrefs() to define forbidden operations within XSLT stylesheets, default is not to enable write operations from XSLT. Bug #54446', + 'raw' => 'Added XsltProcessor::setSecurityPrefs($options) and getSecurityPrefs() to define forbidden operations within XSLT stylesheets, default is not to enable write operations from XSLT. Bug #54446 (Chregu, Nicolas Gregoire)', + ), + 1 => + array ( + 'message' => 'XSL doesn\'t stop transformation anymore, if a PHP function can\'t be called', + 'raw' => 'XSL doesn\'t stop transformation anymore, if a PHP function can\'t be called (Christian)', + ), + ), + 'improved zlib extension' => + array ( + 0 => + array ( + 'message' => 'Re-implemented non-file related functionality.', + 'raw' => 'Re-implemented non-file related functionality. (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression).', + 'raw' => 'Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression). (Mike)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/5.5/changelist.inc b/include/releases/5.5/changelist.inc new file mode 100644 index 0000000000..87b63fa5a6 --- /dev/null +++ b/include/releases/5.5/changelist.inc @@ -0,0 +1,5332 @@ + + array ( + 'date' => '21 Jul 2016', + 'modules' => + array ( + 'bzip2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72613 (Inadequate error handling in bzread()).', + 'raw' => 'Fixed bug #72613 (Inadequate error handling in bzread()). (Stas)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70480 (php_url_parse_ex() buffer overflow read).', + 'raw' => 'Fixed bug #70480 (php_url_parse_ex() buffer overflow read). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex).', + 'raw' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex). (loianhtuan at gmail dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization).', + 'raw' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization). (taoguangchen at icloud dot com)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications). (CVE-2016-5385)', + 'raw' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications). (CVE-2016-5385) (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment).', + 'raw' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access).', + 'raw' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access). (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72519 (imagegif/output out-of-bounds access).', + 'raw' => 'Fixed bug #72519 (imagegif/output out-of-bounds access). (Pierre)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). (CVE-2016-6207)', + 'raw' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). (CVE-2016-6207) (Pierre)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access).', + 'raw' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access). (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69975 defined columns)', + 'raw' => 'Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined columns)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()).', + 'raw' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()). (taoguangchen at icloud dot com)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c).', + 'raw' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c). (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener).', + 'raw' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener). (loianhtuan at gmail dot com)', + ), + ), + ), + ), + '5.5.37' => + array ( + 'date' => '23 Jun 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72268 (Integer Overflow in nl2br()).', + 'raw' => 'Fixed bug #72268 (Integer Overflow in nl2br()). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()).', + 'raw' => 'Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72400 (Integer Overflow in addcslashes/addslashes).', + 'raw' => 'Fixed bug #72400 (Integer Overflow in addcslashes/addslashes). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL).', + 'raw' => 'Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874)', + 'raw' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72298 (pass2_no_dither out-of-bounds access).', + 'raw' => 'Fixed bug #72298 (pass2_no_dither out-of-bounds access). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow). (CVE-2016-5766)', + 'raw' => 'Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow). (CVE-2016-5766) (Pierre)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert).', + 'raw' => 'Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow). (CVE-2016-5767)', + 'raw' => 'Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow). (CVE-2016-5767) (Pierre)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). (CVE-2016-5768)', + 'raw' => 'Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). (CVE-2016-5768) (Stas)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769)', + 'raw' => 'Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769) (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72262 (int/size_t confusion in SplFileObject::fread). (CVE-2016-5770)', + 'raw' => 'Fixed bug #72262 (int/size_t confusion in SplFileObject::fread). (CVE-2016-5770) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72433 (Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5771)', + 'raw' => 'Fixed bug #72433 (Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5771) (Dmitry)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72340 (Double Free Courruption in wddx_deserialize). (CVE-2016-5772)', + 'raw' => 'Fixed bug #72340 (Double Free Courruption in wddx_deserialize). (CVE-2016-5772) (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5773)', + 'raw' => 'Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5773) (Dmitry)', + ), + ), + ), + ), + '5.5.36' => + array ( + 'date' => '26 May 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72114 (Integer underflow / arbitrary null write in fread/gzread). (CVE-2016-5096)', + 'raw' => 'Fixed bug #72114 (Integer underflow / arbitrary null write in fread/gzread). (CVE-2016-5096) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72135 (Integer Overflow in php_html_entities). (CVE-2016-5094)', + 'raw' => 'Fixed bug #72135 (Integer Overflow in php_html_entities). (CVE-2016-5094) (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72227 (imagescale out-of-bounds read). (CVE-2013-7456)', + 'raw' => 'Fixed bug #72227 (imagescale out-of-bounds read). (CVE-2013-7456) (Stas)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72241 (get_icu_value_internal out-of-bounds read). (CVE-2016-5093)', + 'raw' => 'Fixed bug #72241 (get_icu_value_internal out-of-bounds read). (CVE-2016-5093) (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). (CVE-2016-4343)', + 'raw' => 'Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). (CVE-2016-4343) (Stas)', + ), + ), + ), + ), + '5.5.35' => + array ( + 'date' => '28 Apr 2016', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72093 (bcpowmod accepts negative scale and corrupts _one_ definition).', + 'raw' => 'Fixed bug #72093 (bcpowmod accepts negative scale and corrupts _one_ definition). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72094 (Out of bounds heap read access in exif header processing).', + 'raw' => 'Fixed bug #72094 (Out of bounds heap read access in exif header processing). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074)', + 'raw' => 'Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074) (Stas)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative offset).', + 'raw' => 'Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative offset). (Stas)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72099 (xml_parse_into_struct segmentation fault).', + 'raw' => 'Fixed bug #72099 (xml_parse_into_struct segmentation fault). (Stas)', + ), + ), + ), + ), + '5.5.34' => + array ( + 'date' => '31 Mar 2016', + 'modules' => + array ( + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file). (CVE-2015-8865)', + 'raw' => 'Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file). (CVE-2015-8865) (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut). (CVE-2016-4073)', + 'raw' => 'Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut). (CVE-2016-4073) (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71860 (Invalid memory write in phar on filename with \\0 in name). (CVE-2016-4072)', + 'raw' => 'Fixed bug #71860 (Invalid memory write in phar on filename with \\0 in name). (CVE-2016-4072) (Stas)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71704 (php_snmp_error() Format String Vulnerability). (CVE-2016-4071)', + 'raw' => 'Fixed bug #71704 (php_snmp_error() Format String Vulnerability). (CVE-2016-4071) (andrew at jmpesp dot org)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070)', + 'raw' => 'Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070) (taoguangchen at icloud dot com, Stas)', + ), + ), + ), + ), + '5.5.33' => + array ( + 'date' => '03 Mar 2016', + 'modules' => + array ( + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71498 (Out-of-Bound Read in phar_parse_zipfile()).', + 'raw' => 'Fixed bug #71498 (Out-of-Bound Read in phar_parse_zipfile()). (Stas)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71587 (Use-After-Free / Double-Free in WDDX Deserialize).', + 'raw' => 'Fixed bug #71587 (Use-After-Free / Double-Free in WDDX Deserialize). (Stas)', + ), + ), + ), + ), + '5.5.32' => + array ( + 'date' => '04 Feb 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71039 (exec functions ignore length but look for NULL termination).', + 'raw' => 'Fixed bug #71039 (exec functions ignore length but look for NULL termination). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input).', + 'raw' => 'Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input). (Leo Gaspard)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71459 (Integer overflow in iptcembed()).', + 'raw' => 'Fixed bug #71459 (Integer overflow in iptcembed()). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Improved the fix for bug #70976.', + 'raw' => 'Improved the fix for bug #70976. (Remi)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgraded pcrelib to 8.38.', + 'raw' => 'Upgraded pcrelib to 8.38. (CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342)', + 'raw' => 'Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()).', + 'raw' => 'Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71488 (Stack overflow when decompressing tar archives). (CVE-2016-2554)', + 'raw' => 'Fixed bug #71488 (Stack overflow when decompressing tar archives). (CVE-2016-2554) (Stas)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization).', + 'raw' => 'Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization). (Stas)', + ), + ), + ), + ), + '5.5.31' => + array ( + 'date' => '07 Jan 2015', + 'modules' => + array ( + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70755 (fpm_log.c memory leak and buffer overflow). (CVE-2016-5114)', + 'raw' => 'Fixed bug #70755 (fpm_log.c memory leak and buffer overflow). (CVE-2016-5114) (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds). (CVE-2016-1903) .', + 'raw' => 'Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds). (CVE-2016-1903) (emmanuel dot law at gmail dot com).', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization).', + 'raw' => 'Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization). (taoguangchen at icloud dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability).', + 'raw' => 'Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability). (taoguangchen at icloud dot com)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker()).', + 'raw' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker()). (Julien)', + ), + ), + ), + ), + '5.5.30' => + array ( + 'date' => '01 Oct 2015', + 'modules' => + array ( + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()). (CVE-2015-7803)', + 'raw' => 'Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()). (CVE-2015-7803) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/"). (CVE-2015-7804)', + 'raw' => 'Fixed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/"). (CVE-2015-7804) (Stas)', + ), + ), + ), + ), + '5.5.29' => + array ( + 'date' => '03 Sep 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70172 (Use After Free Vulnerability in unserialize()). (CVE-2015-6834)', + 'raw' => 'Fixed bug #70172 (Use After Free Vulnerability in unserialize()). (CVE-2015-6834) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70219 (Use after free vulnerability in session deserializer). (CVE-2015-6835)', + 'raw' => 'Fixed bug #70219 (Use after free vulnerability in session deserializer). (CVE-2015-6835) (taoguangchen at icloud dot com)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes).', + 'raw' => 'Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes). (Stas)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70312 (HAVAL gives wrong hashes in specific cases).', + 'raw' => 'Fixed bug #70312 (HAVAL gives wrong hashes in specific cases). (letsgolee at naver dot com)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions).', + 'raw' => 'Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions). (Anatol Belski)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE). (CVE-2015-6836)', + 'raw' => 'Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE). (CVE-2015-6836) (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6834)', + 'raw' => 'Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6834) (taoguangchen at icloud dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6834)', + 'raw' => 'Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6834) (taoguangchen at icloud dot com)', + ), + ), + 'xslt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69782 (NULL pointer dereference). (CVE-2015-6837, CVE-2015-6838)', + 'raw' => 'Fixed bug #69782 (NULL pointer dereference). (CVE-2015-6837, CVE-2015-6838) (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories). (CVE-2014-9767)', + 'raw' => 'Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories). (CVE-2014-9767) (neal at fb dot com)', + ), + ), + ), + ), + '5.5.28' => + array ( + 'date' => '06 Aug 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls).', + 'raw' => 'Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).', + 'raw' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70002 (TS issues with temporary dir handling).', + 'raw' => 'Fixed bug #70002 (TS issues with temporary dir handling). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref).', + 'raw' => 'Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref). (Stas)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure). (CVE-2015-8867)', + 'raw' => 'Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure). (CVE-2015-8867) (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Improved fix for bug #69441.', + 'raw' => 'Improved fix for bug #69441. (Anatol Belski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory). (CVE-2015-6833)', + 'raw' => 'Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory). (CVE-2015-6833) (Anatol Belski)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions).', + 'raw' => 'Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions). (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items). (CVE-2015-6832)', + 'raw' => 'Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items). (CVE-2015-6832) (sean.heelan)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject). (CVE-2015-6831)', + 'raw' => 'Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject). (CVE-2015-6831) (taoguangchen at icloud dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6831)', + 'raw' => 'Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6831) (taoguangchen at icloud dot com)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6831)', + 'raw' => 'Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6831) (taoguangchen at icloud dot com)', + ), + ), + ), + ), + '5.5.27' => + array ( + 'date' => '9 Jul 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69768 (escapeshell*() doesn\'t cater to !).', + 'raw' => 'Fixed bug #69768 (escapeshell*() doesn\'t cater to !). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69703 (Use __builtin_clzl on PowerPC).', + 'raw' => 'Fixed bug #69703 (Use __builtin_clzl on PowerPC). (dja at axtens dot net, Kalle)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69732 (can induce segmentation fault with basic php code).', + 'raw' => 'Fixed bug #69732 (can induce segmentation fault with basic php code). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69642 (Windows 10 reported as Windows 8).', + 'raw' => 'Fixed bug #69642 (Windows 10 reported as Windows 8). (Christian Wenz, Anatol Belski)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault).', + 'raw' => 'Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault). (Christoph M. Becker)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business").', + 'raw' => 'Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business"). (Christian Wenz)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69835 (phpinfo() does not report many Windows SKUs).', + 'raw' => 'Fixed bug #69835 (phpinfo() does not report many Windows SKUs). (Christian Wenz)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).', + 'raw' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #69874 (Can\'t set empty additional_headers for mail()), regression from fix to bug #68776.', + 'raw' => 'Fixed bug #69874 (Can\'t set empty additional_headers for mail()), regression from fix to bug #68776. (Yasuo)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61221 (imagegammacorrect function loses alpha channel).', + 'raw' => 'Fixed bug #61221 (imagegammacorrect function loses alpha channel). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69669 (mysqlnd is vulnerable to BACKRONYM) (CVE-2015-3152).', + 'raw' => 'Fixed bug #69669 (mysqlnd is vulnerable to BACKRONYM) (CVE-2015-3152). (Andrey)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #53823 (preg_replace: * qualifier on unicode replace garbles the string).', + 'raw' => 'Fixed Bug #53823 (preg_replace: * qualifier on unicode replace garbles the string). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69864 (Segfault in preg_replace_callback)', + 'raw' => 'Fixed bug #69864 (Segfault in preg_replace_callback) (cmb, ab)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u).', + 'raw' => 'Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u). (Philip Hofstetter)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69362 (PDO-pgsql fails to connect if password contains a leading single quote).', + 'raw' => 'Fixed bug #69362 (PDO-pgsql fails to connect if password contains a leading single quote). (Matteo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69344 (PDO PgSQL Incorrect binding numeric array with gaps).', + 'raw' => 'Fixed bug #69344 (PDO PgSQL Incorrect binding numeric array with gaps). (Matteo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69958 (Segfault in Phar::convertToData on invalid file). (CVE-2015-5589)', + 'raw' => 'Fixed bug #69958 (Segfault in Phar::convertToData on invalid file). (CVE-2015-5589) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69923 (Buffer overflow and stack smashing error in phar_fix_filepath). (CVE-2015-5590)', + 'raw' => 'Fixed bug #69923 (Buffer overflow and stack smashing error in phar_fix_filepath). (CVE-2015-5590) (Stas)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Refactored the fix for bug #66084 (simplexml_load_string() mangles empty node name).', + 'raw' => 'Refactored the fix for bug #66084 (simplexml_load_string() mangles empty node name). (Christoph Michael Becker)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69737 (Segfault when SplMinHeap::compare produces fatal error).', + 'raw' => 'Fixed bug #69737 (Segfault when SplMinHeap::compare produces fatal error). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67805 (SplFileObject setMaxLineLength). .', + 'raw' => 'Fixed bug #67805 (SplFileObject setMaxLineLength). (Willian Gustavo Veiga).', + ), + ), + ), + ), + '5.5.26' => + array ( + 'date' => '11 Jun 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69566 (Conditional jump or move depends on uninitialised value in extension trait).', + 'raw' => 'Fixed bug #69566 (Conditional jump or move depends on uninitialised value in extension trait). (jbboehr at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66048 (temp. directory is cached during multiple requests).', + 'raw' => 'Fixed bug #66048 (temp. directory is cached during multiple requests). (Julien)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69628 (complex GLOB_BRACE fails on Windows).', + 'raw' => 'Fixed bug #69628 (complex GLOB_BRACE fails on Windows). (Christoph M. Becker)', + ), + 3 => + array ( + 'message' => 'Improved fix for bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4643)', + 'raw' => 'Improved fix for bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4643) (Max Spelsberg)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69646 (OS command injection vulnerability in escapeshellarg). (CVE-2015-4642)', + 'raw' => 'Fixed bug #69646 (OS command injection vulnerability in escapeshellarg). (CVE-2015-4642) (Anatol Belski)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69719 (Incorrect handling of paths with NULs). (CVE-2015-4598)', + 'raw' => 'Fixed bug #69719 (Incorrect handling of paths with NULs). (CVE-2015-4598) (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69479 (GD fails to build with newer libvpx).', + 'raw' => 'Fixed bug #69479 (GD fails to build with newer libvpx). (Remi)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48147 (iconv with //IGNORE cuts the string).', + 'raw' => 'Fixed bug #48147 (iconv with //IGNORE cuts the string). (Stas)', + ), + ), + 'litespeed sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68812 (Unchecked return value).', + 'raw' => 'Fixed bug #68812 (Unchecked return value). (George Wang)', + ), + ), + 'mail' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68776 (mail() does not have mail header injection prevention for additional headers).', + 'raw' => 'Fixed bug #68776 (mail() does not have mail header injection prevention for additional headers). (Yasuo)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Added file descriptor caching to mcrypt_create_iv()', + 'raw' => 'Added file descriptor caching to mcrypt_create_iv() (Leigh)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgraded pcrelib to 8.37.', + 'raw' => 'Upgraded pcrelib to 8.37. (CVE-2015-2325, CVE-2015-2326)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69680 (phar symlink in binary directory broken).', + 'raw' => 'Fixed bug #69680 (phar symlink in binary directory broken). (Matteo Bernardini, Remi)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69667 (segfault in php_pgsql_meta_data). (CVE-2015-4644)', + 'raw' => 'Fixed bug #69667 (segfault in php_pgsql_meta_data). (CVE-2015-4644) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF).', + 'raw' => 'Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF). (Laruence, Dmitry)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled sqlite to 3.8.10.2. (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416)', + 'raw' => 'Upgrade bundled sqlite to 3.8.10.2. (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416) (Kaplan)', + ), + ), + ), + ), + '5.5.25' => + array ( + 'date' => '14 May 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69364 (PHP Multipart/form-data remote dos Vulnerability). (CVE-2015-4024)', + 'raw' => 'Fixed bug #69364 (PHP Multipart/form-data remote dos Vulnerability). (CVE-2015-4024) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69403 (str_repeat() sign mismatch based memory corruption).', + 'raw' => 'Fixed bug #69403 (str_repeat() sign mismatch based memory corruption). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69418 (CVE-2006-7243 fix regressions in 5.4+). (CVE-2015-4025)', + 'raw' => 'Fixed bug #69418 (CVE-2006-7243 fix regressions in 5.4+). (CVE-2015-4025) (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69522 (heap buffer overflow in unpack()).', + 'raw' => 'Fixed bug #69522 (heap buffer overflow in unpack()). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69467 (Wrong checked for the interface by using Trait).', + 'raw' => 'Fixed bug #69467 (Wrong checked for the interface by using Trait). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69420 (Invalid read in zend_std_get_method).', + 'raw' => 'Fixed bug #69420 (Invalid read in zend_std_get_method). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #60022 ("use statement [...] has no effect" depends on leading backslash).', + 'raw' => 'Fixed bug #60022 ("use statement [...] has no effect" depends on leading backslash). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #67314 (Segmentation fault in gc_remove_zval_from_buffer).', + 'raw' => 'Fixed bug #67314 (Segmentation fault in gc_remove_zval_from_buffer). (Dmitry)', + ), + 8 => + array ( + 'message' => 'Fixed bug #68652 (segmentation fault in destructor).', + 'raw' => 'Fixed bug #68652 (segmentation fault in destructor). (Dmitry)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69419 (Returning compatible sub generator produces a warning).', + 'raw' => 'Fixed bug #69419 (Returning compatible sub generator produces a warning). (Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #69472 (php_sys_readlink ignores misc errors from GetFinalPathNameByHandleA).', + 'raw' => 'Fixed bug #69472 (php_sys_readlink ignores misc errors from GetFinalPathNameByHandleA). (Jan Starke)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4022)', + 'raw' => 'Fixed bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4022) (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0).', + 'raw' => 'Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69474 (ODBC: Query with same field name from two tables returns incorrect result).', + 'raw' => 'Fixed bug #69474 (ODBC: Query with same field name from two tables returns incorrect result). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69381 (out of memory with sage odbc driver).', + 'raw' => 'Fixed bug #69381 (out of memory with sage odbc driver). (Frederic Marchall, Anatol Belski)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69402 (Reading empty SSL stream hangs until timeout).', + 'raw' => 'Fixed bug #69402 (Reading empty SSL stream hangs until timeout). (Daniel Lowrey)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68598 (pcntl_exec() should not allow null char). (CVE-2015-4026)', + 'raw' => 'Fixed bug #68598 (pcntl_exec() should not allow null char). (CVE-2015-4026) (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69453 (Memory Corruption in phar_parse_tarfile when entry filename starts with null). (CVE-2015-4021)', + 'raw' => 'Fixed bug #69453 (Memory Corruption in phar_parse_tarfile when entry filename starts with null). (CVE-2015-4021) (Stas)', + ), + ), + ), + ), + '5.5.24' => + array ( + 'date' => '16 Apr 2015', + 'modules' => + array ( + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69218 (potential remote code execution with apache 2.4 apache2handler).', + 'raw' => 'Fixed bug #69218 (potential remote code execution with apache 2.4 apache2handler). (Gerrit Venema)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66609 (php crashes with __get() and ++ operator in some cases).', + 'raw' => 'Fixed bug #66609 (php crashes with __get() and ++ operator in some cases). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67626 (User exceptions not properly handled in streams).', + 'raw' => 'Fixed bug #67626 (User exceptions not properly handled in streams). (Julian)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8 characters).', + 'raw' => 'Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8 characters). (Tjerk)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68917 (parse_url fails on some partial urls).', + 'raw' => 'Fixed bug #68917 (parse_url fails on some partial urls). (Wei Dai)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options).', + 'raw' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options). (Anatol Belski)', + ), + 5 => + array ( + 'message' => 'Additional fix for bug #69152 (Type confusion vulnerability in exception::getTraceAsString).', + 'raw' => 'Additional fix for bug #69152 (Type confusion vulnerability in exception::getTraceAsString). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in __call/... arg passing).', + 'raw' => 'Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in __call/... arg passing). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69221 (Segmentation fault when using a generator in combination with an Iterator).', + 'raw' => 'Fixed bug #69221 (Segmentation fault when using a generator in combination with an Iterator). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion vulnerability).', + 'raw' => 'Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion vulnerability). (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69353 (Missing null byte checks for paths in various PHP extensions).', + 'raw' => 'Fixed bug #69353 (Missing null byte checks for paths in various PHP extensions). (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Implemented FR#69278 (HTTP2 support).', + 'raw' => 'Implemented FR#69278 (HTTP2 support). (Masaki Kagaya)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68739 (Missing break / control flow).', + 'raw' => 'Fixed bug #68739 (Missing break / control flow). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69316 (Use-after-free in php_curl related to CURLOPT_FILE/_INFILE/_WRITEHEADER).', + 'raw' => 'Fixed bug #69316 (Use-after-free in php_curl related to CURLOPT_FILE/_INFILE/_WRITEHEADER). (Laruence)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Export date_get_immutable_ce so that it can be used by extensions.', + 'raw' => 'Export date_get_immutable_ce so that it can be used by extensions. (Derick Rethans)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69336 (Issues with "last day of ").', + 'raw' => 'Fixed bug #69336 (Issues with "last day of "). (Derick Rethans)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows builds).', + 'raw' => 'Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows builds). (Anatol)', + ), + ), + 'ereg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68740 (NULL Pointer Dereference).', + 'raw' => 'Fixed bug #68740 (NULL Pointer Dereference). (Laruence)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or segfault).', + 'raw' => 'Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or segfault). (Anatol Belski)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used).', + 'raw' => 'Fixed bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used). (Jeff Welch)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn\'t strip ASCII 127).', + 'raw' => 'Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn\'t strip ASCII 127). (Jeff Welch)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E).', + 'raw' => 'Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E). (Masaki Kagaya)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0).', + 'raw' => 'Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69281 (opcache_is_script_cached no longer works).', + 'raw' => 'Fixed bug #69281 (opcache_is_script_cached no longer works). (danack)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68677 (Use After Free). (CVE-2015-1351)', + 'raw' => 'Fixed bug #68677 (Use After Free). (CVE-2015-1351) (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67403 .', + 'raw' => 'Fixed bug #67403 (Add signatureType to openssl_x509_parse).', + ), + 1 => + array ( + 'message' => 'Add a check for RAND_egd to allow compiling against LibreSSL', + 'raw' => 'Add a check for RAND_egd to allow compiling against LibreSSL (Leigh)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar).', + 'raw' => 'Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64931 (phar_add_file is too restrictive on filename).', + 'raw' => 'Fixed bug #64931 (phar_add_file is too restrictive on filename). (Mike)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65467 (Call to undefined method cli_arg_typ_string).', + 'raw' => 'Fixed bug #65467 (Call to undefined method cli_arg_typ_string). (Mike)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing ".tar").', + 'raw' => 'Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing ".tar"). (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar).', + 'raw' => 'Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in phar_set_inode).', + 'raw' => 'Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in phar_set_inode). (Stas)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352)', + 'raw' => 'Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352) (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69152 (Type Confusion Infoleak Vulnerability in unserialize() with SoapFault).', + 'raw' => 'Fixed bug #69152 (Type Confusion Infoleak Vulnerability in unserialize() with SoapFault). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader (bisected, regression)).', + 'raw' => 'Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader (bisected, regression)). (thomas at shadowweb dot org, Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69227 (Use after free in zval_scan caused by spl_object_storage_get_gc).', + 'raw' => 'Fixed bug #69227 (Use after free in zval_scan caused by spl_object_storage_get_gc). (adam dot scarr at 99designs dot com)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception).', + 'raw' => 'Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception). (Dan Ackroyd)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69287 (Upgrade bundled sqlite to 3.8.8.3).', + 'raw' => 'Fixed bug #69287 (Upgrade bundled sqlite to 3.8.8.3). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66550 (SQLite prepared statement use-after-free).', + 'raw' => 'Fixed bug #66550 (SQLite prepared statement use-after-free). (Sean Heelan)', + ), + ), + ), + ), + '5.5.23' => + array ( + 'date' => '19 Mar 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69174 (leaks when unused inner class use traits precedence).', + 'raw' => 'Fixed bug #69174 (leaks when unused inner class use traits precedence). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize).', + 'raw' => 'Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build).', + 'raw' => 'Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build). (dan at syneto dot net)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65593 (Segfault when calling ob_start from output buffering callback).', + 'raw' => 'Fixed bug #65593 (Segfault when calling ob_start from output buffering callback). (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69017 (Fail to push to the empty array with the constant value defined in class scope).', + 'raw' => 'Fixed bug #69017 (Fail to push to the empty array with the constant value defined in class scope). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68986 (pointer returned by php_stream_fopen_temporary_file not validated in memory.c).', + 'raw' => 'Fixed bug #68986 (pointer returned by php_stream_fopen_temporary_file not validated in memory.c). (nayana at ddproperty dot com)', + ), + 6 => + array ( + 'message' => 'Fixed bug #68166 (Exception with invalid character causes segv).', + 'raw' => 'Fixed bug #68166 (Exception with invalid character causes segv). (Rasmus)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69141 (Missing arguments in reflection info for some builtin functions).', + 'raw' => 'Fixed bug #69141 (Missing arguments in reflection info for some builtin functions). (kostyantyn dot lysyy at oracle dot com)', + ), + 8 => + array ( + 'message' => 'Fixed bug #68976 (Use After Free Vulnerability in unserialize()). (CVE-2015-2787)', + 'raw' => 'Fixed bug #68976 (Use After Free Vulnerability in unserialize()). (CVE-2015-2787) (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options).', + 'raw' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options). (Anatol Belski)', + ), + 10 => + array ( + 'message' => 'Fixed bug #69207 (move_uploaded_file allows nulls in path). (CVE-2015-2348)', + 'raw' => 'Fixed bug #69207 (move_uploaded_file allows nulls in path). (CVE-2015-2348) (Stas)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69015 (php-cgi\'s getopt does not see $argv).', + 'raw' => 'Fixed bug #69015 (php-cgi\'s getopt does not see $argv). (Laruence)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67741 (auto_prepend_file messes up __LINE__).', + 'raw' => 'Fixed bug #67741 (auto_prepend_file messes up __LINE__). (Reeze Xia)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69088 (PHP_MINIT_FUNCTION does not fully initialize cURL on Win32).', + 'raw' => 'Fixed bug #69088 (PHP_MINIT_FUNCTION does not fully initialize cURL on Win32). (Grant Pannell)', + ), + 1 => + array ( + 'message' => 'Add CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME constants if supported by libcurl.', + 'raw' => 'Add CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME constants if supported by libcurl. (Linus Unneback)', + ), + ), + 'ereg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69248 (heap overflow vulnerability in regcomp.c). (CVE-2015-2305)', + 'raw' => 'Fixed bug #69248 (heap overflow vulnerability in regcomp.c). (CVE-2015-2305) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68822 (request time is reset too early).', + 'raw' => 'Fixed bug #68822 (request time is reset too early). (honghu069 at 163 dot com)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68964 (Allowed memory size exhausted with odbc_exec).', + 'raw' => 'Fixed bug #68964 (Allowed memory size exhausted with odbc_exec). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69125 (Array numeric string as key).', + 'raw' => 'Fixed bug #69125 (Array numeric string as key). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69038 (switch(SOMECONSTANT) misbehaves).', + 'raw' => 'Fixed bug #69038 (switch(SOMECONSTANT) misbehaves). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs #61285, #68329, #68046, #41631 (encrypted streams don\'t observe socket timeouts).', + 'raw' => 'Fixed bugs #61285, #68329, #68046, #41631 (encrypted streams don\'t observe socket timeouts). (Brad Broerman)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68638 (pg_update() fails to store infinite values).', + 'raw' => 'Fixed bug #68638 (pg_update() fails to store infinite values). (william dot welter at 4linux dot com dot br, Laruence)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69054 (Null dereference in readline_(read|write)_history() without parameters).', + 'raw' => 'Fixed bug #69054 (Null dereference in readline_(read|write)_history() without parameters). (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69085 (SoapClient\'s __call() type confusion through unserialize()). (CVE-2015-4147, CVE-2015-4148)', + 'raw' => 'Fixed bug #69085 (SoapClient\'s __call() type confusion through unserialize()). (CVE-2015-4147, CVE-2015-4148) (andrea dot palazzo at truel dot it, Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage).', + 'raw' => 'Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68557 (RecursiveDirectoryIterator::seek(0) broken after calling getChildren()).', + 'raw' => 'Fixed bug #68557 (RecursiveDirectoryIterator::seek(0) broken after calling getChildren()). (Julien)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69253 (ZIP Integer Overflow leads to writing past heap boundary). (CVE-2015-2331)', + 'raw' => 'Fixed bug #69253 (ZIP Integer Overflow leads to writing past heap boundary). (CVE-2015-2331) (Stas)', + ), + ), + ), + ), + '5.5.22' => + array ( + 'date' => '19 Feb 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Removed support for multi-line headers, as the are deprecated by RFC 7230.', + 'raw' => 'Removed support for multi-line headers, as the are deprecated by RFC 7230. (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67068 (getClosure returns somethings that\'s not a closure).', + 'raw' => 'Fixed bug #67068 (getClosure returns somethings that\'s not a closure). (Danack at basereality dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone). (CVE-2015-0273)', + 'raw' => 'Fixed bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone). (CVE-2015-0273) (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68925 (Mitigation for CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow).', + 'raw' => 'Fixed bug #68925 (Mitigation for CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow). (Stas)', + ), + 4 => + array ( + 'message' => 'Added NULL byte protection to exec, system and passthru.', + 'raw' => 'Added NULL byte protection to exec, system and passthru. (Yasuo)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #45081 (strtotime incorrectly interprets SGT time zone).', + 'raw' => 'Fixed bug #45081 (strtotime incorrectly interprets SGT time zone). (Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68711 (useless comparisons).', + 'raw' => 'Fixed bug #68711 (useless comparisons). (bugreports at internot dot info)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68552 (heap buffer overflow in enchant_broker_request_dict()). (CVE-2014-9705)', + 'raw' => 'Fixed bug #68552 (heap buffer overflow in enchant_broker_request_dict()). (CVE-2014-9705) (Antony)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68827 (Double free with disabled ZMM).', + 'raw' => 'Fixed bug #68827 (Double free with disabled ZMM). (Joshua Rogers)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66479 (Wrong response to FCGI_GET_VALUES).', + 'raw' => 'Fixed bug #66479 (Wrong response to FCGI_GET_VALUES). (Frank Stolle)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68571 (core dump when webserver close the socket).', + 'raw' => 'Fixed bug #68571 (core dump when webserver close the socket). (redfoxli069 at gmail dot com, Laruence)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between threads).', + 'raw' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between threads). (Martin Jansen)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68750 (PDOMysql with mysqlnd does not allow the usage of named pipes).', + 'raw' => 'Fixed bug #68750 (PDOMysql with mysqlnd does not allow the usage of named pipes). (steffenb198 at aol dot com)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68901 (use after free). (CVE-2015-2301)', + 'raw' => 'Fixed bug #68901 (use after free). (CVE-2015-2301) (bugreports at internot dot info)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #65199 \'pg_copy_from() modifies input array variable).', + 'raw' => 'Fixed Bug #65199 \'pg_copy_from() modifies input array variable). (Yasuo)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args).', + 'raw' => 'Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args). (Julien)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support)', + 'raw' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support) (Keyur Govande)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68657 (Reading 4 byte floats with Mysqli and libmysqlclient has rounding errors)', + 'raw' => 'Fixed bug #68657 (Reading 4 byte floats with Mysqli and libmysqlclient has rounding errors) (Keyur Govande)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68941 (mod_files.sh is a bash-script)', + 'raw' => 'Fixed bug #68941 (mod_files.sh is a bash-script) (bugzilla at ii.nl, Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #66623 (no EINTR check on flock)', + 'raw' => 'Fixed Bug #66623 (no EINTR check on flock) (Yasuo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68063 (Empty session IDs do still start sessions)', + 'raw' => 'Fixed bug #68063 (Empty session IDs do still start sessions) (Yasuo)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65272 (flock() out parameter not set correctly in windows).', + 'raw' => 'Fixed bug #65272 (flock() out parameter not set correctly in windows). (Daniel Lowrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI).', + 'raw' => 'Fixed bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI). (Anatol)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug which caused call after final close on streams filter.', + 'raw' => 'Fixed bug which caused call after final close on streams filter. (Bob)', + ), + ), + ), + ), + '5.5.21' => + array ( + 'date' => '22 Jan 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Upgraded crypt_blowfish to version 1.3.', + 'raw' => 'Upgraded crypt_blowfish to version 1.3. (Leigh)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60704 bug with some files path).', + 'raw' => 'Fixed bug #60704 (unlink() bug with some files path).', + ), + 2 => + array ( + 'message' => 'Fixed bug #65419 (Inside trait, self::class != __CLASS__).', + 'raw' => 'Fixed bug #65419 (Inside trait, self::class != __CLASS__). (Julien)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65576 (Constructor from trait conflicts with inherited constructor).', + 'raw' => 'Fixed bug #65576 (Constructor from trait conflicts with inherited constructor). (dunglas at gmail dot com)', + ), + 4 => + array ( + 'message' => 'Fixed bug #55541 (errors spawn MessageBox, which blocks test automation).', + 'raw' => 'Fixed bug #55541 (errors spawn MessageBox, which blocks test automation). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68297 (Application Popup provides too few information).', + 'raw' => 'Fixed bug #68297 (Application Popup provides too few information). (Anatol)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65769 (localeconv() broken in TS builds).', + 'raw' => 'Fixed bug #65769 (localeconv() broken in TS builds). (Anatol)', + ), + 7 => + array ( + 'message' => 'Fixed bug #65230 (setting locale randomly broken).', + 'raw' => 'Fixed bug #65230 (setting locale randomly broken). (Anatol)', + ), + 8 => + array ( + 'message' => 'Fixed bug #66764 (configure doesn\'t define EXPANDED_DATADIR / PHP_DATADIR correctly).', + 'raw' => 'Fixed bug #66764 (configure doesn\'t define EXPANDED_DATADIR / PHP_DATADIR correctly). (Ferenc)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68583 (Crash in timeout thread).', + 'raw' => 'Fixed bug #68583 (Crash in timeout thread). (Anatol)', + ), + 10 => + array ( + 'message' => 'Fixed bug #68676 (Explicit Double Free). (CVE-2014-9425)', + 'raw' => 'Fixed bug #68676 (Explicit Double Free). (CVE-2014-9425) (Kalle)', + ), + 11 => + array ( + 'message' => 'Fixed bug #68710 (Use After Free Vulnerability in PHP\'s unserialize()). (CVE-2015-0231)', + 'raw' => 'Fixed bug #68710 (Use After Free Vulnerability in PHP\'s unserialize()). (CVE-2015-0231) (Stefan Esser)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68618 (out of bounds read crashes php-cgi). (CVE-2014-9427)', + 'raw' => 'Fixed bug #68618 (out of bounds read crashes php-cgi). (CVE-2014-9427) (Stas)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68745 (Invalid HTTP requests make web server segfault).', + 'raw' => 'Fixed bug #68745 (Invalid HTTP requests make web server segfault). (Adam)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67643 (curl_multi_getcontent returns \'\' when CURLOPT_RETURNTRANSFER isn\'t set).', + 'raw' => 'Fixed bug #67643 (curl_multi_getcontent returns \'\' when CURLOPT_RETURNTRANSFER isn\'t set). (Jille Timmermans)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68799 (Free called on uninitialized pointer). (CVE-2015-0232)', + 'raw' => 'Fixed bug #68799 (Free called on uninitialized pointer). (CVE-2015-0232) (Stas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68671 (incorrect expression in libmagic).', + 'raw' => 'Fixed bug #68671 (incorrect expression in libmagic). (Joshua Rogers, Anatol Belski)', + ), + 1 => + array ( + 'message' => 'Removed readelf.c and related code from libmagic sources', + 'raw' => 'Removed readelf.c and related code from libmagic sources (Remi, Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68735 (fileinfo out-of-bounds memory access). (CVE-2014-9652)', + 'raw' => 'Fixed bug #68735 (fileinfo out-of-bounds memory access). (CVE-2014-9652) (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68751 (listen.allowed_clients is broken).', + 'raw' => 'Fixed bug #68751 (listen.allowed_clients is broken). (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68601 (buffer read overflow in gd_gif_in.c). (CVE-2014-9709)', + 'raw' => 'Fixed bug #68601 (buffer read overflow in gd_gif_in.c). (CVE-2014-9709) (Jan Bee, Remi)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68504 (--with-libmbfl configure option not present on Windows).', + 'raw' => 'Fixed bug #68504 (--with-libmbfl configure option not present on Windows). (Ashesh Vashi)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed possible read after end of buffer and use after free.', + 'raw' => 'Fixed possible read after end of buffer and use after free. (Dmitry)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67111 (Memory leak when using "continue 2" inside two foreach loops).', + 'raw' => 'Fixed bug #67111 (Memory leak when using "continue 2" inside two foreach loops). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55618 (use case-insensitive cert name matching).', + 'raw' => 'Fixed bug #55618 (use case-insensitive cert name matching). (Daniel Lowrey)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60509 (pcntl_signal doesn\'t decrease ref-count of old handler when setting SIG_DFL).', + 'raw' => 'Fixed bug #60509 (pcntl_signal doesn\'t decrease ref-count of old handler when setting SIG_DFL). (Julien)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66679 (Alignment Bug in PCRE 8.34 upstream).', + 'raw' => 'Fixed bug #66679 (Alignment Bug in PCRE 8.34 upstream). (Rainer Jung, Anatol Belski)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68697 (lo_export return -1 on failure).', + 'raw' => 'Fixed bug #68697 (lo_export return -1 on failure). (Ondřej Surý)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68371 (PDO#getAttribute() cannot be called with platform-specific attribute names).', + 'raw' => 'Fixed bug #68371 (PDO#getAttribute() cannot be called with platform-specific attribute names). (Matteo)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option).', + 'raw' => 'Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option). (peter dot wolanin at acquia dot com)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator).', + 'raw' => 'Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator). (Paul Garvin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65213 (cannot cast SplFileInfo to boolean)', + 'raw' => 'Fixed bug #65213 (cannot cast SplFileInfo to boolean) (Tjerk)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68479 (Added escape parameter to SplFileObject::fputcsv).', + 'raw' => 'Fixed bug #68479 (Added escape parameter to SplFileObject::fputcsv). (Salathe)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68120 (Update bundled libsqlite to 3.8.7.2).', + 'raw' => 'Fixed bug #68120 (Update bundled libsqlite to 3.8.7.2). (Anatol)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68532 (convert.base64-encode omits padding bytes).', + 'raw' => 'Fixed bug #68532 (convert.base64-encode omits padding bytes). (blaesius at krumedia dot de)', + ), + ), + ), + ), + '5.5.20' => + array ( + 'date' => '18 Dec 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68091 (Some Zend headers lack appropriate extern "C" blocks).', + 'raw' => 'Fixed bug #68091 (Some Zend headers lack appropriate extern "C" blocks). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68185 ("Inconsistent insteadof definition."- incorrectly triggered).', + 'raw' => 'Fixed bug #68185 ("Inconsistent insteadof definition."- incorrectly triggered). (Julien)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68370 ("unset($this)" can make the program crash).', + 'raw' => 'Fixed bug #68370 ("unset($this)" can make the program crash). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68545 (NULL pointer dereference in unserialize.c).', + 'raw' => 'Fixed bug #68545 (NULL pointer dereference in unserialize.c). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68594 (Use after free vulnerability in unserialize()). (CVE-2014-8142)', + 'raw' => 'Fixed bug #68594 (Use after free vulnerability in unserialize()). (CVE-2014-8142) (Stefan Esser)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed day_of_week function as it could sometimes return negative values internally.', + 'raw' => 'Fixed day_of_week function as it could sometimes return negative values internally. (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68381 (fpm_unix_init_main ignores log_level).', + 'raw' => 'Fixed bug #68381 (fpm_unix_init_main ignores log_level). (David Zuelke, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68420 (listen=9000 listens to ipv6 localhost instead of all addresses).', + 'raw' => 'Fixed bug #68420 (listen=9000 listens to ipv6 localhost instead of all addresses). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68421 (access.format=\'%R\' doesn\'t log ipv6 address).', + 'raw' => 'Fixed bug #68421 (access.format=\'%R\' doesn\'t log ipv6 address). (Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68423 (PHP-FPM will no longer load all pools).', + 'raw' => 'Fixed bug #68423 (PHP-FPM will no longer load all pools). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68428 (listen.allowed_clients is IPv4 only).', + 'raw' => 'Fixed bug #68428 (listen.allowed_clients is IPv4 only). (Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68452 (php-fpm man page is oudated).', + 'raw' => 'Fixed bug #68452 (php-fpm man page is oudated). (Remi)', + ), + 6 => + array ( + 'message' => 'Fixed request #68458 (Change pm.start_servers default warning to notice).', + 'raw' => 'Fixed request #68458 (Change pm.start_servers default warning to notice). (David Zuelke, Remi)', + ), + 7 => + array ( + 'message' => 'Fixed bug #68463 (listen.allowed_clients can silently result in no allowed access).', + 'raw' => 'Fixed bug #68463 (listen.allowed_clients can silently result in no allowed access). (Remi)', + ), + 8 => + array ( + 'message' => 'Fixed request #68391 (php-fpm conf files loading order).', + 'raw' => 'Fixed request #68391 (php-fpm conf files loading order). (Florian Margaine, Remi)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68478 (access.log don\'t use prefix).', + 'raw' => 'Fixed bug #68478 (access.log don\'t use prefix). (Remi)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed possible read after end of buffer and use after free.', + 'raw' => 'Fixed possible read after end of buffer and use after free. (Dmitry)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66584 (Segmentation fault on statement deallocation)', + 'raw' => 'Fixed bug #66584 (Segmentation fault on statement deallocation) (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67462 (PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction)', + 'raw' => 'Fixed bug #67462 (PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction) (Matteo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving)', + 'raw' => 'Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving) (Matteo)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes).', + 'raw' => 'Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes). (Laruence)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53829 (Compiling PHP with large file support will replace function gzopen by gzopen64)', + 'raw' => 'Fixed bug #53829 (Compiling PHP with large file support will replace function gzopen by gzopen64) (Sascha Kettler, Matteo)', + ), + ), + ), + ), + '5.5.19' => + array ( + 'date' => '13 Nov 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68095 (AddressSanitizer reports a heap buffer overflow in php_getopt()).', + 'raw' => 'Fixed bug #68095 (AddressSanitizer reports a heap buffer overflow in php_getopt()). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68118 ($a->foo .= \'test\'; can leave $a->foo undefined).', + 'raw' => 'Fixed bug #68118 ($a->foo .= \'test\'; can leave $a->foo undefined). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68129 (parse_url() - incomplete support for empty usernames and passwords)', + 'raw' => 'Fixed bug #68129 (parse_url() - incomplete support for empty usernames and passwords) (Tjerk)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy).', + 'raw' => 'Fixed bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy). (Dmitry)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, and CURL_SSLVERSION_TLSv1_2 constants if supported by libcurl', + 'raw' => 'Add CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, and CURL_SSLVERSION_TLSv1_2 constants if supported by libcurl (Rasmus)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed).', + 'raw' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed). (ArdB)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68283 (fileinfo: out-of-bounds read in elf note headers). (CVE-2014-3710)', + 'raw' => 'Fixed bug #68283 (fileinfo: out-of-bounds read in elf note headers). (CVE-2014-3710) (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #55508 (listen and listen.allowed_clients should take IPv6 addresses).', + 'raw' => 'Implemented FR #55508 (listen and listen.allowed_clients should take IPv6 addresses). (Robin Gloster)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65171 (imagescale() fails without height param).', + 'raw' => 'Fixed bug #65171 (imagescale() fails without height param). (Remi)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63595 (GMP memory management conflicts with other libraries using GMP).', + 'raw' => 'Fixed bug #63595 (GMP memory management conflicts with other libraries using GMP). (Remi)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support)', + 'raw' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support) (Keyur Govande)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68087 (ODBC not correctly reading DATE column when preceded by a VARCHAR column)', + 'raw' => 'Fixed bug #68087 (ODBC not correctly reading DATE column when preceded by a VARCHAR column) (Keyur Govande)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68128 (Regression in RecursiveRegexIterator)', + 'raw' => 'Fixed bug #68128 (Regression in RecursiveRegexIterator) (Tjerk)', + ), + ), + ), + ), + '5.5.18' => + array ( + 'date' => '16 Oct 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67985 (Incorrect last used array index copied to new array after unset).', + 'raw' => 'Fixed bug #67985 (Incorrect last used array index copied to new array after unset). (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67739 (Windows 8.1/Server 2012 R2 OS build number reported as 6.2 (instead of 6.3)).', + 'raw' => 'Fixed bug #67739 (Windows 8.1/Server 2012 R2 OS build number reported as 6.2 (instead of 6.3)). (Christian Wenz)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67633 (A foreach on an array returned from a function not doing copy-on-write).', + 'raw' => 'Fixed bug #67633 (A foreach on an array returned from a function not doing copy-on-write). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #51800 (proc_open on Windows hangs forever).', + 'raw' => 'Fixed bug #51800 (proc_open on Windows hangs forever). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669)', + 'raw' => 'Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669) (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68089 (NULL byte injection - cURL lib).', + 'raw' => 'Fixed bug #68089 (NULL byte injection - cURL lib). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670)', + 'raw' => 'Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65641 (PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache, mod_proxy-fcgi and ProxyPass).', + 'raw' => 'Fixed bug #65641 (PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache, mod_proxy-fcgi and ProxyPass). (Remi)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Revert regression introduced by fix of bug #41631', + 'raw' => 'Revert regression introduced by fix of bug #41631', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68103 (Duplicate entry in Reflection for class alias).', + 'raw' => 'Fixed bug #68103 (Duplicate entry in Reflection for class alias). (Remi)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67972 (SessionHandler Invalid memory read create_sid()).', + 'raw' => 'Fixed bug #67972 (SessionHandler Invalid memory read create_sid()). (Adam)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668)', + 'raw' => 'Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668) (Stas)', + ), + ), + ), + ), + '5.5.17' => + array ( + 'date' => '18 Sep 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47358 (glob returns error, should be empty array()).', + 'raw' => 'Fixed bug #47358 (glob returns error, should be empty array()). (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65463 (SIGSEGV during zend_shutdown()).', + 'raw' => 'Fixed bug #65463 (SIGSEGV during zend_shutdown()). (Keyur Govande)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66036 (Crash on SIGTERM in apache process).', + 'raw' => 'Fixed bug #66036 (Crash on SIGTERM in apache process). (Keyur Govande)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67878 (program_prefix not honoured in man pages).', + 'raw' => 'Fixed bug #67878 (program_prefix not honoured in man pages). (Remi)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41577 (DOTNET is successful once per server run)', + 'raw' => 'Fixed bug #41577 (DOTNET is successful once per server run) (Aidas Kasparas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed #67606 (FPM with mod_fastcgi/apache2.4 is broken).', + 'raw' => 'Fixed #67606 (FPM with mod_fastcgi/apache2.4 is broken). (David Zuelke)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41631 (socket timeouts not honored in blocking SSL reads).', + 'raw' => 'Fixed bug #41631 (socket timeouts not honored in blocking SSL reads). (Daniel Lowrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67850 (extension won\'t build if openssl compiled without SSLv3)', + 'raw' => 'Fixed bug #67850 (extension won\'t build if openssl compiled without SSLv3) (Daniel Lowrey)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67813 (CachingIterator::__construct InvalidArgumentException wrong message).', + 'raw' => 'Fixed bug #67813 (CachingIterator::__construct InvalidArgumentException wrong message). (tim_siebels_aurich at yahoo dot de)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66091 (memory leaks in DateTime constructor).', + 'raw' => 'Fixed bug #66091 (memory leaks in DateTime constructor). (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66985 (Some timezones are no longer valid in PHP 5.5.10).', + 'raw' => 'Fixed bug #66985 (Some timezones are no longer valid in PHP 5.5.10). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67109 (First uppercase letter breaks date string parsing).', + 'raw' => 'Fixed bug #67109 (First uppercase letter breaks date string parsing). (Derick)', + ), + 3 => + array ( + 'message' => 'Made fontFetch\'s path parser thread-safe. .', + 'raw' => 'Made fontFetch\'s path parser thread-safe. (Sara).', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67839 (mysqli does not handle 4-byte floats correctly).', + 'raw' => 'Fixed bug #67839 (mysqli does not handle 4-byte floats correctly). (Keyur)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67724 (chained zlib filters silently fail with large amounts of data).', + 'raw' => 'Fixed bug #67724 (chained zlib filters silently fail with large amounts of data). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67865 . Mike', + 'raw' => 'Fixed bug #67865 (internal corruption phar error). Mike', + ), + ), + ), + ), + '5.5.16' => + array ( + 'date' => '21 Aug 2014', + 'modules' => + array ( + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in com_event_sink .', + 'raw' => 'Fixed missing type checks in com_event_sink (Yussuf Khalil, Stas).', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538)', + 'raw' => 'Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587)', + 'raw' => 'Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587) (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67635 (php links to systemd libraries without using pkg-config).', + 'raw' => 'Fixed bug #67635 (php links to systemd libraries without using pkg-config). (pacho at gentoo dot org, Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66901 (php-gd \'c_color\' NULL pointer dereference). (CVE-2014-2497)', + 'raw' => 'Fixed bug #66901 (php-gd \'c_color\' NULL pointer dereference). (CVE-2014-2497) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120)', + 'raw' => 'Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120) (Ryan Mauger)', + ), + ), + 'milter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67715 (php-milter does not build and crashes randomly).', + 'raw' => 'Fixed bug #67715 (php-milter does not build and crashes randomly). (Mike)', + ), + ), + 'network' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597)', + 'raw' => 'Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597) (Remi)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in OpenSSL options.', + 'raw' => 'Fixed missing type checks in OpenSSL options. (Yussuf Khalil, Stas)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55496 (Interactive mode doesn\'t force a newline before the prompt).', + 'raw' => 'Fixed bug #55496 (Interactive mode doesn\'t force a newline before the prompt). (Bob, Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67496 (Save command history when exiting interactive shell with control-c).', + 'raw' => 'Fixed bug #67496 (Save command history when exiting interactive shell with control-c). (Dmitry Saprykin, Johannes)', + ), + ), + 'sessions' => + array ( + 0 => + array ( + 'message' => 'Fixed missing type checks in php_session_create_id .', + 'raw' => 'Fixed missing type checks in php_session_create_id (Yussuf Khalil, Stas).', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67693 (incorrect push to the empty array)', + 'raw' => 'Fixed bug #67693 (incorrect push to the empty array) (Tjerk)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60616 (odbc_fetch_into returns junk data at end of multi-byte char fields).', + 'raw' => 'Fixed bug #60616 (odbc_fetch_into returns junk data at end of multi-byte char fields). (Keyur)', + ), + ), + ), + ), + '5.5.15' => + array ( + 'date' => '24 Jul 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67428 (header(\'Location: foo\') will override a 308-399 response code).', + 'raw' => 'Fixed bug #67428 (header(\'Location: foo\') will override a 308-399 response code). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67436 (Autoloader isn\'t called if two method definitions don\'t match).', + 'raw' => 'Fixed bug #67436 (Autoloader isn\'t called if two method definitions don\'t match). (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0).', + 'raw' => 'Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0). (Ferenc)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67497 (eval with parse error causes segmentation fault in generator).', + 'raw' => 'Fixed bug #67497 (eval with parse error causes segmentation fault in generator). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67151 (strtr with empty array crashes).', + 'raw' => 'Fixed bug #67151 (strtr with empty array crashes). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012).', + 'raw' => 'Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012). (Christian Wenz)', + ), + 6 => + array ( + 'message' => 'Fixed bug #66608 (Incorrect behavior with nested "finally" blocks).', + 'raw' => 'Fixed bug #66608 (Incorrect behavior with nested "finally" blocks). (Laruence, Dmitry)', + ), + 7 => + array ( + 'message' => 'Implemented FR #34407 (ucwords and Title Case).', + 'raw' => 'Implemented FR #34407 (ucwords and Title Case). (Tjerk)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #67429 (CLI server is missing some new HTTP response codes).', + 'raw' => 'Implemented FR #67429 (CLI server is missing some new HTTP response codes). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66830 (Empty header causes PHP built-in web server to hang).', + 'raw' => 'Fixed bug #66830 (Empty header causes PHP built-in web server to hang). (Adam)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67594 (Unable to access to apache_request_headers() elements).', + 'raw' => 'Fixed bug #67594 (Unable to access to apache_request_headers() elements). (Tjerk)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67530 (error_log=syslog ignored).', + 'raw' => 'Fixed bug #67530 (error_log=syslog ignored). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67531 (syslog cannot be set in pool configuration).', + 'raw' => 'Fixed bug #67531 (syslog cannot be set in pool configuration). (Remi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66921 (Wrong argument type hint for function intltz_from_date_time_zone).', + 'raw' => 'Fixed bug #66921 (Wrong argument type hint for function intltz_from_date_time_zone). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting).', + 'raw' => 'Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting). (Stas)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen)', + 'raw' => 'Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen) (Dmitry, Laruence)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3.', + 'raw' => 'Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3. (Adam)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67587 (Redirection loop on nginx with FPM).', + 'raw' => 'Fixed bug #67587 (Redirection loop on nginx with FPM). (Christian Weiske)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698)', + 'raw' => 'Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698) (research at insighti dot org, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670)', + 'raw' => 'Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670) (Laruence)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67430 (http:// wrapper doesn\'t follow 308 redirects).', + 'raw' => 'Fixed bug #67430 (http:// wrapper doesn\'t follow 308 redirects). (Adam)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66827 (Session raises E_NOTICE when session name variable is array).', + 'raw' => 'Fixed bug #66827 (Session raises E_NOTICE when session name variable is array). (Yasuo)', + ), + ), + ), + ), + '5.5.14' => + array ( + 'date' => '27 Jun 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed BC break introduced by patch for bug #67072.', + 'raw' => 'Fixed BC break introduced by patch for bug #67072. (Anatol, Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases).', + 'raw' => 'Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases). (Levi Morrison)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi)', + 'raw' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi) (CVE-2014-3981)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67399 (putenv with empty variable may lead to crash).', + 'raw' => 'Fixed bug #67399 (putenv with empty variable may lead to crash). (Stas)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #67406 (built-in web-server segfaults on startup).', + 'raw' => 'Fixed Bug #67406 (built-in web-server segfaults on startup). (Remi)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67308 (Serialize of DateTime truncates fractions of second).', + 'raw' => 'Fixed bug #67308 (Serialize of DateTime truncates fractions of second). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed regression in fix for bug #67118 (constructor can\'t be called twice).', + 'raw' => 'Fixed regression in fix for bug #67118 (constructor can\'t be called twice). (Remi)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67326 .', + 'raw' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check).', + ), + 1 => + array ( + 'message' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size).', + 'raw' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (Francisco Alonso, Jan Kaluza, Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check).', + 'raw' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (Francisco Alonso, Jan Kaluza, Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check).', + 'raw' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (Francisco Alonso, Jan Kaluza, Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check).', + 'raw' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (Francisco Alonso, Jan Kaluza, Remi)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated LiteSpeed SAPI code from V5.5 to V6.6', + 'raw' => 'Updated LiteSpeed SAPI code from V5.5 to V6.6 (George Wang)', + ), + ), + 'network' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049).', + 'raw' => 'Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049). (Sara)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed issue #183 (TMP_VAR is not only used once).', + 'raw' => 'Fixed issue #183 (TMP_VAR is not only used once). (Dmitry, Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65698 (certificates validity parsing does not work past 2050).', + 'raw' => 'Fixed bug #65698 (certificates validity parsing does not work past 2050). (Paul Oehler)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME).', + 'raw' => 'Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME). (Paul Oehler)', + ), + ), + 'pdo-odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50444 .', + 'raw' => 'Fixed bug #50444 (PDO-ODBC changes for 64-bit).', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #49898 (Add SoapClient::__getCookies()).', + 'raw' => 'Implemented FR #49898 (Add SoapClient::__getCookies()). (Boro Sitnikovski)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset).', + 'raw' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator).', + 'raw' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67360 (Missing element after ArrayObject::getIterator).', + 'raw' => 'Fixed bug #67360 (Missing element after ArrayObject::getIterator). (Adam)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion). (CVE-2014-3515)', + 'raw' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion). (CVE-2014-3515) (Stefan Esser)', + ), + ), + ), + ), + '5.5.13' => + array ( + 'date' => '29 May 2014', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67079 (Missing MIME types for XML/XSL files).', + 'raw' => 'Fixed bug #67079 (Missing MIME types for XML/XSL files). (Anatol)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)).', + 'raw' => 'Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)). (Anatol)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65701 (copy() doesn\'t work when destination filename is created by tempnam()).', + 'raw' => 'Fixed bug #65701 (copy() doesn\'t work when destination filename is created by tempnam()). (Boro Sitnikovski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67072 (Echoing unserialized "SplFileObject" crash).', + 'raw' => 'Fixed bug #67072 (Echoing unserialized "SplFileObject" crash). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67245 (usage of memcpy() with overlapping src and dst in zend_exceptions.c).', + 'raw' => 'Fixed bug #67245 (usage of memcpy() with overlapping src and dst in zend_exceptions.c). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow).', + 'raw' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67249 (printf out-of-bounds read).', + 'raw' => 'Fixed bug #67249 (printf out-of-bounds read). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67250 (iptcparse out-of-bounds read).', + 'raw' => 'Fixed bug #67250 (iptcparse out-of-bounds read). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read).', + 'raw' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read). (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64247 (CURLOPT_INFILE doesn\'t allow reset).', + 'raw' => 'Fixed bug #64247 (CURLOPT_INFILE doesn\'t allow reset). (Mike)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67118 (DateTime constructor crash with invalid data).', + 'raw' => 'Fixed bug #67118 (DateTime constructor crash with invalid data). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read).', + 'raw' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read).', + 'raw' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read). (Stas)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset).', + 'raw' => 'Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset). (Anatol)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files).', + 'raw' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS) .', + 'raw' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS) (CVE-2014-0238).', + ), + 2 => + array ( + 'message' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation) .', + 'raw' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation) (CVE-2014-0237).', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor).', + 'raw' => 'Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor). (Julio Pintos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67248 (imageaffinematrixget missing check of parameters).', + 'raw' => 'Fixed bug #67248 (imageaffinematrixget missing check of parameters). (Stas)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67238 (Ungreedy and min/max quantifier bug, applied patch from the upstream).', + 'raw' => 'Fixed bug #67238 (Ungreedy and min/max quantifier bug, applied patch from the upstream). (Anatol)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix bug #64498 ($phar->buildFromDirectory can\'t compress file with an accent in its name).', + 'raw' => 'Fix bug #64498 ($phar->buildFromDirectory can\'t compress file with an accent in its name). (PR #588)', + ), + ), + ), + ), + '5.5.12' => + array ( + 'date' => '30 Apr 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61019 (Out of memory on command stream_get_contents).', + 'raw' => 'Fixed bug #61019 (Out of memory on command stream_get_contents). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets).', + 'raw' => 'Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets). (Mike)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66182 (exit in stream filter produces segfault).', + 'raw' => 'Fixed bug #66182 (exit in stream filter produces segfault). (Mike)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66736 (fpassthru broken).', + 'raw' => 'Fixed bug #66736 (fpassthru broken). (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67024 (getimagesize should recognize BMP files with negative height).', + 'raw' => 'Fixed bug #67024 (getimagesize should recognize BMP files with negative height). (Gabor Buella)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67043 (substr_compare broke by previous change)', + 'raw' => 'Fixed bug #67043 (substr_compare broke by previous change) (Tjerk)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67033 (Remove reference to Windows 95).', + 'raw' => 'Fixed bug #67033 (Remove reference to Windows 95). (Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent).', + 'raw' => 'Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent). (Freek Lijten)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied).', + 'raw' => 'Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied). (Boro Sitnikovski)', + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65715 (php5embed.lib isn\'t provided anymore). .', + 'raw' => 'Fixed bug #65715 (php5embed.lib isn\'t provided anymore). (Anatol).', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian).', + 'raw' => 'Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian). (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66482 .', + 'raw' => 'Fixed bug #66482 (unknown entry \'priority\' in php-fpm.conf).', + ), + 1 => + array ( + 'message' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185).', + 'raw' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185). (Stas)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set).', + 'raw' => 'Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set). (Kevin Israel)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64695 (JSON_NUMERIC_CHECK has issues with strings that are numbers plus the letter e).', + 'raw' => 'Fixed bug #64695 (JSON_NUMERIC_CHECK has issues with strings that are numbers plus the letter e). (Jakub Zelenka)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed issue with null bytes in LDAP bindings.', + 'raw' => 'Fixed issue with null bytes in LDAP bindings. (Matthew Daley)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed problem in mysqli_commit()/mysqli_rollback() with second parameter (extra comma) and third parameters (lack of escaping).', + 'raw' => 'Fixed problem in mysqli_commit()/mysqli_rollback() with second parameter (extra comma) and third parameters (lack of escaping). (Andrey)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix bug #66942 (memory leak in openssl_seal()).', + 'raw' => 'Fix bug #66942 (memory leak in openssl_seal()). (Chuan Ma)', + ), + 1 => + array ( + 'message' => 'Fix bug #66952 (memory leak in openssl_open()).', + 'raw' => 'Fix bug #66952 (memory leak in openssl_open()). (Chuan Ma)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66084 (simplexml_load_string() mangles empty node name)', + 'raw' => 'Fixed bug #66084 (simplexml_load_string() mangles empty node name) (Anatol)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3).', + 'raw' => 'Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3). (Anatol)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://").', + 'raw' => 'Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://"). (Anatol)', + ), + ), + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed Apache log issue caused by APR\'s lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120).', + 'raw' => 'Fixed Apache log issue caused by APR\'s lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120). (Jeff Trawick)', + ), + ), + ), + ), + '5.5.11' => + array ( + 'date' => '03 Apr 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Allow zero length comparison in substr_compare()', + 'raw' => 'Allow zero length comparison in substr_compare() (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60602 (proc_open() changes environment array)', + 'raw' => 'Fixed bug #60602 (proc_open() changes environment array) (Tjerk)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Added feature #65545 (SplFileObject::fread())', + 'raw' => 'Added feature #65545 (SplFileObject::fread()) (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66702 (RegexIterator::INVERT_MATCH does not invert).', + 'raw' => 'Fixed bug #66702 (RegexIterator::INVERT_MATCH does not invert). (Joshua Thijssen)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66109 (Can\'t reset CURLOPT_CUSTOMREQUEST to default behaviour)', + 'raw' => 'Fixed bug #66109 (Can\'t reset CURLOPT_CUSTOMREQUEST to default behaviour) (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive.', + 'raw' => 'Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive. (Adam)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66946i (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345)', + 'raw' => 'Fixed bug #66946i (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345) (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Added clear_env configuration directive to disable clearenv() call.', + 'raw' => 'Added clear_env configuration directive to disable clearenv() call. (Github PR# 598, Paul Annesley)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66714 (imageconvolution breakage).', + 'raw' => 'Fixed bug #66714 (imageconvolution breakage). (Brad Daily)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66869 (Invalid 2nd argument crashes imageaffinematrixget)', + 'raw' => 'Fixed bug #66869 (Invalid 2nd argument crashes imageaffinematrixget) (Pierre)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66887 (imagescale - poor quality of scaled image).', + 'raw' => 'Fixed bug #66887 (imagescale - poor quality of scaled image). (Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66890 (imagescale segfault).', + 'raw' => 'Fixed bug #66890 (imagescale segfault). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66893 (imagescale ignore method argument).', + 'raw' => 'Fixed bug #66893 (imagescale ignore method argument). (Remi)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'hash_pbkdf2() now works correctly if the $length argument is not specified.', + 'raw' => 'hash_pbkdf2() now works correctly if the $length argument is not specified. (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66873 (A reproductible crash in UConverter when given invalid encoding)', + 'raw' => 'Fixed bug #66873 (A reproductible crash in UConverter when given invalid encoding) (Stas)', + ), + ), + 'mail' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66535 (Don\'t add newline after X-PHP-Originating-Script)', + 'raw' => 'Fixed bug #66535 (Don\'t add newline after X-PHP-Originating-Script) (Tjerk)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed)', + 'raw' => 'Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed) (Remi)', + ), + 1 => + array ( + 'message' => 'Added function opcache_is_script_cached().', + 'raw' => 'Added function opcache_is_script_cached(). (Danack)', + ), + 2 => + array ( + 'message' => 'Added information about interned strings usage.', + 'raw' => 'Added information about interned strings usage. (Terry, Julien, Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1).', + 'raw' => 'Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66872 (invalid argument crashes gmp_testbit)', + 'raw' => 'Fixed bug #66872 (invalid argument crashes gmp_testbit) (Pierre)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Updated bundled libsqlite to 3.8.3.1', + 'raw' => 'Updated bundled libsqlite to 3.8.3.1 (Anatol)', + ), + ), + ), + ), + '5.5.10' => + array ( + 'date' => '06 Mar 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed Request #66574i (Allow multiple paths in php_ini_scanned_path).', + 'raw' => 'Fixed Request #66574i (Allow multiple paths in php_ini_scanned_path). (Remi)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #45528 (Allow the DateTimeZone constructor to accept timezones per offset too).', + 'raw' => 'Fixed bug #45528 (Allow the DateTimeZone constructor to accept timezones per offset too). (Derick)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Bug #66731 (file: infinite recursion) (CVE-2014-1943).', + 'raw' => 'Bug #66731 (file: infinite recursion) (CVE-2014-1943). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66820 (out-of-bounds memory access in fileinfo) (CVE-2014-2270).', + 'raw' => 'Fixed bug #66820 (out-of-bounds memory access in fileinfo) (CVE-2014-2270). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed Bug #66815 (imagecrop(): insufficient fix for NULL defer CVE-2013-7327).', + 'raw' => 'Fixed Bug #66815 (imagecrop(): insufficient fix for NULL defer CVE-2013-7327). (Tomas Hoger, Remi)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65753 (JsonSerializeable couldn\'t implement on module extension)', + 'raw' => 'Fixed bug #65753 (JsonSerializeable couldn\'t implement on module extension) (chobieeee@php.net)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Implemented ldap_modify_batch (https://wiki.php.net/rfc/ldap_modify_batch).', + 'raw' => 'Implemented ldap_modify_batch (https://wiki.php.net/rfc/ldap_modify_batch). (Ondřej Hošek)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66501 (Add EC key support to php_openssl_is_private_key).', + 'raw' => 'Fixed bug #66501 (Add EC key support to php_openssl_is_private_key). (Mark Zedwood)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgraded to PCRE 8.34.', + 'raw' => 'Upgraded to PCRE 8.34. (Anatol)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added warning for dangerous client encoding and remove possible injections for pg_insert()/pg_update()/pg_delete()/pg_select().', + 'raw' => 'Added warning for dangerous client encoding and remove possible injections for pg_insert()/pg_update()/pg_delete()/pg_select(). (Yasuo)', + ), + ), + ), + ), + '5.5.9' => + array ( + 'date' => '06 Feb 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66509 (copy() arginfo has changed starting from 5.4).', + 'raw' => 'Fixed bug #66509 (copy() arginfo has changed starting from 5.4). (willfitch)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop()).', + 'raw' => 'Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop()). (Laruence, Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66474 (Optimizer bug in constant string to boolean conversion).', + 'raw' => 'Fixed bug #66474 (Optimizer bug in constant string to boolean conversion). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66461 (PHP crashes if opcache.interned_strings_buffer=0).', + 'raw' => 'Fixed bug #66461 (PHP crashes if opcache.interned_strings_buffer=0). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66298 (ext/opcache/Optimizer/zend_optimizer.c has dos-style ^M as lineend).', + 'raw' => 'Fixed bug #66298 (ext/opcache/Optimizer/zend_optimizer.c has dos-style ^M as lineend). (Laruence)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62479 (PDO-psql cannot connect if password contains spaces)', + 'raw' => 'Fixed bug #62479 (PDO-psql cannot connect if password contains spaces) (willfitch, iliaa)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #66412 (readline_clear_history() with libedit causes segfault after #65714).', + 'raw' => 'Fixed Bug #66412 (readline_clear_history() with libedit causes segfault after #65714). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66469 (Session module is sending multiple set-cookie headers when session.use_strict_mode=1)', + 'raw' => 'Fixed bug #66469 (Session module is sending multiple set-cookie headers when session.use_strict_mode=1) (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66481 (Segfaults on session_name()).', + 'raw' => 'Fixed bug #66481 (Segfaults on session_name()). (cmcdermottroe at engineyard dot com, Yasuo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66395 (basename function doesn\'t remove drive letter).', + 'raw' => 'Fixed bug #66395 (basename function doesn\'t remove drive letter). (Anatol)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66381 (__ss_family was changed on AIX 5.3).', + 'raw' => 'Fixed bug #66381 (__ss_family was changed on AIX 5.3). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66009 (Failed compilation of PHP extension with C++ std library using VS 2012).', + 'raw' => 'Fixed bug #66009 (Failed compilation of PHP extension with C++ std library using VS 2012). (Anatol)', + ), + ), + ), + ), + '5.5.8' => + array ( + 'date' => '09 Jan 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Disallowed JMP into a finally block.', + 'raw' => 'Disallowed JMP into a finally block. (Laruence)', + ), + 1 => + array ( + 'message' => 'Added validation of class names in the autoload process.', + 'raw' => 'Added validation of class names in the autoload process. (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed invalid C code in zend_strtod.c.', + 'raw' => 'Fixed invalid C code in zend_strtod.c. (Lior Kaplan)', + ), + 3 => + array ( + 'message' => 'Fixed ZEND_MM_MEM_TYPE=mmap_zero.', + 'raw' => 'Fixed ZEND_MM_MEM_TYPE=mmap_zero. (Dmitry, Tony)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66041 (list() fails to unpack yielded ArrayAccess object).', + 'raw' => 'Fixed bug #66041 (list() fails to unpack yielded ArrayAccess object). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #65764 (generators/throw_rethrow FAIL with ZEND_COMPILE_EXTENDED_INFO).', + 'raw' => 'Fixed bug #65764 (generators/throw_rethrow FAIL with ZEND_COMPILE_EXTENDED_INFO). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61645 (fopen and O_NONBLOCK).', + 'raw' => 'Fixed bug #61645 (fopen and O_NONBLOCK). (Mike)', + ), + 7 => + array ( + 'message' => 'Fixed bug #66218 (zend_register_functions breaks reflection).', + 'raw' => 'Fixed bug #66218 (zend_register_functions breaks reflection). (Remi)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval) (CVE-2013-6712).', + 'raw' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval) (CVE-2013-6712). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65768 (DateTimeImmutable::diff does not work).', + 'raw' => 'Fixed bug #65768 (DateTimeImmutable::diff does not work). (Nikita Nefedov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65196 (Passing DOMDocumentFragment to DOMDocument::saveHTML() Produces invalid Markup).', + 'raw' => 'Fixed bug #65196 (Passing DOMDocumentFragment to DOMDocument::saveHTML() Produces invalid Markup). (Mike)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65873 (Integer overflow in exif_read_data()).', + 'raw' => 'Fixed bug #65873 (Integer overflow in exif_read_data()). (Stas)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66229 (128.0.0.0/16 isn\'t reserved any longer).', + 'raw' => 'Fixed bug #66229 (128.0.0.0/16 isn\'t reserved any longer). (Adam)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64405 (Use freetype-config for determining freetype2 dir(s)).', + 'raw' => 'Fixed bug #64405 (Use freetype-config for determining freetype2 dir(s)). (Adam)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66311 (Stack smashing protection kills PDO/ODBC queries).', + 'raw' => 'Fixed bug #66311 (Stack smashing protection kills PDO/ODBC queries). (michael at orlitzky dot com)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65486 (mysqli_poll() is broken on win x64).', + 'raw' => 'Fixed bug #65486 (mysqli_poll() is broken on win x64). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed revalidate_path=1 behavior to avoid caching of symlinks values.', + 'raw' => 'Fixed revalidate_path=1 behavior to avoid caching of symlinks values. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed Issue #140: "opcache.enable_file_override" doesn\'t respect "opcache.revalidate_freq". .', + 'raw' => 'Fixed Issue #140: "opcache.enable_file_override" doesn\'t respect "opcache.revalidate_freq". (Dmitry).', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed SNMP_ERR_TOOBIG handling for bulk walk operations.', + 'raw' => 'Fixed SNMP_ERR_TOOBIG handling for bulk walk operations. (Boris Lytochkin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66112 (Use after free condition in SOAP extension).', + 'raw' => 'Fixed bug #66112 (Use after free condition in SOAP extension). (martin dot koegler at brz dot gv dot at)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65923 (ext/socket assumes AI_V4MAPPED is defined).', + 'raw' => 'Fixed bug #65923 (ext/socket assumes AI_V4MAPPED is defined). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #49634 (Segfault throwing an exception in a XSL registered function).', + 'raw' => 'Fixed bug #49634 (Segfault throwing an exception in a XSL registered function). (Mike)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #66321 (ZipArchive::open() ze_obj->filename_len not real).', + 'raw' => 'Fixed Bug #66321 (ZipArchive::open() ze_obj->filename_len not real). (Remi)', + ), + ), + ), + ), + '5.5.7' => + array ( + 'date' => '12 Dec 2013', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Added some MIME types to the CLI web server', + 'raw' => 'Added some MIME types to the CLI web server (Chris Jones)', + ), + 1 => + array ( + 'message' => 'Implemented FR #65917 (getallheaders() is not supported by the built-in web server) - also implements apache_response_headers()', + 'raw' => 'Implemented FR #65917 (getallheaders() is not supported by the built-in web server) - also implements apache_response_headers() (Andrea Faulds)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66094 (unregister_tick_function tries to cast a Closure to a string).', + 'raw' => 'Fixed bug #66094 (unregister_tick_function tries to cast a Closure to a string). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65969 (Chain assignment with T_LIST failure).', + 'raw' => 'Fixed bug #65969 (Chain assignment with T_LIST failure). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66176 (Invalid constant substitution).', + 'raw' => 'Fixed bug #66176 (Invalid constant substitution). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65915 (Inconsistent results with require return value).', + 'raw' => 'Fixed bug #65915 (Inconsistent results with require return value). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65559 (Opcache: cache not cleared if changes occur while running).', + 'raw' => 'Fixed bug #65559 (Opcache: cache not cleared if changes occur while running). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed Bug #65714 (PHP cli forces the tty to cooked mode).', + 'raw' => 'Fixed Bug #65714 (PHP cli forces the tty to cooked mode). (Remi)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420). .', + 'raw' => 'Fixed memory corruption in openssl_x509_parse() (CVE-2013-6420). (Stefan Esser).', + ), + ), + ), + ), + '5.5.6' => + array ( + 'date' => '14 Nov 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65947 (basename is no more working after fgetcsv in certain situation).', + 'raw' => 'Fixed bug #65947 (basename is no more working after fgetcsv in certain situation). (Laruence)', + ), + 1 => + array ( + 'message' => 'Improved performance of array_merge() and func_get_args() by eliminating useless copying.', + 'raw' => 'Improved performance of array_merge() and func_get_args() by eliminating useless copying. (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65939 (Space before ";" breaks php.ini parsing).', + 'raw' => 'Fixed bug #65939 (Space before ";" breaks php.ini parsing). (brainstorm at nopcode dot org)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65911 (scope resolution operator - strange behavior with $this).', + 'raw' => 'Fixed bug #65911 (scope resolution operator - strange behavior with $this). (Bob Weinand)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65936 (dangling context pointer causes crash).', + 'raw' => 'Fixed bug #65936 (dangling context pointer causes crash). (Tony)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Changed default listen() backlog to 65535.', + 'raw' => 'Changed default listen() backlog to 65535. (Tony)', + ), + 1 => + array ( + 'message' => 'Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly").', + 'raw' => 'Fixed whitespace part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly"). (Andrea Faulds)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66043 (Segfault calling bind_param() on mysqli).', + 'raw' => 'Fixed bug #66043 (Segfault calling bind_param() on mysqli). (Laruence)', + ), + 1 => + array ( + 'message' => 'Increased limit for opcache.max_accelerated_files to 1,000,000.', + 'raw' => 'Increased limit for opcache.max_accelerated_files to 1,000,000. (Chris)', + ), + 2 => + array ( + 'message' => 'Fixed issue #115 (path issue when using phar).', + 'raw' => 'Fixed issue #115 (path issue when using phar). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed issue #149 (Phar mount points not working with OPcache enabled).', + 'raw' => 'Fixed issue #149 (Phar mount points not working with OPcache enabled). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65950 (Field name truncation if the field name is bigger than 32 characters).', + 'raw' => 'Fixed bug #65950 (Field name truncation if the field name is bigger than 32 characters). (patch submitted by: michael dot y at zend dot com, Yasuo)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66033 (Segmentation Fault when constructor of PDO statement throws an exception).', + 'raw' => 'Fixed bug #66033 (Segmentation Fault when constructor of PDO statement throws an exception). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug 65946', + 'raw' => 'Fixed bug 65946 (sql_parser permanently converts values bound to strings)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64760 (var_export() does not use full precision for floating-point numbers)', + 'raw' => 'Fixed bug #64760 (var_export() does not use full precision for floating-point numbers) (Yasuo)', + ), + ), + ), + ), + '5.5.5' => + array ( + 'date' => '17 Oct 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64979 (Wrong behavior of static variables in closure generators).', + 'raw' => 'Fixed bug #64979 (Wrong behavior of static variables in closure generators). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65322 (compile time errors won\'t trigger auto loading).', + 'raw' => 'Fixed bug #65322 (compile time errors won\'t trigger auto loading). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65821 (By-ref foreach on property access of string offset segfaults).', + 'raw' => 'Fixed bug #65821 (By-ref foreach on property access of string offset segfaults). (Nikita)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65633 (built-in server treat some http headers as case-sensitive).', + 'raw' => 'Fixed bug #65633 (built-in server treat some http headers as case-sensitive). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65818 (Segfault with built-in webserver and chunked transfer encoding).', + 'raw' => 'Fixed bug #65818 (Segfault with built-in webserver and chunked transfer encoding). (Felipe)', + ), + 2 => + array ( + 'message' => 'Added application/pdf to PHP CLI Web Server mime types', + 'raw' => 'Added application/pdf to PHP CLI Web Server mime types (Chris Jones)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64157 (DateTime::createFromFormat() reports confusing error message).', + 'raw' => 'Fixed bug #64157 (DateTime::createFromFormat() reports confusing error message). (Boro Sitnikovski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65502 (DateTimeImmutable::createFromFormat returns DateTime).', + 'raw' => 'Fixed bug #65502 (DateTimeImmutable::createFromFormat returns DateTime). (Boro Sitnikovski)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65548 (Comparison for DateTimeImmutable doesn\'t work).', + 'raw' => 'Fixed bug #65548 (Comparison for DateTimeImmutable doesn\'t work). (Boro Sitnikovski)', + ), + ), + 'dba extension' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65708 (dba functions cast $key param to string in-place, bypassing copy on write).', + 'raw' => 'Fixed bug #65708 (dba functions cast $key param to string in-place, bypassing copy on write). (Adam)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Add RFC 6598 IPs to reserved addresses.', + 'raw' => 'Add RFC 6598 IPs to reserved addresses. (Sebastian Nohn)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64441 (FILTER_VALIDATE_URL rejects fully qualified domain names).', + 'raw' => 'Fixed bug #64441 (FILTER_VALIDATE_URL rejects fully qualified domain names). (Syra)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65667 (ftp_nb_continue produces segfault).', + 'raw' => 'Fixed bug #65667 (ftp_nb_continue produces segfault). (Philip Hofstetter)', + ), + 1 => + array ( + 'message' => 'Ensure that the defined interpolation method is used with the generic scaling methods.', + 'raw' => 'Ensure that the defined interpolation method is used with the generic scaling methods. (Pierre)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65721 (configure script broken in 5.5.4 and 5.4.20 when enabling imap).', + 'raw' => 'Fixed bug #65721 (configure script broken in 5.5.4 and 5.4.20 when enabling imap). (ryotakatsuki at gmail dot com)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added support for GNU Hurd.', + 'raw' => 'Added support for GNU Hurd. (Svante Signell)', + ), + 1 => + array ( + 'message' => 'Added function opcache_compile_file() to load PHP scripts into cache without execution.', + 'raw' => 'Added function opcache_compile_file() to load PHP scripts into cache without execution. (Julien)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65845 (Error when Zend Opcache Optimizer is fully enabled).', + 'raw' => 'Fixed bug #65845 (Error when Zend Opcache Optimizer is fully enabled). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65665 (Exception not properly caught when opcache enabled).', + 'raw' => 'Fixed bug #65665 (Exception not properly caught when opcache enabled). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var).', + 'raw' => 'Fixed bug #65510 (5.5.2 crashes in _get_zval_ptr_ptr_var). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed issue #135 (segfault in interned strings if initial memory is too low).', + 'raw' => 'Fixed issue #135 (segfault in interned strings if initial memory is too low). (Julien)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65808 (the socket_connect() won\'t work with IPv6 address).', + 'raw' => 'Fixed bug #65808 (the socket_connect() won\'t work with IPv6 address). (Mike)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fix bug #64782 (SplFileObject constructor make $context optional / give it a default value).', + 'raw' => 'Fix bug #64782 (SplFileObject constructor make $context optional / give it a default value). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61548 (content-type must appear at the end of headers for 201 Location to work in http).', + 'raw' => 'Fixed bug #61548 (content-type must appear at the end of headers for 201 Location to work in http). (Mike)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51936 (Crash with clone XMLReader).', + 'raw' => 'Fixed bug #51936 (Crash with clone XMLReader). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64230 (XMLReader does not suppress errors).', + 'raw' => 'Fixed bug #64230 (XMLReader does not suppress errors). (Mike)', + ), + ), + 'build system' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51076 (race condition in shtool\'s mkdir -p implementation).', + 'raw' => 'Fixed bug #51076 (race condition in shtool\'s mkdir -p implementation). (Mike, Raphael Geissert)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62396 (\'make test\' crashes starting with 5.3.14 (missing gzencode())).', + 'raw' => 'Fixed bug #62396 (\'make test\' crashes starting with 5.3.14 (missing gzencode())). (Mike)', + ), + ), + ), + ), + '5.5.4' => + array ( + 'date' => '19 Sep 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60598 (cli/apache sapi segfault on objects manipulation).', + 'raw' => 'Fixed bug #60598 (cli/apache sapi segfault on objects manipulation). (Laruence)', + ), + 1 => + array ( + 'message' => 'Improved fputcsv() to allow specifying escape character.', + 'raw' => 'Improved fputcsv() to allow specifying escape character.', + ), + 2 => + array ( + 'message' => 'Fixed bug #65490 (Duplicate calls to get lineno & filename for DTRACE_FUNCTION_*).', + 'raw' => 'Fixed bug #65490 (Duplicate calls to get lineno & filename for DTRACE_FUNCTION_*). (Chris Jones)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65483 (quoted-printable encode stream filter incorrectly encoding spaces).', + 'raw' => 'Fixed bug #65483 (quoted-printable encode stream filter incorrectly encoding spaces). (Michael M Slusarz)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65481 (shutdown segfault due to serialize)', + 'raw' => 'Fixed bug #65481 (shutdown segfault due to serialize) (Mike)', + ), + 5 => + array ( + 'message' => 'Fixed bug #65470 (Segmentation fault in zend_error() with --enable-dtrace).', + 'raw' => 'Fixed bug #65470 (Segmentation fault in zend_error() with --enable-dtrace). (Chris Jones, Kris Van Hees)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65225 (PHP_BINARY incorrectly set).', + 'raw' => 'Fixed bug #65225 (PHP_BINARY incorrectly set). (Patrick Allaert)', + ), + 7 => + array ( + 'message' => 'Fixed bug #62692 (PHP fails to build with DTrace).', + 'raw' => 'Fixed bug #62692 (PHP fails to build with DTrace). (Chris Jones, Kris Van Hees)', + ), + 8 => + array ( + 'message' => 'Fixed bug #61759 (class_alias() should accept classes with leading backslashes).', + 'raw' => 'Fixed bug #61759 (class_alias() should accept classes with leading backslashes). (Julien)', + ), + 9 => + array ( + 'message' => 'Fixed bug #46311 (Pointer aliasing issue results in miscompile on gcc4.4).', + 'raw' => 'Fixed bug #46311 (Pointer aliasing issue results in miscompile on gcc4.4). (Nikita Popov)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65458 (curl memory leak).', + 'raw' => 'Fixed bug #65458 (curl memory leak). (Adam)', + ), + ), + 'datetime' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65554 (createFromFormat broken when weekday name is followed by some delimiters). .', + 'raw' => 'Fixed bug #65554 (createFromFormat broken when weekday name is followed by some delimiters). (Valentin Logvinskiy, Stas).', + ), + 1 => + array ( + 'message' => 'Fixed bug #65564 (stack-buffer-overflow in DateTimeZone stuff caught by AddressSanitizer). .', + 'raw' => 'Fixed bug #65564 (stack-buffer-overflow in DateTimeZone stuff caught by AddressSanitizer). (Remi).', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65561 (Zend Opcache on Solaris 11 x86 needs ZEND_MM_ALIGNMENT=4).', + 'raw' => 'Fixed bug #65561 (Zend Opcache on Solaris 11 x86 needs ZEND_MM_ALIGNMENT=4). (Terry Ellison)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64802 (openssl_x509_parse fails to parse subject properly in some cases).', + 'raw' => 'Fixed bug #64802 (openssl_x509_parse fails to parse subject properly in some cases). (Mark Jones)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64953 (Postgres prepared statement positional parameter casting).', + 'raw' => 'Fixed bug #64953 (Postgres prepared statement positional parameter casting). (Mike)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65475 (Session ID is not initialized properly when strict session is enabled).', + 'raw' => 'Fixed bug #65475 (Session ID is not initialized properly when strict session is enabled). (Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #51127/#65359 Request #25630/#43980/#54383 (Added php_serialize session serialize handler that uses plain serialize()).', + 'raw' => 'Fixed bug #51127/#65359 Request #25630/#43980/#54383 (Added php_serialize session serialize handler that uses plain serialize()). (Yasuo)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix issue with return types of password API helper functions. Found via static analysis by cjones.', + 'raw' => 'Fix issue with return types of password API helper functions. Found via static analysis by cjones. (Anthony Ferrara)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65391 (Unable to send vary header user-agent when ob_start(\'ob_gzhandler\') is called)', + 'raw' => 'Fixed bug #65391 (Unable to send vary header user-agent when ob_start(\'ob_gzhandler\') is called) (Mike)', + ), + ), + ), + ), + '5.5.3' => + array ( + 'date' => '22 Aug 2013', + 'modules' => + array ( + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed UMR in fix for CVE-2013-4248.', + 'raw' => 'Fixed UMR in fix for CVE-2013-4248.', + ), + ), + ), + ), + '5.5.2' => + array ( + 'date' => '15 Aug 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference fails).', + 'raw' => 'Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference fails). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value). .', + 'raw' => 'Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value). (Andrey avp200681 gmail com).', + ), + 2 => + array ( + 'message' => 'Fixed bug #65304 (Use of max int in array_sum).', + 'raw' => 'Fixed bug #65304 (Use of max int in array_sum). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very limited case).', + 'raw' => 'Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very limited case). (Arpad)', + ), + 4 => + array ( + 'message' => 'Fixed bug #62691 (solaris sed has no -i switch).', + 'raw' => 'Fixed bug #62691 (solaris sed has no -i switch). (Chris Jones)', + ), + 5 => + array ( + 'message' => 'Fixed bug #61345 (CGI mode - make install don\'t work).', + 'raw' => 'Fixed bug #61345 (CGI mode - make install don\'t work). (Michael Heimpold)', + ), + 6 => + array ( + 'message' => 'Fixed bug #61268 (--enable-dtrace leads make to clobber Zend/zend_dtrace.d)', + 'raw' => 'Fixed bug #61268 (--enable-dtrace leads make to clobber Zend/zend_dtrace.d) (Chris Jones)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Added flags option to DOMDocument::schemaValidate() and DOMDocument::schemaValidateSource(). Added LIBXML_SCHEMA_CREATE flag.', + 'raw' => 'Added flags option to DOMDocument::schemaValidate() and DOMDocument::schemaValidateSource(). Added LIBXML_SCHEMA_CREATE flag. (Chris Wright)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added opcache.restrict_api configuration directive that may limit usage of OPcache API functions only to particular script(s).', + 'raw' => 'Added opcache.restrict_api configuration directive that may limit usage of OPcache API functions only to particular script(s). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added support for glob symbols in blacklist entries (?, *, **).', + 'raw' => 'Added support for glob symbols in blacklist entries (?, *, **). (Terry Elison, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65338 (Enabling both php_opcache and php_wincache AVs on shutdown).', + 'raw' => 'Fixed bug #65338 (Enabling both php_opcache and php_wincache AVs on shutdown). (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed handling null bytes in subjectAltName (CVE-2013-4248).', + 'raw' => 'Fixed handling null bytes in subjectAltName (CVE-2013-4248). (Christian Heimes)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65299 (pdo mysql parsing errors).', + 'raw' => 'Fixed bug #65299 (pdo mysql parsing errors). (Johannes)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update() /pg_delete()/pg_insert()).', + 'raw' => 'Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update() /pg_delete()/pg_insert()). (Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65336 (pg_escape_literal/identifier() scilently returns false).', + 'raw' => 'Fixed bug #65336 (pg_escape_literal/identifier() scilently returns false). (Yasuo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for some specific contents).', + 'raw' => 'Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for some specific contents). (Stas)', + ), + ), + 'sessions' => + array ( + 0 => + array ( + 'message' => 'Implemented strict sessions RFC (https://wiki.php.net/rfc/strict_sessions) which protects against session fixation attacks and session collisions. (CVE-2011-4718).', + 'raw' => 'Implemented strict sessions RFC (https://wiki.php.net/rfc/strict_sessions) which protects against session fixation attacks and session collisions. (CVE-2011-4718). (Yasuo Ohgaki)', + ), + 1 => + array ( + 'message' => 'Fixed possible buffer overflow under Windows. Note: Not a security fix.', + 'raw' => 'Fixed possible buffer overflow under Windows. Note: Not a security fix. (Yasuo)', + ), + 2 => + array ( + 'message' => 'Changed session.auto_start to PHP_INI_PERDIR.', + 'raw' => 'Changed session.auto_start to PHP_INI_PERDIR. (Yasuo)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65018 (SoapHeader problems with SoapServer).', + 'raw' => 'Fixed bug #65018 (SoapHeader problems with SoapServer). (Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65328 (Segfault when getting SplStack object Value).', + 'raw' => 'Fixed bug #65328 (Segfault when getting SplStack object Value). (Laruence)', + ), + 1 => + array ( + 'message' => 'Added RecursiveTreeIterator setPostfix and getPostifx methods.', + 'raw' => 'Added RecursiveTreeIterator setPostfix and getPostifx methods. (Joshua Thijssen)', + ), + 2 => + array ( + 'message' => 'Fixed bug #61697 (spl_autoload_functions returns lambda functions incorrectly).', + 'raw' => 'Fixed bug #61697 (spl_autoload_functions returns lambda functions incorrectly). (Laruence)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65268 (select() implementation uses outdated tick API).', + 'raw' => 'Fixed bug #65268 (select() implementation uses outdated tick API). (Anatol)', + ), + ), + ), + ), + '5.5.1' => + array ( + 'date' => '18 Jul 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65254 (Exception not catchable when exception thrown in autoload with a namespace).', + 'raw' => 'Fixed bug #65254 (Exception not catchable when exception thrown in autoload with a namespace). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65088 (Generated configure script is malformed on OpenBSD).', + 'raw' => 'Fixed bug #65088 (Generated configure script is malformed on OpenBSD). (Adam)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65108 (is_callable() triggers Fatal Error).', + 'raw' => 'Fixed bug #65108 (is_callable() triggers Fatal Error). (David Soria Parra, Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65035 (yield / exit segfault).', + 'raw' => 'Fixed bug #65035 (yield / exit segfault). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65161 (Generator + autoload + syntax error = segfault).', + 'raw' => 'Fixed bug #65161 (Generator + autoload + syntax error = segfault). (Nikita)', + ), + 5 => + array ( + 'message' => 'hex2bin() raises E_WARNING for invalid hex string.', + 'raw' => 'hex2bin() raises E_WARNING for invalid hex string. (Yasuo)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65226 (chroot() does not get enabled).', + 'raw' => 'Fixed bug #65226 (chroot() does not get enabled). (Anatol)', + ), + 7 => + array ( + 'message' => 'Fixed bug #64827 (Segfault in zval_mark_grey (zend_gc.c)).', + 'raw' => 'Fixed bug #64827 (Segfault in zval_mark_grey (zend_gc.c)). (Laruence)', + ), + 8 => + array ( + 'message' => 'OPcache must be compatible with LiteSpeed SAPI', + 'raw' => 'OPcache must be compatible with LiteSpeed SAPI (Dmitry)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #65143 (Missing php-cgi man page).', + 'raw' => 'Fixed Bug #65143 (Missing php-cgi man page). (Remi)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65066 (Cli server not responsive when responding with 422 http status code).', + 'raw' => 'Fixed bug #65066 (Cli server not responsive when responding with 422 http status code). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed fug #65184 (strftime() returns insufficient-length string under multibyte locales).', + 'raw' => 'Fixed fug #65184 (strftime() returns insufficient-length string under multibyte locales). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed #65070 (bgcolor does not use the same format as the input image with imagerotate).', + 'raw' => 'Fixed #65070 (bgcolor does not use the same format as the input image with imagerotate). (Pierre)', + ), + 3 => + array ( + 'message' => 'Fixed Bug #65060 (imagecreatefrom... crashes with user streams).', + 'raw' => 'Fixed Bug #65060 (imagecreatefrom... crashes with user streams). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed Bug #65084 (imagecreatefromjpeg fails with URL).', + 'raw' => 'Fixed Bug #65084 (imagecreatefromjpeg fails with URL). (Remi)', + ), + 5 => + array ( + 'message' => 'Fix gdImageCreateFromWebpCtx and use same logic to load WebP image that other formats.', + 'raw' => 'Fix gdImageCreateFromWebpCtx and use same logic to load WebP image that other formats. (Remi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Add IntlCalendar::setMinimalDaysInFirstWeek()/ intlcal_set_minimal_days_in_first_week().', + 'raw' => 'Add IntlCalendar::setMinimalDaysInFirstWeek()/ intlcal_set_minimal_days_in_first_week().', + ), + 1 => + array ( + 'message' => 'Fixed trailing space in name of constant IntlCalendar::FIELD_FIELD_COUNT.', + 'raw' => 'Fixed trailing space in name of constant IntlCalendar::FIELD_FIELD_COUNT.', + ), + 2 => + array ( + 'message' => 'Fixed bug #62759 (Buggy grapheme_substr() on edge case).', + 'raw' => 'Fixed bug #62759 (Buggy grapheme_substr() on edge case). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions).', + 'raw' => 'Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions). (Stas)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Bump PECL package info version check to allow PECL installs with PHP 5.5+', + 'raw' => 'Bump PECL package info version check to allow PECL installs with PHP 5.5+', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Allowed PDO_OCI to compile with Oracle Database 12c client libraries.', + 'raw' => 'Allowed PDO_OCI to compile with Oracle Database 12c client libraries. (Chris Jones)', + ), + 1 => + array ( + 'message' => 'pg_unescape_bytea() raises E_WARNING for invalid inputs.', + 'raw' => 'pg_unescape_bytea() raises E_WARNING for invalid inputs. (Yasuo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #65142 (Missing phar man page).', + 'raw' => 'Fixed Bug #65142 (Missing phar man page). (Remi)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Added optional create_sid() argument to session_set_save_handler(), SessionHandler and new SessionIdInterface.', + 'raw' => 'Added optional create_sid() argument to session_set_save_handler(), SessionHandler and new SessionIdInterface. (Leigh, Arpad)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #63472 (Setting SO_BINDTODEVICE with socket_set_option).', + 'raw' => 'Implemented FR #63472 (Setting SO_BINDTODEVICE with socket_set_option). (Damjan Cvetko)', + ), + 1 => + array ( + 'message' => 'Allowed specifying paths in the abstract namespace for the functions socket_bind(), socket_connect() and socket_sendmsg().', + 'raw' => 'Allowed specifying paths in the abstract namespace for the functions socket_bind(), socket_connect() and socket_sendmsg(). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65260 (sendmsg() ancillary data construction for SCM_RIGHTS is faulty).', + 'raw' => 'Fixed bug #65260 (sendmsg() ancillary data construction for SCM_RIGHTS is faulty). (Gustavo)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65136 (RecursiveDirectoryIterator segfault).', + 'raw' => 'Fixed bug #65136 (RecursiveDirectoryIterator segfault). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61828 (Memleak when calling Directory(Recursive)Iterator /Spl(Temp)FileObject ctor twice).', + 'raw' => 'Fixed bug #61828 (Memleak when calling Directory(Recursive)Iterator /Spl(Temp)FileObject ctor twice). (Laruence)', + ), + ), + 'cgi/fastcgi sapi' => + array ( + 0 => + array ( + 'message' => 'Added PHP_FCGI_BACKLOG, overrides the default listen backlog.', + 'raw' => 'Added PHP_FCGI_BACKLOG, overrides the default listen backlog. (Arnaud Le Blanc)', + ), + ), + ), + ), + '5.5.0' => + array ( + 'date' => '20 Jun 2013', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added Zend Opcache extension and enable building it by default. More details here: https://wiki.php.net/rfc/optimizerplus.', + 'raw' => 'Added Zend Opcache extension and enable building it by default. More details here: https://wiki.php.net/rfc/optimizerplus. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Added generators and coroutines (https://wiki.php.net/rfc/generators).', + 'raw' => 'Added generators and coroutines (https://wiki.php.net/rfc/generators). (Nikita Popov)', + ), + 2 => + array ( + 'message' => 'Added "finally" keyword (https://wiki.php.net/rfc/finally).', + 'raw' => 'Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence)', + ), + 3 => + array ( + 'message' => 'Added simplified password hashing API (https://wiki.php.net/rfc/password_hash).', + 'raw' => 'Added simplified password hashing API (https://wiki.php.net/rfc/password_hash). (Anthony Ferrara)', + ), + 4 => + array ( + 'message' => 'Added support for constant array/string dereferencing.', + 'raw' => 'Added support for constant array/string dereferencing. (Laruence)', + ), + 5 => + array ( + 'message' => 'Added array_column function which returns a column in a multidimensional array. https://wiki.php.net/rfc/array_column.', + 'raw' => 'Added array_column function which returns a column in a multidimensional array. https://wiki.php.net/rfc/array_column. (Ben Ramsey)', + ), + 6 => + array ( + 'message' => 'Added boolval().', + 'raw' => 'Added boolval(). (Jille Timmermans)', + ), + 7 => + array ( + 'message' => 'Added "Z" option to pack/unpack.', + 'raw' => 'Added "Z" option to pack/unpack. (Gustavo)', + ), + 8 => + array ( + 'message' => 'Added Generator::throw() method.', + 'raw' => 'Added Generator::throw() method. (Nikita Popov)', + ), + 9 => + array ( + 'message' => 'Added Class Name Resolution As Scalar Via "class" Keyword.', + 'raw' => 'Added Class Name Resolution As Scalar Via "class" Keyword. (Ralph Schindler, Nikita Popov, Lars)', + ), + 10 => + array ( + 'message' => 'Added optional second argument for assert() to specify custom message. Patch by Lonny Kapelushnik (lonny@lonnylot.com).', + 'raw' => 'Added optional second argument for assert() to specify custom message. Patch by Lonny Kapelushnik (lonny@lonnylot.com). (Lars)', + ), + 11 => + array ( + 'message' => 'Added support for using empty() on the result of function calls and other expressions (https://wiki.php.net/rfc/empty_isset_exprs).', + 'raw' => 'Added support for using empty() on the result of function calls and other expressions (https://wiki.php.net/rfc/empty_isset_exprs). (Nikita Popov)', + ), + 12 => + array ( + 'message' => 'Added support for non-scalar Iterator keys in foreach (https://wiki.php.net/rfc/foreach-non-scalar-keys).', + 'raw' => 'Added support for non-scalar Iterator keys in foreach (https://wiki.php.net/rfc/foreach-non-scalar-keys). (Nikita Popov)', + ), + 13 => + array ( + 'message' => 'Added support for list in foreach (https://wiki.php.net/rfc/foreachlist).', + 'raw' => 'Added support for list in foreach (https://wiki.php.net/rfc/foreachlist). (Laruence)', + ), + 14 => + array ( + 'message' => 'Added support for changing the process\'s title in CLI/CLI-Server SAPIs. The implementation is more robust that the proctitle PECL module. More details here: https://wiki.php.net/rfc/cli_process_title.', + 'raw' => 'Added support for changing the process\'s title in CLI/CLI-Server SAPIs. The implementation is more robust that the proctitle PECL module. More details here: https://wiki.php.net/rfc/cli_process_title. (Keyur)', + ), + 15 => + array ( + 'message' => 'Added ARMv7/v8 versions of various Zend arithmetic functions that are implemented using inline assembler', + 'raw' => 'Added ARMv7/v8 versions of various Zend arithmetic functions that are implemented using inline assembler (Ard Biesheuvel)', + ), + 16 => + array ( + 'message' => 'Added systemtap support by enabling systemtap compatible dtrace probes on linux.', + 'raw' => 'Added systemtap support by enabling systemtap compatible dtrace probes on linux. (David Soria Parra)', + ), + 17 => + array ( + 'message' => 'Optimized access to temporary and compiled VM variables. 8% less memory reads.', + 'raw' => 'Optimized access to temporary and compiled VM variables. 8% less memory reads. (Dmitry)', + ), + 18 => + array ( + 'message' => 'The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don\'t require checks for stack overflow any more.', + 'raw' => 'The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don\'t require checks for stack overflow any more. (Dmitry)', + ), + 19 => + array ( + 'message' => 'Improve set_exception_handler while doing reset.', + 'raw' => 'Improve set_exception_handler while doing reset. (Laruence)', + ), + 20 => + array ( + 'message' => 'Return previous handler when passing NULL to set_error_handler and set_exception_handler.', + 'raw' => 'Return previous handler when passing NULL to set_error_handler and set_exception_handler. (Nikita Popov)', + ), + 21 => + array ( + 'message' => 'Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), zend_logo_guid().', + 'raw' => 'Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), zend_logo_guid(). (Adnrew Faulds)', + ), + 22 => + array ( + 'message' => 'Drop Windows XP and 2003 support.', + 'raw' => 'Drop Windows XP and 2003 support. (Pierre)', + ), + 23 => + array ( + 'message' => 'Implemented FR #64175 (Added HTTP codes as of RFC 6585).', + 'raw' => 'Implemented FR #64175 (Added HTTP codes as of RFC 6585). (Jonh Wendell)', + ), + 24 => + array ( + 'message' => 'Implemented FR #60738 (Allow \'set_error_handler\' to handle NULL).', + 'raw' => 'Implemented FR #60738 (Allow \'set_error_handler\' to handle NULL). (Laruence, Nikita Popov)', + ), + 25 => + array ( + 'message' => 'Implemented FR #60524 (specify temp dir by php.ini). .', + 'raw' => 'Implemented FR #60524 (specify temp dir by php.ini). (ALeX Kazik).', + ), + 26 => + array ( + 'message' => 'Implemented FR #46487 (Dereferencing process-handles no longer waits on those processes).', + 'raw' => 'Implemented FR #46487 (Dereferencing process-handles no longer waits on those processes). (Jille Timmermans)', + ), + 27 => + array ( + 'message' => 'Fixed bug #65051 (count() off by one inside unset()).', + 'raw' => 'Fixed bug #65051 (count() off by one inside unset()). (Nikita)', + ), + 28 => + array ( + 'message' => 'Fixed bug #64988 (Class loading order affects E_STRICT warning).', + 'raw' => 'Fixed bug #64988 (Class loading order affects E_STRICT warning). (Laruence)', + ), + 29 => + array ( + 'message' => 'Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC).', + 'raw' => 'Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC). (Laruence)', + ), + 30 => + array ( + 'message' => 'Fixed bug #64960 (Segfault in gc_zval_possible_root).', + 'raw' => 'Fixed bug #64960 (Segfault in gc_zval_possible_root). (Laruence)', + ), + 31 => + array ( + 'message' => 'Fixed bug #64936 (doc comments picked up from previous scanner run).', + 'raw' => 'Fixed bug #64936 (doc comments picked up from previous scanner run). (Stas, Jonathan Oddy)', + ), + 32 => + array ( + 'message' => 'Fixed bug #64934 (Apache2 TS crash with get_browser()).', + 'raw' => 'Fixed bug #64934 (Apache2 TS crash with get_browser()). (Anatol)', + ), + 33 => + array ( + 'message' => 'Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110).', + 'raw' => 'Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110). (Stas)', + ), + 34 => + array ( + 'message' => 'Fixed bug #64853 (Use of no longer available ini directives causes crash on TS build).', + 'raw' => 'Fixed bug #64853 (Use of no longer available ini directives causes crash on TS build). (Anatol)', + ), + 35 => + array ( + 'message' => 'Fixed bug #64821 (Custom Exceptions crash when internal properties overridden).', + 'raw' => 'Fixed bug #64821 (Custom Exceptions crash when internal properties overridden). (Anatol)', + ), + 36 => + array ( + 'message' => 'Fixed bug #64720 (SegFault on zend_deactivate).', + 'raw' => 'Fixed bug #64720 (SegFault on zend_deactivate). (Dmitry)', + ), + 37 => + array ( + 'message' => 'Fixed bug #64677 .', + 'raw' => 'Fixed bug #64677 (execution operator `` stealing surrounding arguments).', + ), + 38 => + array ( + 'message' => 'Fixed bug #64660 (Segfault on memory exhaustion within function definition).', + 'raw' => 'Fixed bug #64660 (Segfault on memory exhaustion within function definition). (Stas, reported by Juha Kylmänen)', + ), + 39 => + array ( + 'message' => 'Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault).', + 'raw' => 'Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault). (Laruence)', + ), + 40 => + array ( + 'message' => 'Fixed bug #64565 (copy doesn\'t report failure on partial copy).', + 'raw' => 'Fixed bug #64565 (copy doesn\'t report failure on partial copy). (Remi)', + ), + 41 => + array ( + 'message' => 'Fixed bug #64555 (foreach no longer copies keys if they are interned).', + 'raw' => 'Fixed bug #64555 (foreach no longer copies keys if they are interned). (Nikita Popov)', + ), + 42 => + array ( + 'message' => 'Fixed bugs #47675 and #64577', + 'raw' => 'Fixed bugs #47675 and #64577 (fd leak on Solaris)', + ), + 43 => + array ( + 'message' => 'Fixed bug #64544 (Valgrind warnings after using putenv).', + 'raw' => 'Fixed bug #64544 (Valgrind warnings after using putenv). (Laruence)', + ), + 44 => + array ( + 'message' => 'Fixed bug #64515 (Memoryleak when using the same variablename 2times in function declaration).', + 'raw' => 'Fixed bug #64515 (Memoryleak when using the same variablename 2times in function declaration). (Laruence)', + ), + 45 => + array ( + 'message' => 'Fixed bug #64503 (Compilation fails with error: conflicting types for \'zendparse\').', + 'raw' => 'Fixed bug #64503 (Compilation fails with error: conflicting types for \'zendparse\'). (Laruence)', + ), + 46 => + array ( + 'message' => 'Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11).', + 'raw' => 'Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11). (Dmitry, Laruence)', + ), + 47 => + array ( + 'message' => 'Fixed bug #64523, allow XOR in php.ini.', + 'raw' => 'Fixed bug #64523, allow XOR in php.ini. (Dejan Marjanovic, Lars)', + ), + 48 => + array ( + 'message' => 'Fixed bug #64354 (Unserialize array of objects whose class can\'t be autoloaded fail).', + 'raw' => 'Fixed bug #64354 (Unserialize array of objects whose class can\'t be autoloaded fail). (Laruence)', + ), + 49 => + array ( + 'message' => 'Fixed bug #64370 (microtime(true) less than $_SERVER[\'REQUEST_TIME_FLOAT\']).', + 'raw' => 'Fixed bug #64370 (microtime(true) less than $_SERVER[\'REQUEST_TIME_FLOAT\']). (Anatol)', + ), + 50 => + array ( + 'message' => 'Fixed bug #64166 (quoted-printable-encode stream filter incorrectly discarding whitespace). (Michael M Slusarz)', + 'raw' => 'Fixed bug #64166 (quoted-printable-encode stream filter incorrectly discarding whitespace). (Michael M Slusarz) (Laruence)', + ), + 51 => + array ( + 'message' => 'Fixed bug #64142 (dval to lval different behavior on ppc64).', + 'raw' => 'Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi)', + ), + 52 => + array ( + 'message' => 'Fixed bug #64135 (Exceptions from set_error_handler are not always propagated).', + 'raw' => 'Fixed bug #64135 (Exceptions from set_error_handler are not always propagated). (Laruence)', + ), + 53 => + array ( + 'message' => 'Fixed bug #63980 (object members get trimmed by zero bytes).', + 'raw' => 'Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence)', + ), + 54 => + array ( + 'message' => 'Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc).', + 'raw' => 'Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick)', + ), + 55 => + array ( + 'message' => 'Fixed bug #63830 (Segfault on undefined function call in nested generator).', + 'raw' => 'Fixed bug #63830 (Segfault on undefined function call in nested generator). (Nikita Popov)', + ), + 56 => + array ( + 'message' => 'Fixed bug #63822 (Crash when using closures with ArrayAccess).', + 'raw' => 'Fixed bug #63822 (Crash when using closures with ArrayAccess). (Nikita Popov)', + ), + 57 => + array ( + 'message' => 'Fixed bug #61681 (Malformed grammar).', + 'raw' => 'Fixed bug #61681 (Malformed grammar). (Nikita Popov, Etienne, Laruence)', + ), + 58 => + array ( + 'message' => 'Fixed bug #61038 (unpack("a5", "str\\0\\0") does not work as expected).', + 'raw' => 'Fixed bug #61038 (unpack("a5", "str\\0\\0") does not work as expected). (srgoogleguy, Gustavo)', + ), + 59 => + array ( + 'message' => 'Fixed bug #61025 (__invoke() visibility not honored).', + 'raw' => 'Fixed bug #61025 (__invoke() visibility not honored). (Laruence)', + ), + 60 => + array ( + 'message' => 'Fixed bug #60833 (self, parent, static behave inconsistently case-sensitive).', + 'raw' => 'Fixed bug #60833 (self, parent, static behave inconsistently case-sensitive). (Stas, mario at include-once dot org)', + ), + 61 => + array ( + 'message' => 'Fixed Bug #52126: timestamp for mail.log', + 'raw' => 'Fixed Bug #52126: timestamp for mail.log (Martin Jansen, Lars)', + ), + 62 => + array ( + 'message' => 'Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice).', + 'raw' => 'Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice). (Stas)', + ), + 63 => + array ( + 'message' => 'Fixed Bug #23955: allow specifying Max-Age attribute in setcookie()', + 'raw' => 'Fixed Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars)', + ), + 64 => + array ( + 'message' => 'Fixed bug #18556 (Engine uses locale rules to handle class names).', + 'raw' => 'Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas)', + ), + 65 => + array ( + 'message' => 'Fix undefined behavior when converting double variables to integers. The double is now always rounded towards zero, the remainder of its division by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it\'s made signed assuming a two\'s complement representation.', + 'raw' => 'Fix undefined behavior when converting double variables to integers. The double is now always rounded towards zero, the remainder of its division by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it\'s made signed assuming a two\'s complement representation. (Gustavo)', + ), + 66 => + array ( + 'message' => 'Drop support for bison < 2.4 when building PHP from GIT source.', + 'raw' => 'Drop support for bison < 2.4 when building PHP from GIT source. (Laruence)', + ), + ), + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Enabled Apache 2.4 configure option for Windows', + 'raw' => 'Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64895 (Integer overflow in SndToJewish).', + 'raw' => 'Fixed bug #64895 (Integer overflow in SndToJewish). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar)', + 'raw' => 'Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar) (Stas, Eitan Mosenkis)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64128 (buit-in web server is broken on ppc64).', + 'raw' => 'Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Remove curl stream wrappers.', + 'raw' => 'Remove curl stream wrappers. (Pierrick)', + ), + 1 => + array ( + 'message' => 'Implemented FR #46439 - added CURLFile for safer file uploads.', + 'raw' => 'Implemented FR #46439 - added CURLFile for safer file uploads. (Stas)', + ), + 2 => + array ( + 'message' => 'Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND, CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS, CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE, CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE, CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING, CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT, CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME, CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE, CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM, CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ, CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT, CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING, CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL.', + 'raw' => 'Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND, CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS, CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE, CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE, CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING, CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT, CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME, CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE, CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM, CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ, CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT, CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING, CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL. (Pierrick)', + ), + 3 => + array ( + 'message' => 'Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror curl_pause, curl_reset, curl_share_close, curl_share_init, curl_share_setopt curl_strerror and curl_unescape.', + 'raw' => 'Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror curl_pause, curl_reset, curl_share_close, curl_share_init, curl_share_setopt curl_strerror and curl_unescape. (Pierrick)', + ), + 4 => + array ( + 'message' => 'Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL.', + 'raw' => 'Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick)', + ), + 5 => + array ( + 'message' => 'Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant still exists for backward compatibility but is doing nothing).', + 'raw' => 'Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant still exists for backward compatibility but is doing nothing). (Pierrick)', + ), + 6 => + array ( + 'message' => 'Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support).', + 'raw' => 'Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support). (Pierrick)', + ), + 7 => + array ( + 'message' => 'Added DateTimeImmutable - a variant of DateTime that only returns the modified state instead of changing itself.', + 'raw' => 'Added DateTimeImmutable - a variant of DateTime that only returns the modified state instead of changing itself. (Derick)', + ), + 8 => + array ( + 'message' => 'Fixed bug #64825 (Invalid free when unserializing DateTimeZone).', + 'raw' => 'Fixed bug #64825 (Invalid free when unserializing DateTimeZone). (Anatol)', + ), + 9 => + array ( + 'message' => 'Fixed bug #64359 (strftime crash with VS2012).', + 'raw' => 'Fixed bug #64359 (strftime crash with VS2012). (Anatol)', + ), + 10 => + array ( + 'message' => 'Fixed bug #62852 (Unserialize Invalid Date causes crash).', + 'raw' => 'Fixed bug #62852 (Unserialize Invalid Date causes crash). (Anatol)', + ), + 11 => + array ( + 'message' => 'Fixed bug #61642 (modify("+5 weekdays") returns Sunday).', + 'raw' => 'Fixed bug #61642 (modify("+5 weekdays") returns Sunday). (Dmitri Iouchtchenko)', + ), + 12 => + array ( + 'message' => 'Fixed bug #60774 (DateInterval::format("%a") is always zero when an interval is created using the createFromDateString method)', + 'raw' => 'Fixed bug #60774 (DateInterval::format("%a") is always zero when an interval is created using the createFromDateString method) (Lonny Kapelushnik, Derick)', + ), + 13 => + array ( + 'message' => 'Fixed bug #54567 (DateTimeZone serialize/unserialize)', + 'raw' => 'Fixed bug #54567 (DateTimeZone serialize/unserialize) (Lonny Kapelushnik, Derick)', + ), + 14 => + array ( + 'message' => 'Fixed bug #53437 (Crash when using unserialized DatePeriod instance).', + 'raw' => 'Fixed bug #53437 (Crash when using unserialized DatePeriod instance). (Gustavo, Derick, Anatol)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Bug #62489: dba_insert not working as expected.', + 'raw' => 'Bug #62489: dba_insert not working as expected. (marc-bennewitz at arcor dot de, Lars)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #49180 - added MAC address validation.', + 'raw' => 'Implemented FR #49180 - added MAC address validation. (Martin)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Upgraded libmagic to 5.14.', + 'raw' => 'Upgraded libmagic to 5.14. (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64830 (mimetype detection segfaults on mp3 file).', + 'raw' => 'Fixed bug #64830 (mimetype detection segfaults on mp3 file). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63590 (Different results in TS and NTS under Windows).', + 'raw' => 'Fixed bug #63590 (Different results in TS and NTS under Windows). (Anatoliy)', + ), + 3 => + array ( + 'message' => 'Fixed bug #63248 (Load multiple magic files from a directory under Windows).', + 'raw' => 'Fixed bug #63248 (Load multiple magic files from a directory under Windows). (Anatoliy)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file.', + 'raw' => 'Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file. (Remi)', + ), + 1 => + array ( + 'message' => 'Ignore QUERY_STRING when sent in SCRIPT_FILENAME.', + 'raw' => 'Ignore QUERY_STRING when sent in SCRIPT_FILENAME. (Remi)', + ), + 2 => + array ( + 'message' => 'Log a warning when a syscall fails.', + 'raw' => 'Log a warning when a syscall fails. (Remi)', + ), + 3 => + array ( + 'message' => 'Implemented FR #64764 (add support for FPM init.d script).', + 'raw' => 'Implemented FR #64764 (add support for FPM init.d script). (Lior Kaplan)', + ), + 4 => + array ( + 'message' => 'Fixed Bug #64915 (error_log ignored when daemonize=0).', + 'raw' => 'Fixed Bug #64915 (error_log ignored when daemonize=0). (Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11).', + 'raw' => 'Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)', + ), + 6 => + array ( + 'message' => 'Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan.', + 'raw' => 'Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan. (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #64962 (imagerotate produces corrupted image).', + 'raw' => 'Fixed Bug #64962 (imagerotate produces corrupted image). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #64961 (segfault in imagesetinterpolation).', + 'raw' => 'Fixed Bug #64961 (segfault in imagesetinterpolation). (Remi)', + ), + 2 => + array ( + 'message' => 'Fix build with system libgd >= 2.1 which is now the minimal version required (as build with previous version is broken). No change when bundled libgd is used.', + 'raw' => 'Fix build with system libgd >= 2.1 which is now the minimal version required (as build with previous version is broken). No change when bundled libgd is used. (Ondrej Sury, Remi)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Added support for PBKDF2 via hash_pbkdf2().', + 'raw' => 'Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #64745 (hash_pbkdf2() truncates data when using default length and hex output).', + 'raw' => 'Fixed Bug #64745 (hash_pbkdf2() truncates data when using default length and hex output). (Anthony Ferrara)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Added UConverter wrapper.', + 'raw' => 'Added UConverter wrapper.', + ), + 1 => + array ( + 'message' => 'The intl extension now requires ICU 4.0+.', + 'raw' => 'The intl extension now requires ICU 4.0+.', + ), + 2 => + array ( + 'message' => 'Added intl.use_exceptions INI directive, which controls what happens when global errors are set together with intl.error_level.', + 'raw' => 'Added intl.use_exceptions INI directive, which controls what happens when global errors are set together with intl.error_level. (Gustavo)', + ), + 3 => + array ( + 'message' => 'MessageFormatter::format() and related functions now accepted named arguments and mixed numeric/named arguments in ICU 4.8+.', + 'raw' => 'MessageFormatter::format() and related functions now accepted named arguments and mixed numeric/named arguments in ICU 4.8+. (Gustavo)', + ), + 4 => + array ( + 'message' => 'MessageFormatter::format() and related functions now don\'t error out when an insufficient argument count is provided. Instead, the placeholders will remain unsubstituted.', + 'raw' => 'MessageFormatter::format() and related functions now don\'t error out when an insufficient argument count is provided. Instead, the placeholders will remain unsubstituted. (Gustavo)', + ), + 5 => + array ( + 'message' => 'MessageFormatter::parse() and MessageFormat::format() (and their static equivalents) don\'t throw away better than second precision in the arguments.', + 'raw' => 'MessageFormatter::parse() and MessageFormat::format() (and their static equivalents) don\'t throw away better than second precision in the arguments. (Gustavo)', + ), + 6 => + array ( + 'message' => 'IntlDateFormatter::__construct and datefmt_create() now accept for the $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone objects and NULL.', + 'raw' => 'IntlDateFormatter::__construct and datefmt_create() now accept for the $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone objects and NULL. (Gustavo)', + ), + 7 => + array ( + 'message' => 'IntlDateFormatter::__construct and datefmt_create() no longer accept invalid timezone identifiers or empty strings.', + 'raw' => 'IntlDateFormatter::__construct and datefmt_create() no longer accept invalid timezone identifiers or empty strings. (Gustavo)', + ), + 8 => + array ( + 'message' => 'The default time zone used in IntlDateFormatter::__construct and datefmt_create() (when the corresponding argument is not passed or NULL is passed) is now the one given by date_default_timezone_get(), not the default ICU time zone.', + 'raw' => 'The default time zone used in IntlDateFormatter::__construct and datefmt_create() (when the corresponding argument is not passed or NULL is passed) is now the one given by date_default_timezone_get(), not the default ICU time zone. (Gustavo)', + ), + 9 => + array ( + 'message' => 'The time zone passed to the IntlDateFormatter is ignored if it is NULL and if the calendar passed is an IntlCalendar object -- in this case, the IntlCalendar\'s time zone will be used instead. Otherwise, the time zone specified in the $timezone argument is used instead. This does not affect old code, as IntlCalendar was introduced in this version.', + 'raw' => 'The time zone passed to the IntlDateFormatter is ignored if it is NULL and if the calendar passed is an IntlCalendar object -- in this case, the IntlCalendar\'s time zone will be used instead. Otherwise, the time zone specified in the $timezone argument is used instead. This does not affect old code, as IntlCalendar was introduced in this version. (Gustavo)', + ), + 10 => + array ( + 'message' => 'IntlDateFormatter::__construct and datefmt_create() now accept for the $calendar argument also IntlCalendar objects.', + 'raw' => 'IntlDateFormatter::__construct and datefmt_create() now accept for the $calendar argument also IntlCalendar objects. (Gustavo)', + ), + 11 => + array ( + 'message' => 'IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false if the IntlDateFormatter was set up with an IntlCalendar instead of the constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not exist before this version.', + 'raw' => 'IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false if the IntlDateFormatter was set up with an IntlCalendar instead of the constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not exist before this version. (Gustavo)', + ), + 12 => + array ( + 'message' => 'IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept an IntlCalendar object, in which case its time zone is taken. Passing a constant is still allowed, and still keeps the time zone.', + 'raw' => 'IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept an IntlCalendar object, in which case its time zone is taken. Passing a constant is still allowed, and still keeps the time zone. (Gustavo)', + ), + 13 => + array ( + 'message' => 'IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone() instead.', + 'raw' => 'IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone() instead. (Gustavo)', + ), + 14 => + array ( + 'message' => 'IntlDateFormatter::format() and datefmt_format() now also accept an IntlCalendar object for formatting.', + 'raw' => 'IntlDateFormatter::format() and datefmt_format() now also accept an IntlCalendar object for formatting. (Gustavo)', + ), + 15 => + array ( + 'message' => 'Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone, IntlBreakIterator, IntlRuleBasedBreakIterator and IntlCodePointBreakIterator.', + 'raw' => 'Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone, IntlBreakIterator, IntlRuleBasedBreakIterator and IntlCodePointBreakIterator. (Gustavo)', + ), + 16 => + array ( + 'message' => 'Added the functions: intlcal_get_keyword_values_for_locale(), intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(), intlcal_get_time(), intlcal_set_time(), intlcal_add(), intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(), intlcal_roll(), intlcal_clear(), intlcal_field_difference(), intlcal_get_actual_maximum(), intlcal_get_actual_minimum(), intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(), intlcal_get_greatest_minimum(), intlcal_get_least_maximum(), intlcal_get_locale(), intlcal_get_maximum(), intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(), intlcal_get_time_zone(), intlcal_get_type(), intlcal_get_weekend_transition(), intlcal_in_daylight_time(), intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(), intlcal_is_weekend(), intlcal_set_first_day_of_week(), intlcal_set_lenient(), intlcal_equals(), intlcal_get_repeated_wall_time_option(), intlcal_get_skipped_wall_time_option(), intlcal_set_repeated_wall_time_option(), intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(), intlcal_to_date_time(), intlcal_get_error_code(), intlcal_get_error_message(), intlgregcal_create_instance(), intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and intlgregcal_is_leap_year().', + 'raw' => 'Added the functions: intlcal_get_keyword_values_for_locale(), intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(), intlcal_get_time(), intlcal_set_time(), intlcal_add(), intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(), intlcal_roll(), intlcal_clear(), intlcal_field_difference(), intlcal_get_actual_maximum(), intlcal_get_actual_minimum(), intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(), intlcal_get_greatest_minimum(), intlcal_get_least_maximum(), intlcal_get_locale(), intlcal_get_maximum(), intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(), intlcal_get_time_zone(), intlcal_get_type(), intlcal_get_weekend_transition(), intlcal_in_daylight_time(), intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(), intlcal_is_weekend(), intlcal_set_first_day_of_week(), intlcal_set_lenient(), intlcal_equals(), intlcal_get_repeated_wall_time_option(), intlcal_get_skipped_wall_time_option(), intlcal_set_repeated_wall_time_option(), intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(), intlcal_to_date_time(), intlcal_get_error_code(), intlcal_get_error_message(), intlgregcal_create_instance(), intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and intlgregcal_is_leap_year(). (Gustavo)', + ), + 17 => + array ( + 'message' => 'Added the functions: intltz_create_time_zone(), intltz_create_default(), intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(), intltz_create_enumeration(), intltz_count_equivalent_ids(), intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(), intltz_get_region(), intltz_get_tz_data_version(), intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(), intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(), intltz_get_dst_savings(), intltz_from_date_time_zone(), intltz_to_date_time_zone(), intltz_get_error_code(), intltz_get_error_message().', + 'raw' => 'Added the functions: intltz_create_time_zone(), intltz_create_default(), intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(), intltz_create_enumeration(), intltz_count_equivalent_ids(), intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(), intltz_get_region(), intltz_get_tz_data_version(), intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(), intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(), intltz_get_dst_savings(), intltz_from_date_time_zone(), intltz_to_date_time_zone(), intltz_get_error_code(), intltz_get_error_message(). (Gustavo)', + ), + 18 => + array ( + 'message' => 'Added the methods: IntlDateFormatter::formatObject(), IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(), IntlDateFormatter::setTimeZone().', + 'raw' => 'Added the methods: IntlDateFormatter::formatObject(), IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(), IntlDateFormatter::setTimeZone(). (Gustavo)', + ), + 19 => + array ( + 'message' => 'Added the functions: datefmt_format_object(), datefmt_get_calendar_object(), datefmt_get_timezone(), datefmt_set_timezone(), datefmt_get_calendar_object(), intlcal_create_instance().', + 'raw' => 'Added the functions: datefmt_format_object(), datefmt_get_calendar_object(), datefmt_get_timezone(), datefmt_set_timezone(), datefmt_get_calendar_object(), intlcal_create_instance(). (Gustavo)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64769 (mbstring PHPTs crash on Windows x64).', + 'raw' => 'Fixed bug #64769 (mbstring PHPTs crash on Windows x64). (Anatol)', + ), + 1 => + array ( + 'message' => 'mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw E_DEPRECATED.', + 'raw' => 'mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw E_DEPRECATED. (GoogleGuy)', + ), + 2 => + array ( + 'message' => 'This extension is now deprecated, and deprecation warnings will be generated when connections are established to databases via mysql_connect(), mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL instead (https://wiki.php.net/rfc/mysql_deprecation).', + 'raw' => 'This extension is now deprecated, and deprecation warnings will be generated when connections are established to databases via mysql_connect(), mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL instead (https://wiki.php.net/rfc/mysql_deprecation). (Adam)', + ), + 3 => + array ( + 'message' => 'Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. Known for stability problems.', + 'raw' => 'Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. Known for stability problems. (Andrey)', + ), + 4 => + array ( + 'message' => 'Added support for SHA256 authentication available with MySQL 5.6.6+.', + 'raw' => 'Added support for SHA256 authentication available with MySQL 5.6.6+. (Andrey)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their respective OO counterparts. They work in libmysql and mysqlnd mode.', + 'raw' => 'Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their respective OO counterparts. They work in libmysql and mysqlnd mode. (Andrey)', + ), + 1 => + array ( + 'message' => 'Added mysqli_savepoint(), mysqli_release_savepoint().', + 'raw' => 'Added mysqli_savepoint(), mysqli_release_savepoint(). (Andrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed).', + 'raw' => 'Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #64394 (MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS undeclared when using Connector/C).', + 'raw' => 'Fixed bug #64394 (MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS undeclared when using Connector/C). (Andrey)', + ), + 4 => + array ( + 'message' => 'Add new begin_transaction() call to the connection object. Implemented all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT and ROLLBACK.', + 'raw' => 'Add new begin_transaction() call to the connection object. Implemented all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT and ROLLBACK. (Andrey)', + ), + 5 => + array ( + 'message' => 'Added mysqlnd_savepoint(), mysqlnd_release_savepoint().', + 'raw' => 'Added mysqlnd_savepoint(), mysqlnd_release_savepoint(). (Andrey)', + ), + 6 => + array ( + 'message' => 'Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind).', + 'raw' => 'Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind). (Andrey)', + ), + 7 => + array ( + 'message' => 'Fixed return value of mysqli_stmt_affected_rows() in the time after prepare() and before execute().', + 'raw' => 'Fixed return value of mysqli_stmt_affected_rows() in the time after prepare() and before execute(). (Andrey)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Merged PCRE 8.32.', + 'raw' => 'Merged PCRE 8.32. (Anatol)', + ), + 1 => + array ( + 'message' => 'Deprecated the /e modifier (https://wiki.php.net/rfc/remove_preg_replace_eval_modifier).', + 'raw' => 'Deprecated the /e modifier (https://wiki.php.net/rfc/remove_preg_replace_eval_modifier). (Nikita Popov)', + ), + 2 => + array ( + 'message' => 'Fixed bug #63284 (Upgrade PCRE to 8.31).', + 'raw' => 'Fixed bug #63284 (Upgrade PCRE to 8.31). (Anatoliy)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to the same db server).', + 'raw' => 'Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to the same db server). (Laruence)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63638 (Cannot connect to SQL Server 2008 with PDO dblib).', + 'raw' => 'Fixed bug #63638 (Cannot connect to SQL Server 2008 with PDO dblib). (Stanley Sufficool)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64338 (pdo_dblib can\'t connect to Azure SQL).', + 'raw' => 'Fixed bug #64338 (pdo_dblib can\'t connect to Azure SQL). (Stanley Sufficool)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64808 (FreeTDS PDO getColumnMeta on a prepared but not executed statement crashes).', + 'raw' => 'Fixed bug #64808 (FreeTDS PDO getColumnMeta on a prepared but not executed statement crashes). (Stanley Sufficool)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #64949 (Buffer overflow in _pdo_pgsql_error).', + 'raw' => 'Fixed Bug #64949 (Buffer overflow in _pdo_pgsql_error). (Remi)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48724 (getColumnMeta() doesn\'t return native_type for BIT, TINYINT and YEAR).', + 'raw' => 'Fixed bug #48724 (getColumnMeta() doesn\'t return native_type for BIT, TINYINT and YEAR). (Antony, Daniel Beardsley)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added pg_escape_literal() and pg_escape_identifier()', + 'raw' => 'Added pg_escape_literal() and pg_escape_identifier() (Yasuo)', + ), + 1 => + array ( + 'message' => 'Bug #46408: Locale number format settings can cause pg_query_params to break with numerics.', + 'raw' => 'Bug #46408: Locale number format settings can cause pg_query_params to break with numerics. (asmecher, Lars)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed timestamp update on Phar contents modification.', + 'raw' => 'Fixed timestamp update on Phar contents modification. (Dmitry)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Implement FR #55694 (Expose additional readline variable to prevent default filename completion).', + 'raw' => 'Implement FR #55694 (Expose additional readline variable to prevent default filename completion). (Hartmel)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64007 (There is an ability to create instance of Generator by hand).', + 'raw' => 'Fixed bug #64007 (There is an ability to create instance of Generator by hand). (Laruence)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added recvmsg() and sendmsg() wrappers. See https://wiki.php.net/rfc/sendrecvmsg', + 'raw' => 'Added recvmsg() and sendmsg() wrappers. (Gustavo) See https://wiki.php.net/rfc/sendrecvmsg', + ), + 1 => + array ( + 'message' => 'Fixed bug #64508 (Fails to build with --disable-ipv6).', + 'raw' => 'Fixed bug #64508 (Fails to build with --disable-ipv6). (Gustavo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault).', + 'raw' => 'Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault). (Gustavo)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems).', + 'raw' => 'Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64264 (SPLFixedArray toArray problem).', + 'raw' => 'Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS).', + 'raw' => 'Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS). (patch by kriss@krizalys.com, Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended).', + 'raw' => 'Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). (Nikita Popov)', + ), + 4 => + array ( + 'message' => 'Fix bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, keys are strings).', + 'raw' => 'Fix bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, keys are strings). (Adam)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52861 (unset fails with ArrayObject and deep arrays).', + 'raw' => 'Fixed bug #52861 (unset fails with ArrayObject and deep arrays). (Mike Willbanks)', + ), + 6 => + array ( + 'message' => 'Implement FR #48358 (Add SplDoublyLinkedList::add() to insert an element at a given offset).', + 'raw' => 'Implement FR #48358 (Add SplDoublyLinkedList::add() to insert an element at a given offset). (Mark Baker, David Soria Parra)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64765 (Some IPv6 addresses get interpreted wrong).', + 'raw' => 'Fixed bug #64765 (Some IPv6 addresses get interpreted wrong). (Boris Lytochkin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64159 (Truncated snmpget).', + 'raw' => 'Fixed bug #64159 (Truncated snmpget). (Boris Lytochkin)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64124 (IPv6 malformed).', + 'raw' => 'Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin)', + ), + 3 => + array ( + 'message' => 'Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly).', + 'raw' => 'Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly). (Boris Lytochkin)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Added SoapClient constructor option \'ssl_method\' to specify ssl method.', + 'raw' => 'Added SoapClient constructor option \'ssl_method\' to specify ssl method. (Eric Iversen)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64).', + 'raw' => 'Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed Windows x64 version of stream_socket_pair() and improved error handling.', + 'raw' => 'Fixed Windows x64 version of stream_socket_pair() and improved error handling. (Anatol Belski)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60097 (token_get_all fails to lex nested heredoc).', + 'raw' => 'Fixed bug #60097 (token_get_all fails to lex nested heredoc). (Nikita Popov)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Upgraded libzip to 0.10.1', + 'raw' => 'Upgraded libzip to 0.10.1 (Anatoliy)', + ), + 1 => + array ( + 'message' => 'Bug #64452 (Zip crash intermittently).', + 'raw' => 'Bug #64452 (Zip crash intermittently). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64342 (ZipArchive::addFile() has to check for file existence).', + 'raw' => 'Fixed bug #64342 (ZipArchive::addFile() has to check for file existence). (Anatol)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/5.6/changelist.inc b/include/releases/5.6/changelist.inc new file mode 100644 index 0000000000..d1839a0396 --- /dev/null +++ b/include/releases/5.6/changelist.inc @@ -0,0 +1,6483 @@ + + array ( + 'date' => '10 Jan 2019', + 'modules' => + array ( + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free).', + 'raw' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap).', + 'raw' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token).', + 'raw' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node).', + 'raw' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at).', + 'raw' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string).', + 'raw' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77385 (buffer overflow in fetch_token).', + 'raw' => 'Fixed bug #77385 (buffer overflow in fetch_token). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode).', + 'raw' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code).', + 'raw' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext).', + 'raw' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). (Stas)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()).', + 'raw' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code).', + 'raw' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). (Stas)', + ), + ), + ), + ), + '5.6.39' => + array ( + 'date' => '06 Dec 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77231 (Segfault when using convert.quoted-printable-encode filter).', + 'raw' => 'Fixed bug #77231 (Segfault when using convert.quoted-printable-encode filter). (Stas)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77020 (null pointer dereference in imap_mail).', + 'raw' => 'Fixed bug #77020 (null pointer dereference in imap_mail). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter).', + 'raw' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter). (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77022 (PharData always creates new files with mode 0666).', + 'raw' => 'Fixed bug #77022 (PharData always creates new files with mode 0666). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77143 (Heap Buffer Overflow (READ: 4) in phar_parse_pharfile).', + 'raw' => 'Fixed bug #77143 (Heap Buffer Overflow (READ: 4) in phar_parse_pharfile). (Stas)', + ), + ), + ), + ), + '5.6.38' => + array ( + 'date' => '13 Sep 2018', + 'modules' => + array ( + ), + ), + '5.6.37' => + array ( + 'date' => '19 Jul 2018', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76582 (XSS due to the header Transfer-Encoding: chunked).', + 'raw' => 'Fixed bug #76582 (XSS due to the header Transfer-Encoding: chunked). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76423 (Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c).', + 'raw' => 'Fixed bug #76423 (Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76557 (heap-buffer-overflow (READ of size 48) while reading exif data).', + 'raw' => 'Fixed bug #76557 (heap-buffer-overflow (READ of size 48) while reading exif data). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76130 (Heap Buffer Overflow (READ: 1786) in exif_iif_add_value).', + 'raw' => 'Fixed bug #76130 (Heap Buffer Overflow (READ: 1786) in exif_iif_add_value). (Stas)', + ), + ), + 'win32' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76459 (windows linkinfo lacks openbasedir check).', + 'raw' => 'Fixed bug #76459 (windows linkinfo lacks openbasedir check). (Anatol)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76249 (stream filter convert.iconv leads to infinite loop on invalid sequence).', + 'raw' => 'Fixed bug #76249 (stream filter convert.iconv leads to infinite loop on invalid sequence). (Stas)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76248 (Malicious LDAP-Server Response causes Crash).', + 'raw' => 'Fixed bug #76248 (Malicious LDAP-Server Response causes Crash). (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76129 (fix for CVE-2018-5712 may not be complete).', + 'raw' => 'Fixed bug #76129 (fix for CVE-2018-5712 may not be complete). (Stas)', + ), + ), + ), + ), + '5.6.35' => + array ( + 'date' => '29 Mar 2018', + 'modules' => + array ( + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls).', + 'raw' => 'Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls). (Jakub Zelenka)', + ), + ), + ), + ), + '5.6.34' => + array ( + 'date' => '01 Mar 2018', + 'modules' => + array ( + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75981 (stack-buffer-overflow while parsing HTTP response).', + 'raw' => 'Fixed bug #75981 (stack-buffer-overflow while parsing HTTP response). (Stas)', + ), + ), + ), + ), + '5.6.33' => + array ( + 'date' => '04 Jan 2018', + 'modules' => + array ( + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx).', + 'raw' => 'Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx). (cmb)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74782 (Reflected XSS in .phar 404 page).', + 'raw' => 'Fixed bug #74782 (Reflected XSS in .phar 404 page). (Stas)', + ), + ), + ), + ), + '5.6.32' => + array ( + 'date' => '26 Sep 2017', + 'modules' => + array ( + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75055 (Out-Of-Bounds Read in timelib_meridian()).', + 'raw' => 'Fixed bug #75055 (Out-Of-Bounds Read in timelib_meridian()). (Derick)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72535 (arcfour encryption stream filter crashes php).', + 'raw' => 'Fixed bug #72535 (arcfour encryption stream filter crashes php). (Leigh)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75207 (applied upstream patch for CVE-2016-1283).', + 'raw' => 'Fixed bug #75207 (applied upstream patch for CVE-2016-1283). (Anatol)', + ), + ), + ), + ), + '5.6.31' => + array ( + 'date' => '06 Jul 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73807 (Performance problem with processing post request over 2000000 chars).', + 'raw' => 'Fixed bug #73807 (Performance problem with processing post request over 2000000 chars). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74111 (Heap buffer overread (READ: 1) finish_nested_data from unserialize).', + 'raw' => 'Fixed bug #74111 (Heap buffer overread (READ: 1) finish_nested_data from unserialize). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74603 (PHP INI Parsing Stack Buffer Overflow Vulnerability).', + 'raw' => 'Fixed bug #74603 (PHP INI Parsing Stack Buffer Overflow Vulnerability). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74819 (wddx_deserialize() heap out-of-bound read via php_parse_date()).', + 'raw' => 'Fixed bug #74819 (wddx_deserialize() heap out-of-bound read via php_parse_date()). (Derick)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74435 (Buffer over-read into uninitialized memory).', + 'raw' => 'Fixed bug #74435 (Buffer over-read into uninitialized memory). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Add oniguruma upstream fix (CVE-2017-9224, CVE-2017-9226, CVE-2017-9227, CVE-2017-9228, CVE-2017-9229)', + 'raw' => 'Add oniguruma upstream fix (CVE-2017-9224, CVE-2017-9226, CVE-2017-9227, CVE-2017-9228, CVE-2017-9229) (Remi, Mamoru TASAKA)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74651 (negative-size-param (-1) in memcpy in zif_openssl_seal()).', + 'raw' => 'Fixed bug #74651 (negative-size-param (-1) in memcpy in zif_openssl_seal()). (Stas)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74087 (Segmentation fault in PHP7.1.1(compiled using the bundled PCRE library)).', + 'raw' => 'Fixed bug #74087 (Segmentation fault in PHP7.1.1(compiled using the bundled PCRE library)). (Stas)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74145 (wddx parsing empty boolean tag leads to SIGSEGV).', + 'raw' => 'Fixed bug #74145 (wddx parsing empty boolean tag leads to SIGSEGV). (Stas)', + ), + ), + ), + ), + '5.6.30' => + array ( + 'date' => '19 Jan 2017', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73737 (FPE when parsing a tag format).', + 'raw' => 'Fixed bug #73737 (FPE when parsing a tag format). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73549 (Use after free when stream is passed to imagepng).', + 'raw' => 'Fixed bug #73549 (Use after free when stream is passed to imagepng). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73868 (DOS vulnerability in gdImageCreateFromGd2Ctx()).', + 'raw' => 'Fixed bug #73868 (DOS vulnerability in gdImageCreateFromGd2Ctx()). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73869 (Signed Integer Overflow gd_io.c).', + 'raw' => 'Fixed bug #73869 (Signed Integer Overflow gd_io.c). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68447 (grapheme_extract take an extra trailing character).', + 'raw' => 'Fixed bug #68447 (grapheme_extract take an extra trailing character). (SATŌ Kentarō)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73764 (Crash while loading hostile phar archive).', + 'raw' => 'Fixed bug #73764 (Crash while loading hostile phar archive). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73768 (Memory corruption when loading hostile phar).', + 'raw' => 'Fixed bug #73768 (Memory corruption when loading hostile phar). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73773 (Seg fault when loading hostile phar).', + 'raw' => 'Fixed bug #73773 (Seg fault when loading hostile phar). (Stas)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Reverted fix for bug #73530 (Unsetting result set may reset other result set).', + 'raw' => 'Reverted fix for bug #73530 (Unsetting result set may reset other result set). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70213 (Unserialize context shared on double class lookup).', + 'raw' => 'Fixed bug #70213 (Unserialize context shared on double class lookup). (Taoguang Chen)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73825 (Heap out of bounds read on unserialize in finish_nested_data()).', + 'raw' => 'Fixed bug #73825 (Heap out of bounds read on unserialize in finish_nested_data()). (Stas)', + ), + ), + ), + ), + '5.6.29' => + array ( + 'date' => '08 Dec 2016', + 'modules' => + array ( + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73505 (string length overflow in mbfl_memory_device_output function).', + 'raw' => 'Fixed bug #73505 (string length overflow in mbfl_memory_device_output function). (Stas)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*).', + 'raw' => 'Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73402 (Opcache segfault when using class constant to call a method).', + 'raw' => 'Fixed bug #73402 (Opcache segfault when using class constant to call a method). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69090', + 'raw' => 'Fixed bug #69090 (check cached files permissions)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72776 (Invalid parameter in memcpy function trough openssl_pbkdf2).', + 'raw' => 'Fixed bug #72776 (Invalid parameter in memcpy function trough openssl_pbkdf2). (Jakub Zelenka)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()).', + 'raw' => 'Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()). (Craig Duncan)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73452 (Segfault (Regression for #69152)).', + 'raw' => 'Fixed bug #73452 (Segfault (Regression for #69152)). (Dmitry)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73530 (Unsetting result set may reset other result set).', + 'raw' => 'Fixed bug #73530 (Unsetting result set may reset other result set). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue).', + 'raw' => 'Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue). (rowan dot collins at gmail dot com)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73631 (Memory leak due to invalid wddx stack processing). .', + 'raw' => 'Fixed bug #73631 (Memory leak due to invalid wddx stack processing). (bughunter at fosec dot vn).', + ), + ), + ), + ), + '5.6.28' => + array ( + 'date' => '10 Nov 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73337 (try/catch not working with two exceptions inside a same operation).', + 'raw' => 'Fixed bug #73337 (try/catch not working with two exceptions inside a same operation). (Dmitry)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73356 (crash in bzcompress function).', + 'raw' => 'Fixed bug #73356 (crash in bzcompress function). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73213 (Integer overflow in imageline() with antialiasing).', + 'raw' => 'Fixed bug #73213 (Integer overflow in imageline() with antialiasing). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()).', + 'raw' => 'Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()).', + 'raw' => 'Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf).', + 'raw' => 'Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72482 (Illegal write/read access caused by gdImageAALine overflow).', + 'raw' => 'Fixed bug #72482 (Illegal write/read access caused by gdImageAALine overflow). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images).', + 'raw' => 'Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads Heap Overflow).', + 'raw' => 'Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads Heap Overflow). (Anatol)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73144 (Use-after-free in ArrayObject Deserialization).', + 'raw' => 'Fixed bug #73144 (Use-after-free in ArrayObject Deserialization). (Stas)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73037 (SoapServer reports Bad Request when gzipped).', + 'raw' => 'Fixed bug #73037 (SoapServer reports Bad Request when gzipped). (Anatol)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73333 (2147483647 is fetched as string).', + 'raw' => 'Fixed bug #73333 (2147483647 is fetched as string). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail).', + 'raw' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73188 (use after free in userspace streams).', + 'raw' => 'Fixed bug #73188 (use after free in userspace streams). (Sara)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73192 (parse_url return wrong hostname).', + 'raw' => 'Fixed bug #73192 (parse_url return wrong hostname). (Nikita)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow).', + 'raw' => 'Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow). (Stas)', + ), + ), + ), + ), + '5.6.27' => + array ( + 'date' => '13 Oct 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c).', + 'raw' => 'Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73058 (crypt broken when salt is \'too\' long).', + 'raw' => 'Fixed bug #73058 (crypt broken when salt is \'too\' long). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify).', + 'raw' => 'Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73189 (Memcpy negative size parameter php_resolve_path).', + 'raw' => 'Fixed bug #73189 (Memcpy negative size parameter php_resolve_path). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73147 (Use After Free in unserialize()).', + 'raw' => 'Fixed bug #73147 (Use After Free in unserialize()). (Stas)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73190 (memcpy negative parameter _bc_new_num_ex).', + 'raw' => 'Fixed bug #73190 (memcpy negative parameter _bc_new_num_ex). (Stas)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73150 (missing NULL check in dom_document_save_html).', + 'raw' => 'Fixed bug #73150 (missing NULL check in dom_document_save_html). (Stas)', + ), + ), + 'ereg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73284 (heap overflow in php_ereg_replace function).', + 'raw' => 'Fixed bug #73284 (heap overflow in php_ereg_replace function). (Stas)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE).', + 'raw' => 'Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE). (julien)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67167 (Wrong return value from FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE).', + 'raw' => 'Fixed bug #67167 (Wrong return value from FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE). (levim, cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73054 (default option ignored when object passed to int filter).', + 'raw' => 'Fixed bug #73054 (default option ignored when object passed to int filter). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette).', + 'raw' => 'Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending).', + 'raw' => 'Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c).', + 'raw' => 'Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c). (trylab, cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box).', + 'raw' => 'Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box). (Mark Plomer, cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given).', + 'raw' => 'Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries).', + 'raw' => 'Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files).', + 'raw' => 'Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73161 (imagecreatefromgd2() may leak memory).', + 'raw' => 'Fixed bug #73161 (imagecreatefromgd2() may leak memory). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73218 (add mitigation for ICU int overflow).', + 'raw' => 'Fixed bug #73218 (add mitigation for ICU int overflow). (Stas)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73208 (integer overflow in imap_8bit caused heap corruption).', + 'raw' => 'Fixed bug #73208 (integer overflow in imap_8bit caused heap corruption). (Stas)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72994 (mbc_to_code() out of bounds read).', + 'raw' => 'Fixed bug #72994 (mbc_to_code() out of bounds read). (Laruence, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66964 (mb_convert_variables() cannot detect recursion).', + 'raw' => 'Fixed bug #66964 (mb_convert_variables() cannot detect recursion). (Yasuo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72992 (mbstring.internal_encoding doesn\'t inherit default_charset).', + 'raw' => 'Fixed bug #72992 (mbstring.internal_encoding doesn\'t inherit default_charset). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73082 (string length overflow in mb_encode_* function).', + 'raw' => 'Fixed bug #73082 (string length overflow in mb_encode_* function). (Stas)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73174 (heap overflow in php_pcre_replace_impl).', + 'raw' => 'Fixed bug #73174 (heap overflow in php_pcre_replace_impl). (Stas)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72590 (Opcache restart with kill_all_lockers does not work). (Keyur)', + 'raw' => 'Fixed bug #72590 (Opcache restart with kill_all_lockers does not work). (Keyur) (julien backport)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73072 (Invalid path SNI_server_certs causes segfault).', + 'raw' => 'Fixed bug #73072 (Invalid path SNI_server_certs causes segfault). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73275 (crash in openssl_encrypt function).', + 'raw' => 'Fixed bug #73275 (crash in openssl_encrypt function). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73276 (crash in openssl_random_pseudo_bytes function).', + 'raw' => 'Fixed bug #73276 (crash in openssl_random_pseudo_bytes function). (Stas)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68015 (Session does not report invalid uid for files save handler).', + 'raw' => 'Fixed bug #68015 (Session does not report invalid uid for files save handler). (Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73100 (session_destroy null dereference in ps_files_path_create).', + 'raw' => 'Fixed bug #73100 (session_destroy null dereference in ps_files_path_create). (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()).', + 'raw' => 'Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()). (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73073 (CachingIterator null dereference when convert to string).', + 'raw' => 'Fixed bug #73073 (CachingIterator null dereference when convert to string). (Stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73240 (Write out of bounds at number_format).', + 'raw' => 'Fixed bug #73240 (Write out of bounds at number_format). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73017 (memory corruption in wordwrap function).', + 'raw' => 'Fixed bug #73017 (memory corruption in wordwrap function). (Stas)', + ), + ), + 'stream' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73069 (readfile() mangles files larger than 2G).', + 'raw' => 'Fixed bug #73069 (readfile() mangles files larger than 2G). (Laruence)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70752 (Depacking with wrong password leaves 0 length files).', + 'raw' => 'Fixed bug #70752 (Depacking with wrong password leaves 0 length files). (cmb)', + ), + ), + ), + ), + '5.6.26' => + array ( + 'date' => '15 Sep 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72907 (null pointer deref, segfault in gc_remove_zval_from_buffer (zend_gc.c:260)).', + 'raw' => 'Fixed bug #72907 (null pointer deref, segfault in gc_remove_zval_from_buffer (zend_gc.c:260)). (Laruence)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71514 (Bad dba_replace condition because of wrong API usage).', + 'raw' => 'Fixed bug #71514 (Bad dba_replace condition because of wrong API usage). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70825 (Cannot fetch multiple values with group in ini file).', + 'raw' => 'Fixed bug #70825 (Cannot fetch multiple values with group in ini file). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72926 (Uninitialized Thumbail Data Leads To Memory Leakage in exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #72926 (Uninitialized Thumbail Data Leads To Memory Leakage in exif_process_IFD_in_TIFF). (Stas)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse).', + 'raw' => 'Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse). (Benedict Singer)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images).', + 'raw' => 'Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72913 (imagecopy() loses single-color transparency on palette images).', + 'raw' => 'Fixed bug #72913 (imagecopy() loses single-color transparency on palette images). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68716 (possible resource leaks in _php_image_convert()).', + 'raw' => 'Fixed bug #68716 (possible resource leaks in _php_image_convert()). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73007 (add locale length check).', + 'raw' => 'Fixed bug #73007 (add locale length check). (Stas)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72787 (json_decode reads out of bounds).', + 'raw' => 'Fixed bug #72787 (json_decode reads out of bounds). (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66797 (mb_substr only takes 32-bit signed integer).', + 'raw' => 'Fixed bug #66797 (mb_substr only takes 32-bit signed integer). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72910 (Out of bounds heap read in mbc_to_code() / triggered by mb_ereg_match()).', + 'raw' => 'Fixed bug #72910 (Out of bounds heap read in mbc_to_code() / triggered by mb_ereg_match()). (Stas)', + ), + ), + 'mssql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72039 (Use of uninitialised value on mssql_guid_string).', + 'raw' => 'Fixed bug #72039 (Use of uninitialised value on mssql_guid_string). (Kalle)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72293 (Heap overflow in mysqlnd related to BIT fields).', + 'raw' => 'Fixed bug #72293 (Heap overflow in mysqlnd related to BIT fields). (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile).', + 'raw' => 'Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile).', + 'raw' => 'Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile). (Stas)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false).', + 'raw' => 'Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence).', + 'raw' => 'Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence). (Pablo Santiago Sánchez, Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72759 (Regression in pgo_pgsql).', + 'raw' => 'Fixed bug #72759 (Regression in pgo_pgsql). (Anatol)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73029 (Missing type check when unserializing SplArray).', + 'raw' => 'Fixed bug #73029 (Missing type check when unserializing SplArray). (Stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72823 (strtr out-of-bound access).', + 'raw' => 'Fixed bug #72823 (strtr out-of-bound access). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72278 (getimagesize returning FALSE on valid jpg).', + 'raw' => 'Fixed bug #72278 (getimagesize returning FALSE on valid jpg). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign).', + 'raw' => 'Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory).', + 'raw' => 'Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73011 (integer overflow in fgets cause heap corruption).', + 'raw' => 'Fixed bug #73011 (integer overflow in fgets cause heap corruption). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73017 (memory corruption in wordwrap function).', + 'raw' => 'Fixed bug #73017 (memory corruption in wordwrap function). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #73045 (integer overflow in fgetcsv caused heap corruption).', + 'raw' => 'Fixed bug #73045 (integer overflow in fgetcsv caused heap corruption). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73052 (Memory Corruption in During Deserialized-object Destruction)', + 'raw' => 'Fixed bug #73052 (Memory Corruption in During Deserialized-object Destruction) (Stas)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72853 (stream_set_blocking doesn\'t work).', + 'raw' => 'Fixed bug #72853 (stream_set_blocking doesn\'t work). (Laruence)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72860 (wddx_deserialize use-after-free).', + 'raw' => 'Fixed bug #72860 (wddx_deserialize use-after-free). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element).', + 'raw' => 'Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element). (Stas)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72085 (SEGV on unknown address zif_xml_parse).', + 'raw' => 'Fixed bug #72085 (SEGV on unknown address zif_xml_parse). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72927 (integer overflow in xml_utf8_encode).', + 'raw' => 'Fixed bug #72927 (integer overflow in xml_utf8_encode). (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68302 (impossible to compile php with zip support).', + 'raw' => 'Fixed bug #68302 (impossible to compile php with zip support). (cmb)', + ), + ), + ), + ), + '5.6.25' => + array ( + 'date' => '18 Aug 2016', + 'modules' => + array ( + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption).', + 'raw' => 'Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption). (Stas)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70436 (Use After Free Vulnerability in unserialize()).', + 'raw' => 'Fixed bug #70436 (Use After Free Vulnerability in unserialize()). (Taoguang Chen)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72024 (microtime() leaks memory).', + 'raw' => 'Fixed bug #72024 (microtime() leaks memory). (maroszek at gmx dot net)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72581 (previous property undefined in Exception after deserialization).', + 'raw' => 'Fixed bug #72581 (previous property undefined in Exception after deserialization). (Laruence)', + ), + 3 => + array ( + 'message' => 'Implemented FR #72614 (Support "nmake test" on building extensions by phpize).', + 'raw' => 'Implemented FR #72614 (Support "nmake test" on building extensions by phpize). (Yuji Uchiyama)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX).', + 'raw' => 'Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX). (Yuji Uchiyama)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72663 (Create an Unexpected Object and Don\'t Invoke __wakeup() in Deserialization).', + 'raw' => 'Fixed bug #72663 (Create an Unexpected Object and Don\'t Invoke __wakeup() in Deserialization). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72681 (PHP Session Data Injection Vulnerability).', + 'raw' => 'Fixed bug #72681 (PHP Session Data Injection Vulnerability). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed URL rewriter partially. It would not rewrite \'//example.com/\' URL unconditionally. Only requested host(HTTP_HOST) is rewritten.', + 'raw' => 'Fixed URL rewriter partially. It would not rewrite \'//example.com/\' URL unconditionally. Only requested host(HTTP_HOST) is rewritten. (Yasuo)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67976 (cal_days_month() fails for final month of the French calendar).', + 'raw' => 'Fixed bug #67976 (cal_days_month() fails for final month of the French calendar). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd).', + 'raw' => 'Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71144 (Segmentation fault when using cURL with ZTS).', + 'raw' => 'Fixed bug #71144 (Segmentation fault when using cURL with ZTS). (maroszek at gmx dot net)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71929 (Certification information (CERTINFO) data parsing error).', + 'raw' => 'Fixed bug #71929 (Certification information (CERTINFO) data parsing error). (Pierrick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72807 (integer overflow in curl_escape caused heap corruption).', + 'raw' => 'Fixed bug #72807 (integer overflow in curl_escape caused heap corruption). (Stas)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66502 (DOM document dangling reference).', + 'raw' => 'Fixed bug #66502 (DOM document dangling reference). (Sean Heelan, cmb)', + ), + ), + 'ereg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72838 (Integer overflow lead to heap corruption in sql_regcase).', + 'raw' => 'Fixed bug #72838 (Integer overflow lead to heap corruption in sql_regcase). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72735 (Samsung picture thumb not read (zero size)).', + 'raw' => 'Fixed bug #72735 (Samsung picture thumb not read (zero size)). (Kalle, Remi)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range).', + 'raw' => 'Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range). (bugs dot php dot net at majkl578 dot cz)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user).', + 'raw' => 'Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user). (gooh)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode).', + 'raw' => 'Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66555 (Always false condition in ext/gd/libgd/gdkanji.c).', + 'raw' => 'Fixed bug #66555 (Always false condition in ext/gd/libgd/gdkanji.c). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68712 (suspicious if-else statements).', + 'raw' => 'Fixed bug #68712 (suspicious if-else statements). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70315 (500 Server Error but page is fully rendered).', + 'raw' => 'Fixed bug #70315 (500 Server Error but page is fully rendered). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72596 (imagetypes function won\'t advertise WEBP support).', + 'raw' => 'Fixed bug #72596 (imagetypes function won\'t advertise WEBP support). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72604 (imagearc() ignores thickness for full arcs).', + 'raw' => 'Fixed bug #72604 (imagearc() ignores thickness for full arcs). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72697 (select_colors write out-of-bounds).', + 'raw' => 'Fixed bug #72697 (select_colors write out-of-bounds). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles).', + 'raw' => 'Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72730 (imagegammacorrect allows arbitrary write access).', + 'raw' => 'Fixed bug #72730 (imagegammacorrect allows arbitrary write access). (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72494 (imagecropauto out-of-bounds access).', + 'raw' => 'Fixed bug #72494 (imagecropauto out-of-bounds access). (Fernando, Pierre, cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names).', + 'raw' => 'Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width).', + 'raw' => 'Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width).', + 'raw' => 'Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72694 (mb_ereg_search_setpos does not accept a string\'s last position).', + 'raw' => 'Fixed bug #72694 (mb_ereg_search_setpos does not accept a string\'s last position). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error).', + 'raw' => 'Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error). (ju1ius)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed invalid handle error with Implicit Result Sets.', + 'raw' => 'Fixed invalid handle error with Implicit Result Sets. (Chris Jones)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72688 (preg_match missing group names in matches).', + 'raw' => 'Fixed bug #72688 (preg_match missing group names in matches). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70313 (PDO statement fails to throw exception).', + 'raw' => 'Fixed bug #70313 (PDO statement fails to throw exception). (Matteo)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72222 (ReflectionClass::export doesn\'t handle array constants).', + 'raw' => 'Fixed bug #72222 (ReflectionClass::export doesn\'t handle array constants). (Nikita Nefedov)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation).', + 'raw' => 'Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation). (djodjo at gmail dot com)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars).', + 'raw' => 'Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72836 (integer overflow in base64_decode).', + 'raw' => 'Fixed bug #72836 (integer overflow in base64_decode). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72848 (integer overflow in quoted_printable_encode).', + 'raw' => 'Fixed bug #72848 (integer overflow in quoted_printable_encode). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72849 (integer overflow in urlencode).', + 'raw' => 'Fixed bug #72849 (integer overflow in urlencode). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72850 (integer overflow in php_uuencode).', + 'raw' => 'Fixed bug #72850 (integer overflow in php_uuencode). (Stas)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41021 (Problems with the ftps wrapper).', + 'raw' => 'Fixed bug #41021 (Problems with the ftps wrapper). (vhuk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54431 (opendir() does not work with ftps:// wrapper).', + 'raw' => 'Fixed bug #54431 (opendir() does not work with ftps:// wrapper). (vhuk)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories).', + 'raw' => 'Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories). (vhuk)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5).', + 'raw' => 'Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5). (vhuk)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack).', + 'raw' => 'Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack). (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72122 (IteratorIterator breaks \'@\' error suppression).', + 'raw' => 'Fixed bug #72122 (IteratorIterator breaks \'@\' error suppression). (kinglozzer)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character).', + 'raw' => 'Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72684 (AppendIterator segfault with closed generator).', + 'raw' => 'Fixed bug #72684 (AppendIterator segfault with closed generator). (Pierrick)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #72653 (SQLite should allow opening with empty filename).', + 'raw' => 'Implemented FR #72653 (SQLite should allow opening with empty filename). (cmb)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()).', + 'raw' => 'Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()). (Taoguang Chen)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72749 (wddx_deserialize allows illegal memory access)', + 'raw' => 'Fixed bug #72749 (wddx_deserialize allows illegal memory access) (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72750 (wddx_deserialize null dereference).', + 'raw' => 'Fixed bug #72750 (wddx_deserialize null dereference). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72790 (wddx_deserialize null dereference with invalid xml).', + 'raw' => 'Fixed bug #72790 (wddx_deserialize null dereference with invalid xml). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element).', + 'raw' => 'Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element). (Stas)', + ), + ), + ), + ), + '5.6.24' => + array ( + 'date' => '21 Jul 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71936 (Segmentation fault destroying HTTP_RAW_POST_DATA).', + 'raw' => 'Fixed bug #71936 (Segmentation fault destroying HTTP_RAW_POST_DATA). (mike dot laspina at gmail dot com, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72496 (Cannot declare public method with signature incompatible with parent private method).', + 'raw' => 'Fixed bug #72496 (Cannot declare public method with signature incompatible with parent private method). (Pedro Magalhães)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72138 (Integer Overflow in Length of String-typed ZVAL).', + 'raw' => 'Fixed bug #72138 (Integer Overflow in Length of String-typed ZVAL). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex).', + 'raw' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex). (loianhtuan at gmail dot com)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization).', + 'raw' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization). (taoguangchen at icloud dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications). (CVE-2016-5385)', + 'raw' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications). (CVE-2016-5385) (Stas)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72447 (Type Confusion in php_bz2_filter_create()). .', + 'raw' => 'Fixed bug #72447 (Type Confusion in php_bz2_filter_create()). (gogil at stealien dot com).', + ), + 1 => + array ( + 'message' => 'Fixed bug #72613 (Inadequate error handling in bzread()).', + 'raw' => 'Fixed bug #72613 (Inadequate error handling in bzread()). (Stas)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66836 (DateTime::createFromFormat \'U\' with pre 1970 dates fails parsing).', + 'raw' => 'Fixed bug #66836 (DateTime::createFromFormat \'U\' with pre 1970 dates fails parsing). (derick)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50845 (exif_read_data() returns corrupted exif headers).', + 'raw' => 'Fixed bug #50845 (exif_read_data() returns corrupted exif headers). (Bartosz Dziewoński)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment).', + 'raw' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #43475 (Thick styled lines have scrambled patterns).', + 'raw' => 'Fixed bug #43475 (Thick styled lines have scrambled patterns). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #53640 (XBM images require width to be multiple of 8).', + 'raw' => 'Fixed bug #53640 (XBM images require width to be multiple of 8). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64641 (imagefilledpolygon doesn\'t draw horizontal line).', + 'raw' => 'Fixed bug #64641 (imagefilledpolygon doesn\'t draw horizontal line). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access).', + 'raw' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access). (Pierre)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72519 (imagegif/output out-of-bounds access).', + 'raw' => 'Fixed bug #72519 (imagegif/output out-of-bounds access). (Pierre)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). (CVE-2016-6207)', + 'raw' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). (CVE-2016-6207) (Pierre)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access).', + 'raw' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access). (Stas)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71915 (openssl_random_pseudo_bytes is not fork-safe).', + 'raw' => 'Fixed bug #71915 (openssl_random_pseudo_bytes is not fork-safe). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72336 (openssl_pkey_new does not fail for invalid DSA params).', + 'raw' => 'Fixed bug #72336 (openssl_pkey_new does not fail for invalid DSA params). (Jakub Zelenka)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()).', + 'raw' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()). (taoguangchen at icloud dot com)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55701 (GlobIterator throws LogicException).', + 'raw' => 'Fixed bug #55701 (GlobIterator throws LogicException). (Valentin VĂLCIU)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70628 (Clearing bindings on an SQLite3 statement doesn\'t work).', + 'raw' => 'Fixed bug #70628 (Clearing bindings on an SQLite3 statement doesn\'t work). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault).', + 'raw' => 'Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault). (Laruence)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c).', + 'raw' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c). (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener).', + 'raw' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener). (loianhtuan at gmail dot com)', + ), + ), + ), + ), + '5.6.23' => + array ( + 'date' => '23 Jun 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72268 (Integer Overflow in nl2br()).', + 'raw' => 'Fixed bug #72268 (Integer Overflow in nl2br()). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()).', + 'raw' => 'Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72400 (Integer Overflow in addcslashes/addslashes).', + 'raw' => 'Fixed bug #72400 (Integer Overflow in addcslashes/addslashes). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL).', + 'raw' => 'Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL). (Stas)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week).', + 'raw' => 'Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week). (Derick)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874)', + 'raw' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72298 (pass2_no_dither out-of-bounds access).', + 'raw' => 'Fixed bug #72298 (pass2_no_dither out-of-bounds access). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72337 (invalid dimensions can lead to crash).', + 'raw' => 'Fixed bug #72337 (invalid dimensions can lead to crash). (Pierre)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow). (CVE-2016-5766)', + 'raw' => 'Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow). (CVE-2016-5766) (Pierre)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert).', + 'raw' => 'Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow). (CVE-2016-5767)', + 'raw' => 'Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow). (CVE-2016-5767) (Pierre)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70484 (selectordinal doesn\'t work with named parameters).', + 'raw' => 'Fixed bug #70484 (selectordinal doesn\'t work with named parameters). (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). (CVE-2016-5768)', + 'raw' => 'Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). (CVE-2016-5768) (Stas)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769)', + 'raw' => 'Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769) (Stas)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72140 (segfault after calling ERR_free_strings()).', + 'raw' => 'Fixed bug #72140 (segfault after calling ERR_free_strings()). (Jakub Zelenka)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72321 (invalid free in phar_extract_file()).', + 'raw' => 'Fixed bug #72321 (invalid free in phar_extract_file()). (hji at dyntopia dot com)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72262 (int/size_t confusion in SplFileObject::fread). (CVE-2016-5770)', + 'raw' => 'Fixed bug #72262 (int/size_t confusion in SplFileObject::fread). (CVE-2016-5770) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72433 (Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5771)', + 'raw' => 'Fixed bug #72433 (Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5771) (Dmitry)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72340 (Double Free Courruption in wddx_deserialize). (CVE-2016-5772)', + 'raw' => 'Fixed bug #72340 (Double Free Courruption in wddx_deserialize). (CVE-2016-5772) (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5773)', + 'raw' => 'Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5773) (Dmitry)', + ), + ), + ), + ), + '5.6.22' => + array ( + 'date' => '26 May 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72172 (zend_hex_strtod should not use strlen).', + 'raw' => 'Fixed bug #72172 (zend_hex_strtod should not use strlen). (bwitz at hotmail dot com )', + ), + 1 => + array ( + 'message' => 'Fixed bug #72114 (Integer underflow / arbitrary null write in fread/gzread). (CVE-2016-5096)', + 'raw' => 'Fixed bug #72114 (Integer underflow / arbitrary null write in fread/gzread). (CVE-2016-5096) (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72135 (Integer Overflow in php_html_entities). (CVE-2016-5094)', + 'raw' => 'Fixed bug #72135 (Integer Overflow in php_html_entities). (CVE-2016-5094) (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72227 (imagescale out-of-bounds read). (CVE-2013-7456)', + 'raw' => 'Fixed bug #72227 (imagescale out-of-bounds read). (CVE-2013-7456) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64524 (Add intl.use_exceptions to php.ini-*).', + 'raw' => 'Fixed bug #64524 (Add intl.use_exceptions to php.ini-*). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72241 (get_icu_value_internal out-of-bounds read). (CVE-2016-5093)', + 'raw' => 'Fixed bug #72241 (get_icu_value_internal out-of-bounds read). (CVE-2016-5093) (Stas)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72151 (mysqli_fetch_object changed behaviour).', + 'raw' => 'Fixed bug #72151 (mysqli_fetch_object changed behaviour). (Anatol)', + ), + ), + ), + ), + '5.6.21' => + array ( + 'date' => '28 Apr 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69537 (__debugInfo with empty string for key gives error).', + 'raw' => 'Fixed bug #69537 (__debugInfo with empty string for key gives error). (krakjoe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71841 (EG(error_zval) is not handled well).', + 'raw' => 'Fixed bug #71841 (EG(error_zval) is not handled well). (Laruence)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72093 (bcpowmod accepts negative scale and corrupts _one_ definition).', + 'raw' => 'Fixed bug #72093 (bcpowmod accepts negative scale and corrupts _one_ definition). (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71831 (CURLOPT_NOPROXY applied as long instead of string).', + 'raw' => 'Fixed bug #71831 (CURLOPT_NOPROXY applied as long instead of string). (Michael Sierks)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71889 (DateInterval::format Segmentation fault).', + 'raw' => 'Fixed bug #71889 (DateInterval::format Segmentation fault). (Thomas Punt)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72094 (Out of bounds heap read access in exif header processing).', + 'raw' => 'Fixed bug #72094 (Out of bounds heap read access in exif header processing). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71952 (Corruption inside imageaffinematrixget).', + 'raw' => 'Fixed bug #71952 (Corruption inside imageaffinematrixget). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074)', + 'raw' => 'Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074) (Stas)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative offset).', + 'raw' => 'Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative offset). (Stas)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71422 (Fix ORA-01438: value larger than specified precision allowed for this column).', + 'raw' => 'Fixed bug #71422 (Fix ORA-01438: value larger than specified precision allowed for this column). (Chris Jones)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63171 (Script hangs after max_execution_time).', + 'raw' => 'Fixed bug #63171 (Script hangs after max_execution_time). (Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER).', + 'raw' => 'Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER). (Laruence)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52098 (Own PDOStatement implementation ignore __call()).', + 'raw' => 'Fixed bug #52098 (Own PDOStatement implementation ignore __call()). (Daniel Kalaspuffar, Julien)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71447 (Quotes inside comments not properly handled).', + 'raw' => 'Fixed bug #71447 (Quotes inside comments not properly handled). (Matteo)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71820 (pg_fetch_object binds parameters before call constructor).', + 'raw' => 'Fixed bug #71820 (pg_fetch_object binds parameters before call constructor). (Anatol)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67582 (Cloned SplObjectStorage with overwritten getHash fails offsetExists()).', + 'raw' => 'Fixed bug #67582 (Cloned SplObjectStorage with overwritten getHash fails offsetExists()). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71840 (Unserialize accepts wrongly data).', + 'raw' => 'Fixed bug #71840 (Unserialize accepts wrongly data). (Ryat, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67512 (php_crypt() crashes if crypt_r() does not exist or _REENTRANT is not defined).', + 'raw' => 'Fixed bug #67512 (php_crypt() crashes if crypt_r() does not exist or _REENTRANT is not defined). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72099 (xml_parse_into_struct segmentation fault).', + 'raw' => 'Fixed bug #72099 (xml_parse_into_struct segmentation fault). (Stas)', + ), + ), + ), + ), + '5.6.20' => + array ( + 'date' => '31 Mar 2016', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69953 (Support MKCALENDAR request method).', + 'raw' => 'Fixed bug #69953 (Support MKCALENDAR request method). (Christoph)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71596 (Segmentation fault on ZTS with date function (setlocale)).', + 'raw' => 'Fixed bug #71596 (Segmentation fault on ZTS with date function (setlocale)). (Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71694 (Support constant CURLM_ADDED_ALREADY).', + 'raw' => 'Fixed bug #71694 (Support constant CURLM_ADDED_ALREADY). (mpyw)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71635 (DatePeriod::getEndDate segfault).', + 'raw' => 'Fixed bug #71635 (DatePeriod::getEndDate segfault). (Thomas Punt)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file). (CVE-2015-8865)', + 'raw' => 'Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file). (CVE-2015-8865) (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut). (CVE-2016-4073)', + 'raw' => 'Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut). (CVE-2016-4073) (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47803, #69526 (Executing prepared statements is succesfull only for the first two statements).', + 'raw' => 'Fixed bug #47803, #69526 (Executing prepared statements is succesfull only for the first two statements). (einavitamar at gmail dot com, Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71860 (Invalid memory write in phar on filename with \\0 in name). (CVE-2016-4072)', + 'raw' => 'Fixed bug #71860 (Invalid memory write in phar on filename with \\0 in name). (CVE-2016-4072) (Stas)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54648 (PDO::MSSQL forces format of datetime fields).', + 'raw' => 'Fixed bug #54648 (PDO::MSSQL forces format of datetime fields). (steven dot lambeth at gmx dot de, Anatol)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71625 (Crash in php7.dll with bad phar filename).', + 'raw' => 'Fixed bug #71625 (Crash in php7.dll with bad phar filename). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71504 (Parsing of tar file with duplicate filenames causes memory leak).', + 'raw' => 'Fixed bug #71504 (Parsing of tar file with duplicate filenames causes memory leak). (Jos Elstgeest)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71704 (php_snmp_error() Format String Vulnerability). (CVE-2016-4071)', + 'raw' => 'Fixed bug #71704 (php_snmp_error() Format String Vulnerability). (CVE-2016-4071) (andrew at jmpesp dot org)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070)', + 'raw' => 'Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070) (taoguangchen at icloud dot com, Stas)', + ), + ), + ), + ), + '5.6.19' => + array ( + 'date' => '03 Mar 2016', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71559 (Built-in HTTP server, we can download file in web by bug).', + 'raw' => 'Fixed bug #71559 (Built-in HTTP server, we can download file in web by bug). (Johannes, Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_exec).', + 'raw' => 'Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_exec). (Laruence)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68078 (Datetime comparisons ignore microseconds).', + 'raw' => 'Fixed bug #68078 (Datetime comparisons ignore microseconds). (Willem-Jan Zijderveld)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71525 (Calls to date_modify will mutate timelib_rel_time, causing date_date_set issues).', + 'raw' => 'Fixed bug #71525 (Calls to date_modify will mutate timelib_rel_time, causing date_date_set issues). (Sean DuBois)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71434 (finfo throws notice for specific python file).', + 'raw' => 'Fixed bug #71434 (finfo throws notice for specific python file). (Laruence)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62172 (FPM not working with Apache httpd 2.4 balancer/fcgi setup).', + 'raw' => 'Fixed bug #62172 (FPM not working with Apache httpd 2.4 balancer/fcgi setup). (Matt Haught, Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache).', + 'raw' => 'Fixed bug #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache). (Yussuf Khalil)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71569 (#70389 fix causes segmentation fault).', + 'raw' => 'Fixed bug #71569 (#70389 fix causes segmentation fault). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71498 (Out-of-Bound Read in phar_parse_zipfile()).', + 'raw' => 'Fixed bug #71498 (Out-of-Bound Read in phar_parse_zipfile()). (Stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70720 (strip_tags improper php code parsing).', + 'raw' => 'Fixed bug #70720 (strip_tags improper php code parsing). (Julien)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71587 (Use-After-Free / Double-Free in WDDX Deserialize).', + 'raw' => 'Fixed bug #71587 (Use-After-Free / Double-Free in WDDX Deserialize). (Stas)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71540 (NULL pointer dereference in xsl_ext_function_php()).', + 'raw' => 'Fixed bug #71540 (NULL pointer dereference in xsl_ext_function_php()). (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71561 (NULL pointer dereference in Zip::ExtractTo).', + 'raw' => 'Fixed bug #71561 (NULL pointer dereference in Zip::ExtractTo). (Laruence)', + ), + ), + ), + ), + '5.6.18' => + array ( + 'date' => '04 Feb 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71039 (exec functions ignore length but look for NULL termination).', + 'raw' => 'Fixed bug #71039 (exec functions ignore length but look for NULL termination). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71089 (No check to duplicate zend_extension).', + 'raw' => 'Fixed bug #71089 (No check to duplicate zend_extension). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71201 (round() segfault on 64-bit builds).', + 'raw' => 'Fixed bug #71201 (round() segfault on 64-bit builds). (Anatol)', + ), + 3 => + array ( + 'message' => 'Added support for new HTTP 451 code.', + 'raw' => 'Added support for new HTTP 451 code. (Julien)', + ), + 4 => + array ( + 'message' => 'Fixed bug #71273 (A wrong ext directory setup in php.ini leads to crash).', + 'raw' => 'Fixed bug #71273 (A wrong ext directory setup in php.ini leads to crash). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input).', + 'raw' => 'Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input). (Leo Gaspard)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71459 (Integer overflow in iptcembed()).', + 'raw' => 'Fixed bug #71459 (Integer overflow in iptcembed()). (Stas)', + ), + ), + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fix >2G Content-Length headers in apache2handler.', + 'raw' => 'Fix >2G Content-Length headers in apache2handler. (Adam Harvey)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #55651 (Option to ignore the returned FTP PASV address).', + 'raw' => 'Implemented FR #55651 (Option to ignore the returned FTP PASV address). (abrender at elitehosts dot com)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71127 (Define in auto_prepend_file is overwrite).', + 'raw' => 'Fixed bug #71127 (Define in auto_prepend_file is overwrite). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71024 (Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server).', + 'raw' => 'Fixed bug #71024 (Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server). (Anatol)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgraded bundled PCRE library to 8.38.', + 'raw' => 'Upgraded bundled PCRE library to 8.38. (CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342)', + 'raw' => 'Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). (CVE-2016-4343)', + 'raw' => 'Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). (CVE-2016-4343) (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()).', + 'raw' => 'Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #71488 (Stack overflow when decompressing tar archives). (CVE-2016-2554)', + 'raw' => 'Fixed bug #71488 (Stack overflow when decompressing tar archives). (CVE-2016-2554) (Stas)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69111 (Crash in SessionHandler::read()).', + 'raw' => 'Fixed bug #69111 (Crash in SessionHandler::read()). (Anatol)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70979 (crash with bad soap request).', + 'raw' => 'Fixed bug #70979 (crash with bad soap request). (Anatol)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading).', + 'raw' => 'Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading). (Laruence)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization).', + 'raw' => 'Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization). (Stas)', + ), + ), + ), + ), + '5.6.17' => + array ( + 'date' => '07 Jan 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66909 (configure fails utf8_to_mutf7 test).', + 'raw' => 'Fixed bug #66909 (configure fails utf8_to_mutf7 test). (Michael Orlitzky)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70958 (Invalid opcode while using ::class as trait method paramater default value).', + 'raw' => 'Fixed bug #70958 (Invalid opcode while using ::class as trait method paramater default value). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70957 (self::class can not be resolved with reflection for abstract class).', + 'raw' => 'Fixed bug #70957 (self::class can not be resolved with reflection for abstract class). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70944 (try{ } finally{} can create infinite chains of exceptions).', + 'raw' => 'Fixed bug #70944 (try{ } finally{} can create infinite chains of exceptions). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions).', + 'raw' => 'Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions). (Lior Kaplan)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70755 (fpm_log.c memory leak and buffer overflow).', + 'raw' => 'Fixed bug #70755 (fpm_log.c memory leak and buffer overflow). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds). (CVE-2016-1903)', + 'raw' => 'Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds). (CVE-2016-1903) (emmanuel dot law at gmail dot com)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68077 (LOAD DATA LOCAL INFILE / open_basedir restriction).', + 'raw' => 'Fixed bug #68077 (LOAD DATA LOCAL INFILE / open_basedir restriction). (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70900 (SoapClient systematic out of memory error).', + 'raw' => 'Fixed bug #70900 (SoapClient systematic out of memory error). (Dmitry)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number of parameters).', + 'raw' => 'Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number of parameters). (Laruence)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60052 (Integer returned as a 64bit integer on X64_86).', + 'raw' => 'Fixed bug #60052 (Integer returned as a 64bit integer on X64_86). (Mariuz)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization).', + 'raw' => 'Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization). (taoguangchen at icloud dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability).', + 'raw' => 'Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability). (taoguangchen at icloud dot com)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker()).', + 'raw' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker()). (Julien)', + ), + ), + ), + ), + '5.6.16' => + array ( + 'date' => '26 Nov 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70828 (php-fpm 5.6 with opcache crashes when referencing a non-existent constant).', + 'raw' => 'Fixed bug #70828 (php-fpm 5.6 with opcache crashes when referencing a non-existent constant). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l).', + 'raw' => 'Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l). (Laruence)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68344 (MySQLi does not provide way to disable peer certificate validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT connection flag.', + 'raw' => 'Fixed bug #68344 (MySQLi does not provide way to disable peer certificate validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT connection flag. (Andrey)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68298 (OCI int overflow).', + 'raw' => 'Fixed bug #68298 (OCI int overflow). (Senthil)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69757 (Segmentation fault on nextRowset).', + 'raw' => 'Fixed bug #69757 (Segmentation fault on nextRowset). (miracle at rpz dot name)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace attribute).', + 'raw' => 'Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace attribute). (Matteo)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70852 (Segfault getting NULL offset of an ArrayObject).', + 'raw' => 'Fixed bug #70852 (Segfault getting NULL offset of an ArrayObject). (Reeze Xia)', + ), + ), + ), + ), + '5.6.15' => + array ( + 'date' => '29 Oct 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70681 (Segfault when binding $this of internal instance method to null).', + 'raw' => 'Fixed bug #70681 (Segfault when binding $this of internal instance method to null). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this).', + 'raw' => 'Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this). (Nikita)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70619 (DateTimeImmutable segfault).', + 'raw' => 'Fixed bug #70619 (DateTimeImmutable segfault). (Laruence)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70625 (mcrypt_encrypt() won\'t return data when no IV was specified under RC4).', + 'raw' => 'Fixed bug #70625 (mcrypt_encrypt() won\'t return data when no IV was specified under RC4). (Nikita)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server).', + 'raw' => 'Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server). (Andrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70572 segfault in mysqlnd_connect.', + 'raw' => 'Fixed bug #70572 segfault in mysqlnd_connect. (Andrey, Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70632 (Third one of segfault in gc_remove_from_buffer).', + 'raw' => 'Fixed bug #70632 (Third one of segfault in gc_remove_from_buffer). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70631 (Another Segfault in gc_remove_from_buffer()).', + 'raw' => 'Fixed bug #70631 (Another Segfault in gc_remove_from_buffer()). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70601 (Segfault in gc_remove_from_buffer()).', + 'raw' => 'Fixed bug #70601 (Segfault in gc_remove_from_buffer()). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed compatibility with Windows 10 (see also bug #70652).', + 'raw' => 'Fixed compatibility with Windows 10 (see also bug #70652). (Anatol)', + ), + ), + ), + ), + '5.6.14' => + array ( + 'date' => '01 Oct 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70370 (Bundled libtool.m4 doesn\'t handle FreeBSD 10 when building extensions).', + 'raw' => 'Fixed bug #70370 (Bundled libtool.m4 doesn\'t handle FreeBSD 10 when building extensions). (Adam)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68291 (404 on urls with \'+\').', + 'raw' => 'Fixed bug #68291 (404 on urls with \'+\'). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding).', + 'raw' => 'Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding). (cmb)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70465 (Bug in ldap_search() modifies LDAP_OPT_TIMELIMIT/DEREF\'s values).', + 'raw' => 'Fixed bug #70465 (Bug in ldap_search() modifies LDAP_OPT_TIMELIMIT/DEREF\'s values). (Tyson Andre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69574 (ldap timeouts not enforced).', + 'raw' => 'Fixed bug #69574 (ldap timeouts not enforced). (Côme Bernigaud)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70456 (mysqlnd doesn\'t activate TCP keep-alive when connecting to a server).', + 'raw' => 'Fixed bug #70456 (mysqlnd doesn\'t activate TCP keep-alive when connecting to a server). (Sergei Turchanov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55259 (openssl extension does not get the DH parameters from DH key resource).', + 'raw' => 'Fixed bug #55259 (openssl extension does not get the DH parameters from DH key resource). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70395 (Missing ARG_INFO for openssl_seal()).', + 'raw' => 'Fixed bug #70395 (Missing ARG_INFO for openssl_seal()). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60632 (openssl_seal fails with AES).', + 'raw' => 'Fixed bug #60632 (openssl_seal fails with AES). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68312 (Lookup for openssl.cnf causes a message box).', + 'raw' => 'Fixed bug #68312 (Lookup for openssl.cnf causes a message box). (Anatol)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70389 (PDO constructor changes unrelated variables).', + 'raw' => 'Fixed bug #70389 (PDO constructor changes unrelated variables). (Laruence)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()). (CVE-2015-7803)', + 'raw' => 'Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()). (CVE-2015-7803) (Stas)', + ), + 1 => + array ( + 'message' => 'FIxed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/"). (CVE-2015-7804)', + 'raw' => 'FIxed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/"). (CVE-2015-7804) (Stas)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix phpdbg_break_next() sometimes not breaking.', + 'raw' => 'Fix phpdbg_break_next() sometimes not breaking. (Bob)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67131 (setcookie() conditional for empty values not met).', + 'raw' => 'Fixed bug #67131 (setcookie() conditional for empty values not met). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70361 (HTTP stream wrapper doesn\'t close keep-alive connections).', + 'raw' => 'Fixed bug #70361 (HTTP stream wrapper doesn\'t close keep-alive connections). (Niklas Keller)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70322 (ZipArchive::close() doesn\'t indicate errors).', + 'raw' => 'Fixed bug #70322 (ZipArchive::close() doesn\'t indicate errors). (cmb)', + ), + ), + ), + ), + '5.6.13' => + array ( + 'date' => '03 Sep 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69900 (Too long timeout on pipes).', + 'raw' => 'Fixed bug #69900 (Too long timeout on pipes). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69487 (SAPI may truncate POST data).', + 'raw' => 'Fixed bug #69487 (SAPI may truncate POST data). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70198 (Checking liveness does not work as expected).', + 'raw' => 'Fixed bug #70198 (Checking liveness does not work as expected). (Shafreeck Sea, Anatol Belski)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70172 (Use After Free Vulnerability in unserialize()). (CVE-2015-6834)', + 'raw' => 'Fixed bug #70172 (Use After Free Vulnerability in unserialize()). (CVE-2015-6834) (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70219 (Use after free vulnerability in session deserializer). (CVE-2015-6835)', + 'raw' => 'Fixed bug #70219 (Use after free vulnerability in session deserializer). (CVE-2015-6835) (taoguangchen at icloud dot com)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE).', + 'raw' => 'Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE). (wusuopu, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70264 (CLI server directory traversal).', + 'raw' => 'Fixed bug #70264 (CLI server directory traversal). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to be optional).', + 'raw' => 'Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to be optional). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte).', + 'raw' => 'Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes).', + 'raw' => 'Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes). (Stas)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70284 (Use after free vulnerability in unserialize() with GMP).', + 'raw' => 'Fixed bug #70284 (Use after free vulnerability in unserialize() with GMP). (stas)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70312 (HAVAL gives wrong hashes in specific cases).', + 'raw' => 'Fixed bug #70312 (HAVAL gives wrong hashes in specific cases). (letsgolee at naver dot com)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69833 (mcrypt fd caching not working).', + 'raw' => 'Fixed bug #69833 (mcrypt fd caching not working). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled).', + 'raw' => 'Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled). (Dmitry, Laruence)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70232 (Incorrect bump-along behavior with \\K and empty string match).', + 'raw' => 'Fixed bug #70232 (Incorrect bump-along behavior with \\K and empty string match). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions).', + 'raw' => 'Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions). (Anatol Belski)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE). (CVE-2015-6836)', + 'raw' => 'Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE). (CVE-2015-6836) (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70290 (Null pointer deref (segfault) in spl_autoload via ob_start).', + 'raw' => 'Fixed bug #70290 (Null pointer deref (segfault) in spl_autoload via ob_start). (hugh at allthethings dot co dot nz)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70303 (Incorrect constructor reflection for ArrayObject).', + 'raw' => 'Fixed bug #70303 (Incorrect constructor reflection for ArrayObject). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6834)', + 'raw' => 'Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6834) (taoguangchen at icloud dot com)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6834)', + 'raw' => 'Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6834) (taoguangchen at icloud dot com)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70052 (getimagesize() fails for very large and very small WBMP).', + 'raw' => 'Fixed bug #70052 (getimagesize() fails for very large and very small WBMP). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70157 (parse_ini_string() segmentation fault with INI_SCANNER_TYPED).', + 'raw' => 'Fixed bug #70157 (parse_ini_string() segmentation fault with INI_SCANNER_TYPED). (Tjerk)', + ), + ), + 'xslt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69782 (NULL pointer dereference). (CVE-2015-6837, CVE-2015-6838)', + 'raw' => 'Fixed bug #69782 (NULL pointer dereference). (CVE-2015-6837, CVE-2015-6838) (Stas)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories). (CVE-2014-9767)', + 'raw' => 'Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories). (CVE-2014-9767) (neal at fb dot com)', + ), + ), + ), + ), + '5.6.12' => + array ( + 'date' => '06 Aug 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70012 (Exception lost with nested finally block).', + 'raw' => 'Fixed bug #70012 (Exception lost with nested finally block). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70002 (TS issues with temporary dir handling).', + 'raw' => 'Fixed bug #70002 (TS issues with temporary dir handling). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls).', + 'raw' => 'Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).', + 'raw' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref).', + 'raw' => 'Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref). (Stas)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL).', + 'raw' => 'Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64878 (304 responses return Content-Type header).', + 'raw' => 'Fixed bug #64878 (304 responses return Content-Type header). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53156 (imagerectangle problem with point ordering).', + 'raw' => 'Fixed bug #53156 (imagerectangle problem with point ordering). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874)', + 'raw' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70102 (imagecreatefromwebm() shifts colors).', + 'raw' => 'Fixed bug #70102 (imagecreatefromwebm() shifts colors). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66590 (imagewebp() doesn\'t pad to even length).', + 'raw' => 'Fixed bug #66590 (imagewebp() doesn\'t pad to even length). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px).', + 'raw' => 'Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory).', + 'raw' => 'Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69024 (imagescale segfault with palette based image).', + 'raw' => 'Fixed bug #69024 (imagescale segfault with palette based image). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #53154 (Zero-height rectangle has whiskers).', + 'raw' => 'Fixed bug #53154 (Zero-height rectangle has whiskers). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #67447 (imagecrop() add a black line when cropping).', + 'raw' => 'Fixed bug #67447 (imagecrop() add a black line when cropping). (cmb)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68714 (copy \'n paste error).', + 'raw' => 'Fixed bug #68714 (copy \'n paste error). (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug #66339 (PHP segfaults in imagexbm).', + 'raw' => 'Fixed bug #66339 (PHP segfaults in imagexbm). (cmb)', + ), + 11 => + array ( + 'message' => 'Fixed bug #70047 (gd_info() doesn\'t report WebP support).', + 'raw' => 'Fixed bug #70047 (gd_info() doesn\'t report WebP support). (cmb)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined columns). (CVE-2015-8879)', + 'raw' => 'Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined columns). (CVE-2015-8879) (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69882 (OpenSSL error "key values mismatch" after openssl_pkcs12_read with extra cert).', + 'raw' => 'Fixed bug #69882 (OpenSSL error "key values mismatch" after openssl_pkcs12_read with extra cert). (Tomasz Sawicki)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure). (CVE-2015-8867)', + 'raw' => 'Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure). (CVE-2015-8867) (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Improved fix for bug #69441.', + 'raw' => 'Improved fix for bug #69441. (Anatol Belski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory). (CVE-2015-6833)', + 'raw' => 'Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory). (CVE-2015-6833) (Anatol Belski)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions).', + 'raw' => 'Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions). (Stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items). (CVE-2015-6832)', + 'raw' => 'Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items). (CVE-2015-6832) (sean.heelan)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject). (CVE-2015-6831)', + 'raw' => 'Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject). (CVE-2015-6831) (taoguangchen at icloud dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6831)', + 'raw' => 'Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage). (CVE-2015-6831) (taoguangchen at icloud dot com)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6831)', + 'raw' => 'Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList). (CVE-2015-6831) (taoguangchen at icloud dot com)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes).', + 'raw' => 'Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes). (cmb)', + ), + ), + ), + ), + '5.6.11' => + array ( + 'date' => '09 Jul 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69768 (escapeshell*() doesn\'t cater to !).', + 'raw' => 'Fixed bug #69768 (escapeshell*() doesn\'t cater to !). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69703 (Use __builtin_clzl on PowerPC).', + 'raw' => 'Fixed bug #69703 (Use __builtin_clzl on PowerPC). (dja at axtens dot net, Kalle)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69732 (can induce segmentation fault with basic php code).', + 'raw' => 'Fixed bug #69732 (can induce segmentation fault with basic php code). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69642 (Windows 10 reported as Windows 8).', + 'raw' => 'Fixed bug #69642 (Windows 10 reported as Windows 8). (Christian Wenz, Anatol Belski)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault).', + 'raw' => 'Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault). (Christoph M. Becker)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business").', + 'raw' => 'Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business"). (Christian Wenz)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69740 (finally in generator (yield) swallows exception in iteration).', + 'raw' => 'Fixed bug #69740 (finally in generator (yield) swallows exception in iteration). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69835 (phpinfo() does not report many Windows SKUs).', + 'raw' => 'Fixed bug #69835 (phpinfo() does not report many Windows SKUs). (Christian Wenz)', + ), + 8 => + array ( + 'message' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).', + 'raw' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation). (Nikita)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69874 (Can\'t set empty additional_headers for mail()), regression from fix to bug #68776.', + 'raw' => 'Fixed bug #69874 (Can\'t set empty additional_headers for mail()), regression from fix to bug #68776. (Yasuo)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61221 (imagegammacorrect function loses alpha channel).', + 'raw' => 'Fixed bug #61221 (imagegammacorrect function loses alpha channel). (cmb)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69803 (gmp_random_range() modifies second parameter if GMP number).', + 'raw' => 'Fixed bug #69803 (gmp_random_range() modifies second parameter if GMP number). (Nikita)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69669 (mysqlnd is vulnerable to BACKRONYM). (CVE-2015-3152)', + 'raw' => 'Fixed bug #69669 (mysqlnd is vulnerable to BACKRONYM). (CVE-2015-3152) (Andrey)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #53823 (preg_replace: * qualifier on unicode replace garbles the string).', + 'raw' => 'Fixed Bug #53823 (preg_replace: * qualifier on unicode replace garbles the string). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69864 (Segfault in preg_replace_callback)', + 'raw' => 'Fixed bug #69864 (Segfault in preg_replace_callback) (cmb, ab)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u).', + 'raw' => 'Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u). (Philip Hofstetter)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69362 (PDO-pgsql fails to connect if password contains a leading single quote).', + 'raw' => 'Fixed bug #69362 (PDO-pgsql fails to connect if password contains a leading single quote). (Matteo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69344 (PDO PgSQL Incorrect binding numeric array with gaps).', + 'raw' => 'Fixed bug #69344 (PDO PgSQL Incorrect binding numeric array with gaps). (Matteo)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69958 (Segfault in Phar::convertToData on invalid file). (CVE-2015-5589)', + 'raw' => 'Fixed bug #69958 (Segfault in Phar::convertToData on invalid file). (CVE-2015-5589) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69923 (Buffer overflow and stack smashing error in phar_fix_filepath). (CVE-2015-5590)', + 'raw' => 'Fixed bug #69923 (Buffer overflow and stack smashing error in phar_fix_filepath). (CVE-2015-5590) (Stas)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Refactored the fix for bug #66084 (simplexml_load_string() mangles empty node name).', + 'raw' => 'Refactored the fix for bug #66084 (simplexml_load_string() mangles empty node name). (Christoph Michael Becker)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69737 (Segfault when SplMinHeap::compare produces fatal error).', + 'raw' => 'Fixed bug #69737 (Segfault when SplMinHeap::compare produces fatal error). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67805 (SplFileObject setMaxLineLength). .', + 'raw' => 'Fixed bug #67805 (SplFileObject setMaxLineLength). (Willian Gustavo Veiga).', + ), + 2 => + array ( + 'message' => 'Fixed bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()).', + 'raw' => 'Fixed bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()). (Laruence)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()).', + 'raw' => 'Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()). (Laruence)', + ), + ), + ), + ), + '5.6.10' => + array ( + 'date' => '11 Jun 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66048 (temp. directory is cached during multiple requests).', + 'raw' => 'Fixed bug #66048 (temp. directory is cached during multiple requests). (Julien)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69566 (Conditional jump or move depends on uninitialised value in extension trait).', + 'raw' => 'Fixed bug #69566 (Conditional jump or move depends on uninitialised value in extension trait). (jbboehr at gmail dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69599 (Strange generator+exception+variadic crash).', + 'raw' => 'Fixed bug #69599 (Strange generator+exception+variadic crash). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69628 (complex GLOB_BRACE fails on Windows).', + 'raw' => 'Fixed bug #69628 (complex GLOB_BRACE fails on Windows). (Christoph M. Becker)', + ), + 4 => + array ( + 'message' => 'Fixed POST data processing slowdown due to small input buffer size on Windows.', + 'raw' => 'Fixed POST data processing slowdown due to small input buffer size on Windows. (Jorge Oliveira, Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69646 (OS command injection vulnerability in escapeshellarg). (CVE-2015-4642)', + 'raw' => 'Fixed bug #69646 (OS command injection vulnerability in escapeshellarg). (CVE-2015-4642) (Anatol Belski)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69719 (Incorrect handling of paths with NULs). (CVE-2015-4598)', + 'raw' => 'Fixed bug #69719 (Incorrect handling of paths with NULs). (CVE-2015-4598) (Stas)', + ), + 7 => + array ( + 'message' => 'Improved fix for bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4643)', + 'raw' => 'Improved fix for bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4643) (Max Spelsberg)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69479 (GD fails to build with newer libvpx).', + 'raw' => 'Fixed bug #69479 (GD fails to build with newer libvpx). (Remi)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48147 (iconv with //IGNORE cuts the string).', + 'raw' => 'Fixed bug #48147 (iconv with //IGNORE cuts the string). (Stas)', + ), + ), + 'litespeed sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68812 (Unchecked return value).', + 'raw' => 'Fixed bug #68812 (Unchecked return value). (George Wang)', + ), + ), + 'mail' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68776 (mail() does not have mail header injection prevention for additional headers).', + 'raw' => 'Fixed bug #68776 (mail() does not have mail header injection prevention for additional headers). (Yasuo)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Added file descriptor caching to mcrypt_create_iv()', + 'raw' => 'Added file descriptor caching to mcrypt_create_iv() (Leigh)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF).', + 'raw' => 'Fixed bug #69549 (Memory leak with opcache.optimization_level=0xFFFFFFFF). (Laruence, Dmitry)', + ), + 2 => + array ( + 'message' => 'Upgraded pcrelib to 8.37.', + 'raw' => 'Upgraded pcrelib to 8.37. (CVE-2015-2325, CVE-2015-2326)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69680 (phar symlink in binary directory broken).', + 'raw' => 'Fixed bug #69680 (phar symlink in binary directory broken). (Matteo Bernardini, Remi)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69667 (segfault in php_pgsql_meta_data). (CVE-2015-4644)', + 'raw' => 'Fixed bug #69667 (segfault in php_pgsql_meta_data). (CVE-2015-4644) (Remi)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled sqlite to 3.8.10.2. (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416)', + 'raw' => 'Upgrade bundled sqlite to 3.8.10.2. (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416) (Kaplan)', + ), + ), + ), + ), + '5.6.9' => + array ( + 'date' => '14 May 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69467 (Wrong checked for the interface by using Trait).', + 'raw' => 'Fixed bug #69467 (Wrong checked for the interface by using Trait). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69420 (Invalid read in zend_std_get_method).', + 'raw' => 'Fixed bug #69420 (Invalid read in zend_std_get_method). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60022 ("use statement [...] has no effect" depends on leading backslash).', + 'raw' => 'Fixed bug #60022 ("use statement [...] has no effect" depends on leading backslash). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67314 (Segmentation fault in gc_remove_zval_from_buffer).', + 'raw' => 'Fixed bug #67314 (Segmentation fault in gc_remove_zval_from_buffer). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68652 (segmentation fault in destructor).', + 'raw' => 'Fixed bug #68652 (segmentation fault in destructor). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69419 (Returning compatible sub generator produces a warning).', + 'raw' => 'Fixed bug #69419 (Returning compatible sub generator produces a warning). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69472 (php_sys_readlink ignores misc errors from GetFinalPathNameByHandleA).', + 'raw' => 'Fixed bug #69472 (php_sys_readlink ignores misc errors from GetFinalPathNameByHandleA). (Jan Starke)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69364 (PHP Multipart/form-data remote dos Vulnerability). (CVE-2015-4024)', + 'raw' => 'Fixed bug #69364 (PHP Multipart/form-data remote dos Vulnerability). (CVE-2015-4024) (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #69403 (str_repeat() sign mismatch based memory corruption).', + 'raw' => 'Fixed bug #69403 (str_repeat() sign mismatch based memory corruption). (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69418 (CVE-2006-7243 fix regressions in 5.4+). (CVE-2015-4025)', + 'raw' => 'Fixed bug #69418 (CVE-2006-7243 fix regressions in 5.4+). (CVE-2015-4025) (Stas)', + ), + 10 => + array ( + 'message' => 'Fixed bug #69522 (heap buffer overflow in unpack()).', + 'raw' => 'Fixed bug #69522 (heap buffer overflow in unpack()). (Stas)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4022)', + 'raw' => 'Fixed bug #69545 (Integer overflow in ftp_genlist() resulting in heap overflow). (CVE-2015-4022) (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0).', + 'raw' => 'Fixed bug #69354 (Incorrect use of SQLColAttributes with ODBC 3.0). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69474 (ODBC: Query with same field name from two tables returns incorrect result).', + 'raw' => 'Fixed bug #69474 (ODBC: Query with same field name from two tables returns incorrect result). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69381 (out of memory with sage odbc driver).', + 'raw' => 'Fixed bug #69381 (out of memory with sage odbc driver). (Frederic Marchall, Anatol Belski)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69402 (Reading empty SSL stream hangs until timeout).', + 'raw' => 'Fixed bug #69402 (Reading empty SSL stream hangs until timeout). (Daniel Lowrey)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68598 (pcntl_exec() should not allow null char). (CVE-2015-4026)', + 'raw' => 'Fixed bug #68598 (pcntl_exec() should not allow null char). (CVE-2015-4026) (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69453 (Memory Corruption in phar_parse_tarfile when entry filename starts with null). (CVE-2015-4021)', + 'raw' => 'Fixed bug #69453 (Memory Corruption in phar_parse_tarfile when entry filename starts with null). (CVE-2015-4021) (Stas)', + ), + ), + ), + ), + '5.6.8' => + array ( + 'date' => '16 Apr 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66609 (php crashes with __get() and ++ operator in some cases).', + 'raw' => 'Fixed bug #66609 (php crashes with __get() and ++ operator in some cases). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8 characters).', + 'raw' => 'Fixed bug #68021 (get_browser() browser_name_regex returns non-utf-8 characters). (Tjerk)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68917 (parse_url fails on some partial urls).', + 'raw' => 'Fixed bug #68917 (parse_url fails on some partial urls). (Wei Dai)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options).', + 'raw' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options). (Anatol Belski)', + ), + 4 => + array ( + 'message' => 'Additional fix for bug #69152 (Type confusion vulnerability in exception::getTraceAsString).', + 'raw' => 'Additional fix for bug #69152 (Type confusion vulnerability in exception::getTraceAsString). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69210 (serialize function return corrupted data when sleep has non-string values).', + 'raw' => 'Fixed bug #69210 (serialize function return corrupted data when sleep has non-string values). (Juan Basso)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in __call/... arg passing).', + 'raw' => 'Fixed bug #69212 (Leaking VIA_HANDLER func when exception thrown in __call/... arg passing). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69221 (Segmentation fault when using a generator in combination with an Iterator).', + 'raw' => 'Fixed bug #69221 (Segmentation fault when using a generator in combination with an Iterator). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion vulnerability).', + 'raw' => 'Fixed bug #69337 (php_stream_url_wrap_http_ex() type-confusion vulnerability). (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69353 (Missing null byte checks for paths in various PHP extensions).', + 'raw' => 'Fixed bug #69353 (Missing null byte checks for paths in various PHP extensions). (Stas)', + ), + ), + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69218 (potential remote code execution with apache 2.4 apache2handler).', + 'raw' => 'Fixed bug #69218 (potential remote code execution with apache 2.4 apache2handler). (Gerrit Venema)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Implemented FR#69278 (HTTP2 support).', + 'raw' => 'Implemented FR#69278 (HTTP2 support). (Masaki Kagaya)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68739 (Missing break / control flow).', + 'raw' => 'Fixed bug #68739 (Missing break / control flow). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69316 (Use-after-free in php_curl related to CURLOPT_FILE/_INFILE/_WRITEHEADER).', + 'raw' => 'Fixed bug #69316 (Use-after-free in php_curl related to CURLOPT_FILE/_INFILE/_WRITEHEADER). (Laruence)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69336 (Issues with "last day of ").', + 'raw' => 'Fixed bug #69336 (Issues with "last day of "). (Derick Rethans)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows builds).', + 'raw' => 'Fixed bug #65406 (Enchant broker plugins are in the wrong place in windows builds). (Anatol)', + ), + ), + 'ereg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68740 (NULL Pointer Dereference).', + 'raw' => 'Fixed bug #68740 (NULL Pointer Dereference). (Laruence)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or segfault).', + 'raw' => 'Fixed bug #68819 (Fileinfo on specific file causes spurious OOM and/or segfault). (Anatol Belski)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used).', + 'raw' => 'Fixed bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used). (Jeff Welch)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn\'t strip ASCII 127).', + 'raw' => 'Fixed bug #69203 (FILTER_FLAG_STRIP_HIGH doesn\'t strip ASCII 127). (Jeff Welch)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E).', + 'raw' => 'Fixed bug #68846 (False detection of CJK Unified Ideographs Extension E). (Masaki Kagaya)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69297 (function_exists strange behavior with OPCache on disabled function).', + 'raw' => 'Fixed bug #69297 (function_exists strange behavior with OPCache on disabled function). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69281 (opcache_is_script_cached no longer works).', + 'raw' => 'Fixed bug #69281 (opcache_is_script_cached no longer works). (danack)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68677 (Use After Free). (CVE-2015-1351)', + 'raw' => 'Fixed bug #68677 (Use After Free). (CVE-2015-1351) (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs #68853, #65137 (Buffered crypto stream data breaks IO polling in stream_select() contexts)', + 'raw' => 'Fixed bugs #68853, #65137 (Buffered crypto stream data breaks IO polling in stream_select() contexts) (Chris Wright)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69197 (openssl_pkcs7_sign handles default value incorrectly)', + 'raw' => 'Fixed bug #69197 (openssl_pkcs7_sign handles default value incorrectly) (Daniel Lowrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69215 (Crypto servers should send client CA list)', + 'raw' => 'Fixed bug #69215 (Crypto servers should send client CA list) (Daniel Lowrey)', + ), + 3 => + array ( + 'message' => 'Add a check for RAND_egd to allow compiling against LibreSSL', + 'raw' => 'Add a check for RAND_egd to allow compiling against LibreSSL (Leigh)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar).', + 'raw' => 'Fixed bug #64343 (PharData::extractTo fails for tarball created by BSD tar). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64931 (phar_add_file is too restrictive on filename).', + 'raw' => 'Fixed bug #64931 (phar_add_file is too restrictive on filename). (Mike)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65467 (Call to undefined method cli_arg_typ_string).', + 'raw' => 'Fixed bug #65467 (Call to undefined method cli_arg_typ_string). (Mike)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing ".tar").', + 'raw' => 'Fixed bug #67761 (Phar::mapPhar fails for Phars inside a path containing ".tar"). (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar).', + 'raw' => 'Fixed bug #69324 (Buffer Over-read in unserialize when parsing Phar). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in phar_set_inode).', + 'raw' => 'Fixed bug #69441 (Buffer Overflow when parsing tar/zip/phar in phar_set_inode). (Stas)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352)', + 'raw' => 'Fixed bug #68741 (Null pointer dereference). (CVE-2015-1352) (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69152 (Type Confusion Infoleak Vulnerability in unserialize() with SoapFault).', + 'raw' => 'Fixed bug #69152 (Type Confusion Infoleak Vulnerability in unserialize() with SoapFault). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader (bisected, regression)).', + 'raw' => 'Fixed bug #69293 (NEW segfault when using SoapClient::__setSoapHeader (bisected, regression)). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69227 (Use after free in zval_scan caused by spl_object_storage_get_gc).', + 'raw' => 'Fixed bug #69227 (Use after free in zval_scan caused by spl_object_storage_get_gc). (adam dot scarr at 99designs dot com)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception).', + 'raw' => 'Fixed bug #68760 (SQLITE segfaults if custom collator throws an exception). (Dan Ackroyd)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69287 (Upgrade bundled libsqlite to 3.8.8.3).', + 'raw' => 'Fixed bug #69287 (Upgrade bundled libsqlite to 3.8.8.3). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66550 (SQLite prepared statement use-after-free).', + 'raw' => 'Fixed bug #66550 (SQLite prepared statement use-after-free). (Sean Heelan)', + ), + ), + ), + ), + '5.6.7' => + array ( + 'date' => '19 Mar 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69174 (leaks when unused inner class use traits precedence).', + 'raw' => 'Fixed bug #69174 (leaks when unused inner class use traits precedence). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize).', + 'raw' => 'Fixed bug #69139 (Crash in gc_zval_possible_root on unserialize). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build).', + 'raw' => 'Fixed bug #69121 (Segfault in get_current_user when script owner is not in passwd with ZTS build). (dan at syneto dot net)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65593 (Segfault when calling ob_start from output buffering callback).', + 'raw' => 'Fixed bug #65593 (Segfault when calling ob_start from output buffering callback). (Mike)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68986 (pointer returned by php_stream_fopen_temporary_file not validated in memory.c).', + 'raw' => 'Fixed bug #68986 (pointer returned by php_stream_fopen_temporary_file not validated in memory.c). (nayana at ddproperty dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68166 (Exception with invalid character causes segv).', + 'raw' => 'Fixed bug #68166 (Exception with invalid character causes segv). (Rasmus)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69141 (Missing arguments in reflection info for some builtin functions).', + 'raw' => 'Fixed bug #69141 (Missing arguments in reflection info for some builtin functions). (kostyantyn dot lysyy at oracle dot com)', + ), + 7 => + array ( + 'message' => 'Fixed bug #68976 (Use After Free Vulnerability in unserialize()). (CVE-2015-2787)', + 'raw' => 'Fixed bug #68976 (Use After Free Vulnerability in unserialize()). (CVE-2015-2787) (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options).', + 'raw' => 'Fixed bug #69134 (Per Directory Values overrides PHP_INI_SYSTEM configuration options). (Anatol Belski)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69207 (move_uploaded_file allows nulls in path). (CVE-2015-2348)', + 'raw' => 'Fixed bug #69207 (move_uploaded_file allows nulls in path). (CVE-2015-2348) (Stas)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69015 (php-cgi\'s getopt does not see $argv).', + 'raw' => 'Fixed bug #69015 (php-cgi\'s getopt does not see $argv). (Laruence)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67741 (auto_prepend_file messes up __LINE__).', + 'raw' => 'Fixed bug #67741 (auto_prepend_file messes up __LINE__). (Reeze Xia)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69088 (PHP_MINIT_FUNCTION does not fully initialize cURL on Win32).', + 'raw' => 'Fixed bug #69088 (PHP_MINIT_FUNCTION does not fully initialize cURL on Win32). (Grant Pannell)', + ), + 1 => + array ( + 'message' => 'Add CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME constants if supported by libcurl.', + 'raw' => 'Add CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME constants if supported by libcurl. (Linus Unneback)', + ), + ), + 'ereg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69248 (heap overflow vulnerability in regcomp.c). (CVE-2015-2305)', + 'raw' => 'Fixed bug #69248 (heap overflow vulnerability in regcomp.c). (CVE-2015-2305) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68822 (request time is reset too early).', + 'raw' => 'Fixed bug #68822 (request time is reset too early). (honghu069 at 163 dot com)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68964 (Allowed memory size exhausted with odbc_exec).', + 'raw' => 'Fixed bug #68964 (Allowed memory size exhausted with odbc_exec). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69159 (Opcache causes problem when passing a variable variable to a function).', + 'raw' => 'Fixed bug #69159 (Opcache causes problem when passing a variable variable to a function). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69125 (Array numeric string as key).', + 'raw' => 'Fixed bug #69125 (Array numeric string as key). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69038 (switch(SOMECONSTANT) misbehaves).', + 'raw' => 'Fixed bug #69038 (switch(SOMECONSTANT) misbehaves). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68912 (Segmentation fault at openssl_spki_new).', + 'raw' => 'Fixed bug #68912 (Segmentation fault at openssl_spki_new). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61285, #68329, #68046, #41631 (encrypted streams don\'t observe socket timeouts).', + 'raw' => 'Fixed bug #61285, #68329, #68046, #41631 (encrypted streams don\'t observe socket timeouts). (Brad Broerman)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68920 (use strict peer_fingerprint input checks)', + 'raw' => 'Fixed bug #68920 (use strict peer_fingerprint input checks) (Daniel Lowrey)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68879 (IP Address fields in subjectAltNames not used)', + 'raw' => 'Fixed bug #68879 (IP Address fields in subjectAltNames not used) (Daniel Lowrey)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68265 (SAN match fails with trailing DNS dot)', + 'raw' => 'Fixed bug #68265 (SAN match fails with trailing DNS dot) (Daniel Lowrey)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67403 (Add signatureType to openssl_x509_parse)', + 'raw' => 'Fixed bug #67403 (Add signatureType to openssl_x509_parse) (Daniel Lowrey)', + ), + 6 => + array ( + 'message' => 'Fixed bug (#69195 Inconsistent stream crypto values across versions)', + 'raw' => 'Fixed bug (#69195 Inconsistent stream crypto values across versions) (Daniel Lowrey)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68638 (pg_update() fails to store infinite values).', + 'raw' => 'Fixed bug #68638 (pg_update() fails to store infinite values). (william dot welter at 4linux dot com dot br, Laruence)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69054 (Null dereference in readline_(read|write)_history() without parameters).', + 'raw' => 'Fixed bug #69054 (Null dereference in readline_(read|write)_history() without parameters). (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69085 (SoapClient\'s __call() type confusion through unserialize()). (CVE-2015-4147, CVE-2015-4148)', + 'raw' => 'Fixed bug #69085 (SoapClient\'s __call() type confusion through unserialize()). (CVE-2015-4147, CVE-2015-4148) (andrea dot palazzo at truel dot it, Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage).', + 'raw' => 'Fixed bug #69108 ("Segmentation fault" when (de)serializing SplObjectStorage). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68557 (RecursiveDirectoryIterator::seek(0) broken after calling getChildren()).', + 'raw' => 'Fixed bug #68557 (RecursiveDirectoryIterator::seek(0) broken after calling getChildren()). (Julien)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69253 (ZIP Integer Overflow leads to writing past heap boundary). (CVE-2015-2331)', + 'raw' => 'Fixed bug #69253 (ZIP Integer Overflow leads to writing past heap boundary). (CVE-2015-2331) (Stas)', + ), + ), + ), + ), + '5.6.6' => + array ( + 'date' => '19 Feb 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Removed support for multi-line headers, as the are deprecated by RFC 7230.', + 'raw' => 'Removed support for multi-line headers, as the are deprecated by RFC 7230. (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67068 (getClosure returns somethings that\'s not a closure).', + 'raw' => 'Fixed bug #67068 (getClosure returns somethings that\'s not a closure). (Danack at basereality dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone). (CVE-2015-0273)', + 'raw' => 'Fixed bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone). (CVE-2015-0273) (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68925 (Mitigation for CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow).', + 'raw' => 'Fixed bug #68925 (Mitigation for CVE-2015-0235 – GHOST: glibc gethostbyname buffer overflow). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed Bug #67988 (htmlspecialchars() does not respect default_charset specified by ini_set)', + 'raw' => 'Fixed Bug #67988 (htmlspecialchars() does not respect default_charset specified by ini_set) (Yasuo)', + ), + 5 => + array ( + 'message' => 'Added NULL byte protection to exec, system and passthru.', + 'raw' => 'Added NULL byte protection to exec, system and passthru. (Yasuo)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68711 (useless comparisons).', + 'raw' => 'Fixed bug #68711 (useless comparisons). (bugreports at internot dot info)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68552 (heap buffer overflow in enchant_broker_request_dict()). (CVE-2014-9705)', + 'raw' => 'Fixed bug #68552 (heap buffer overflow in enchant_broker_request_dict()). (CVE-2014-9705) (Antony)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68827 (Double free with disabled ZMM).', + 'raw' => 'Fixed bug #68827 (Double free with disabled ZMM). (Joshua Rogers)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67647 (Bundled libmagic 5.17 does not detect quicktime files correctly).', + 'raw' => 'Fixed bug #67647 (Bundled libmagic 5.17 does not detect quicktime files correctly). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68731 (finfo_buffer doesn\'t extract the correct mime with some gifs).', + 'raw' => 'Fixed bug #68731 (finfo_buffer doesn\'t extract the correct mime with some gifs). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66479 (Wrong response to FCGI_GET_VALUES).', + 'raw' => 'Fixed bug #66479 (Wrong response to FCGI_GET_VALUES). (Frank Stolle)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68571 (core dump when webserver close the socket).', + 'raw' => 'Fixed bug #68571 (core dump when webserver close the socket). (redfoxli069 at gmail dot com, Laruence)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50224 (json_encode() does not always encode a float as a float) by adding JSON_PRESERVE_ZERO_FRACTION.', + 'raw' => 'Fixed bug #50224 (json_encode() does not always encode a float as a float) by adding JSON_PRESERVE_ZERO_FRACTION. (Juan Basso)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between threads).', + 'raw' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between threads). (Martin Jansen)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support)', + 'raw' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support) (Keyur Govande)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68657 (Reading 4 byte floats with Mysqli and libmysqlclient has rounding errors)', + 'raw' => 'Fixed bug #68657 (Reading 4 byte floats with Mysqli and libmysqlclient has rounding errors) (Keyur Govande)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with try blocks being removed when extended_info opcode generation is turned on.', + 'raw' => 'Fixed bug with try blocks being removed when extended_info opcode generation is turned on. (Laruence)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68750 (PDOMysql with mysqlnd does not allow the usage of named pipes).', + 'raw' => 'Fixed bug #68750 (PDOMysql with mysqlnd does not allow the usage of named pipes). (steffenb198 at aol dot com)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68901 (use after free). (CVE-2015-2301)', + 'raw' => 'Fixed bug #68901 (use after free). (CVE-2015-2301) (bugreports at internot dot info)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #65199 (pg_copy_from() modifies input array variable)', + 'raw' => 'Fixed Bug #65199 (pg_copy_from() modifies input array variable) (Yasuo)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68941 (mod_files.sh is a bash-script)', + 'raw' => 'Fixed bug #68941 (mod_files.sh is a bash-script) (bugzilla at ii.nl, Yasuo)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #66623 (no EINTR check on flock)', + 'raw' => 'Fixed Bug #66623 (no EINTR check on flock) (Yasuo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68063 (Empty session IDs do still start sessions)', + 'raw' => 'Fixed bug #68063 (Empty session IDs do still start sessions) (Yasuo)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args).', + 'raw' => 'Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args). (Julien)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65272 (flock() out parameter not set correctly in windows).', + 'raw' => 'Fixed bug #65272 (flock() out parameter not set correctly in windows). (Daniel Lowrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI).', + 'raw' => 'Fixed bug #69033 (Request may get env. variables from previous requests if PHP works as FastCGI). (Anatol)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug which caused call after final close on streams filter.', + 'raw' => 'Fixed bug which caused call after final close on streams filter. (Bob)', + ), + ), + ), + ), + '5.6.5' => + array ( + 'date' => '22 Jan 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Upgraded crypt_blowfish to version 1.3.', + 'raw' => 'Upgraded crypt_blowfish to version 1.3. (Leigh)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60704 bug with some files path).', + 'raw' => 'Fixed bug #60704 (unlink() bug with some files path).', + ), + 2 => + array ( + 'message' => 'Fixed bug #65419 (Inside trait, self::class != __CLASS__).', + 'raw' => 'Fixed bug #65419 (Inside trait, self::class != __CLASS__). (Julien)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68536 (pack for 64bits integer is broken on bigendian).', + 'raw' => 'Fixed bug #68536 (pack for 64bits integer is broken on bigendian). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #55541 (errors spawn MessageBox, which blocks test automation).', + 'raw' => 'Fixed bug #55541 (errors spawn MessageBox, which blocks test automation). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68297 (Application Popup provides too few information).', + 'raw' => 'Fixed bug #68297 (Application Popup provides too few information). (Anatol)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65769 (localeconv() broken in TS builds).', + 'raw' => 'Fixed bug #65769 (localeconv() broken in TS builds). (Anatol)', + ), + 7 => + array ( + 'message' => 'Fixed bug #65230 (setting locale randomly broken).', + 'raw' => 'Fixed bug #65230 (setting locale randomly broken). (Anatol)', + ), + 8 => + array ( + 'message' => 'Fixed bug #66764 (configure doesn\'t define EXPANDED_DATADIR / PHP_DATADIR correctly).', + 'raw' => 'Fixed bug #66764 (configure doesn\'t define EXPANDED_DATADIR / PHP_DATADIR correctly). (Ferenc)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68583 (Crash in timeout thread).', + 'raw' => 'Fixed bug #68583 (Crash in timeout thread). (Anatol)', + ), + 10 => + array ( + 'message' => 'Fixed bug #65576 (Constructor from trait conflicts with inherited constructor).', + 'raw' => 'Fixed bug #65576 (Constructor from trait conflicts with inherited constructor). (dunglas at gmail dot com)', + ), + 11 => + array ( + 'message' => 'Fixed bug #68676 (Explicit Double Free). (CVE-2014-9425)', + 'raw' => 'Fixed bug #68676 (Explicit Double Free). (CVE-2014-9425) (Kalle)', + ), + 12 => + array ( + 'message' => 'Fixed bug #68710 (Use After Free Vulnerability in PHP\'s unserialize()). (CVE-2015-0231)', + 'raw' => 'Fixed bug #68710 (Use After Free Vulnerability in PHP\'s unserialize()). (CVE-2015-0231) (Stefan Esser)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68618 (out of bounds read crashes php-cgi). (CVE-2014-9427)', + 'raw' => 'Fixed bug #68618 (out of bounds read crashes php-cgi). (CVE-2014-9427) (Stas)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68745 (Invalid HTTP requests make web server segfault).', + 'raw' => 'Fixed bug #68745 (Invalid HTTP requests make web server segfault). (Adam)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67643 (curl_multi_getcontent returns \'\' when CURLOPT_RETURNTRANSFER isn\'t set).', + 'raw' => 'Fixed bug #67643 (curl_multi_getcontent returns \'\' when CURLOPT_RETURNTRANSFER isn\'t set). (Jille Timmermans)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #68268 (DatePeriod: Getter for start date, end date and interval).', + 'raw' => 'Implemented FR #68268 (DatePeriod: Getter for start date, end date and interval). (Marc Bennewitz)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68799: Free called on uninitialized pointer. (CVE-2015-0232)', + 'raw' => 'Fixed bug #68799: Free called on uninitialized pointer. (CVE-2015-0232) (Stas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68398 (msooxml matches too many archives).', + 'raw' => 'Fixed bug #68398 (msooxml matches too many archives). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68665 (invalid free in libmagic).', + 'raw' => 'Fixed bug #68665 (invalid free in libmagic). (Joshua Rogers, Anatol Belski)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68671 (incorrect expression in libmagic).', + 'raw' => 'Fixed bug #68671 (incorrect expression in libmagic). (Joshua Rogers, Anatol Belski)', + ), + 3 => + array ( + 'message' => 'Removed readelf.c and related code from libmagic sources', + 'raw' => 'Removed readelf.c and related code from libmagic sources (Remi, Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68735 (fileinfo out-of-bounds memory access). (CVE-2014-9652)', + 'raw' => 'Fixed bug #68735 (fileinfo out-of-bounds memory access). (CVE-2014-9652) (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed request #68526 (Implement POSIX Access Control List for UDS).', + 'raw' => 'Fixed request #68526 (Implement POSIX Access Control List for UDS). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68751 (listen.allowed_clients is broken).', + 'raw' => 'Fixed bug #68751 (listen.allowed_clients is broken). (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68601 (buffer read overflow in gd_gif_in.c). (CVE-2014-9709)', + 'raw' => 'Fixed bug #68601 (buffer read overflow in gd_gif_in.c). (CVE-2014-9709) (Jan Bee, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed request #68656 (Report gd library version).', + 'raw' => 'Fixed request #68656 (Report gd library version). (Remi)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68504 (--with-libmbfl configure option not present on Windows).', + 'raw' => 'Fixed bug #68504 (--with-libmbfl configure option not present on Windows). (Ashesh Vashi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache).', + 'raw' => 'Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67111 (Memory leak when using "continue 2" inside two foreach loops).', + 'raw' => 'Fixed bug #67111 (Memory leak when using "continue 2" inside two foreach loops). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Improved handling of OPENSSL_KEYTYPE_EC keys.', + 'raw' => 'Improved handling of OPENSSL_KEYTYPE_EC keys. (Dominic Luechinger)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60509 (pcntl_signal doesn\'t decrease ref-count of old handler when setting SIG_DFL).', + 'raw' => 'Fixed bug #60509 (pcntl_signal doesn\'t decrease ref-count of old handler when setting SIG_DFL). (Julien)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66679 (Alignment Bug in PCRE 8.34 upstream).', + 'raw' => 'Fixed bug #66679 (Alignment Bug in PCRE 8.34 upstream). (Rainer Jung, Anatol Belski)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68697 (lo_export return -1 on failure).', + 'raw' => 'Fixed bug #68697 (lo_export return -1 on failure). (Ondřej Surý)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68371 (PDO#getAttribute() cannot be called with platform-specifi attribute names).', + 'raw' => 'Fixed bug #68371 (PDO#getAttribute() cannot be called with platform-specifi attribute names). (Matteo)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option).', + 'raw' => 'Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option). (peter dot wolanin at acquia dot com)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator).', + 'raw' => 'Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator). (Paul Garvin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68479 (Added escape parameter to SplFileObject::fputcsv).', + 'raw' => 'Fixed bug #68479 (Added escape parameter to SplFileObject::fputcsv). (Salathe)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68120 (Update bundled libsqlite to 3.8.7.2).', + 'raw' => 'Fixed bug #68120 (Update bundled libsqlite to 3.8.7.2). (Anatol)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68532 (convert.base64-encode omits padding bytes).', + 'raw' => 'Fixed bug #68532 (convert.base64-encode omits padding bytes). (blaesius at krumedia dot de)', + ), + ), + ), + ), + '5.6.4' => + array ( + 'date' => '18 Dec 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68091 (Some Zend headers lack appropriate extern "C" blocks).', + 'raw' => 'Fixed bug #68091 (Some Zend headers lack appropriate extern "C" blocks). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68104 (Segfault while pre-evaluating a disabled function).', + 'raw' => 'Fixed bug #68104 (Segfault while pre-evaluating a disabled function). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68185 ("Inconsistent insteadof definition."- incorrectly triggered).', + 'raw' => 'Fixed bug #68185 ("Inconsistent insteadof definition."- incorrectly triggered). (Julien)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68355 (Inconsistency in example php.ini comments).', + 'raw' => 'Fixed bug #68355 (Inconsistency in example php.ini comments). (Chris McCafferty)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68370 ("unset($this)" can make the program crash).', + 'raw' => 'Fixed bug #68370 ("unset($this)" can make the program crash). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68422 (Incorrect argument reflection info for array_multisort()).', + 'raw' => 'Fixed bug #68422 (Incorrect argument reflection info for array_multisort()). (Alexander Lisachenko)', + ), + 6 => + array ( + 'message' => 'Fixed bug #68545 (NULL pointer dereference in unserialize.c).', + 'raw' => 'Fixed bug #68545 (NULL pointer dereference in unserialize.c). (Anatol)', + ), + 7 => + array ( + 'message' => 'Fixed bug #68446 (Array constant not accepted for array parameter default).', + 'raw' => 'Fixed bug #68446 (Array constant not accepted for array parameter default). (Bob, Dmitry)', + ), + 8 => + array ( + 'message' => 'Fixed bug #68594 (Use after free vulnerability in unserialize()). (CVE-2014-8142)', + 'raw' => 'Fixed bug #68594 (Use after free vulnerability in unserialize()). (CVE-2014-8142) (Stefan Esser)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed day_of_week function as it could sometimes return negative values internally.', + 'raw' => 'Fixed day_of_week function as it could sometimes return negative values internally. (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68381 (fpm_unix_init_main ignores log_level).', + 'raw' => 'Fixed bug #68381 (fpm_unix_init_main ignores log_level). (David Zuelke, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68420 (listen=9000 listens to ipv6 localhost instead of all addresses).', + 'raw' => 'Fixed bug #68420 (listen=9000 listens to ipv6 localhost instead of all addresses). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68421 (access.format=\'%R\' doesn\'t log ipv6 address).', + 'raw' => 'Fixed bug #68421 (access.format=\'%R\' doesn\'t log ipv6 address). (Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68423 (PHP-FPM will no longer load all pools).', + 'raw' => 'Fixed bug #68423 (PHP-FPM will no longer load all pools). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68428 (listen.allowed_clients is IPv4 only).', + 'raw' => 'Fixed bug #68428 (listen.allowed_clients is IPv4 only). (Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68452 (php-fpm man page is oudated).', + 'raw' => 'Fixed bug #68452 (php-fpm man page is oudated). (Remi)', + ), + 6 => + array ( + 'message' => 'Fixed request #68458 (Change pm.start_servers default warning to notice).', + 'raw' => 'Fixed request #68458 (Change pm.start_servers default warning to notice). (David Zuelke, Remi)', + ), + 7 => + array ( + 'message' => 'Fixed bug #68463 (listen.allowed_clients can silently result in no allowed access).', + 'raw' => 'Fixed bug #68463 (listen.allowed_clients can silently result in no allowed access). (Remi)', + ), + 8 => + array ( + 'message' => 'Fixed request #68391 (php-fpm conf files loading order).', + 'raw' => 'Fixed request #68391 (php-fpm conf files loading order). (Florian Margaine, Remi)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68478 (access.log don\'t use prefix).', + 'raw' => 'Fixed bug #68478 (access.log don\'t use prefix). (Remi)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed possible read after end of buffer and use after free.', + 'raw' => 'Fixed possible read after end of buffer and use after free. (Dmitry)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68419 (build error with gmp 4.1).', + 'raw' => 'Fixed bug #68419 (build error with gmp 4.1). (Remi)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67462 (PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction)', + 'raw' => 'Fixed bug #67462 (PDO_PGSQL::beginTransaction() wrongly throws exception when not in transaction) (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving)', + 'raw' => 'Fixed bug #68351 (PDO::PARAM_BOOL and ATTR_EMULATE_PREPARES misbehaving) (Matteo)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68331 (Session custom storage callable functions not being called)', + 'raw' => 'Fixed bug #68331 (Session custom storage callable functions not being called) (Yasuo Ohgaki)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes).', + 'raw' => 'Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes). (Laruence)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53829 (Compiling PHP with large file support will replace function gzopen by gzopen64)', + 'raw' => 'Fixed bug #53829 (Compiling PHP with large file support will replace function gzopen by gzopen64) (Sascha Kettler, Matteo)', + ), + ), + ), + ), + '5.6.3' => + array ( + 'date' => '13 Nov 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Implemented 64-bit format codes for pack() and unpack().', + 'raw' => 'Implemented 64-bit format codes for pack() and unpack(). (Leigh)', + ), + 1 => + array ( + 'message' => 'Fixed bug #51800 (proc_open on Windows hangs forever).', + 'raw' => 'Fixed bug #51800 (proc_open on Windows hangs forever). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67633 (A foreach on an array returned from a function not doing copy-on-write).', + 'raw' => 'Fixed bug #67633 (A foreach on an array returned from a function not doing copy-on-write). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67739 (Windows 8.1/Server 2012 R2 OS build number reported as 6.2 (instead of 6.3)).', + 'raw' => 'Fixed bug #67739 (Windows 8.1/Server 2012 R2 OS build number reported as 6.2 (instead of 6.3)). (Christian Wenz)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67949 (DOMNodeList elements should be accessible through array notation)', + 'raw' => 'Fixed bug #67949 (DOMNodeList elements should be accessible through array notation) (Florian)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68095 (AddressSanitizer reports a heap buffer overflow in php_getopt()).', + 'raw' => 'Fixed bug #68095 (AddressSanitizer reports a heap buffer overflow in php_getopt()). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #68118 ($a->foo .= \'test\'; can leave $a->foo undefined).', + 'raw' => 'Fixed bug #68118 ($a->foo .= \'test\'; can leave $a->foo undefined). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #68129 (parse_url() - incomplete support for empty usernames and passwords)', + 'raw' => 'Fixed bug #68129 (parse_url() - incomplete support for empty usernames and passwords) (Tjerk)', + ), + 8 => + array ( + 'message' => 'Fixed bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy).', + 'raw' => 'Fixed bug #68365 (zend_mm_heap corrupted after memory overflow in zend_hash_copy). (Dmitry)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, and CURL_SSLVERSION_TLSv1_2 constants if supported by libcurl', + 'raw' => 'Add CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, and CURL_SSLVERSION_TLSv1_2 constants if supported by libcurl (Rasmus)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed).', + 'raw' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed). (ArdB)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68224 (buffer-overflow in libmagic/readcdf.c caught by AddressSanitizer).', + 'raw' => 'Fixed bug #68224 (buffer-overflow in libmagic/readcdf.c caught by AddressSanitizer). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68283 (fileinfo: out-of-bounds read in elf note headers). (CVE-2014-3710)', + 'raw' => 'Fixed bug #68283 (fileinfo: out-of-bounds read in elf note headers). (CVE-2014-3710) (Remi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65641 (PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache, mod_proxy-fcgi and ProxyPass).', + 'raw' => 'Fixed bug #65641 (PHP-FPM incorrectly defines the SCRIPT_NAME variable when using Apache, mod_proxy-fcgi and ProxyPass). (Remi)', + ), + 1 => + array ( + 'message' => 'Implemented FR #55508 (listen and listen.allowed_clients should take IPv6 addresses).', + 'raw' => 'Implemented FR #55508 (listen and listen.allowed_clients should take IPv6 addresses). (Robin Gloster)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65171 (imagescale() fails without height param).', + 'raw' => 'Fixed bug #65171 (imagescale() fails without height param). (Remi)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Implemented gmp_random_range() and gmp_random_bits().', + 'raw' => 'Implemented gmp_random_range() and gmp_random_bits(). (Leigh)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63595 (GMP memory management conflicts with other libraries using GMP).', + 'raw' => 'Fixed bug #63595 (GMP memory management conflicts with other libraries using GMP). (Remi)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support)', + 'raw' => 'Fixed bug #68114 (linker error on some OS X machines with fixed width decimal support) (Keyur Govande)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68087 (ODBC not correctly reading DATE column when preceded by a VARCHAR column)', + 'raw' => 'Fixed bug #68087 (ODBC not correctly reading DATE column when preceded by a VARCHAR column) (Keyur Govande)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68074 (Allow to use system cipher list instead of hardcoded value).', + 'raw' => 'Fixed bug #68074 (Allow to use system cipher list instead of hardcoded value). (Remi)', + ), + 1 => + array ( + 'message' => 'Revert regression introduced by fix of bug #41631', + 'raw' => 'Revert regression introduced by fix of bug #41631', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68199 (PDO::pgsqlGetNotify doesn\'t support NOTIFY payloads)', + 'raw' => 'Fixed bug #68199 (PDO::pgsqlGetNotify doesn\'t support NOTIFY payloads) (Matteo, Alain Laporte)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66584 (Segmentation fault on statement deallocation)', + 'raw' => 'Fixed bug #66584 (Segmentation fault on statement deallocation) (Matteo)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68103 (Duplicate entry in Reflection for class alias).', + 'raw' => 'Fixed bug #68103 (Duplicate entry in Reflection for class alias). (Remi)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68128 (Regression in RecursiveRegexIterator)', + 'raw' => 'Fixed bug #68128 (Regression in RecursiveRegexIterator) (Tjerk)', + ), + ), + ), + ), + '5.6.2' => + array ( + 'date' => '16 Oct 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669)', + 'raw' => 'Fixed bug #68044 (Integer overflow in unserialize() (32-bits only)). (CVE-2014-3669) (Stas)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68089 (NULL byte injection - cURL lib).', + 'raw' => 'Fixed bug #68089 (NULL byte injection - cURL lib). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670)', + 'raw' => 'Fixed bug #68113 (Heap corruption in exif_thumbnail()). (CVE-2014-3670) (Stas)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668)', + 'raw' => 'Fixed bug #68027 (Global buffer overflow in mkgmtime() function). (CVE-2014-3668) (Stas)', + ), + ), + ), + ), + '5.6.1' => + array ( + 'date' => '02 Oct 2014', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #38409 (parse_ini_file() looses the type of booleans).', + 'raw' => 'Implemented FR #38409 (parse_ini_file() looses the type of booleans). (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65463 (SIGSEGV during zend_shutdown()).', + 'raw' => 'Fixed bug #65463 (SIGSEGV during zend_shutdown()). (Keyur Govande)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66036 (Crash on SIGTERM in apache process).', + 'raw' => 'Fixed bug #66036 (Crash on SIGTERM in apache process). (Keyur Govande)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67878 (program_prefix not honoured in man pages).', + 'raw' => 'Fixed bug #67878 (program_prefix not honoured in man pages). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67938 (Segfault when extending interface method with variadic).', + 'raw' => 'Fixed bug #67938 (Segfault when extending interface method with variadic). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67985 (Incorrect last used array index copied to new array after unset).', + 'raw' => 'Fixed bug #67985 (Incorrect last used array index copied to new array after unset). (Tjerk)', + ), + 6 => + array ( + 'message' => 'Fixed bug #68088 (New Posthandler Potential Illegal efree() vulnerability). (Mike)', + 'raw' => 'Fixed bug #68088 (New Posthandler Potential Illegal efree() vulnerability). (Mike) (CVE-2014-3622)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Made DOMNode::textContent writeable.', + 'raw' => 'Made DOMNode::textContent writeable. (Tjerk)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67731 (finfo::file() returns invalid mime type for binary files).', + 'raw' => 'Fixed bug #67731 (finfo::file() returns invalid mime type for binary files). (Anatol)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Made fontFetch\'s path parser thread-safe.', + 'raw' => 'Made fontFetch\'s path parser thread-safe. (Sara)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67917 (Using GMP objects with overloaded operators can cause memory exhaustion).', + 'raw' => 'Fixed bug #67917 (Using GMP objects with overloaded operators can cause memory exhaustion). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #50175 (gmp_init() results 0 on given base and number starting with 0x or 0b).', + 'raw' => 'Fixed bug #50175 (gmp_init() results 0 on given base and number starting with 0x or 0b). (Nikita)', + ), + 2 => + array ( + 'message' => 'Implemented gmp_import() and gmp_export().', + 'raw' => 'Implemented gmp_import() and gmp_export(). (Leigh, Nikita)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67839 (mysqli does not handle 4-byte floats correctly).', + 'raw' => 'Fixed bug #67839 (mysqli does not handle 4-byte floats correctly). (Keyur)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67850 (extension won\'t build if openssl compiled without SSLv3).', + 'raw' => 'Fixed bug #67850 (extension won\'t build if openssl compiled without SSLv3). (Daniel Lowrey)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed issue krakjoe/phpdbg#111 (compile error without ZEND_SIGNALS).', + 'raw' => 'Fixed issue krakjoe/phpdbg#111 (compile error without ZEND_SIGNALS). (Bob)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67955 (SoapClient prepends 0-byte to cookie names).', + 'raw' => 'Fixed bug #67955 (SoapClient prepends 0-byte to cookie names). (Philip Hofstetter)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67972 (SessionHandler Invalid memory read create_sid()).', + 'raw' => 'Fixed bug #67972 (SessionHandler Invalid memory read create_sid()). (Adam)', + ), + ), + 'sysvsem' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #67990 (Add optional nowait argument to sem_acquire).', + 'raw' => 'Implemented FR #67990 (Add optional nowait argument to sem_acquire). (Matteo)', + ), + ), + ), + ), + '5.6.0' => + array ( + 'date' => '28 Aug 2014', + 'modules' => + array ( + 'apache2 handler sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed Apache log issue caused by APR\'s lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120).', + 'raw' => 'Fixed Apache log issue caused by APR\'s lack of support for %zu (APR issue https://issues.apache.org/bugzilla/show_bug.cgi?id=56120). (Jeff Trawick)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Added some MIME types to the CLI web server.', + 'raw' => 'Added some MIME types to the CLI web server. (Chris Jones)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67079 (Missing MIME types for XML/XSL files).', + 'raw' => 'Fixed bug #67079 (Missing MIME types for XML/XSL files). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66830 (Empty header causes PHP built-in web server to hang).', + 'raw' => 'Fixed bug #66830 (Empty header causes PHP built-in web server to hang). (Adam)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67594 (Unable to access to apache_request_headers() elements).', + 'raw' => 'Fixed bug #67594 (Unable to access to apache_request_headers() elements). (Tjerk)', + ), + 4 => + array ( + 'message' => 'Implemented FR #67429 (CLI server is missing some new HTTP response codes).', + 'raw' => 'Implemented FR #67429 (CLI server is missing some new HTTP response codes). (Adam)', + ), + 5 => + array ( + 'message' => 'Fixed Bug #67406 (built-in web-server segfaults on startup).', + 'raw' => 'Fixed Bug #67406 (built-in web-server segfaults on startup). (Remi)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41577 (DOTNET is successful once per server run)', + 'raw' => 'Fixed bug #41577 (DOTNET is successful once per server run) (Aidas Kasparas)', + ), + 1 => + array ( + 'message' => 'Fixed missing type checks in com_event_sink .', + 'raw' => 'Fixed missing type checks in com_event_sink (Yussuf Khalil, Stas).', + ), + 2 => + array ( + 'message' => 'Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)).', + 'raw' => 'Fixed bug #66431 (Special Character via COM Interface (CP_UTF8)). (Anatol)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Improved phpinfo() stylesheets.', + 'raw' => 'Improved phpinfo() stylesheets. (Colin Viebrock)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67693 (incorrect push to the empty array).', + 'raw' => 'Fixed bug #67693 (incorrect push to the empty array). (Tjerk)', + ), + 2 => + array ( + 'message' => 'Removed inconsistency regarding behaviour of array in constants at run-time.', + 'raw' => 'Removed inconsistency regarding behaviour of array in constants at run-time. (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67497 (eval with parse error causes segmentation fault in generator).', + 'raw' => 'Fixed bug #67497 (eval with parse error causes segmentation fault in generator). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67151 (strtr with empty array crashes).', + 'raw' => 'Fixed bug #67151 (strtr with empty array crashes). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012).', + 'raw' => 'Fixed bug #67407 (Windows 8.1/Server 2012 R2 reported as Windows 8/Server 2012). (Christian Wenz)', + ), + 6 => + array ( + 'message' => 'Fixed bug #66608 (Incorrect behavior with nested "finally" blocks).', + 'raw' => 'Fixed bug #66608 (Incorrect behavior with nested "finally" blocks). (Laruence, Dmitry)', + ), + 7 => + array ( + 'message' => 'Implemented FR #34407 (ucwords and Title Case).', + 'raw' => 'Implemented FR #34407 (ucwords and Title Case). (Tjerk)', + ), + 8 => + array ( + 'message' => 'Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0).', + 'raw' => 'Fixed bug #67091 (make install fails to install libphp5.so on FreeBSD 10.0). (Ferenc)', + ), + 9 => + array ( + 'message' => 'Fixed bug #67368 (Memory leak with immediately dereferenced array in class constant).', + 'raw' => 'Fixed bug #67368 (Memory leak with immediately dereferenced array in class constant). (Laruence)', + ), + 10 => + array ( + 'message' => 'Fixed bug #67468 (Segfault in highlight_file()/highlight_string()).', + 'raw' => 'Fixed bug #67468 (Segfault in highlight_file()/highlight_string()). (Andreas Ferber)', + ), + 11 => + array ( + 'message' => 'Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability).', + 'raw' => 'Fixed bug #67498 (phpinfo() Type Confusion Information Leak Vulnerability). (Stefan Esser)', + ), + 12 => + array ( + 'message' => 'Fixed bug #67551 (php://input temp file will be located in sys_temp_dir instead of upload_tmp_dir).', + 'raw' => 'Fixed bug #67551 (php://input temp file will be located in sys_temp_dir instead of upload_tmp_dir). (Mike)', + ), + 13 => + array ( + 'message' => 'Fixed bug #67169 (array_splice all elements, then []= gives wrong index).', + 'raw' => 'Fixed bug #67169 (array_splice all elements, then []= gives wrong index). (Nikita)', + ), + 14 => + array ( + 'message' => 'Fixed bug #67198 (php://input regression).', + 'raw' => 'Fixed bug #67198 (php://input regression). (Mike)', + ), + 15 => + array ( + 'message' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow).', + 'raw' => 'Fixed bug #67247 (spl_fixedarray_resize integer overflow). (Stas)', + ), + 16 => + array ( + 'message' => 'Fixed bug #67250 (iptcparse out-of-bounds read).', + 'raw' => 'Fixed bug #67250 (iptcparse out-of-bounds read). (Stas)', + ), + 17 => + array ( + 'message' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read).', + 'raw' => 'Fixed bug #67252 (convert_uudecode out-of-bounds read). (Stas)', + ), + 18 => + array ( + 'message' => 'Fixed bug #67249 (printf out-of-bounds read).', + 'raw' => 'Fixed bug #67249 (printf out-of-bounds read). (Stas)', + ), + 19 => + array ( + 'message' => 'Implemented FR #64744 (Differentiate between member function call on a null and non-null, non-objects).', + 'raw' => 'Implemented FR #64744 (Differentiate between member function call on a null and non-null, non-objects). (Boro Sitnikovski)', + ), + 20 => + array ( + 'message' => 'Fixed bug #67436 (Autoloader isn\'t called if two method definitions don\'t match).', + 'raw' => 'Fixed bug #67436 (Autoloader isn\'t called if two method definitions don\'t match). (Bob)', + ), + 21 => + array ( + 'message' => 'Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases).', + 'raw' => 'Fixed bug #66622 (Closures do not correctly capture the late bound class (static::) in some cases). (Levi Morrison)', + ), + 22 => + array ( + 'message' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi)', + 'raw' => 'Fixed bug #67390 (insecure temporary file use in the configure script). (Remi) (CVE-2014-3981)', + ), + 23 => + array ( + 'message' => 'Fixed bug #67392 (dtrace breaks argument unpack).', + 'raw' => 'Fixed bug #67392 (dtrace breaks argument unpack). (Nikita)', + ), + 24 => + array ( + 'message' => 'Fixed bug #67428 (header(\'Location: foo\') will override a 308-399 response code).', + 'raw' => 'Fixed bug #67428 (header(\'Location: foo\') will override a 308-399 response code). (Adam)', + ), + 25 => + array ( + 'message' => 'Fixed bug #67433 (SIGSEGV when using count() on an object implementing Countable).', + 'raw' => 'Fixed bug #67433 (SIGSEGV when using count() on an object implementing Countable). (Matteo)', + ), + 26 => + array ( + 'message' => 'Fixed bug #67399 (putenv with empty variable may lead to crash).', + 'raw' => 'Fixed bug #67399 (putenv with empty variable may lead to crash). (Stas)', + ), + 27 => + array ( + 'message' => 'Expose get_debug_info class hook as __debugInfo() magic method.', + 'raw' => 'Expose get_debug_info class hook as __debugInfo() magic method. (Sara)', + ), + 28 => + array ( + 'message' => 'Implemented unified default encoding (RFC: https://wiki.php.net/rfc/default_encoding).', + 'raw' => 'Implemented unified default encoding (RFC: https://wiki.php.net/rfc/default_encoding). (Yasuo Ohgaki)', + ), + 29 => + array ( + 'message' => 'Added T_POW (**) operator (RFC: https://wiki.php.net/rfc/pow-operator).', + 'raw' => 'Added T_POW (**) operator (RFC: https://wiki.php.net/rfc/pow-operator). (Tjerk Meesters)', + ), + 30 => + array ( + 'message' => 'Improved IS_VAR operands fetching.', + 'raw' => 'Improved IS_VAR operands fetching. (Laruence, Dmitry)', + ), + 31 => + array ( + 'message' => 'Improved empty string handling. Now ZE uses an interned string instead of allocation new empty string each time.', + 'raw' => 'Improved empty string handling. Now ZE uses an interned string instead of allocation new empty string each time. (Laruence, Dmitry)', + ), + 32 => + array ( + 'message' => 'Implemented internal operator overloading (RFC: https://wiki.php.net/rfc/operator_overloading_gmp).', + 'raw' => 'Implemented internal operator overloading (RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)', + ), + 33 => + array ( + 'message' => 'Made calls from incompatible context issue an E_DEPRECATED warning instead of E_STRICT (phase 1 of RFC: https://wiki.php.net/rfc/incompat_ctx).', + 'raw' => 'Made calls from incompatible context issue an E_DEPRECATED warning instead of E_STRICT (phase 1 of RFC: https://wiki.php.net/rfc/incompat_ctx). (Gustavo)', + ), + 34 => + array ( + 'message' => 'Uploads equal or greater than 2GB in size are now accepted.', + 'raw' => 'Uploads equal or greater than 2GB in size are now accepted. (Ralf Lang, Mike)', + ), + 35 => + array ( + 'message' => 'Reduced POST data memory usage by 200-300%. Changed INI setting always_populate_raw_post_data to throw a deprecation warning when enabling and to accept -1 for never populating the $HTTP_RAW_POST_DATA global variable, which will be the default in future PHP versions.', + 'raw' => 'Reduced POST data memory usage by 200-300%. Changed INI setting always_populate_raw_post_data to throw a deprecation warning when enabling and to accept -1 for never populating the $HTTP_RAW_POST_DATA global variable, which will be the default in future PHP versions. (Mike)', + ), + 36 => + array ( + 'message' => 'Implemented dedicated syntax for variadic functions (RFC: https://wiki.php.net/rfc/variadics).', + 'raw' => 'Implemented dedicated syntax for variadic functions (RFC: https://wiki.php.net/rfc/variadics). (Nikita)', + ), + 37 => + array ( + 'message' => 'Fixed bug #50333 Improving multi-threaded scalability by using emalloc/efree/estrdup', + 'raw' => 'Fixed bug #50333 Improving multi-threaded scalability by using emalloc/efree/estrdup (Anatol, Dmitry)', + ), + 38 => + array ( + 'message' => 'Implemented constant scalar expressions (with support for constants) (RFC: https://wiki.php.net/rfc/const_scalar_exprs).', + 'raw' => 'Implemented constant scalar expressions (with support for constants) (RFC: https://wiki.php.net/rfc/const_scalar_exprs). (Bob)', + ), + 39 => + array ( + 'message' => 'Fixed bug #65784 (Segfault with finally).', + 'raw' => 'Fixed bug #65784 (Segfault with finally). (Laruence, Dmitry)', + ), + 40 => + array ( + 'message' => 'Fixed bug #66509 (copy() arginfo has changed starting from 5.4).', + 'raw' => 'Fixed bug #66509 (copy() arginfo has changed starting from 5.4). (willfitch)', + ), + 41 => + array ( + 'message' => 'Allow zero length comparison in substr_compare()', + 'raw' => 'Allow zero length comparison in substr_compare() (Tjerk)', + ), + 42 => + array ( + 'message' => 'Fixed bug #60602 (proc_open() changes environment array)', + 'raw' => 'Fixed bug #60602 (proc_open() changes environment array) (Tjerk)', + ), + 43 => + array ( + 'message' => 'Fixed bug #61019 (Out of memory on command stream_get_contents).', + 'raw' => 'Fixed bug #61019 (Out of memory on command stream_get_contents). (Mike)', + ), + 44 => + array ( + 'message' => 'Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets).', + 'raw' => 'Fixed bug #64330 (stream_socket_server() creates wrong Abstract Namespace UNIX sockets). (Mike)', + ), + 45 => + array ( + 'message' => 'Fixed bug #66182 (exit in stream filter produces segfault).', + 'raw' => 'Fixed bug #66182 (exit in stream filter produces segfault). (Mike)', + ), + 46 => + array ( + 'message' => 'Fixed bug #66736 (fpassthru broken).', + 'raw' => 'Fixed bug #66736 (fpassthru broken). (Mike)', + ), + 47 => + array ( + 'message' => 'Fixed bug #66822 (Cannot use T_POW in const expression)', + 'raw' => 'Fixed bug #66822 (Cannot use T_POW in const expression) (Tjerk)', + ), + 48 => + array ( + 'message' => 'Fixed bug #67043 (substr_compare broke by previous change)', + 'raw' => 'Fixed bug #67043 (substr_compare broke by previous change) (Tjerk)', + ), + 49 => + array ( + 'message' => 'Fixed bug #65701 (copy() doesn\'t work when destination filename is created by tempnam()).', + 'raw' => 'Fixed bug #65701 (copy() doesn\'t work when destination filename is created by tempnam()). (Boro Sitnikovski)', + ), + 50 => + array ( + 'message' => 'Fixed bug #66015 (Unexpected array indexing in class\'s static property).', + 'raw' => 'Fixed bug #66015 (Unexpected array indexing in class\'s static property). (Bob)', + ), + 51 => + array ( + 'message' => 'Added (constant) string/array dereferencing to static scalar expressions to complete the set; now possible thanks to bug #66015 being fixed.', + 'raw' => 'Added (constant) string/array dereferencing to static scalar expressions to complete the set; now possible thanks to bug #66015 being fixed. (Bob)', + ), + 52 => + array ( + 'message' => 'Fixed bug #66568 (Update reflection information for unserialize() function).', + 'raw' => 'Fixed bug #66568 (Update reflection information for unserialize() function). (Ferenc)', + ), + 53 => + array ( + 'message' => 'Fixed bug #66660 (Composer.phar install/update fails).', + 'raw' => 'Fixed bug #66660 (Composer.phar install/update fails). (Ferenc)', + ), + 54 => + array ( + 'message' => 'Fixed bug #67024 (getimagesize should recognize BMP files with negative height).', + 'raw' => 'Fixed bug #67024 (getimagesize should recognize BMP files with negative height). (Gabor Buella)', + ), + 55 => + array ( + 'message' => 'Fixed bug #67064 (Countable interface prevents using 2nd parameter ($mode) of count() function).', + 'raw' => 'Fixed bug #67064 (Countable interface prevents using 2nd parameter ($mode) of count() function). (Bob)', + ), + 56 => + array ( + 'message' => 'Fixed bug #67072 (Echoing unserialized "SplFileObject" crash).', + 'raw' => 'Fixed bug #67072 (Echoing unserialized "SplFileObject" crash). (Anatol)', + ), + 57 => + array ( + 'message' => 'Fixed bug #67033 (Remove reference to Windows 95).', + 'raw' => 'Fixed bug #67033 (Remove reference to Windows 95). (Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #65646 (re-enable CURLOPT_FOLLOWLOCATION with open_basedir or safe_mode).', + 'raw' => 'Implemented FR #65646 (re-enable CURLOPT_FOLLOWLOCATION with open_basedir or safe_mode). (Adam)', + ), + 1 => + array ( + 'message' => 'Check for openssl.cafile ini directive when loading CA certs.', + 'raw' => 'Check for openssl.cafile ini directive when loading CA certs. (Daniel Lowrey)', + ), + 2 => + array ( + 'message' => 'Remove cURL close policy related constants as these have no effect and are no longer used in libcurl.', + 'raw' => 'Remove cURL close policy related constants as these have no effect and are no longer used in libcurl. (Chris Wright)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66109 (Can\'t reset CURLOPT_CUSTOMREQUEST to default behaviour)', + 'raw' => 'Fixed bug #66109 (Can\'t reset CURLOPT_CUSTOMREQUEST to default behaviour) (Tjerk)', + ), + 4 => + array ( + 'message' => 'Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive.', + 'raw' => 'Fix compilation on libcurl versions between 7.10.5 and 7.12.2, inclusive. (Adam)', + ), + 5 => + array ( + 'message' => 'Fixed bug #64247 (CURLOPT_INFILE doesn\'t allow reset).', + 'raw' => 'Fixed bug #64247 (CURLOPT_INFILE doesn\'t allow reset). (Mike)', + ), + 6 => + array ( + 'message' => 'Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent).', + 'raw' => 'Fixed bug #66562 (curl_exec returns differently than curl_multi_getcontent). (Freek Lijten)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712)', + 'raw' => 'Fixed bug #66060 (Heap buffer over-read in DateInterval). (CVE-2013-6712) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66091 (memory leaks in DateTime constructor) .', + 'raw' => 'Fixed bug #66091 (memory leaks in DateTime constructor) (Tjerk).', + ), + 2 => + array ( + 'message' => 'Fixed bug #67308 (Serialize of DateTime truncates fractions of second).', + 'raw' => 'Fixed bug #67308 (Serialize of DateTime truncates fractions of second). (Adam)', + ), + 3 => + array ( + 'message' => 'Fixed regression in fix for bug #67118 (constructor can\'t be called twice).', + 'raw' => 'Fixed regression in fix for bug #67118 (constructor can\'t be called twice). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read).', + 'raw' => 'Fixed bug #67251 (date_parse_from_format out-of-bounds read). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read).', + 'raw' => 'Fixed bug #67253 (timelib_meridian_with_check out-of-bounds read). (Stas)', + ), + 6 => + array ( + 'message' => 'Added DateTimeImmutable::createFromMutable to create a DateTimeImmutable object from an existing DateTime (mutable) object', + 'raw' => 'Added DateTimeImmutable::createFromMutable to create a DateTimeImmutable object from an existing DateTime (mutable) object (Derick)', + ), + 7 => + array ( + 'message' => 'Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied).', + 'raw' => 'Fixed bug #66721 (__wakeup of DateTime segfaults when invalid object data is supplied). (Boro Sitnikovski)', + ), + 8 => + array ( + 'message' => 'Fixed bug #67118 (DateTime constructor crash with invalid data).', + 'raw' => 'Fixed bug #67118 (DateTime constructor crash with invalid data). (Anatol)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset).', + 'raw' => 'Fixed bug #67081 (DOMDocumentType->internalSubset returns entire DOCTYPE tag, not only the subset). (Anatol)', + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65715 (php5embed.lib isn\'t provided anymore). .', + 'raw' => 'Fixed bug #65715 (php5embed.lib isn\'t provided anymore). (Anatol).', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587)', + 'raw' => 'Fixed bug #67716 (Segfault in cdf.c). (CVE-2014-3587) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538)', + 'raw' => 'Fixed bug #67705 (extensive backtracking in rule regular expression). (CVE-2014-3538) (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS).', + 'raw' => 'Fixed bug #67327 (fileinfo: CDF infinite loop in nelements DoS). (CVE-2014-0238)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation).', + 'raw' => 'Fixed bug #67328 (fileinfo: fileinfo: numerous file_printf calls resulting in performance degradation). (CVE-2014-0237)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check).', + 'raw' => 'Fixed bug #67326 (fileinfo: cdf_read_short_sector insufficient boundary check). (CVE-2014-0207)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67329 (fileinfo: NULL pointer deference flaw by processing certain CDF files).', + 'raw' => 'Fixed bug #67329 (fileinfo: NULL pointer deference flaw by processing certain CDF files). (CVE-2014-0236)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (CVE-2014-3478)', + 'raw' => 'Fixed bug #67410 (fileinfo: mconvert incorrect handling of truncated pascal string size). (CVE-2014-3478) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 7 => + array ( + 'message' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (CVE-2014-3479)', + 'raw' => 'Fixed bug #67411 (fileinfo: cdf_check_stream_offset insufficient boundary check). (CVE-2014-3479) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 8 => + array ( + 'message' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (CVE-2014-3480)', + 'raw' => 'Fixed bug #67412 (fileinfo: cdf_count_chain insufficient boundary check). (CVE-2014-3480) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 9 => + array ( + 'message' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (CVE-2014-3487)', + 'raw' => 'Fixed bug #67413 (fileinfo: cdf_read_property_info insufficient boundary check). (CVE-2014-3487) (Francisco Alonso, Jan Kaluza, Remi)', + ), + 10 => + array ( + 'message' => 'Upgraded to libmagic-5.17', + 'raw' => 'Upgraded to libmagic-5.17 (Anatol)', + ), + 11 => + array ( + 'message' => 'Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943)', + 'raw' => 'Fixed bug #66731 (file: infinite recursion). (CVE-2014-1943) (Remi)', + ), + 12 => + array ( + 'message' => 'Fixed bug #66820 (out-of-bounds memory access in fileinfo). (CVE-2014-2270).', + 'raw' => 'Fixed bug #66820 (out-of-bounds memory access in fileinfo). (CVE-2014-2270). (Remi)', + ), + 13 => + array ( + 'message' => 'Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345)', + 'raw' => 'Fixed bug #66946 (fileinfo: extensive backtracking in awk rule regular expression). (CVE-2013-7345) (Remi)', + ), + 14 => + array ( + 'message' => 'Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian).', + 'raw' => 'Fixed bug #66987 (Memory corruption in fileinfo ext / bigendian). (Remi)', + ), + 15 => + array ( + 'message' => 'Fixed bug #66907 (Solaris 10 is missing strcasestr and needs substitute).', + 'raw' => 'Fixed bug #66907 (Solaris 10 is missing strcasestr and needs substitute). (Anatol)', + ), + 16 => + array ( + 'message' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files).', + 'raw' => 'Fixed bug #66307 (Fileinfo crashes with powerpoint files). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67606 (revised fix 67541, broke mod_fastcgi BC).', + 'raw' => 'Fixed bug #67606 (revised fix 67541, broke mod_fastcgi BC). (David Zuelke)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67530 (error_log=syslog ignored).', + 'raw' => 'Fixed bug #67530 (error_log=syslog ignored). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67635 (php links to systemd libraries without using pkg-config).', + 'raw' => 'Fixed bug #67635 (php links to systemd libraries without using pkg-config). (pacho at gentoo dot org, Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67531 (syslog cannot be set in pool configuration).', + 'raw' => 'Fixed bug #67531 (syslog cannot be set in pool configuration). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67541 (Fix Apache 2.4.10+ SetHandler proxy:fcgi:// incompatibilities).', + 'raw' => 'Fixed bug #67541 (Fix Apache 2.4.10+ SetHandler proxy:fcgi:// incompatibilities). (David Zuelke)', + ), + 5 => + array ( + 'message' => 'Included apparmor support in fpm (RFC: https://wiki.php.net/rfc/fpm_change_hat).', + 'raw' => 'Included apparmor support in fpm (RFC: https://wiki.php.net/rfc/fpm_change_hat). (Gernot Vormayr)', + ), + 6 => + array ( + 'message' => 'Added clear_env configuration directive to disable clearenv() call.', + 'raw' => 'Added clear_env configuration directive to disable clearenv() call. (Github PR# 598, Paul Annesley)', + ), + 7 => + array ( + 'message' => 'Fixed bug #66482 .', + 'raw' => 'Fixed bug #66482 (unknown entry \'priority\' in php-fpm.conf).', + ), + 8 => + array ( + 'message' => 'Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor).', + 'raw' => 'Fixed bug #66908 (php-fpm reload leaks epoll_create() file descriptor). (Julio Pintos)', + ), + 9 => + array ( + 'message' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185).', + 'raw' => 'Fixed bug #67060 (sapi/fpm: possible privilege escalation due to insecure default configuration) (CVE-2014-0185). (Stas)', + ), + 10 => + array ( + 'message' => 'Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120)', + 'raw' => 'Fixed bug #67730 (Null byte injection possible with imagexxx functions). (CVE-2014-5120) (Ryan Mauger)', + ), + 11 => + array ( + 'message' => 'Fixed bug #66901 (php-gd \'c_color\' NULL pointer dereference). (CVE-2014-2497)', + 'raw' => 'Fixed bug #66901 (php-gd \'c_color\' NULL pointer dereference). (CVE-2014-2497) (Remi)', + ), + 12 => + array ( + 'message' => 'Fixed bug #67248 (imageaffinematrixget missing check of parameters).', + 'raw' => 'Fixed bug #67248 (imageaffinematrixget missing check of parameters). (Stas)', + ), + 13 => + array ( + 'message' => 'Fixed imagettftext to load the correct character map rather than the last one.', + 'raw' => 'Fixed imagettftext to load the correct character map rather than the last one. (Scott)', + ), + 14 => + array ( + 'message' => 'Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop()).', + 'raw' => 'Fixed bug #66356 (Heap Overflow Vulnerability in imagecrop()). (CVE-2013-7226)', + ), + 15 => + array ( + 'message' => 'Fixed bug #66815 (imagecrop(): insufficient fix for NULL defer). (CVE-2013-7327). .', + 'raw' => 'Fixed bug #66815 (imagecrop(): insufficient fix for NULL defer). (CVE-2013-7327). (Tomas Hoger, Remi).', + ), + 16 => + array ( + 'message' => 'Fixed bug #66869 (Invalid 2nd argument crashes imageaffinematrixget)', + 'raw' => 'Fixed bug #66869 (Invalid 2nd argument crashes imageaffinematrixget) (Pierre)', + ), + 17 => + array ( + 'message' => 'Fixed bug #66887 (imagescale - poor quality of scaled image).', + 'raw' => 'Fixed bug #66887 (imagescale - poor quality of scaled image). (Remi)', + ), + 18 => + array ( + 'message' => 'Fixed bug #66890 (imagescale segfault).', + 'raw' => 'Fixed bug #66890 (imagescale segfault). (Remi)', + ), + 19 => + array ( + 'message' => 'Fixed bug #66893 (imagescale ignore method argument).', + 'raw' => 'Fixed bug #66893 (imagescale ignore method argument). (Remi)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66872 (invalid argument crashes gmp_testbit)', + 'raw' => 'Fixed bug #66872 (invalid argument crashes gmp_testbit) (Pierre)', + ), + 1 => + array ( + 'message' => 'Fixed crashes in serialize/unserialize.', + 'raw' => 'Fixed crashes in serialize/unserialize. (Stas)', + ), + 2 => + array ( + 'message' => 'Moved GMP to use object as the underlying structure and implemented various improvements based on this. (RFC: https://wiki.php.net/rfc/operator_overloading_gmp).', + 'raw' => 'Moved GMP to use object as the underlying structure and implemented various improvements based on this. (RFC: https://wiki.php.net/rfc/operator_overloading_gmp). (Nikita)', + ), + 3 => + array ( + 'message' => 'Added gmp_root() and gmp_rootrem() functions for calculating nth roots.', + 'raw' => 'Added gmp_root() and gmp_rootrem() functions for calculating nth roots. (Nikita)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Added gost-crypto (CryptoPro S-box) GOST hash algo.', + 'raw' => 'Added gost-crypto (CryptoPro S-box) GOST hash algo. (Manuel Mausz)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66698 (Missing FNV1a32 and FNV1a64 hash functions). .', + 'raw' => 'Fixed bug #66698 (Missing FNV1a32 and FNV1a64 hash functions). (Michael M Slusarz).', + ), + 2 => + array ( + 'message' => 'Implemented timing attack safe string comparison function (RFC: https://wiki.php.net/rfc/timing_attack).', + 'raw' => 'Implemented timing attack safe string comparison function (RFC: https://wiki.php.net/rfc/timing_attack). (Rouven Weßling)', + ), + 3 => + array ( + 'message' => 'hash_pbkdf2() now works correctly if the $length argument is not specified.', + 'raw' => 'hash_pbkdf2() now works correctly if the $length argument is not specified. (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66873 (A reproductible crash in UConverter when given invalid encoding)', + 'raw' => 'Fixed bug #66873 (A reproductible crash in UConverter when given invalid encoding) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66921 (Wrong argument type hint for function intltz_from_date_time_zone).', + 'raw' => 'Fixed bug #66921 (Wrong argument type hint for function intltz_from_date_time_zone). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting).', + 'raw' => 'Fixed bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67349 (Locale::parseLocale Double Free).', + 'raw' => 'Fixed bug #67349 (Locale::parseLocale Double Free). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)).', + 'raw' => 'Fixed bug #67397 (Buffer overflow in locale_get_display_name and uloc_getDisplayName (libicu 4.8.1)). (Stas)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed case part of bug #64874', + 'raw' => 'Fixed case part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")', + ), + 1 => + array ( + 'message' => 'Fixed bug #65753 (JsonSerializeable couldn\'t implement on module extension)', + 'raw' => 'Fixed bug #65753 (JsonSerializeable couldn\'t implement on module extension) (chobieeee@php.net)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set).', + 'raw' => 'Fixed bug #66021 (Blank line inside empty array/object when JSON_PRETTY_PRINT is set). (Kevin Israel)', + ), + 3 => + array ( + 'message' => 'Added new function ldap_modify_batch().', + 'raw' => 'Added new function ldap_modify_batch(). (Ondrej Hosek)', + ), + 4 => + array ( + 'message' => 'Fixed issue with null bytes in LDAP bindings.', + 'raw' => 'Fixed issue with null bytes in LDAP bindings. (Matthew Daley)', + ), + 5 => + array ( + 'message' => 'Updated LiteSpeed SAPI code to V6.6', + 'raw' => 'Updated LiteSpeed SAPI code to V6.6 (George Wang)', + ), + 6 => + array ( + 'message' => 'Fixed bug #63228 (-Werror=format-security error in lsapi code).', + 'raw' => 'Fixed bug #63228 (-Werror=format-security error in lsapi code). (Elan Ruusamäe, George)', + ), + ), + 'mail' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66535 (Don\'t add newline after X-PHP-Originating-Script)', + 'raw' => 'Fixed bug #66535 (Don\'t add newline after X-PHP-Originating-Script) (Tjerk)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'No longer allow invalid key sizes, invalid IV sizes or missing required IV in mcrypt_encrypt, mcrypt_decrypt and the deprecated mode functions.', + 'raw' => 'No longer allow invalid key sizes, invalid IV sizes or missing required IV in mcrypt_encrypt, mcrypt_decrypt and the deprecated mode functions. (Nikita)', + ), + 1 => + array ( + 'message' => 'Use /dev/urandom as the default source for mcrypt_create_iv().', + 'raw' => 'Use /dev/urandom as the default source for mcrypt_create_iv(). (Nikita)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Upgraded to oniguruma 5.9.5', + 'raw' => 'Upgraded to oniguruma 5.9.5 (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67199 (mb_regex_encoding mismatch).', + 'raw' => 'Fixed bug #67199 (mb_regex_encoding mismatch). (Yasuo)', + ), + ), + 'milter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67715 (php-milter does not build and crashes randomly).', + 'raw' => 'Fixed bug #67715 (php-milter does not build and crashes randomly). (Mike)', + ), + 1 => + array ( + 'message' => 'Added new function mysqli_get_links_stats() as well as new INI variable mysqli.rollback_on_cached_plink of type bool', + 'raw' => 'Added new function mysqli_get_links_stats() as well as new INI variable mysqli.rollback_on_cached_plink of type bool (Andrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed)', + 'raw' => 'Fixed bug #66762 (Segfault in mysqli_stmt::bind_result() when link closed) (Remi)', + ), + 3 => + array ( + 'message' => 'Fixed building against an external libmysqlclient.', + 'raw' => 'Fixed building against an external libmysqlclient. (Adam)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Disabled flag for SP OUT variables for 5.5+ servers as they are not natively supported by the overlying APIs.', + 'raw' => 'Disabled flag for SP OUT variables for 5.5+ servers as they are not natively supported by the overlying APIs. (Andrey)', + ), + 1 => + array ( + 'message' => 'Added a new fetching mode to mysqlnd.', + 'raw' => 'Added a new fetching mode to mysqlnd. (Andrey)', + ), + 2 => + array ( + 'message' => 'Added support for gb18030 from MySQL 5.7.', + 'raw' => 'Added support for gb18030 from MySQL 5.7. (Andrey)', + ), + ), + 'network' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597)', + 'raw' => 'Fixed bug #67717 (segfault in dns_get_record). (CVE-2014-3597) (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049).', + 'raw' => 'Fixed bug #67432 (Fix potential segfault in dns_get_record()). (CVE-2014-4049). (Sara)', + ), + 2 => + array ( + 'message' => 'Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries)', + 'raw' => 'Fixed Bug #66875 (Improve performance of multi-row OCI_RETURN_LOB queries) (Perrier, Chris Jones)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60616 (odbc_fetch_into returns junk at end of multi-byte char fields).', + 'raw' => 'Fixed bug #60616 (odbc_fetch_into returns junk at end of multi-byte char fields). (Keyur Govande)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41631 (socket timeouts not honored in blocking SSL reads) .', + 'raw' => 'Fixed bug #41631 (socket timeouts not honored in blocking SSL reads) (Daniel Lowrey).', + ), + 1 => + array ( + 'message' => 'Fixed missing type checks in OpenSSL options .', + 'raw' => 'Fixed missing type checks in OpenSSL options (Yussuf Khalil, Stas).', + ), + 2 => + array ( + 'message' => 'Fixed bug #67609 (TLS connections fail behind HTTP proxy).', + 'raw' => 'Fixed bug #67609 (TLS connections fail behind HTTP proxy). (Daniel Lowrey)', + ), + 3 => + array ( + 'message' => 'Fixed broken build against OpenSSL older than 0.9.8 where ECDH unavailable.', + 'raw' => 'Fixed broken build against OpenSSL older than 0.9.8 where ECDH unavailable. (Lior Kaplan)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67666 (Subject altNames doesn\'t support wildcard matching).', + 'raw' => 'Fixed bug #67666 (Subject altNames doesn\'t support wildcard matching). (Tjerk)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67224 (Fall back to crypto_type from context if not specified explicitly in stream_socket_enable_crypto).', + 'raw' => 'Fixed bug #67224 (Fall back to crypto_type from context if not specified explicitly in stream_socket_enable_crypto). (Chris Wright)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65698 (certificates validity parsing does not work past 2050).', + 'raw' => 'Fixed bug #65698 (certificates validity parsing does not work past 2050). (Paul Oehler)', + ), + 7 => + array ( + 'message' => 'Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME).', + 'raw' => 'Fixed bug #66636 (openssl_x509_parse warning with V_ASN1_GENERALIZEDTIME). (Paul Oehler)', + ), + 8 => + array ( + 'message' => 'Peer certificates now verified by default in client socket operations (RFC: https://wiki.php.net/rfc/tls-peer-verification).', + 'raw' => 'Peer certificates now verified by default in client socket operations (RFC: https://wiki.php.net/rfc/tls-peer-verification). (Daniel Lowrey)', + ), + 9 => + array ( + 'message' => 'New openssl.cafile and openssl.capath ini directives.', + 'raw' => 'New openssl.cafile and openssl.capath ini directives. (Daniel Lowrey)', + ), + 10 => + array ( + 'message' => 'Added crypto_method option for the ssl stream context.', + 'raw' => 'Added crypto_method option for the ssl stream context. (Martin Jansen)', + ), + 11 => + array ( + 'message' => 'Added certificate fingerprint support.', + 'raw' => 'Added certificate fingerprint support. (Tjerk Meesters)', + ), + 12 => + array ( + 'message' => 'Added explicit TLSv1.1 and TLSv1.2 stream transports.', + 'raw' => 'Added explicit TLSv1.1 and TLSv1.2 stream transports. (Daniel Lowrey)', + ), + 13 => + array ( + 'message' => 'Fixed bug #65729 (CN_match gives false positive).', + 'raw' => 'Fixed bug #65729 (CN_match gives false positive). (Tjerk Meesters)', + ), + 14 => + array ( + 'message' => 'Peer name verification matches SAN DNS names for certs using the Subject Alternative Name x509 extension.', + 'raw' => 'Peer name verification matches SAN DNS names for certs using the Subject Alternative Name x509 extension. (Daniel Lowrey)', + ), + 15 => + array ( + 'message' => 'Fixed segfault when built against OpenSSL>=1.0.1', + 'raw' => 'Fixed segfault when built against OpenSSL>=1.0.1 (Daniel Lowrey)', + ), + 16 => + array ( + 'message' => 'Added SPKAC support.', + 'raw' => 'Added SPKAC support. (Jason Gerfen)', + ), + 17 => + array ( + 'message' => 'Fallback to Windows CA cert store for peer verification if no openssl.cafile ini directive or "cafile" SSL context option specified in Windows.', + 'raw' => 'Fallback to Windows CA cert store for peer verification if no openssl.cafile ini directive or "cafile" SSL context option specified in Windows. (Chris Wright)', + ), + 18 => + array ( + 'message' => 'The openssl.cafile and openssl.capath ini directives introduced in alpha2 now have PHP_INI_PERDIR accessibility (was PHP_INI_ALL).', + 'raw' => 'The openssl.cafile and openssl.capath ini directives introduced in alpha2 now have PHP_INI_PERDIR accessibility (was PHP_INI_ALL). (Daniel Lowrey)', + ), + 19 => + array ( + 'message' => 'New "peer_name" SSL context option replaces "CN_match" (which still works as before but triggers E_DEPRECATED).', + 'raw' => 'New "peer_name" SSL context option replaces "CN_match" (which still works as before but triggers E_DEPRECATED). (Daniel Lowrey)', + ), + 20 => + array ( + 'message' => 'Fixed segfault when accessing non-existent context for client SNI use', + 'raw' => 'Fixed segfault when accessing non-existent context for client SNI use (Daniel Lowrey)', + ), + 21 => + array ( + 'message' => 'Fixed bug #66501 (Add EC key support to php_openssl_is_private_key).', + 'raw' => 'Fixed bug #66501 (Add EC key support to php_openssl_is_private_key). (Mark Zedwood)', + ), + 22 => + array ( + 'message' => 'Fixed Bug #47030 (add new boolean "verify_peer_name" SSL context option allowing clients to verify cert names separately from the cert itself). "verify_peer_name" is enabled by default for client streams.', + 'raw' => 'Fixed Bug #47030 (add new boolean "verify_peer_name" SSL context option allowing clients to verify cert names separately from the cert itself). "verify_peer_name" is enabled by default for client streams. (Daniel Lowrey)', + ), + 23 => + array ( + 'message' => 'Fixed Bug #65538 ("cafile" SSL context option now supports stream wrappers).', + 'raw' => 'Fixed Bug #65538 ("cafile" SSL context option now supports stream wrappers). (Daniel Lowrey)', + ), + 24 => + array ( + 'message' => 'New openssl_get_cert_locations() function to aid CA file and peer verification debugging.', + 'raw' => 'New openssl_get_cert_locations() function to aid CA file and peer verification debugging. (Daniel Lowrey)', + ), + 25 => + array ( + 'message' => 'Encrypted stream wrappers now disable TLS compression by default.', + 'raw' => 'Encrypted stream wrappers now disable TLS compression by default. (Daniel Lowrey)', + ), + 26 => + array ( + 'message' => 'New "capture_session_meta" SSL context option allows encrypted client and server streams access to negotiated protocol/cipher information.', + 'raw' => 'New "capture_session_meta" SSL context option allows encrypted client and server streams access to negotiated protocol/cipher information. (Daniel Lowrey)', + ), + 27 => + array ( + 'message' => 'New "honor_cipher_order" SSL context option allows servers to prioritize cipher suites of their choosing when negotiating SSL/TLS handshakes.', + 'raw' => 'New "honor_cipher_order" SSL context option allows servers to prioritize cipher suites of their choosing when negotiating SSL/TLS handshakes. (Daniel Lowrey)', + ), + 28 => + array ( + 'message' => 'New "single_ecdh_use" and "single_dh_use" SSL context options allow for improved forward secrecy in encrypted stream servers.', + 'raw' => 'New "single_ecdh_use" and "single_dh_use" SSL context options allow for improved forward secrecy in encrypted stream servers. (Daniel Lowrey)', + ), + 29 => + array ( + 'message' => 'New "dh_param" SSL context option allows stream servers control over the parameters when negotiating DHE cipher suites.', + 'raw' => 'New "dh_param" SSL context option allows stream servers control over the parameters when negotiating DHE cipher suites. (Daniel Lowrey)', + ), + 30 => + array ( + 'message' => 'New "ecdh_curve" SSL context option allowing stream servers to specify the curve to use when negotiating ephemeral ECDHE ciphers (defaults to NIST P-256).', + 'raw' => 'New "ecdh_curve" SSL context option allowing stream servers to specify the curve to use when negotiating ephemeral ECDHE ciphers (defaults to NIST P-256). (Daniel Lowrey)', + ), + 31 => + array ( + 'message' => 'New "rsa_key_size" SSL context option gives stream servers control over the key size (in bits) used for RSA key agreements.', + 'raw' => 'New "rsa_key_size" SSL context option gives stream servers control over the key size (in bits) used for RSA key agreements. (Daniel Lowrey)', + ), + 32 => + array ( + 'message' => 'Crypto methods for encrypted client and server streams now use bitwise flags for fine-grained protocol support.', + 'raw' => 'Crypto methods for encrypted client and server streams now use bitwise flags for fine-grained protocol support. (Daniel Lowrey)', + ), + 33 => + array ( + 'message' => 'Added new tlsv1.0 stream wrapper to specify TLSv1 client/server method. tls wrapper now negotiates TLSv1, TLSv1.1 or TLSv1.2.', + 'raw' => 'Added new tlsv1.0 stream wrapper to specify TLSv1 client/server method. tls wrapper now negotiates TLSv1, TLSv1.1 or TLSv1.2. (Daniel Lowrey)', + ), + 34 => + array ( + 'message' => 'Encrypted client streams now enable SNI by default.', + 'raw' => 'Encrypted client streams now enable SNI by default. (Daniel Lowrey)', + ), + 35 => + array ( + 'message' => 'Encrypted streams now prioritize ephemeral key agreement and high strength ciphers by default.', + 'raw' => 'Encrypted streams now prioritize ephemeral key agreement and high strength ciphers by default. (Daniel Lowrey)', + ), + 36 => + array ( + 'message' => 'New OPENSSL_DEFAULT_STREAM_CIPHERS constant exposes default cipher list.', + 'raw' => 'New OPENSSL_DEFAULT_STREAM_CIPHERS constant exposes default cipher list. (Daniel Lowrey)', + ), + 37 => + array ( + 'message' => 'New STREAM_CRYPTO_METHOD_* constants for enhanced control over the crypto methods negotiated encrypted server/client sessions.', + 'raw' => 'New STREAM_CRYPTO_METHOD_* constants for enhanced control over the crypto methods negotiated encrypted server/client sessions. (Daniel Lowrey)', + ), + 38 => + array ( + 'message' => 'Encrypted stream servers now automatically mitigate potential DoS vector arising from client-initiated TLS renegotiation. New "reneg_limit", "reneg_window" and "reneg_limit_callback" SSL context options for custom renegotiation limiting control.', + 'raw' => 'Encrypted stream servers now automatically mitigate potential DoS vector arising from client-initiated TLS renegotiation. New "reneg_limit", "reneg_window" and "reneg_limit_callback" SSL context options for custom renegotiation limiting control. (Daniel Lowrey)', + ), + 39 => + array ( + 'message' => 'Fixed memory leak in windows cert verification on verify failure.', + 'raw' => 'Fixed memory leak in windows cert verification on verify failure. (Chris Wright)', + ), + 40 => + array ( + 'message' => 'Peer certificate capturing via SSL context options now functions even if peer verification fails.', + 'raw' => 'Peer certificate capturing via SSL context options now functions even if peer verification fails. (Daniel Lowrey)', + ), + 41 => + array ( + 'message' => 'Encrypted TLS servers now support the server name indication TLS extension via the new "SNI_server_certs" SSL context option.', + 'raw' => 'Encrypted TLS servers now support the server name indication TLS extension via the new "SNI_server_certs" SSL context option. (Daniel Lowrey)', + ), + 42 => + array ( + 'message' => 'Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1).', + 'raw' => 'Fixed bug #66833 (Default disgest algo is still MD5, switch to SHA1). (Remi)', + ), + 43 => + array ( + 'message' => 'Fixed bug #66942 (memory leak in openssl_seal()).', + 'raw' => 'Fixed bug #66942 (memory leak in openssl_seal()). (Chuan Ma)', + ), + 44 => + array ( + 'message' => 'Fixed bug #66952 (memory leak in openssl_open()).', + 'raw' => 'Fixed bug #66952 (memory leak in openssl_open()). (Chuan Ma)', + ), + 45 => + array ( + 'message' => 'Fixed bug #66840 (Fix broken build when extension built separately).', + 'raw' => 'Fixed bug #66840 (Fix broken build when extension built separately). (Daniel Lowrey)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added an optimization of class constants and constant calls to some internal functions', + 'raw' => 'Added an optimization of class constants and constant calls to some internal functions (Laruence, Dmitry)', + ), + 1 => + array ( + 'message' => 'Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL.', + 'raw' => 'Added an optimization pass to convert FCALL_BY_NAME into DO_FCALL. (Laruence, Dmitry)', + ), + 2 => + array ( + 'message' => 'Added an optimization pass to merged identical constants (and related cache_slots) in op_array->literals table.', + 'raw' => 'Added an optimization pass to merged identical constants (and related cache_slots) in op_array->literals table. (Laruence, Dmitry)', + ), + 3 => + array ( + 'message' => 'Added script level constant replacement optimization pass.', + 'raw' => 'Added script level constant replacement optimization pass. (Dmitry)', + ), + 4 => + array ( + 'message' => 'Added function opcache_is_script_cached().', + 'raw' => 'Added function opcache_is_script_cached(). (Danack)', + ), + 5 => + array ( + 'message' => 'Added information about interned strings usage.', + 'raw' => 'Added information about interned strings usage. (Terry, Julien, Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen)', + 'raw' => 'Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen) (Dmitry, Laruence)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67238 (Ungreedy and min/max quantifier bug, applied patch from the upstream).', + 'raw' => 'Fixed bug #67238 (Ungreedy and min/max quantifier bug, applied patch from the upstream). (Anatol)', + ), + 1 => + array ( + 'message' => 'Upgraded to PCRE 8.34.', + 'raw' => 'Upgraded to PCRE 8.34. (Anatol)', + ), + 2 => + array ( + 'message' => 'Added support for (*MARK) backtracking verbs.', + 'raw' => 'Added support for (*MARK) backtracking verbs. (Nikita)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3.', + 'raw' => 'Fixed bug #67550 (Error in code "form" instead of "from", pgsql.c, line 756), which affected builds against libpq < 7.3. (Adam)', + ), + 1 => + array ( + 'message' => 'pg_insert()/pg_select()/pg_update()/pg_delete() are no longer EXPERIMENTAL.', + 'raw' => 'pg_insert()/pg_select()/pg_update()/pg_delete() are no longer EXPERIMENTAL. (Yasuo)', + ), + 2 => + array ( + 'message' => 'Impremented FR #25854 Return value for pg_insert should be resource instead of bool.', + 'raw' => 'Impremented FR #25854 Return value for pg_insert should be resource instead of bool. (Yasuo)', + ), + 3 => + array ( + 'message' => 'Implemented FR #41146 - Add "description" with exteneded flag pg_meta_data(). pg_meta_data(resource $conn, string $table [, bool extended]) It also made pg_meta_data() return "is enum" always.', + 'raw' => 'Implemented FR #41146 - Add "description" with exteneded flag pg_meta_data(). pg_meta_data(resource $conn, string $table [, bool extended]) It also made pg_meta_data() return "is enum" always. (Yasuo)', + ), + 4 => + array ( + 'message' => 'Read-only access to the socket stream underlying database connections is exposed via a new pg_socket() function to allow read/write polling when establishing asynchronous connections and executing queries in non-blocking applications.', + 'raw' => 'Read-only access to the socket stream underlying database connections is exposed via a new pg_socket() function to allow read/write polling when establishing asynchronous connections and executing queries in non-blocking applications. (Daniel Lowrey)', + ), + 5 => + array ( + 'message' => 'Asynchronous connections are now possible using the PGSQL_CONNECT_ASYNC flag in conjunction with a new pg_connect_poll() function and connection polling status constants.', + 'raw' => 'Asynchronous connections are now possible using the PGSQL_CONNECT_ASYNC flag in conjunction with a new pg_connect_poll() function and connection polling status constants. (Daniel Lowrey)', + ), + 6 => + array ( + 'message' => 'New pg_flush() and pg_consume_input() functions added to manually complete non-blocking reads/writes to underlying connection sockets.', + 'raw' => 'New pg_flush() and pg_consume_input() functions added to manually complete non-blocking reads/writes to underlying connection sockets. (Daniel Lowrey)', + ), + 7 => + array ( + 'message' => 'pg_version() returns full report which obtained by PQparameterStatus().', + 'raw' => 'pg_version() returns full report which obtained by PQparameterStatus(). (Yasuo)', + ), + 8 => + array ( + 'message' => 'Added pg_lo_truncate().', + 'raw' => 'Added pg_lo_truncate(). (Yasuo)', + ), + 9 => + array ( + 'message' => 'Added 64bit large object support for PostgreSQL 9.3 and later.', + 'raw' => 'Added 64bit large object support for PostgreSQL 9.3 and later. (Yasuo)', + ), + 10 => + array ( + 'message' => 'Fixed bug #67555 (Cannot build against libpq 7.3).', + 'raw' => 'Fixed bug #67555 (Cannot build against libpq 7.3). (Adam)', + ), + 11 => + array ( + 'message' => 'Fixed bug #67575 (Compilation fails for phpdbg when the build directory != src directory).', + 'raw' => 'Fixed bug #67575 (Compilation fails for phpdbg when the build directory != src directory). (Andy Thompson)', + ), + 12 => + array ( + 'message' => 'Fixed Bug #67499 (readline feature not enabled when build with libedit).', + 'raw' => 'Fixed Bug #67499 (readline feature not enabled when build with libedit). (Remi)', + ), + 13 => + array ( + 'message' => 'Fix issue krakjoe/phpdbg#94 (List behavior is inconsistent).', + 'raw' => 'Fix issue krakjoe/phpdbg#94 (List behavior is inconsistent). (Bob)', + ), + 14 => + array ( + 'message' => 'Fix issue krakjoe/phpdbg#97 (The prompt should always ensure it is on a newline).', + 'raw' => 'Fix issue krakjoe/phpdbg#97 (The prompt should always ensure it is on a newline). (Bob)', + ), + 15 => + array ( + 'message' => 'Fix issue krakjoe/phpdbg#98 (break if does not seem to work).', + 'raw' => 'Fix issue krakjoe/phpdbg#98 (break if does not seem to work). (Bob)', + ), + 16 => + array ( + 'message' => 'Fix issue krakjoe/phpdbg#99 (register function has the same behavior as run).', + 'raw' => 'Fix issue krakjoe/phpdbg#99 (register function has the same behavior as run). (Bob)', + ), + 17 => + array ( + 'message' => 'Fix issue krakjoe/phpdbg#100 (No way to list the current stack/frames) (Help entry was missing).', + 'raw' => 'Fix issue krakjoe/phpdbg#100 (No way to list the current stack/frames) (Help entry was missing). (Bob)', + ), + 18 => + array ( + 'message' => 'Fixed bug which caused phpdbg to fail immediately on startup in non-debug builds.', + 'raw' => 'Fixed bug which caused phpdbg to fail immediately on startup in non-debug builds. (Bob)', + ), + 19 => + array ( + 'message' => 'Fixed bug #67212 (phpdbg uses non-standard TIOCGWINSZ).', + 'raw' => 'Fixed bug #67212 (phpdbg uses non-standard TIOCGWINSZ). (Ferenc)', + ), + 20 => + array ( + 'message' => 'Included phpdbg sapi (RFC: https://wiki.php.net/rfc/phpdbg).', + 'raw' => 'Included phpdbg sapi (RFC: https://wiki.php.net/rfc/phpdbg). (Felipe Pena, Joe Watkins and Bob Weinand)', + ), + 21 => + array ( + 'message' => 'Added watchpoints (watch command).', + 'raw' => 'Added watchpoints (watch command). (Bob)', + ), + 22 => + array ( + 'message' => 'Renamed some commands (next => continue and how to step).', + 'raw' => 'Renamed some commands (next => continue and how to step). (Joe)', + ), + 23 => + array ( + 'message' => 'Fixed issue #85 (https://github.com/krakjoe/phpdbg/issues/85) (Added stdin/stdout/stderr constants and their php:// wrappers).', + 'raw' => 'Fixed issue #85 (https://github.com/krakjoe/phpdbg/issues/85) (Added stdin/stdout/stderr constants and their php:// wrappers). (Bob)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66604 (\'pdo/php_pdo_error.h\' not copied to the include dir).', + 'raw' => 'Fixed bug #66604 (\'pdo/php_pdo_error.h\' not copied to the include dir). (Matteo)', + ), + ), + 'pdo-odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50444 .', + 'raw' => 'Fixed bug #50444 (PDO-ODBC changes for 64-bit).', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #42614 (PDO_pgsql: add pg_get_notify support).', + 'raw' => 'Fixed Bug #42614 (PDO_pgsql: add pg_get_notify support). (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3 syntax).', + 'raw' => 'Fixed Bug #63657 (pgsqlCopyFromFile, pgsqlCopyToArray use Postgres < 7.3 syntax). (Matteo)', + ), + 2 => + array ( + 'message' => 'Cleaned up code by increasing the requirements to libpq versions providing PQexecParams, PQprepare, PQescapeStringConn, PQescapeByteaConn. According to the release notes that means 8.0.8+ or 8.1.4+.', + 'raw' => 'Cleaned up code by increasing the requirements to libpq versions providing PQexecParams, PQprepare, PQescapeStringConn, PQescapeByteaConn. According to the release notes that means 8.0.8+ or 8.1.4+. (Matteo)', + ), + 3 => + array ( + 'message' => 'Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, an undocument constant effectively equivalent to PDO::ATTR_EMULATE_PREPARES.', + 'raw' => 'Deprecated PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, an undocument constant effectively equivalent to PDO::ATTR_EMULATE_PREPARES. (Matteo)', + ), + 4 => + array ( + 'message' => 'Added PDO::PGSQL_ATTR_DISABLE_PREPARES constant to execute the queries without preparing them, while still passing parameters separately from the command text using PQexecParams.', + 'raw' => 'Added PDO::PGSQL_ATTR_DISABLE_PREPARES constant to execute the queries without preparing them, while still passing parameters separately from the command text using PQexecParams. (Matteo)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #66071 (memory corruption in error handling)', + 'raw' => 'Fixed Bug #66071 (memory corruption in error handling) (Popa)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64498 ($phar->buildFromDirectory can\'t compress file with an accent in its name).', + 'raw' => 'Fixed bug #64498 ($phar->buildFromDirectory can\'t compress file with an accent in its name). (PR #588)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67587 (Redirection loop on nginx with FPM).', + 'raw' => 'Fixed bug #67587 (Redirection loop on nginx with FPM). (Christian Weiske)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55496 (Interactive mode doesn\'t force a newline before the prompt).', + 'raw' => 'Fixed bug #55496 (Interactive mode doesn\'t force a newline before the prompt). (Bob, Johannes)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67496 (Save command history when exiting interactive shell with control-c).', + 'raw' => 'Fixed bug #67496 (Save command history when exiting interactive shell with control-c). (Dmitry Saprykin, Johannes)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #67713 (loosen the restrictions on ReflectionClass::newInstanceWithoutConstructor()).', + 'raw' => 'Implemented FR #67713 (loosen the restrictions on ReflectionClass::newInstanceWithoutConstructor()). (Ferenc)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67694 (Regression in session_regenerate_id()).', + 'raw' => 'Fixed bug #67694 (Regression in session_regenerate_id()). (Tjerk)', + ), + 1 => + array ( + 'message' => 'Fixed missing type checks in php_session_create_id .', + 'raw' => 'Fixed missing type checks in php_session_create_id (Yussuf Khalil, Stas).', + ), + 2 => + array ( + 'message' => 'Fixed bug #66827 (Session raises E_NOTICE when session name variable is array).', + 'raw' => 'Fixed bug #66827 (Session raises E_NOTICE when session name variable is array). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed Bug #65315 (session.hash_function silently fallback to default md5)', + 'raw' => 'Fixed Bug #65315 (session.hash_function silently fallback to default md5) (Yasuo)', + ), + 4 => + array ( + 'message' => 'Implemented Request #17860 (Session write short circuit).', + 'raw' => 'Implemented Request #17860 (Session write short circuit). (Yasuo)', + ), + 5 => + array ( + 'message' => 'Implemented Request #20421 (session_abort() and session_reset() function).', + 'raw' => 'Implemented Request #20421 (session_abort() and session_reset() function). (Yasuo)', + ), + 6 => + array ( + 'message' => 'Remove session_gc() and session_serializer_name() wich were introduced in the first 5.6.0 alpha.', + 'raw' => 'Remove session_gc() and session_serializer_name() wich were introduced in the first 5.6.0 alpha.', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66084 (simplexml_load_string() mangles empty node name)', + 'raw' => 'Fixed bug #66084 (simplexml_load_string() mangles empty node name) (Anatol)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Updated the bundled libsqlite to the version 3.8.3.1', + 'raw' => 'Updated the bundled libsqlite to the version 3.8.3.1 (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3).', + 'raw' => 'Fixed bug #66967 (Updated bundled libsqlite to 3.8.4.3). (Anatol)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #49898 (Add SoapClient::__getCookies()).', + 'raw' => 'Implemented FR #49898 (Add SoapClient::__getCookies()). (Boro Sitnikovski)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Revert fix for bug #67064 (BC issues).', + 'raw' => 'Revert fix for bug #67064 (BC issues). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698)', + 'raw' => 'Fixed bug #67539 (ArrayIterator use-after-free due to object change during sorting). (CVE-2014-4698) (research at insighti dot org, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670)', + 'raw' => 'Fixed bug #67538 (SPL Iterators use-after-free). (CVE-2014-4670) (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515).', + 'raw' => 'Fixed bug #67492 (unserialize() SPL ArrayObject / SPLObjectStorage Type Confusion) (CVE-2014-3515). (Stefan Esser)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator).', + 'raw' => 'Fixed bug #67359 (Segfault in recursiveDirectoryIterator). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset).', + 'raw' => 'Fixed bug #66127 (Segmentation fault with ArrayObject unset). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed request #67453 (Allow to unserialize empty data).', + 'raw' => 'Fixed request #67453 (Allow to unserialize empty data). (Remi)', + ), + 7 => + array ( + 'message' => 'Added feature #65545 (SplFileObject::fread())', + 'raw' => 'Added feature #65545 (SplFileObject::fread()) (Tjerk)', + ), + 8 => + array ( + 'message' => 'Fixed bug #66834 (empty() does not work on classes that extend ArrayObject)', + 'raw' => 'Fixed bug #66834 (empty() does not work on classes that extend ArrayObject) (Tjerk)', + ), + 9 => + array ( + 'message' => 'Fixed bug #66702 (RegexIterator::INVERT_MATCH does not invert).', + 'raw' => 'Fixed bug #66702 (RegexIterator::INVERT_MATCH does not invert). (Joshua Thijssen)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #65634 (HTTP wrapper is very slow with protocol_version 1.1).', + 'raw' => 'Implemented FR #65634 (HTTP wrapper is very slow with protocol_version 1.1). (Adam)', + ), + 1 => + array ( + 'message' => 'Implemented Change crypt() behavior w/o salt RFC. https://wiki.php.net/rfc/crypt_function_salt', + 'raw' => 'Implemented Change crypt() behavior w/o salt RFC. (Yasuo) https://wiki.php.net/rfc/crypt_function_salt', + ), + 2 => + array ( + 'message' => 'Implemented request #49824 (Change array_fill() to allow creating empty array).', + 'raw' => 'Implemented request #49824 (Change array_fill() to allow creating empty array). (Nikita)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67430 (http:// wrapper doesn\'t follow 308 redirects).', + 'raw' => 'Fixed bug #67430 (http:// wrapper doesn\'t follow 308 redirects). (Adam)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67395 (token_name() does not return name for T_POW and T_POW_EQUAL token).', + 'raw' => 'Fixed bug #67395 (token_name() does not return name for T_POW and T_POW_EQUAL token). (Ferenc)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency).', + 'raw' => 'Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency). (Mike)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://").', + 'raw' => 'Fixed bug #53965 ( cannot find files with relative paths when loaded with "file://"). (Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'update libzip to version 1.11.2. PHP don\'t use any ilibzip private symbol anymore.', + 'raw' => 'update libzip to version 1.11.2. PHP don\'t use any ilibzip private symbol anymore. (Pierre, Remi)', + ), + 1 => + array ( + 'message' => 'new method ZipArchive::setPassword($password).', + 'raw' => 'new method ZipArchive::setPassword($password). (Pierre)', + ), + 2 => + array ( + 'message' => 'add --with-libzip option to build with system libzip.', + 'raw' => 'add --with-libzip option to build with system libzip. (Remi)', + ), + 3 => + array ( + 'message' => 'new methods: ZipArchive::setExternalAttributesName($name, $opsys, $attr [, $flags]) ZipArchive::setExternalAttributesIndex($idx, $opsys, $attr [, $flags]) ZipArchive::getExternalAttributesName($name, &$opsys, &$attr [, $flags]) ZipArchive::getExternalAttributesIndex($idx, &$opsys, &$attr [, $flags])', + 'raw' => 'new methods: ZipArchive::setExternalAttributesName($name, $opsys, $attr [, $flags]) ZipArchive::setExternalAttributesIndex($idx, $opsys, $attr [, $flags]) ZipArchive::getExternalAttributesName($name, &$opsys, &$attr [, $flags]) ZipArchive::getExternalAttributesIndex($idx, &$opsys, &$attr [, $flags])', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67865 . Mike', + 'raw' => 'Fixed bug #67865 (internal corruption phar error). Mike', + ), + 1 => + array ( + 'message' => 'Fixed bug #67724 (chained zlib filters silently fail with large amounts of data).', + 'raw' => 'Fixed bug #67724 (chained zlib filters silently fail with large amounts of data). (Mike)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/7.0/changelist.inc b/include/releases/7.0/changelist.inc new file mode 100644 index 0000000000..f1b03e68b2 --- /dev/null +++ b/include/releases/7.0/changelist.inc @@ -0,0 +1,2325 @@ + + array ( + 'date' => '17 Dec 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker).', + 'raw' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker). (Julien)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71105 (Format String Vulnerability in Class Name Error Message). (CVE-2015-8617)', + 'raw' => 'Fixed bug #71105 (Format String Vulnerability in Class Name Error Message). (CVE-2015-8617) (andrew at jmpesp dot org)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70831 (Compile fails on system with 160 CPUs).', + 'raw' => 'Fixed bug #70831 (Compile fails on system with 160 CPUs). (Daniel Axtens)', + ), + 3 => + array ( + 'message' => 'Fixed bug #71006 (symbol referencing errors on Sparc/Solaris).', + 'raw' => 'Fixed bug #71006 (symbol referencing errors on Sparc/Solaris). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70997 (When using parentClass:: instead of parent::, static context changed).', + 'raw' => 'Fixed bug #70997 (When using parentClass:: instead of parent::, static context changed). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70970 (Segfault when combining error handler with output buffering).', + 'raw' => 'Fixed bug #70970 (Segfault when combining error handler with output buffering). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70967 (Weird error handling for __toString when Error is thrown).', + 'raw' => 'Fixed bug #70967 (Weird error handling for __toString when Error is thrown). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70958 (Invalid opcode while using ::class as trait method paramater default value).', + 'raw' => 'Fixed bug #70958 (Invalid opcode while using ::class as trait method paramater default value). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #70944 (try{ } finally{} can create infinite chains of exceptions).', + 'raw' => 'Fixed bug #70944 (try{ } finally{} can create infinite chains of exceptions). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70931 (Two errors messages are in conflict).', + 'raw' => 'Fixed bug #70931 (Two errors messages are in conflict). (dams, Laruence)', + ), + 10 => + array ( + 'message' => 'Fixed bug #70904 (yield from incorrectly marks valid generator as finished).', + 'raw' => 'Fixed bug #70904 (yield from incorrectly marks valid generator as finished). (Bob)', + ), + 11 => + array ( + 'message' => 'Fixed bug #70899 (buildconf failure in extensions).', + 'raw' => 'Fixed bug #70899 (buildconf failure in extensions). (Bob, Reeze)', + ), + 12 => + array ( + 'message' => 'Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions).', + 'raw' => 'Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions). (Lior Kaplan)', + ), + 13 => + array ( + 'message' => 'Fixed \\int (or generally every scalar type name with leading backslash) to not be accepted as type name.', + 'raw' => 'Fixed \\int (or generally every scalar type name with leading backslash) to not be accepted as type name. (Bob)', + ), + 14 => + array ( + 'message' => 'Fixed exception not being thrown immediately into a generator yielding from an array.', + 'raw' => 'Fixed exception not being thrown immediately into a generator yielding from an array. (Bob)', + ), + 15 => + array ( + 'message' => 'Fixed bug #70987 (static::class within Closure::call() causes segfault).', + 'raw' => 'Fixed bug #70987 (static::class within Closure::call() causes segfault). (Andrea)', + ), + 16 => + array ( + 'message' => 'Fixed bug #71013 (Incorrect exception handler with yield from).', + 'raw' => 'Fixed bug #71013 (Incorrect exception handler with yield from). (Bob)', + ), + 17 => + array ( + 'message' => 'Fixed double free in error condition of format printer.', + 'raw' => 'Fixed double free in error condition of format printer. (Bob)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71005 (Segfault in php_cli_server_dispatch_router()).', + 'raw' => 'Fixed bug #71005 (Segfault in php_cli_server_dispatch_router()). (Adam)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71020 (Use after free in Collator::sortWithSortKeys). (CVE-2015-8616)', + 'raw' => 'Fixed bug #71020 (Use after free in Collator::sortWithSortKeys). (CVE-2015-8616) (emmanuel dot law at gmail dot com, Laruence)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68077 (LOAD DATA LOCAL INFILE / open_basedir restriction).', + 'raw' => 'Fixed bug #68077 (LOAD DATA LOCAL INFILE / open_basedir restriction). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68344 (MySQLi does not provide way to disable peer certificate validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT connection flag.', + 'raw' => 'Fixed bug #68344 (MySQLi does not provide way to disable peer certificate validation) by introducing MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT connection flag. (Andrey)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed LOB implementation size_t/zend_long mismatch reported by gcov.', + 'raw' => 'Fixed LOB implementation size_t/zend_long mismatch reported by gcov. (Senthil)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71024 (Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server).', + 'raw' => 'Fixed bug #71024 (Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70991 (zend_file_cache.c:710: error: array type has incomplete element type).', + 'raw' => 'Fixed bug #70991 (zend_file_cache.c:710: error: array type has incomplete element type). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70977 (Segmentation fault with opcache.huge_code_pages=1).', + 'raw' => 'Fixed bug #70977 (Segmentation fault with opcache.huge_code_pages=1). (Laruence)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60052 (Integer returned as a 64bit integer on X64_86).', + 'raw' => 'Fixed bug #60052 (Integer returned as a 64bit integer on X64_86). (Mariuz)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed stderr being written to stdout.', + 'raw' => 'Fixed stderr being written to stdout. (Bob)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71018 (ReflectionProperty::setValue() behavior changed).', + 'raw' => 'Fixed bug #71018 (ReflectionProperty::setValue() behavior changed). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70982 (setStaticPropertyValue behaviors inconsistently with 5.6).', + 'raw' => 'Fixed bug #70982 (setStaticPropertyValue behaviors inconsistently with 5.6). (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70993 (Array key references break argument processing).', + 'raw' => 'Fixed bug #70993 (Array key references break argument processing). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71028 (Undefined index with ArrayIterator).', + 'raw' => 'Fixed bug #71028 (Undefined index with ArrayIterator). (Laruence)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71049 (SQLite3Stmt::execute() releases bound parameter instead of internal buffer).', + 'raw' => 'Fixed bug #71049 (SQLite3Stmt::execute() releases bound parameter instead of internal buffer). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70999 (php_random_bytes: called object is not a function).', + 'raw' => 'Fixed bug #70999 (php_random_bytes: called object is not a function). (Scott)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number of parameters).', + 'raw' => 'Fixed bug #70960 (ReflectionFunction for array_unique returns wrong number of parameters). (Laruence)', + ), + ), + 'streams/socket' => + array ( + 0 => + array ( + 'message' => 'Add IPV6_V6ONLY constant / make it usable in stream contexts.', + 'raw' => 'Add IPV6_V6ONLY constant / make it usable in stream contexts. (Bob)', + ), + ), + ), + ), + '7.0.0' => + array ( + 'date' => '03 Dec 2015', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70947 (INI parser segfault with INI_SCANNER_TYPED).', + 'raw' => 'Fixed bug #70947 (INI parser segfault with INI_SCANNER_TYPED). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70914 (zend_throw_or_error() format string vulnerability).', + 'raw' => 'Fixed bug #70914 (zend_throw_or_error() format string vulnerability). (Taoguang Chen)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70912 (Null ptr dereference instantiating class with invalid array property).', + 'raw' => 'Fixed bug #70912 (Null ptr dereference instantiating class with invalid array property). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70895, #70898 (null ptr deref and segfault with crafted calable).', + 'raw' => 'Fixed bug #70895, #70898 (null ptr deref and segfault with crafted calable). (Anatol, Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70249 (Segmentation fault while running PHPUnit tests on phpBB 3.2-dev).', + 'raw' => 'Fixed bug #70249 (Segmentation fault while running PHPUnit tests on phpBB 3.2-dev). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite).', + 'raw' => 'Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite). (Dmitry, Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70842 (Persistent Stream Segmentation Fault).', + 'raw' => 'Fixed bug #70842 (Persistent Stream Segmentation Fault). (Caleb Champlin)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70862 (Several functions do not check return code of php_stream_copy_to_mem()).', + 'raw' => 'Fixed bug #70862 (Several functions do not check return code of php_stream_copy_to_mem()). (Anatol)', + ), + 8 => + array ( + 'message' => 'Fixed bug #70863 (Incorect logic to increment_function for proxy objects).', + 'raw' => 'Fixed bug #70863 (Incorect logic to increment_function for proxy objects). (Anatol)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70323 (Regression in zend_fetch_debug_backtrace() can cause segfaults).', + 'raw' => 'Fixed bug #70323 (Regression in zend_fetch_debug_backtrace() can cause segfaults). (Aharvey, Laruence)', + ), + 10 => + array ( + 'message' => 'Fixed bug #70873 (Regression on private static properties access).', + 'raw' => 'Fixed bug #70873 (Regression on private static properties access). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l).', + 'raw' => 'Fixed bug #70748 (Segfault in ini_lex () at Zend/zend_ini_scanner.l). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #70689 (Exception handler does not work as expected).', + 'raw' => 'Fixed bug #70689 (Exception handler does not work as expected). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #70430 (Stack buffer overflow in zend_language_parser()).', + 'raw' => 'Fixed bug #70430 (Stack buffer overflow in zend_language_parser()). (Nikita)', + ), + 14 => + array ( + 'message' => 'Fixed bug #70782 (null ptr deref and segfault (zend_get_class_fetch_type)).', + 'raw' => 'Fixed bug #70782 (null ptr deref and segfault (zend_get_class_fetch_type)). (Nikita)', + ), + 15 => + array ( + 'message' => 'Fixed bug #70785 (Infinite loop due to exception during identical comparison).', + 'raw' => 'Fixed bug #70785 (Infinite loop due to exception during identical comparison). (Laruence)', + ), + 16 => + array ( + 'message' => 'Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction-> getClosure()).', + 'raw' => 'Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction-> getClosure()). (Dmitry, Bob)', + ), + 17 => + array ( + 'message' => 'Fixed bug #70662 (Duplicate array key via undefined index error handler).', + 'raw' => 'Fixed bug #70662 (Duplicate array key via undefined index error handler). (Nikita)', + ), + 18 => + array ( + 'message' => 'Fixed bug #70681 (Segfault when binding $this of internal instance method to null).', + 'raw' => 'Fixed bug #70681 (Segfault when binding $this of internal instance method to null). (Nikita)', + ), + 19 => + array ( + 'message' => 'Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this).', + 'raw' => 'Fixed bug #70685 (Segfault for getClosure() internal method rebind with invalid $this). (Nikita)', + ), + 20 => + array ( + 'message' => 'Added zend_internal_function.reserved[] fields.', + 'raw' => 'Added zend_internal_function.reserved[] fields. (Dmitry)', + ), + 21 => + array ( + 'message' => 'Fixed bug #70557 (Memleak on return type verifying failed).', + 'raw' => 'Fixed bug #70557 (Memleak on return type verifying failed). (Laruence)', + ), + 22 => + array ( + 'message' => 'Fixed bug #70555 (fun_get_arg() on unsetted vars return UNKNOW).', + 'raw' => 'Fixed bug #70555 (fun_get_arg() on unsetted vars return UNKNOW). (Laruence)', + ), + 23 => + array ( + 'message' => 'Fixed bug #70548 (Redundant information printed in case of uncaught engine exception).', + 'raw' => 'Fixed bug #70548 (Redundant information printed in case of uncaught engine exception). (Laruence)', + ), + 24 => + array ( + 'message' => 'Fixed bug #70547 (unsetting function variables corrupts backtrace).', + 'raw' => 'Fixed bug #70547 (unsetting function variables corrupts backtrace). (Laruence)', + ), + 25 => + array ( + 'message' => 'Fixed bug #70528 (assert() with instanceof adds apostrophes around class name).', + 'raw' => 'Fixed bug #70528 (assert() with instanceof adds apostrophes around class name). (Laruence)', + ), + 26 => + array ( + 'message' => 'Fixed bug #70481 (Memory leak in auto_global_copy_ctor() in ZTS build).', + 'raw' => 'Fixed bug #70481 (Memory leak in auto_global_copy_ctor() in ZTS build). (Laruence)', + ), + 27 => + array ( + 'message' => 'Fixed bug #70431 (Memory leak in php_ini.c).', + 'raw' => 'Fixed bug #70431 (Memory leak in php_ini.c). (Senthil, Laruence)', + ), + 28 => + array ( + 'message' => 'Fixed bug #70478 (**= does no longer work).', + 'raw' => 'Fixed bug #70478 (**= does no longer work). (Bob)', + ), + 29 => + array ( + 'message' => 'Fixed bug #70398 (SIGSEGV, Segmentation fault zend_ast_destroy_ex).', + 'raw' => 'Fixed bug #70398 (SIGSEGV, Segmentation fault zend_ast_destroy_ex). (Dmitry, Bob, Laruence)', + ), + 30 => + array ( + 'message' => 'Fixed bug #70332 (Wrong behavior while returning reference on object).', + 'raw' => 'Fixed bug #70332 (Wrong behavior while returning reference on object). (Laruence, Dmitry)', + ), + 31 => + array ( + 'message' => 'Fixed bug #70300 (Syntactical inconsistency with new group use syntax).', + 'raw' => 'Fixed bug #70300 (Syntactical inconsistency with new group use syntax). (marcio dot web2 at gmail dot com)', + ), + 32 => + array ( + 'message' => 'Fixed bug #70321 (Magic getter breaks reference to array property).', + 'raw' => 'Fixed bug #70321 (Magic getter breaks reference to array property). (Laruence)', + ), + 33 => + array ( + 'message' => 'Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized data).', + 'raw' => 'Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized data). (Dmitry)', + ), + 34 => + array ( + 'message' => 'Fixed bug #70145 (From field incorrectly parsed from headers).', + 'raw' => 'Fixed bug #70145 (From field incorrectly parsed from headers). (Anatol)', + ), + 35 => + array ( + 'message' => 'Fixed bug #70370 (Bundled libtool.m4 doesn\'t handle FreeBSD 10 when building extensions).', + 'raw' => 'Fixed bug #70370 (Bundled libtool.m4 doesn\'t handle FreeBSD 10 when building extensions). (Adam)', + ), + 36 => + array ( + 'message' => 'Fixed bug causing exception traces with anon classes to be truncated.', + 'raw' => 'Fixed bug causing exception traces with anon classes to be truncated. (Bob)', + ), + 37 => + array ( + 'message' => 'Fixed bug #70397 (Segmentation fault when using Closure::call and yield).', + 'raw' => 'Fixed bug #70397 (Segmentation fault when using Closure::call and yield). (Bob)', + ), + 38 => + array ( + 'message' => 'Fixed bug #70299 (Memleak while assigning object offsetGet result).', + 'raw' => 'Fixed bug #70299 (Memleak while assigning object offsetGet result). (Laruence)', + ), + 39 => + array ( + 'message' => 'Fixed bug #70288 (Apache crash related to ZEND_SEND_REF).', + 'raw' => 'Fixed bug #70288 (Apache crash related to ZEND_SEND_REF). (Laruence)', + ), + 40 => + array ( + 'message' => 'Fixed bug #70262 (Accessing array crashes PHP 7.0beta3).', + 'raw' => 'Fixed bug #70262 (Accessing array crashes PHP 7.0beta3). (Laruence, Dmitry)', + ), + 41 => + array ( + 'message' => 'Fixed bug #70258 (Segfault if do_resize fails to allocated memory).', + 'raw' => 'Fixed bug #70258 (Segfault if do_resize fails to allocated memory). (Laruence)', + ), + 42 => + array ( + 'message' => 'Fixed bug #70253 (segfault at _efree () in zend_alloc.c:1389).', + 'raw' => 'Fixed bug #70253 (segfault at _efree () in zend_alloc.c:1389). (Laruence)', + ), + 43 => + array ( + 'message' => 'Fixed bug #70240 (Segfault when doing unset($var());).', + 'raw' => 'Fixed bug #70240 (Segfault when doing unset($var());). (Laruence)', + ), + 44 => + array ( + 'message' => 'Fixed bug #70223 (Incrementing value returned by magic getter).', + 'raw' => 'Fixed bug #70223 (Incrementing value returned by magic getter). (Laruence)', + ), + 45 => + array ( + 'message' => 'Fixed bug #70215 (Segfault when __invoke is static).', + 'raw' => 'Fixed bug #70215 (Segfault when __invoke is static). (Bob)', + ), + 46 => + array ( + 'message' => 'Fixed bug #70207 (Finally is broken with opcache).', + 'raw' => 'Fixed bug #70207 (Finally is broken with opcache). (Laruence, Dmitry)', + ), + 47 => + array ( + 'message' => 'Fixed bug #70173 (ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc).', + 'raw' => 'Fixed bug #70173 (ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc). (Laruence, cmb)', + ), + 48 => + array ( + 'message' => 'Fixed bug #69487 (SAPI may truncate POST data).', + 'raw' => 'Fixed bug #69487 (SAPI may truncate POST data). (cmb)', + ), + 49 => + array ( + 'message' => 'Fixed bug #70198 (Checking liveness does not work as expected).', + 'raw' => 'Fixed bug #70198 (Checking liveness does not work as expected). (Shafreeck Sea, Anatol Belski)', + ), + 50 => + array ( + 'message' => 'Fixed bug #70241,#70293 (Skipped assertions affect Generator returns).', + 'raw' => 'Fixed bug #70241,#70293 (Skipped assertions affect Generator returns). (Bob)', + ), + 51 => + array ( + 'message' => 'Fixed bug #70239 (Creating a huge array doesn\'t result in exhausted, but segfault).', + 'raw' => 'Fixed bug #70239 (Creating a huge array doesn\'t result in exhausted, but segfault). (Laruence, Anatol)', + ), + 52 => + array ( + 'message' => 'Fixed "finally" issues.', + 'raw' => 'Fixed "finally" issues. (Nikita, Dmitry)', + ), + 53 => + array ( + 'message' => 'Fixed bug #70098 (Real memory usage doesn\'t decrease).', + 'raw' => 'Fixed bug #70098 (Real memory usage doesn\'t decrease). (Dmitry)', + ), + 54 => + array ( + 'message' => 'Fixed bug #70159 (__CLASS__ is lost in closures).', + 'raw' => 'Fixed bug #70159 (__CLASS__ is lost in closures). (Julien)', + ), + 55 => + array ( + 'message' => 'Fixed bug #70156 (Segfault in zend_find_alias_name).', + 'raw' => 'Fixed bug #70156 (Segfault in zend_find_alias_name). (Laruence)', + ), + 56 => + array ( + 'message' => 'Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION).', + 'raw' => 'Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION). (Laruence)', + ), + 57 => + array ( + 'message' => 'Fixed bug #70117 (Unexpected return type error).', + 'raw' => 'Fixed bug #70117 (Unexpected return type error). (Laruence)', + ), + 58 => + array ( + 'message' => 'Fixed bug #70106 (Inheritance by anonymous class).', + 'raw' => 'Fixed bug #70106 (Inheritance by anonymous class). (Bob)', + ), + 59 => + array ( + 'message' => 'Fixed bug #69674 (SIGSEGV array.c:953).', + 'raw' => 'Fixed bug #69674 (SIGSEGV array.c:953). (cmb)', + ), + 60 => + array ( + 'message' => 'Fixed bug #70164 (__COMPILER_HALT_OFFSET__ under namespace is not defined).', + 'raw' => 'Fixed bug #70164 (__COMPILER_HALT_OFFSET__ under namespace is not defined). (Bob)', + ), + 61 => + array ( + 'message' => 'Fixed bug #70108 (sometimes empty $_SERVER[\'QUERY_STRING\']).', + 'raw' => 'Fixed bug #70108 (sometimes empty $_SERVER[\'QUERY_STRING\']). (Anatol)', + ), + 62 => + array ( + 'message' => 'Fixed bug #70179 ($this refcount issue).', + 'raw' => 'Fixed bug #70179 ($this refcount issue). (Bob)', + ), + 63 => + array ( + 'message' => 'Fixed bug #69896 (\'asm\' operand has impossible constraints).', + 'raw' => 'Fixed bug #69896 (\'asm\' operand has impossible constraints). (Anatol)', + ), + 64 => + array ( + 'message' => 'Fixed bug #70183 (null pointer deref (segfault) in zend_eval_const_expr).', + 'raw' => 'Fixed bug #70183 (null pointer deref (segfault) in zend_eval_const_expr). (Hugh Davenport)', + ), + 65 => + array ( + 'message' => 'Fixed bug #70182 (Segfault in ZEND_ASSIGN_DIV_SPEC_CV_UNUSED_HANDLER).', + 'raw' => 'Fixed bug #70182 (Segfault in ZEND_ASSIGN_DIV_SPEC_CV_UNUSED_HANDLER). (Hugh Davenport)', + ), + 66 => + array ( + 'message' => 'Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls).', + 'raw' => 'Fixed bug #69793 (Remotely triggerable stack exhaustion via recursive method calls). (Stas)', + ), + 67 => + array ( + 'message' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).', + 'raw' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation). (Nikita)', + ), + 68 => + array ( + 'message' => 'Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref).', + 'raw' => 'Fixed bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref). (Stas)', + ), + 69 => + array ( + 'message' => 'Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ()).', + 'raw' => 'Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ()). (Laruence)', + ), + 70 => + array ( + 'message' => 'Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive inlining).', + 'raw' => 'Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive inlining). (Laruence)', + ), + 71 => + array ( + 'message' => 'Fixed bug #70012 (Exception lost with nested finally block).', + 'raw' => 'Fixed bug #70012 (Exception lost with nested finally block). (Laruence)', + ), + 72 => + array ( + 'message' => 'Fixed bug #69996 (Changing the property of a cloned object affects the original).', + 'raw' => 'Fixed bug #69996 (Changing the property of a cloned object affects the original). (Dmitry, Laruence)', + ), + 73 => + array ( + 'message' => 'Fixed bug #70083 (Use after free with assign by ref to overloaded objects).', + 'raw' => 'Fixed bug #70083 (Use after free with assign by ref to overloaded objects). (Bob)', + ), + 74 => + array ( + 'message' => 'Fixed bug #70006 (cli - function with default arg = STDOUT crash output).', + 'raw' => 'Fixed bug #70006 (cli - function with default arg = STDOUT crash output). (Laruence)', + ), + 75 => + array ( + 'message' => 'Fixed bug #69521 (Segfault in gc_collect_cycles()).', + 'raw' => 'Fixed bug #69521 (Segfault in gc_collect_cycles()). (arjen at react dot com, Laruence)', + ), + 76 => + array ( + 'message' => 'Improved zend_string API.', + 'raw' => 'Improved zend_string API. (Francois Laupretre)', + ), + 77 => + array ( + 'message' => 'Fixed bug #69955 (Segfault when trying to combine [] and assign-op on ArrayAccess object).', + 'raw' => 'Fixed bug #69955 (Segfault when trying to combine [] and assign-op on ArrayAccess object). (Laruence)', + ), + 78 => + array ( + 'message' => 'Fixed bug #69957 (Different ways of handling div/mod/intdiv).', + 'raw' => 'Fixed bug #69957 (Different ways of handling div/mod/intdiv). (Bob)', + ), + 79 => + array ( + 'message' => 'Fixed bug #69900 (Too long timeout on pipes).', + 'raw' => 'Fixed bug #69900 (Too long timeout on pipes). (Anatol)', + ), + 80 => + array ( + 'message' => 'Fixed bug #69872 (uninitialised value in strtr with array).', + 'raw' => 'Fixed bug #69872 (uninitialised value in strtr with array). (Laruence)', + ), + 81 => + array ( + 'message' => 'Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting).', + 'raw' => 'Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting). (Laruence)', + ), + 82 => + array ( + 'message' => 'Fixed bug #69849 (Broken output of apache_request_headers).', + 'raw' => 'Fixed bug #69849 (Broken output of apache_request_headers). (Kalle)', + ), + 83 => + array ( + 'message' => 'Fixed bug #69840 (iconv_substr() doesn\'t work with UTF-16BE).', + 'raw' => 'Fixed bug #69840 (iconv_substr() doesn\'t work with UTF-16BE). (Kalle)', + ), + 84 => + array ( + 'message' => 'Fixed bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33 extensions are loaded).', + 'raw' => 'Fixed bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33 extensions are loaded). (Laruence)', + ), + 85 => + array ( + 'message' => 'Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name).', + 'raw' => 'Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name). (Laruence)', + ), + 86 => + array ( + 'message' => 'Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class name).', + 'raw' => 'Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class name). (Dmitry)', + ), + 87 => + array ( + 'message' => 'Fixed bug #69761 (Serialization of anonymous classes should be prevented).', + 'raw' => 'Fixed bug #69761 (Serialization of anonymous classes should be prevented). (Laruence)', + ), + 88 => + array ( + 'message' => 'Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault).', + 'raw' => 'Fixed bug #69551 (parse_ini_file() and parse_ini_string() segmentation fault). (Christoph M. Becker)', + ), + 89 => + array ( + 'message' => 'Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business").', + 'raw' => 'Fixed bug #69781 (phpinfo() reports Professional Editions of Windows 7/8/8.1/10 as "Business"). (Christian Wenz)', + ), + 90 => + array ( + 'message' => 'Fixed bug #69835 (phpinfo() does not report many Windows SKUs).', + 'raw' => 'Fixed bug #69835 (phpinfo() does not report many Windows SKUs). (Christian Wenz)', + ), + 91 => + array ( + 'message' => 'Fixed bug #69889 (Null coalesce operator doesn\'t work for string offsets).', + 'raw' => 'Fixed bug #69889 (Null coalesce operator doesn\'t work for string offsets). (Nikita)', + ), + 92 => + array ( + 'message' => 'Fixed bug #69891 (Unexpected array comparison result).', + 'raw' => 'Fixed bug #69891 (Unexpected array comparison result). (Nikita)', + ), + 93 => + array ( + 'message' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation).', + 'raw' => 'Fixed bug #69892 (Different arrays compare indentical due to integer key truncation). (Nikita)', + ), + 94 => + array ( + 'message' => 'Fixed bug #69893 (Strict comparison between integer and empty string keys crashes).', + 'raw' => 'Fixed bug #69893 (Strict comparison between integer and empty string keys crashes). (Nikita)', + ), + 95 => + array ( + 'message' => 'Fixed bug #69767 (Default parameter value with wrong type segfaults).', + 'raw' => 'Fixed bug #69767 (Default parameter value with wrong type segfaults). (cmb, Laruence)', + ), + 96 => + array ( + 'message' => 'Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency ? with ===).', + 'raw' => 'Fixed bug #69756 (Fatal error: Nesting level too deep - recursive dependency ? with ===). (Dmitry, Laruence)', + ), + 97 => + array ( + 'message' => 'Fixed bug #69758 (Item added to array not being removed by array_pop/shift ).', + 'raw' => 'Fixed bug #69758 (Item added to array not being removed by array_pop/shift ). (Laruence)', + ), + 98 => + array ( + 'message' => 'Fixed bug #68475 (Add support for $callable() sytnax with \'Class::method\').', + 'raw' => 'Fixed bug #68475 (Add support for $callable() sytnax with \'Class::method\'). (Julien, Aaron Piotrowski)', + ), + 99 => + array ( + 'message' => 'Fixed bug #69485 (Double free on zend_list_dtor).', + 'raw' => 'Fixed bug #69485 (Double free on zend_list_dtor). (Laruence)', + ), + 100 => + array ( + 'message' => 'Fixed bug #69427 (Segfault on magic method __call of private method in superclass).', + 'raw' => 'Fixed bug #69427 (Segfault on magic method __call of private method in superclass). (Laruence)', + ), + 101 => + array ( + 'message' => 'Improved __call() and __callStatic() magic method handling. Now they are called in a stackless way using ZEND_CALL_TRAMPOLINE opcode, without additional stack frame.', + 'raw' => 'Improved __call() and __callStatic() magic method handling. Now they are called in a stackless way using ZEND_CALL_TRAMPOLINE opcode, without additional stack frame. (Laruence, Dmitry)', + ), + 102 => + array ( + 'message' => 'Optimized strings concatenation.', + 'raw' => 'Optimized strings concatenation. (Dmitry, Laruence)', + ), + 103 => + array ( + 'message' => 'Fixed weird operators behavior. Division by zero now emits warning and returns +/-INF, modulo by zero and intdid() throws an exception, shifts by negative offset throw exceptions. Compile-time evaluation of division by zero is disabled.', + 'raw' => 'Fixed weird operators behavior. Division by zero now emits warning and returns +/-INF, modulo by zero and intdid() throws an exception, shifts by negative offset throw exceptions. Compile-time evaluation of division by zero is disabled. (Dmitry, Andrea, Nikita)', + ), + 104 => + array ( + 'message' => 'Fixed bug #69371 (Hash table collision leads to inaccessible array keys).', + 'raw' => 'Fixed bug #69371 (Hash table collision leads to inaccessible array keys). (Laruence)', + ), + 105 => + array ( + 'message' => 'Fixed bug #68933 (Invalid read of size 8 in zend_std_read_property).', + 'raw' => 'Fixed bug #68933 (Invalid read of size 8 in zend_std_read_property). (Laruence, arjen at react dot com)', + ), + 106 => + array ( + 'message' => 'Fixed bug #68252 (segfault in Zend/zend_hash.c in function _zend_hash_del_el).', + 'raw' => 'Fixed bug #68252 (segfault in Zend/zend_hash.c in function _zend_hash_del_el). (Laruence)', + ), + 107 => + array ( + 'message' => 'Fixed bug #65598 (Closure executed via static autoload incorrectly marked as static).', + 'raw' => 'Fixed bug #65598 (Closure executed via static autoload incorrectly marked as static). (Nikita)', + ), + 108 => + array ( + 'message' => 'Fixed bug #66811 (Cannot access static::class in lambda, writen outside of a class).', + 'raw' => 'Fixed bug #66811 (Cannot access static::class in lambda, writen outside of a class). (Nikita)', + ), + 109 => + array ( + 'message' => 'Fixed bug #69568 (call a private function in closure failed).', + 'raw' => 'Fixed bug #69568 (call a private function in closure failed). (Nikita)', + ), + 110 => + array ( + 'message' => 'Added PHP_INT_MIN constant.', + 'raw' => 'Added PHP_INT_MIN constant. (Andrea)', + ), + 111 => + array ( + 'message' => 'Added Closure::call() method.', + 'raw' => 'Added Closure::call() method. (Andrea)', + ), + 112 => + array ( + 'message' => 'Fixed bug #67959 (Segfault when calling phpversion(\'spl\')).', + 'raw' => 'Fixed bug #67959 (Segfault when calling phpversion(\'spl\')). (Florian)', + ), + 113 => + array ( + 'message' => 'Implemented the RFC `Catchable "Call to a member function bar() on a non-object"`.', + 'raw' => 'Implemented the RFC `Catchable "Call to a member function bar() on a non-object"`. (Timm)', + ), + 114 => + array ( + 'message' => 'Added options parameter for unserialize allowing to specify acceptable classes (https://wiki.php.net/rfc/secure_unserialize).', + 'raw' => 'Added options parameter for unserialize allowing to specify acceptable classes (https://wiki.php.net/rfc/secure_unserialize). (Stas)', + ), + 115 => + array ( + 'message' => 'Fixed bug #63734 (Garbage collector can free zvals that are still referenced).', + 'raw' => 'Fixed bug #63734 (Garbage collector can free zvals that are still referenced). (Dmitry)', + ), + 116 => + array ( + 'message' => 'Removed ZEND_ACC_FINAL_CLASS, promoting ZEND_ACC_FINAL as final class modifier.', + 'raw' => 'Removed ZEND_ACC_FINAL_CLASS, promoting ZEND_ACC_FINAL as final class modifier. (Guilherme Blanco)', + ), + 117 => + array ( + 'message' => 'is_long() & is_integer() is now an alias of is_int().', + 'raw' => 'is_long() & is_integer() is now an alias of is_int(). (Kalle)', + ), + 118 => + array ( + 'message' => 'Implemented FR #55467 (phpinfo: PHP Variables with $ and single quotes).', + 'raw' => 'Implemented FR #55467 (phpinfo: PHP Variables with $ and single quotes). (Kalle)', + ), + 119 => + array ( + 'message' => 'Added ?? operator.', + 'raw' => 'Added ?? operator. (Andrea)', + ), + 120 => + array ( + 'message' => 'Added <=> operator.', + 'raw' => 'Added <=> operator. (Andrea)', + ), + 121 => + array ( + 'message' => 'Added \\u{xxxxx} Unicode Codepoint Escape Syntax.', + 'raw' => 'Added \\u{xxxxx} Unicode Codepoint Escape Syntax. (Andrea)', + ), + 122 => + array ( + 'message' => 'Fixed oversight where define() did not support arrays yet const syntax did.', + 'raw' => 'Fixed oversight where define() did not support arrays yet const syntax did. (Andrea, Dmitry)', + ), + 123 => + array ( + 'message' => 'Use "integer" and "float" instead of "long" and "double" in ZPP, type hint and conversion error messages.', + 'raw' => 'Use "integer" and "float" instead of "long" and "double" in ZPP, type hint and conversion error messages. (Andrea)', + ), + 124 => + array ( + 'message' => 'Implemented FR #55428 (E_RECOVERABLE_ERROR when output buffering in output buffering handler).', + 'raw' => 'Implemented FR #55428 (E_RECOVERABLE_ERROR when output buffering in output buffering handler). (Kalle)', + ), + 125 => + array ( + 'message' => 'Removed scoped calls of non-static methods from an incompatible $this context.', + 'raw' => 'Removed scoped calls of non-static methods from an incompatible $this context. (Nikita)', + ), + 126 => + array ( + 'message' => 'Removed support for #-style comments in ini files.', + 'raw' => 'Removed support for #-style comments in ini files. (Nikita)', + ), + 127 => + array ( + 'message' => 'Removed support for assigning the result of new by reference.', + 'raw' => 'Removed support for assigning the result of new by reference. (Nikita)', + ), + 128 => + array ( + 'message' => 'Invalid octal literals in source code now produce compile errors, fixes PHPSadness #31.', + 'raw' => 'Invalid octal literals in source code now produce compile errors, fixes PHPSadness #31. (Andrea)', + ), + 129 => + array ( + 'message' => 'Removed dl() function on fpm-fcgi.', + 'raw' => 'Removed dl() function on fpm-fcgi. (Nikita)', + ), + 130 => + array ( + 'message' => 'Removed support for hexadecimal numeric strings.', + 'raw' => 'Removed support for hexadecimal numeric strings. (Nikita)', + ), + 131 => + array ( + 'message' => 'Removed obsolete extensions and SAPIs. See the full list in UPGRADING.', + 'raw' => 'Removed obsolete extensions and SAPIs. See the full list in UPGRADING. (Anatol)', + ), + 132 => + array ( + 'message' => 'Added NULL byte protection to exec, system and passthru.', + 'raw' => 'Added NULL byte protection to exec, system and passthru. (Yasuo)', + ), + 133 => + array ( + 'message' => 'Added error_clear_last() function.', + 'raw' => 'Added error_clear_last() function. (Reeze Xia)', + ), + 134 => + array ( + 'message' => 'Fixed bug #68797 (Number 2.2250738585072012e-308 converted incorrectly).', + 'raw' => 'Fixed bug #68797 (Number 2.2250738585072012e-308 converted incorrectly). (Anatol)', + ), + 135 => + array ( + 'message' => 'Improved zend_qsort(using hybrid sorting algo) for better performance, and also renamed zend_qsort to zend_sort.', + 'raw' => 'Improved zend_qsort(using hybrid sorting algo) for better performance, and also renamed zend_qsort to zend_sort. (Laruence)', + ), + 136 => + array ( + 'message' => 'Added stable sorting algo zend_insert_sort.', + 'raw' => 'Added stable sorting algo zend_insert_sort. (Laruence)', + ), + 137 => + array ( + 'message' => 'Improved zend_memnchr(using sunday algo) for better performance.', + 'raw' => 'Improved zend_memnchr(using sunday algo) for better performance. (Laruence)', + ), + 138 => + array ( + 'message' => 'Implemented the RFC `Scalar Type Decalarations v0.5`.', + 'raw' => 'Implemented the RFC `Scalar Type Decalarations v0.5`. (Anthony)', + ), + 139 => + array ( + 'message' => 'Implemented the RFC `Group Use Declarations`.', + 'raw' => 'Implemented the RFC `Group Use Declarations`. (Marcio)', + ), + 140 => + array ( + 'message' => 'Implemented the RFC `Continue Output Buffering`.', + 'raw' => 'Implemented the RFC `Continue Output Buffering`. (Mike)', + ), + 141 => + array ( + 'message' => 'Implemented the RFC `Constructor behaviour of internal classes`.', + 'raw' => 'Implemented the RFC `Constructor behaviour of internal classes`. (Dan, Dmitry)', + ), + 142 => + array ( + 'message' => 'Implemented the RFC `Fix "foreach" behavior`.', + 'raw' => 'Implemented the RFC `Fix "foreach" behavior`. (Dmitry)', + ), + 143 => + array ( + 'message' => 'Implemented the RFC `Generator Delegation`.', + 'raw' => 'Implemented the RFC `Generator Delegation`. (Bob)', + ), + 144 => + array ( + 'message' => 'Implemented the RFC `Anonymous Class Support`.', + 'raw' => 'Implemented the RFC `Anonymous Class Support`. (Joe, Nikita, Dmitry)', + ), + 145 => + array ( + 'message' => 'Implemented the RFC `Context Sensitive Lexer`.', + 'raw' => 'Implemented the RFC `Context Sensitive Lexer`. (Marcio Almada)', + ), + 146 => + array ( + 'message' => 'Fixed bug #69511 (Off-by-one buffer overflow in php_sys_readlink).', + 'raw' => 'Fixed bug #69511 (Off-by-one buffer overflow in php_sys_readlink). (Jan Starke, Anatol)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68291 (404 on urls with \'+\').', + 'raw' => 'Fixed bug #68291 (404 on urls with \'+\'). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE).', + 'raw' => 'Fixed bug #66606 (Sets HTTP_CONTENT_TYPE but not CONTENT_TYPE). (wusuopu, cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70264 (CLI server directory traversal).', + 'raw' => 'Fixed bug #70264 (CLI server directory traversal). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL).', + 'raw' => 'Fixed bug #69655 (php -S changes MKCALENDAR request method to MKCOL). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #64878 (304 responses return Content-Type header).', + 'raw' => 'Fixed bug #64878 (304 responses return Content-Type header). (cmb)', + ), + 5 => + array ( + 'message' => 'Refactor MIME type handling to use a hash table instead of linear search.', + 'raw' => 'Refactor MIME type handling to use a hash table instead of linear search. (Adam)', + ), + 6 => + array ( + 'message' => 'Update the MIME type list from the one shipped by Apache HTTPD.', + 'raw' => 'Update the MIME type list from the one shipped by Apache HTTPD. (Adam)', + ), + 7 => + array ( + 'message' => 'Added support for SEARCH WebDav method.', + 'raw' => 'Added support for SEARCH WebDav method. (Mats Lindh)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69939 (Casting object to bool returns false).', + 'raw' => 'Fixed bug #69939 (Casting object to bool returns false). (Kalle)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70330 (Segmentation Fault with multiple "curl_copy_handle").', + 'raw' => 'Fixed bug #70330 (Segmentation Fault with multiple "curl_copy_handle"). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70163 (curl_setopt_array() type confusion).', + 'raw' => 'Fixed bug #70163 (curl_setopt_array() type confusion). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70065 (curl_getinfo() returns corrupted values).', + 'raw' => 'Fixed bug #70065 (curl_getinfo() returns corrupted values). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69831 (Segmentation fault in curl_getinfo).', + 'raw' => 'Fixed bug #69831 (Segmentation fault in curl_getinfo). (im dot denisenko at yahoo dot com)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68937 (Segfault in curl_multi_exec).', + 'raw' => 'Fixed bug #68937 (Segfault in curl_multi_exec). (Laruence)', + ), + 5 => + array ( + 'message' => 'Removed support for unsafe file uploads.', + 'raw' => 'Removed support for unsafe file uploads. (Nikita)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70245 (strtotime does not emit warning when 2nd parameter is object or string).', + 'raw' => 'Fixed bug #70245 (strtotime does not emit warning when 2nd parameter is object or string). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to be optional).', + 'raw' => 'Fixed bug #70266 (DateInterval::__construct.interval_spec is not supposed to be optional). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte).', + 'raw' => 'Fixed bug #70277 (new DateTimeZone($foo) is ignoring text after null byte). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed day_of_week function as it could sometimes return negative values internally.', + 'raw' => 'Fixed day_of_week function as it could sometimes return negative values internally. (Derick)', + ), + 4 => + array ( + 'message' => 'Removed $is_dst parameter from mktime() and gmmktime().', + 'raw' => 'Removed $is_dst parameter from mktime() and gmmktime(). (Nikita)', + ), + 5 => + array ( + 'message' => 'Removed date.timezone warning (https://wiki.php.net/rfc/date.timezone_warning_removal).', + 'raw' => 'Removed date.timezone warning (https://wiki.php.net/rfc/date.timezone_warning_removal). (Bob)', + ), + 6 => + array ( + 'message' => 'Added "v" DateTime format modifier to get the 3-digit version of fraction of seconds.', + 'raw' => 'Added "v" DateTime format modifier to get the 3-digit version of fraction of seconds. (Mariano Iglesias)', + ), + 7 => + array ( + 'message' => 'Implemented FR #69089 (Added DateTime::RFC3339_EXTENDED to output in RFC3339 Extended format which includes fraction of seconds).', + 'raw' => 'Implemented FR #69089 (Added DateTime::RFC3339_EXTENDED to output in RFC3339 Extended format which includes fraction of seconds). (Mariano Iglesias)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62490 (dba_delete returns true on missing item (inifile)).', + 'raw' => 'Fixed bug #62490 (dba_delete returns true on missing item (inifile)). (Mike)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68711 (useless comparisons).', + 'raw' => 'Fixed bug #68711 (useless comparisons). (bugreports at internot dot info)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70558 ("Couldn\'t fetch" error in DOMDocument::registerNodeClass()).', + 'raw' => 'Fixed bug #70558 ("Couldn\'t fetch" error in DOMDocument::registerNodeClass()). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding).', + 'raw' => 'Fixed bug #70001 (Assigning to DOMNode::textContent does additional entity encoding). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69846 (Segmenation fault (access violation) when iterating over DOMNodeList).', + 'raw' => 'Fixed bug #69846 (Segmenation fault (access violation) when iterating over DOMNodeList). (Anatol Belski)', + ), + 3 => + array ( + 'message' => 'Made DOMNode::textContent writeable.', + 'raw' => 'Made DOMNode::textContent writeable. (Tjerk)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes).', + 'raw' => 'Fixed bug #70385 (Buffer over-read in exif_read_data with TIFF IFD tag byte value of 32 bytes). (Stas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed).', + 'raw' => 'Fixed bug #66242 (libmagic: don\'t assume char is signed). (ArdB)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'New FILTER_VALIDATE_DOMAIN and better RFC conformance for FILTER_VALIDATE_URL.', + 'raw' => 'New FILTER_VALIDATE_DOMAIN and better RFC conformance for FILTER_VALIDATE_URL. (Kevin Dunglas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67167 (Wrong return value from FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE).', + 'raw' => 'Fixed bug #67167 (Wrong return value from FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE). (levim)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70538 ("php-fpm -i" crashes).', + 'raw' => 'Fixed bug #70538 ("php-fpm -i" crashes). (rainer dot jung at kippdata dot de)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70279 (HTTP Authorization Header is sometimes passed to newer reqeusts).', + 'raw' => 'Fixed bug #70279 (HTTP Authorization Header is sometimes passed to newer reqeusts). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68945 (Unknown admin values segfault pools).', + 'raw' => 'Fixed bug #68945 (Unknown admin values segfault pools). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes).', + 'raw' => 'Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes). (Chris Wright)', + ), + 4 => + array ( + 'message' => 'Implemented FR #67106 (Split main fpm config).', + 'raw' => 'Implemented FR #67106 (Split main fpm config). (Elan Ruusamäe, Remi)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69082 (FTPS support on Windows).', + 'raw' => 'Fixed bug #69082 (FTPS support on Windows). (Anatol)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53156 (imagerectangle problem with point ordering).', + 'raw' => 'Fixed bug #53156 (imagerectangle problem with point ordering). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874)', + 'raw' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70102 (imagecreatefromwebm() shifts colors).', + 'raw' => 'Fixed bug #70102 (imagecreatefromwebm() shifts colors). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66590 (imagewebp() doesn\'t pad to even length).', + 'raw' => 'Fixed bug #66590 (imagewebp() doesn\'t pad to even length). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px).', + 'raw' => 'Fixed bug #66882 (imagerotate by -90 degrees truncates image by 1px). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory).', + 'raw' => 'Fixed bug #70064 (imagescale(..., IMG_BICUBIC) leaks memory). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69024 (imagescale segfault with palette based image).', + 'raw' => 'Fixed bug #69024 (imagescale segfault with palette based image). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #53154 (Zero-height rectangle has whiskers).', + 'raw' => 'Fixed bug #53154 (Zero-height rectangle has whiskers). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #67447 (imagecrop() add a black line when cropping).', + 'raw' => 'Fixed bug #67447 (imagecrop() add a black line when cropping). (cmb)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68714 (copy \'n paste error).', + 'raw' => 'Fixed bug #68714 (copy \'n paste error). (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug #66339 (PHP segfaults in imagexbm).', + 'raw' => 'Fixed bug #66339 (PHP segfaults in imagexbm). (cmb)', + ), + 11 => + array ( + 'message' => 'Fixed bug #70047 (gd_info() doesn\'t report WebP support).', + 'raw' => 'Fixed bug #70047 (gd_info() doesn\'t report WebP support). (cmb)', + ), + 12 => + array ( + 'message' => 'Replace libvpx with libwebp for bundled libgd.', + 'raw' => 'Replace libvpx with libwebp for bundled libgd. (cmb, Anatol)', + ), + 13 => + array ( + 'message' => 'Fixed bug #61221 (imagegammacorrect function loses alpha channel).', + 'raw' => 'Fixed bug #61221 (imagegammacorrect function loses alpha channel). (cmb)', + ), + 14 => + array ( + 'message' => 'Made fontFetch\'s path parser thread-safe.', + 'raw' => 'Made fontFetch\'s path parser thread-safe. (Sara)', + ), + 15 => + array ( + 'message' => 'Removed T1Lib support.', + 'raw' => 'Removed T1Lib support. (Kalle)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70284 (Use after free vulnerability in unserialize() with GMP).', + 'raw' => 'Fixed bug #70284 (Use after free vulnerability in unserialize() with GMP). (stas)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70312 (HAVAL gives wrong hashes in specific cases).', + 'raw' => 'Fixed bug #70312 (HAVAL gives wrong hashes in specific cases). (letsgolee at naver dot com)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70158 (Building with static imap fails).', + 'raw' => 'Fixed bug #70158 (Building with static imap fails). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69998 (curl multi leaking memory).', + 'raw' => 'Fixed bug #69998 (curl multi leaking memory). (Pierrick)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70453 (IntlChar::foldCase() incorrect arguments and missing constants).', + 'raw' => 'Fixed bug #70453 (IntlChar::foldCase() incorrect arguments and missing constants). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70454 (IntlChar::forDigit second parameter should be optional).', + 'raw' => 'Fixed bug #70454 (IntlChar::forDigit second parameter should be optional). (cmb, colinodell)', + ), + 2 => + array ( + 'message' => 'Removed deprecated aliases datefmt_set_timezone_id() and IntlDateFormatter::setTimeZoneID().', + 'raw' => 'Removed deprecated aliases datefmt_set_timezone_id() and IntlDateFormatter::setTimeZoneID(). (Nikita)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62010 (json_decode produces invalid byte-sequences).', + 'raw' => 'Fixed bug #62010 (json_decode produces invalid byte-sequences). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68546 (json_decode() Fatal error: Cannot access property started with \'\\0\').', + 'raw' => 'Fixed bug #68546 (json_decode() Fatal error: Cannot access property started with \'\\0\'). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Replace non-free JSON parser with a parser from Jsond extension, fixes #63520 (JSON extension includes a problematic license statement).', + 'raw' => 'Replace non-free JSON parser with a parser from Jsond extension, fixes #63520 (JSON extension includes a problematic license statement). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68938 (json_decode() decodes empty string without error).', + 'raw' => 'Fixed bug #68938 (json_decode() decodes empty string without error). (jeremy at bat-country dot us)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47222 (Implement LDAP_OPT_DIAGNOSTIC_MESSAGE).', + 'raw' => 'Fixed bug #47222 (Implement LDAP_OPT_DIAGNOSTIC_MESSAGE). (Andreas Heigl)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated LiteSpeed SAPI code from V5.5 to V6.6.', + 'raw' => 'Updated LiteSpeed SAPI code from V5.5 to V6.6. (George Wang)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed handling of big lines in error messages with libxml >= 2.9.0.', + 'raw' => 'Fixed handling of big lines in error messages with libxml >= 2.9.0. (Christoph M. Becker)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70625 (mcrypt_encrypt() won\'t return data when no IV was specified under RC4).', + 'raw' => 'Fixed bug #70625 (mcrypt_encrypt() won\'t return data when no IV was specified under RC4). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69833 (mcrypt fd caching not working).', + 'raw' => 'Fixed bug #69833 (mcrypt fd caching not working). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed possible read after end of buffer and use after free.', + 'raw' => 'Fixed possible read after end of buffer and use after free. (Dmitry)', + ), + 3 => + array ( + 'message' => 'Removed mcrypt_generic_end() alias.', + 'raw' => 'Removed mcrypt_generic_end() alias. (Nikita)', + ), + 4 => + array ( + 'message' => 'Removed mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ofb().', + 'raw' => 'Removed mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ofb(). (Nikita)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #32490 (constructor of mysqli has wrong name).', + 'raw' => 'Fixed bug #32490 (constructor of mysqli has wrong name). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70949 (SQL Result Sets With NULL Can Cause Fatal Memory Errors).', + 'raw' => 'Fixed bug #70949 (SQL Result Sets With NULL Can Cause Fatal Memory Errors). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server).', + 'raw' => 'Fixed bug #70384 (mysqli_real_query():Unknown type 245 sent by the server). (Andrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70456 (mysqlnd doesn\'t activate TCP keep-alive when connecting to a server).', + 'raw' => 'Fixed bug #70456 (mysqlnd doesn\'t activate TCP keep-alive when connecting to a server). (Sergei Turchanov)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70572 segfault in mysqlnd_connect.', + 'raw' => 'Fixed bug #70572 segfault in mysqlnd_connect. (Andrey, Remi)', + ), + 4 => + array ( + 'message' => 'Fixed Bug #69796 (mysqli_stmt::fetch doesn\'t assign null values to bound variables).', + 'raw' => 'Fixed Bug #69796 (mysqli_stmt::fetch doesn\'t assign null values to bound variables). (Laruence)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak with LOBs.', + 'raw' => 'Fixed memory leak with LOBs. (Senthil)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68298 (OCI int overflow) .', + 'raw' => 'Fixed bug #68298 (OCI int overflow) (Senthil).', + ), + 2 => + array ( + 'message' => 'Corrected oci8 hash destructors to prevent segfaults, and a few other fixes.', + 'raw' => 'Corrected oci8 hash destructors to prevent segfaults, and a few other fixes. (Cameron Porter)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined columns). (CVE-2015-8879)', + 'raw' => 'Fixed bug #69975 (PHP segfaults when accessing nvarchar(max) defined columns). (CVE-2015-8879) (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70656 (require() statement broken after opcache_reset() or a few hours of use).', + 'raw' => 'Fixed bug #70656 (require() statement broken after opcache_reset() or a few hours of use). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70843 (Segmentation fault on MacOSX with opcache.file_cache_only=1).', + 'raw' => 'Fixed bug #70843 (Segmentation fault on MacOSX with opcache.file_cache_only=1). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70724 (Undefined Symbols from opcache.so on Mac OS X 10.10).', + 'raw' => 'Fixed bug #70724 (Undefined Symbols from opcache.so on Mac OS X 10.10). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed compatibility with Windows 10 (see also bug #70652).', + 'raw' => 'Fixed compatibility with Windows 10 (see also bug #70652). (Anatol)', + ), + 4 => + array ( + 'message' => 'Attmpt to fix "Unable to reattach to base address" problem.', + 'raw' => 'Attmpt to fix "Unable to reattach to base address" problem. (Matt Ficken)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70423 (Warning Internal error: wrong size calculation).', + 'raw' => 'Fixed bug #70423 (Warning Internal error: wrong size calculation). (Anatol)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled).', + 'raw' => 'Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled). (Dmitry, Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70111 (Segfault when a function uses both an explicit return type and an explicit cast).', + 'raw' => 'Fixed bug #70111 (Segfault when a function uses both an explicit return type and an explicit cast). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #70058 (Build fails when building for i386).', + 'raw' => 'Fixed bug #70058 (Build fails when building for i386). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70022 (Crash with opcache using opcache.file_cache_only=1).', + 'raw' => 'Fixed bug #70022 (Crash with opcache using opcache.file_cache_only=1). (Anatol)', + ), + 10 => + array ( + 'message' => 'Removed opcache.load_comments configuration directive. Now doc comments loading costs nothing and always enabled.', + 'raw' => 'Removed opcache.load_comments configuration directive. Now doc comments loading costs nothing and always enabled. (Dmitry)', + ), + 11 => + array ( + 'message' => 'Fixed bug #69838 (Wrong size calculation for function table).', + 'raw' => 'Fixed bug #69838 (Wrong size calculation for function table). (Anatol)', + ), + 12 => + array ( + 'message' => 'Fixed bug #69688 (segfault with eval and opcache fast shutdown).', + 'raw' => 'Fixed bug #69688 (segfault with eval and opcache fast shutdown). (Laruence)', + ), + 13 => + array ( + 'message' => 'Added experimental (disabled by default) file based opcode cache.', + 'raw' => 'Added experimental (disabled by default) file based opcode cache. (Dmitry, Laruence, Anatol)', + ), + 14 => + array ( + 'message' => 'Fixed bug with try blocks being removed when extended_info opcode generation is turned on.', + 'raw' => 'Fixed bug with try blocks being removed when extended_info opcode generation is turned on. (Laruence)', + ), + 15 => + array ( + 'message' => 'Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache).', + 'raw' => 'Fixed bug #68644 (strlen incorrect : mbstring + func_overload=2 +UTF-8 + Opcache). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Require at least OpenSSL version 0.9.8.', + 'raw' => 'Require at least OpenSSL version 0.9.8. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68312 (Lookup for openssl.cnf causes a message box).', + 'raw' => 'Fixed bug #68312 (Lookup for openssl.cnf causes a message box). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #55259 (openssl extension does not get the DH parameters from DH key resource).', + 'raw' => 'Fixed bug #55259 (openssl extension does not get the DH parameters from DH key resource). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70395 (Missing ARG_INFO for openssl_seal()).', + 'raw' => 'Fixed bug #70395 (Missing ARG_INFO for openssl_seal()). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #60632 (openssl_seal fails with AES).', + 'raw' => 'Fixed bug #60632 (openssl_seal fails with AES). (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Implemented FR #70438 (Add IV parameter for openssl_seal and openssl_open)', + 'raw' => 'Implemented FR #70438 (Add IV parameter for openssl_seal and openssl_open) (Jakub Zelenka)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure). (CVE-2015-8867)', + 'raw' => 'Fixed bug #70014 (openssl_random_pseudo_bytes() is not cryptographically secure). (CVE-2015-8867) (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69882 (OpenSSL error "key values mismatch" after openssl_pkcs12_read with extra cert).', + 'raw' => 'Fixed bug #69882 (OpenSSL error "key values mismatch" after openssl_pkcs12_read with extra cert). (Tomasz Sawicki)', + ), + 8 => + array ( + 'message' => 'Added "alpn_protocols" SSL context option allowing encrypted client/server streams to negotiate alternative protocols using the ALPN TLS extension when built against OpenSSL 1.0.2 or newer. Negotiated protocol information is accessible through stream_get_meta_data() output.', + 'raw' => 'Added "alpn_protocols" SSL context option allowing encrypted client/server streams to negotiate alternative protocols using the ALPN TLS extension when built against OpenSSL 1.0.2 or newer. Negotiated protocol information is accessible through stream_get_meta_data() output.', + ), + 9 => + array ( + 'message' => 'Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic detection or the "peer_name" option instead.', + 'raw' => 'Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic detection or the "peer_name" option instead. (Nikita)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70386 (Can\'t compile on NetBSD because of missing WCONTINUED and WIFCONTINUED).', + 'raw' => 'Fixed bug #70386 (Can\'t compile on NetBSD because of missing WCONTINUED and WIFCONTINUED). (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60509 (pcntl_signal doesn\'t decrease ref-count of old handler when setting SIG_DFL).', + 'raw' => 'Fixed bug #60509 (pcntl_signal doesn\'t decrease ref-count of old handler when setting SIG_DFL). (Julien)', + ), + 2 => + array ( + 'message' => 'Implemented FR #68505 (Added wifcontinued and wcontinued).', + 'raw' => 'Implemented FR #68505 (Added wifcontinued and wcontinued). (xilon-jul)', + ), + 3 => + array ( + 'message' => 'Added rusage support to pcntl_wait() and pcntl_waitpid().', + 'raw' => 'Added rusage support to pcntl_wait() and pcntl_waitpid(). (Anton Stepanenko, Tony)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70232 (Incorrect bump-along behavior with \\K and empty string match).', + 'raw' => 'Fixed bug #70232 (Incorrect bump-along behavior with \\K and empty string match). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions).', + 'raw' => 'Fixed bug #70345 (Multiple vulnerabilities related to PCRE functions). (Anatol Belski)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70232 (Incorrect bump-along behavior with \\K and empty string match).', + 'raw' => 'Fixed bug #70232 (Incorrect bump-along behavior with \\K and empty string match). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53823 (preg_replace: * qualifier on unicode replace garbles the string).', + 'raw' => 'Fixed bug #53823 (preg_replace: * qualifier on unicode replace garbles the string). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69864 (Segfault in preg_replace_callback).', + 'raw' => 'Fixed bug #69864 (Segfault in preg_replace_callback). (cmb, ab)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70861 (Segmentation fault in pdo_parse_params() during Drupal 8 test suite).', + 'raw' => 'Fixed bug #70861 (Segmentation fault in pdo_parse_params() during Drupal 8 test suite). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70389 (PDO constructor changes unrelated variables).', + 'raw' => 'Fixed bug #70389 (PDO constructor changes unrelated variables). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70272 (Segfault in pdo_mysql).', + 'raw' => 'Fixed bug #70272 (Segfault in pdo_mysql). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70221 (persistent sqlite connection + custom function segfaults).', + 'raw' => 'Fixed bug #70221 (persistent sqlite connection + custom function segfaults). (Laruence)', + ), + 4 => + array ( + 'message' => 'Removed support for the /e (PREG_REPLACE_EVAL) modifier.', + 'raw' => 'Removed support for the /e (PREG_REPLACE_EVAL) modifier. (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #59450 (./configure fails with "Cannot find php_pdo_driver.h").', + 'raw' => 'Fixed bug #59450 (./configure fails with "Cannot find php_pdo_driver.h"). (maxime dot besson at smile dot fr)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69757 (Segmentation fault on nextRowset).', + 'raw' => 'Fixed bug #69757 (Segmentation fault on nextRowset). (miracle at rpz dot name)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option).', + 'raw' => 'Fixed bug #68424 (Add new PDO mysql connection attr to control multi statements option). (peter dot wolanin at acquia dot com)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70308 (PDO::ATTR_PREFETCH is ignored).', + 'raw' => 'Fixed bug #70308 (PDO::ATTR_PREFETCH is ignored). (Chris Jones)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u).', + 'raw' => 'Fixed bug #69752 (PDOStatement::execute() leaks memory with DML Statements when closeCuror() is u). (Philip Hofstetter)', + ), + 1 => + array ( + 'message' => 'Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of ATTR_EMULATE_PREPARES).', + 'raw' => 'Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of ATTR_EMULATE_PREPARES). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()).', + 'raw' => 'Fixed bug #69720 (Null pointer dereference in phar_get_fp_offset()). (Stas)', + ), + 1 => + array ( + 'message' => 'FIxed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/").', + 'raw' => 'FIxed bug #70433 (Uninitialized pointer in phar_make_dirstream when zip entry filename is "/"). (Stas)', + ), + 2 => + array ( + 'message' => 'Improved fix for bug #69441.', + 'raw' => 'Improved fix for bug #69441. (Anatol Belski)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory).', + 'raw' => 'Fixed bug #70019 (Files extracted from archive may be placed outside of destination directory). (Anatol Belski)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions).', + 'raw' => 'Fixed bug #70614 (incorrect exit code in -rr mode with Exceptions). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70532 (phpdbg must respect set_exception_handler).', + 'raw' => 'Fixed bug #70532 (phpdbg must respect set_exception_handler). (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70531 (Run and quit mode (-qrr) should not fallback to interactive mode).', + 'raw' => 'Fixed bug #70531 (Run and quit mode (-qrr) should not fallback to interactive mode). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70533 (Help overview (-h) does not rpint anything under Windows).', + 'raw' => 'Fixed bug #70533 (Help overview (-h) does not rpint anything under Windows). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70449 (PHP won\'t compile on 10.4 and 10.5 because of missing constants).', + 'raw' => 'Fixed bug #70449 (PHP won\'t compile on 10.4 and 10.5 because of missing constants). (Bob)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70214 (FASYNC not defined, needs sys/file.h include).', + 'raw' => 'Fixed bug #70214 (FASYNC not defined, needs sys/file.h include). (Bob)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70138 (Segfault when displaying memory leaks).', + 'raw' => 'Fixed bug #70138 (Segfault when displaying memory leaks). (Bob)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70650 (Wrong docblock assignment).', + 'raw' => 'Fixed bug #70650 (Wrong docblock assignment). (Marcio)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70674 (ReflectionFunction::getClosure() leaks memory when used for internal functions).', + 'raw' => 'Fixed bug #70674 (ReflectionFunction::getClosure() leaks memory when used for internal functions). (Dmitry, Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug causing bogus traces for ReflectionGenerator::getTrace().', + 'raw' => 'Fixed bug causing bogus traces for ReflectionGenerator::getTrace(). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed inheritance chain of Reflector interface.', + 'raw' => 'Fixed inheritance chain of Reflector interface. (Tjerk)', + ), + 4 => + array ( + 'message' => 'Added ReflectionGenerator class.', + 'raw' => 'Added ReflectionGenerator class. (Bob)', + ), + 5 => + array ( + 'message' => 'Added reflection support for return types and type declarations.', + 'raw' => 'Added reflection support for return types and type declarations. (Sara, Matteo)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70876 (Segmentation fault when regenerating session id with strict mode).', + 'raw' => 'Fixed bug #70876 (Segmentation fault when regenerating session id with strict mode). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70529 (Session read causes "String is not zero-terminated" error).', + 'raw' => 'Fixed bug #70529 (Session read causes "String is not zero-terminated" error). (Yasuo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70013 (Reference to $_SESSION is lost after a call to session_regenerate_id()).', + 'raw' => 'Fixed bug #70013 (Reference to $_SESSION is lost after a call to session_regenerate_id()). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69952 (Data integrity issues accessing superglobals by reference).', + 'raw' => 'Fixed bug #69952 (Data integrity issues accessing superglobals by reference). (Bob)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67694 (Regression in session_regenerate_id()).', + 'raw' => 'Fixed bug #67694 (Regression in session_regenerate_id()). (Tjerk)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68941 (mod_files.sh is a bash-script).', + 'raw' => 'Fixed bug #68941 (mod_files.sh is a bash-script). (bugzilla at ii.nl, Yasuo)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70940 (Segfault in soap / type_to_string).', + 'raw' => 'Fixed bug #70940 (Segfault in soap / type_to_string). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70900 (SoapClient systematic out of memory error).', + 'raw' => 'Fixed bug #70900 (SoapClient systematic out of memory error). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace attribute).', + 'raw' => 'Fixed bug #70875 (Segmentation fault if wsdl has no targetNamespace attribute). (Matteo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70715 (Segmentation fault inside soap client).', + 'raw' => 'Fixed bug #70715 (Segmentation fault inside soap client). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70709 (SOAP Client generates Segfault).', + 'raw' => 'Fixed bug #70709 (SOAP Client generates Segfault). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE).', + 'raw' => 'Fixed bug #70388 (SOAP serialize_function_call() type confusion / RCE). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions).', + 'raw' => 'Fixed bug #70081 (SoapClient info leak / null pointer dereference via multiple type confusions). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70079 (Segmentation fault after more than 100 SoapClient calls).', + 'raw' => 'Fixed bug #70079 (Segmentation fault after more than 100 SoapClient calls). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #70032 (make_http_soap_request calls zend_hash_get_current_key_ex(,,,NULL).', + 'raw' => 'Fixed bug #70032 (make_http_soap_request calls zend_hash_get_current_key_ex(,,,NULL). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes).', + 'raw' => 'Fixed bug #68361 (Segmentation fault on SoapClient::__getTypes). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70959 (ArrayObject unserialize does not restore protected fields).', + 'raw' => 'Fixed bug #70959 (ArrayObject unserialize does not restore protected fields). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70853 (SplFixedArray throws exception when using ref variable as index).', + 'raw' => 'Fixed bug #70853 (SplFixedArray throws exception when using ref variable as index). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70868 (PCRE JIT and pattern reuse segfault).', + 'raw' => 'Fixed bug #70868 (PCRE JIT and pattern reuse segfault). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70730 (Incorrect ArrayObject serialization if unset is called in serialize()).', + 'raw' => 'Fixed bug #70730 (Incorrect ArrayObject serialization if unset is called in serialize()). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70573 (Cloning SplPriorityQueue leads to memory leaks).', + 'raw' => 'Fixed bug #70573 (Cloning SplPriorityQueue leads to memory leaks). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70303 (Incorrect constructor reflection for ArrayObject).', + 'raw' => 'Fixed bug #70303 (Incorrect constructor reflection for ArrayObject). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items).', + 'raw' => 'Fixed bug #70068 (Dangling pointer in the unserialization of ArrayObject items). (sean.heelan)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject).', + 'raw' => 'Fixed bug #70166 (Use After Free Vulnerability in unserialize() with SPLArrayObject). (taoguangchen at icloud dot com)', + ), + 8 => + array ( + 'message' => 'Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage).', + 'raw' => 'Fixed bug #70168 (Use After Free Vulnerability in unserialize() with SplObjectStorage). (taoguangchen at icloud dot com)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList).', + 'raw' => 'Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList). (taoguangchen at icloud dot com)', + ), + 10 => + array ( + 'message' => 'Fixed bug #70053 (MutlitpleIterator array-keys incompatible change in PHP 7).', + 'raw' => 'Fixed bug #70053 (MutlitpleIterator array-keys incompatible change in PHP 7). (Tjerk)', + ), + 11 => + array ( + 'message' => 'Fixed bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()).', + 'raw' => 'Fixed bug #69970 (Use-after-free vulnerability in spl_recursive_it_move_forward_ex()). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken).', + 'raw' => 'Fixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken). (Dmitry)', + ), + 13 => + array ( + 'message' => 'Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of iterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack.', + 'raw' => 'Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of iterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack. (Dmitry)', + ), + 14 => + array ( + 'message' => 'Implemented FR #67886 (SplPriorityQueue/SplHeap doesn\'t expose extractFlags nor curruption state).', + 'raw' => 'Implemented FR #67886 (SplPriorityQueue/SplHeap doesn\'t expose extractFlags nor curruption state). (Julien)', + ), + 15 => + array ( + 'message' => 'Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator).', + 'raw' => 'Fixed bug #66405 (RecursiveDirectoryIterator::CURRENT_AS_PATHNAME breaks the RecursiveIterator). (Paul Garvin)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70571 (Memory leak in sqlite3_do_callback).', + 'raw' => 'Fixed bug #70571 (Memory leak in sqlite3_do_callback). (Adam)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()).', + 'raw' => 'Fixed bug #69972 (Use-after-free vulnerability in sqlite3SafetyCheckSickOrOk()). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69897 (segfault when manually constructing SQLite3Result).', + 'raw' => 'Fixed bug #69897 (segfault when manually constructing SQLite3Result). (Kalle)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args).', + 'raw' => 'Fixed bug #68260 (SQLite3Result::fetchArray declares wrong required_num_args). (Julien)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed count on symbol tables.', + 'raw' => 'Fixed count on symbol tables. (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70963 (Unserialize shows UNKNOWN in result).', + 'raw' => 'Fixed bug #70963 (Unserialize shows UNKNOWN in result). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70910 (extract() breaks variable references).', + 'raw' => 'Fixed bug #70910 (extract() breaks variable references). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70808 (array_merge_recursive corrupts memory of unset items).', + 'raw' => 'Fixed bug #70808 (array_merge_recursive corrupts memory of unset items). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70667 (strtr() causes invalid writes and a crashes).', + 'raw' => 'Fixed bug #70667 (strtr() causes invalid writes and a crashes). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70668 (array_keys() doesn\'t respect references when $strict is true).', + 'raw' => 'Fixed bug #70668 (array_keys() doesn\'t respect references when $strict is true). (Bob, Dmitry)', + ), + 6 => + array ( + 'message' => 'Implemented the RFC `Random Functions Throwing Exceptions in PHP 7`.', + 'raw' => 'Implemented the RFC `Random Functions Throwing Exceptions in PHP 7`. (Sammy Kaye Powers, Anthony)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70487 (pack(\'x\') produces an error).', + 'raw' => 'Fixed bug #70487 (pack(\'x\') produces an error). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #70342 (changing configuration with ignore_user_abort(true) isn\'t working).', + 'raw' => 'Fixed bug #70342 (changing configuration with ignore_user_abort(true) isn\'t working). (Laruence)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70295 (Segmentation fault with setrawcookie).', + 'raw' => 'Fixed bug #70295 (Segmentation fault with setrawcookie). (Bob)', + ), + 10 => + array ( + 'message' => 'Fixed bug #67131 (setcookie() conditional for empty values not met).', + 'raw' => 'Fixed bug #67131 (setcookie() conditional for empty values not met). (cmb)', + ), + 11 => + array ( + 'message' => 'Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage).', + 'raw' => 'Fixed bug #70365 (Use-after-free vulnerability in unserialize() with SplObjectStorage). (taoguangchen at icloud dot com)', + ), + 12 => + array ( + 'message' => 'Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList).', + 'raw' => 'Fixed bug #70366 (Use-after-free vulnerability in unserialize() with SplDoublyLinkedList). (taoguangchen at icloud dot com)', + ), + 13 => + array ( + 'message' => 'Fixed bug #70250 (extract() turns array elements to references).', + 'raw' => 'Fixed bug #70250 (extract() turns array elements to references). (Laruence)', + ), + 14 => + array ( + 'message' => 'Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free).', + 'raw' => 'Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free). (Laruence)', + ), + 15 => + array ( + 'message' => 'Fixed bug #70208 (Assert breaking access on objects).', + 'raw' => 'Fixed bug #70208 (Assert breaking access on objects). (Bob)', + ), + 16 => + array ( + 'message' => 'Fixed bug #70140 (str_ireplace/php_string_tolower - Arbitrary Code Execution). (CVE-2015-6527)', + 'raw' => 'Fixed bug #70140 (str_ireplace/php_string_tolower - Arbitrary Code Execution). (CVE-2015-6527) (Laruence)', + ), + 17 => + array ( + 'message' => 'Implemented FR #70112 (Allow "dirname" to go up various times).', + 'raw' => 'Implemented FR #70112 (Allow "dirname" to go up various times). (Remi)', + ), + 18 => + array ( + 'message' => 'Fixed bug #36365 (scandir duplicates file name at every 65535th file).', + 'raw' => 'Fixed bug #36365 (scandir duplicates file name at every 65535th file). (cmb)', + ), + 19 => + array ( + 'message' => 'Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes).', + 'raw' => 'Fixed bug #70096 (Repeated iptcembed() adds superfluous FF bytes). (cmb)', + ), + 20 => + array ( + 'message' => 'Fixed bug #70018 (exec does not strip all whitespace).', + 'raw' => 'Fixed bug #70018 (exec does not strip all whitespace). (Laruence)', + ), + 21 => + array ( + 'message' => 'Fixed bug #69983 (get_browser fails with user agent of null).', + 'raw' => 'Fixed bug #69983 (get_browser fails with user agent of null). (Kalle, cmb, Laruence)', + ), + 22 => + array ( + 'message' => 'Fixed bug #69976 (Unable to parse "all" urls with colon char).', + 'raw' => 'Fixed bug #69976 (Unable to parse "all" urls with colon char). (cmb)', + ), + 23 => + array ( + 'message' => 'Fixed bug #69768 (escapeshell*() doesn\'t cater to !).', + 'raw' => 'Fixed bug #69768 (escapeshell*() doesn\'t cater to !). (cmb)', + ), + 24 => + array ( + 'message' => 'Fixed bug #62922 (Truncating entire string should result in string).', + 'raw' => 'Fixed bug #62922 (Truncating entire string should result in string). (Nikita)', + ), + 25 => + array ( + 'message' => 'Fixed bug #69723 (Passing parameters by reference and array_column).', + 'raw' => 'Fixed bug #69723 (Passing parameters by reference and array_column). (Laruence)', + ), + 26 => + array ( + 'message' => 'Fixed bug #69523 (Cookie name cannot be empty).', + 'raw' => 'Fixed bug #69523 (Cookie name cannot be empty). (Christoph M. Becker)', + ), + 27 => + array ( + 'message' => 'Fixed bug #69325 (php_copy_file_ex does not pass the argument).', + 'raw' => 'Fixed bug #69325 (php_copy_file_ex does not pass the argument). (imbolk at gmail dot com)', + ), + 28 => + array ( + 'message' => 'Fixed bug #69299 (Regression in array_filter\'s $flag argument in PHP 7).', + 'raw' => 'Fixed bug #69299 (Regression in array_filter\'s $flag argument in PHP 7). (Laruence)', + ), + 29 => + array ( + 'message' => 'Removed call_user_method() and call_user_method_array() functions.', + 'raw' => 'Removed call_user_method() and call_user_method_array() functions. (Kalle)', + ), + 30 => + array ( + 'message' => 'Fixed user session handlers (See rfc:session.user.return-value).', + 'raw' => 'Fixed user session handlers (See rfc:session.user.return-value). (Sara)', + ), + 31 => + array ( + 'message' => 'Added intdiv() function.', + 'raw' => 'Added intdiv() function. (Andrea)', + ), + 32 => + array ( + 'message' => 'Improved precision of log() function for base 2 and 10.', + 'raw' => 'Improved precision of log() function for base 2 and 10. (Marc Bennewitz)', + ), + 33 => + array ( + 'message' => 'Remove string category support in setlocale().', + 'raw' => 'Remove string category support in setlocale(). (Nikita)', + ), + 34 => + array ( + 'message' => 'Remove set_magic_quotes_runtime() and its alias magic_quotes_runtime().', + 'raw' => 'Remove set_magic_quotes_runtime() and its alias magic_quotes_runtime(). (Nikita)', + ), + 35 => + array ( + 'message' => 'Fixed bug #65272 (flock() out parameter not set correctly in windows).', + 'raw' => 'Fixed bug #65272 (flock() out parameter not set correctly in windows). (Daniel Lowrey)', + ), + 36 => + array ( + 'message' => 'Added preg_replace_callback_array function.', + 'raw' => 'Added preg_replace_callback_array function. (Wei Dai)', + ), + 37 => + array ( + 'message' => 'Deprecated salt option to password_hash.', + 'raw' => 'Deprecated salt option to password_hash. (Anthony)', + ), + 38 => + array ( + 'message' => 'Fixed bug #69686 (password_verify reports back error on PHP7 will null string).', + 'raw' => 'Fixed bug #69686 (password_verify reports back error on PHP7 will null string). (Anthony)', + ), + 39 => + array ( + 'message' => 'Added Windows support for getrusage().', + 'raw' => 'Added Windows support for getrusage(). (Kalle)', + ), + 40 => + array ( + 'message' => 'Removed hardcoded limit on number of pipes in proc_open().', + 'raw' => 'Removed hardcoded limit on number of pipes in proc_open(). (Tony)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70361 (HTTP stream wrapper doesn\'t close keep-alive connections).', + 'raw' => 'Fixed bug #70361 (HTTP stream wrapper doesn\'t close keep-alive connections). (Niklas Keller)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68532 (convert.base64-encode omits padding bytes).', + 'raw' => 'Fixed bug #68532 (convert.base64-encode omits padding bytes). (blaesius at krumedia dot de)', + ), + 2 => + array ( + 'message' => 'Removed set_socket_blocking() in favor of its alias stream_set_blocking().', + 'raw' => 'Removed set_socket_blocking() in favor of its alias stream_set_blocking(). (Nikita)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69430 (token_get_all has new irrecoverable errors).', + 'raw' => 'Fixed bug #69430 (token_get_all has new irrecoverable errors). (Nikita)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70309 (XmlReader read generates extra output).', + 'raw' => 'Fixed bug #70309 (XmlReader read generates extra output). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70526 (xmlrpc_set_type returns false on success).', + 'raw' => 'Fixed bug #70526 (xmlrpc_set_type returns false on success). (Laruence)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70678 (PHP7 returns true when false is expected).', + 'raw' => 'Fixed bug #70678 (PHP7 returns true when false is expected). (Felipe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70535 (XSLT: free(): invalid pointer).', + 'raw' => 'Fixed bug #70535 (XSLT: free(): invalid pointer). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69782 (NULL pointer dereference).', + 'raw' => 'Fixed bug #69782 (NULL pointer dereference). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #64776 (The XSLT extension is not thread safe).', + 'raw' => 'Fixed bug #64776 (The XSLT extension is not thread safe). (Mike)', + ), + 4 => + array ( + 'message' => 'Removed xsl.security_prefs ini option.', + 'raw' => 'Removed xsl.security_prefs ini option. (Nikita)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Added deflate_init(), deflate_add(), inflate_init(), inflate_add() functions allowing incremental/streaming compression/decompression.', + 'raw' => 'Added deflate_init(), deflate_add(), inflate_init(), inflate_add() functions allowing incremental/streaming compression/decompression. (Daniel Lowrey & Bob Weinand)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70322 (ZipArchive::close() doesn\'t indicate errors). (CVE-2014-9767)', + 'raw' => 'Fixed bug #70322 (ZipArchive::close() doesn\'t indicate errors). (CVE-2014-9767) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories).', + 'raw' => 'Fixed bug #70350 (ZipArchive::extractTo allows for directory traversal when creating directories). (neal at fb dot com)', + ), + 2 => + array ( + 'message' => 'Added ZipArchive::setCompressionName and ZipArchive::setCompressionIndex methods.', + 'raw' => 'Added ZipArchive::setCompressionName and ZipArchive::setCompressionIndex methods. (Remi, Cedric Delmas)', + ), + 3 => + array ( + 'message' => 'Update bundled libzip to 1.0.1.', + 'raw' => 'Update bundled libzip to 1.0.1. (Remi, Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67161 (ZipArchive::getStream() returns NULL for certain file).', + 'raw' => 'Fixed bug #67161 (ZipArchive::getStream() returns NULL for certain file). (Christoph M. Becker)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/7.1/changelist.inc b/include/releases/7.1/changelist.inc new file mode 100644 index 0000000000..4c06ba6c44 --- /dev/null +++ b/include/releases/7.1/changelist.inc @@ -0,0 +1,8126 @@ + + array ( + 'date' => '24 Oct 2019', + 'modules' => + array ( + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043)', + 'raw' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043) (Jakub Zelenka)', + ), + ), + ), + ), + '7.1.32' => + array ( + 'date' => '29 Aug 2019', + 'modules' => + array ( + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed CVE-2019-13224 (don\'t allow different encodings for onig_new_deluxe)', + 'raw' => 'Fixed CVE-2019-13224 (don\'t allow different encodings for onig_new_deluxe) (stas)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75457 (heap use-after-free in pcrelib)', + 'raw' => 'Fixed bug #75457 (heap use-after-free in pcrelib) (cmb)', + ), + ), + ), + ), + '7.1.31' => + array ( + 'date' => '01 Aug 2019', + 'modules' => + array ( + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Upgraded to SQLite 3.28.0.', + 'raw' => 'Upgraded to SQLite 3.28.0. (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042)', + 'raw' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041)', + 'raw' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041) (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN).', + 'raw' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN). (cmb)', + ), + ), + ), + ), + '7.1.30' => + array ( + 'date' => '30 May 2019', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). (CVE-2019-11040)', + 'raw' => 'Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). (CVE-2019-11040) (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). (CVE-2019-11038)', + 'raw' => 'Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). (CVE-2019-11038) (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow). (CVE-2019-11039).', + 'raw' => 'Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow). (CVE-2019-11039). (maris dot adam)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77967 (Bypassing open_basedir restrictions via file uris).', + 'raw' => 'Fixed bug #77967 (Bypassing open_basedir restrictions via file uris). (Stas)', + ), + ), + ), + ), + '7.1.29' => + array ( + 'date' => '03 May 2019', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). (CVE-2019-11036)', + 'raw' => 'Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). (CVE-2019-11036) (Stas)', + ), + ), + 'mail' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77821 (Potential heap corruption in TSendMail()).', + 'raw' => 'Fixed bug #77821 (Potential heap corruption in TSendMail()). (cmb)', + ), + ), + ), + ), + '7.1.28' => + array ( + 'date' => '04 Apr 2019', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034)', + 'raw' => 'Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). (CVE-2019-11035)', + 'raw' => 'Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). (CVE-2019-11035) (Stas)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Added sqlite3.defensive INI directive.', + 'raw' => 'Added sqlite3.defensive INI directive. (BohwaZ)', + ), + ), + ), + ), + '7.1.27' => + array ( + 'date' => '07 Mar 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77630 (rename() across the device may allow unwanted access during processing).', + 'raw' => 'Fixed bug #77630 (rename() across the device may allow unwanted access during processing). (Stas)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77540 (Invalid Read on exif_process_SOFn).', + 'raw' => 'Fixed bug #77540 (Invalid Read on exif_process_SOFn). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).', + 'raw' => 'Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename). (bishop)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow).', + 'raw' => 'Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow). (bishop)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77431 (openFile() silently truncates after a null byte).', + 'raw' => 'Fixed bug #77431 (openFile() silently truncates after a null byte). (cmb)', + ), + ), + ), + ), + '7.1.26' => + array ( + 'date' => '10 Jan 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77369 (memcpy with negative length via crafted DNS response).', + 'raw' => 'Fixed bug #77369 (memcpy with negative length via crafted DNS response). (Stas)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free).', + 'raw' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap).', + 'raw' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77020 (null pointer dereference in imap_mail).', + 'raw' => 'Fixed bug #77020 (null pointer dereference in imap_mail). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token).', + 'raw' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node).', + 'raw' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at).', + 'raw' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string).', + 'raw' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77385 (buffer overflow in fetch_token).', + 'raw' => 'Fixed bug #77385 (buffer overflow in fetch_token). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode).', + 'raw' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code).', + 'raw' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). (Stas)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext).', + 'raw' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). (Stas)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()).', + 'raw' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code).', + 'raw' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). (Stas)', + ), + ), + ), + ), + '7.1.25' => + array ( + 'date' => '06 Dec 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71041 (zend_signal_startup() needs ZEND_API).', + 'raw' => 'Fixed bug #71041 (zend_signal_startup() needs ZEND_API). (Valentin V. Bartenev)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77151 (ftp_close(): SSL_read on shutdown).', + 'raw' => 'Fixed bug #77151 (ftp_close(): SSL_read on shutdown). (Remi)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR).', + 'raw' => 'Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter).', + 'raw' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter). (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77079 (odbc_fetch_object has incorrect type signature).', + 'raw' => 'Fixed bug #77079 (odbc_fetch_object has incorrect type signature). (Jon Allen)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77058 (Type inference in opcache causes side effects).', + 'raw' => 'Fixed bug #77058 (Type inference in opcache causes side effects). (Nikita)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77047 (pg_convert has a broken regex for the \'TIME WITHOUT TIMEZONE\' data type).', + 'raw' => 'Fixed bug #77047 (pg_convert has a broken regex for the \'TIME WITHOUT TIMEZONE\' data type). (Andy Gajetzki)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault).', + 'raw' => 'Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77141 (Signedness issue in SOAP when precision=-1).', + 'raw' => 'Fixed bug #77141 (Signedness issue in SOAP when precision=-1). (cmb)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67619 (Validate length on socket_write).', + 'raw' => 'Fixed bug #67619 (Validate length on socket_write). (thiagooak)', + ), + ), + ), + ), + '7.1.24' => + array ( + 'date' => '08 Nov 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76946 (Cyclic reference in generator not detected).', + 'raw' => 'Fixed bug #76946 (Cyclic reference in generator not detected). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77035 (The phpize and ./configure create redundant .deps file).', + 'raw' => 'Fixed bug #77035 (The phpize and ./configure create redundant .deps file). (Peter Kokot)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77041 (buildconf should output error messages to stderr)', + 'raw' => 'Fixed bug #77041 (buildconf should output error messages to stderr) (Mizunashi Mana)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" and "y").', + 'raw' => 'Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" and "y"). (Adam Saponara)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76948 (Failed shutdown/reboot or end session in Windows).', + 'raw' => 'Fixed bug #76948 (Failed shutdown/reboot or end session in Windows). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76954 (apache_response_headers removes last character from header name).', + 'raw' => 'Fixed bug #76954 (apache_response_headers removes last character from header name). (stodorovic)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown).', + 'raw' => 'Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown). (Manuel Mausz)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH).', + 'raw' => 'Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH). (anthrax at unixuser dot org)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76965 (INI_SCANNER_RAW doesn\'t strip trailing whitespace).', + 'raw' => 'Fixed bug #76965 (INI_SCANNER_RAW doesn\'t strip trailing whitespace). (Pierrick)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77027 (tidy::getOptDoc() not available on Windows).', + 'raw' => 'Fixed bug #77027 (tidy::getOptDoc() not available on Windows). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #30875 (xml_parse_into_struct() does not resolve entities).', + 'raw' => 'Fixed bug #30875 (xml_parse_into_struct() does not resolve entities). (cmb)', + ), + 1 => + array ( + 'message' => 'Add support for getting SKIP_TAGSTART and SKIP_WHITE options.', + 'raw' => 'Add support for getting SKIP_TAGSTART and SKIP_WHITE options. (cmb)', + ), + ), + ), + ), + '7.1.23' => + array ( + 'date' => '11 Oct 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory).', + 'raw' => 'Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76846 (Segfault in shutdown function after memory limit error).', + 'raw' => 'Fixed bug #76846 (Segfault in shutdown function after memory limit error). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected).', + 'raw' => 'Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected). (Pierrick)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be).', + 'raw' => 'Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS).', + 'raw' => 'Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS). (Anatol)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75696 (posix_getgrnam fails to print details of group).', + 'raw' => 'Fixed bug #75696 (posix_getgrnam fails to print details of group). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod).', + 'raw' => 'Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection).', + 'raw' => 'Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection). (Ville Hukkamäki)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client).', + 'raw' => 'Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client). (Ville Hukkamäki)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75533 (array_reduce is slow when $carry is large array).', + 'raw' => 'Fixed bug #75533 (array_reduce is slow when $carry is large array). (Manabu Matsui)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed).', + 'raw' => 'Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed). (Martin Burke, cmb)', + ), + ), + ), + ), + '7.1.22' => + array ( + 'date' => '13 Sep 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76754 (parent private constant in extends class memory leak).', + 'raw' => 'Fixed bug #76754 (parent private constant in extends class memory leak). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72443 (Generate enabled extension).', + 'raw' => 'Fixed bug #72443 (Generate enabled extension). (petk)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed arginfo for bzcompress.', + 'raw' => 'Fixed arginfo for bzcompress. (Tyson Andre)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76517 (incorrect restoring of LDFLAGS).', + 'raw' => 'Fixed bug #76517 (incorrect restoring of LDFLAGS). (sji)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68180 (iconv_mime_decode can return extra characters in a header).', + 'raw' => 'Fixed bug #68180 (iconv_mime_decode can return extra characters in a header). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers).', + 'raw' => 'Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60494 (iconv_mime_decode does ignore special characters).', + 'raw' => 'Fixed bug #60494 (iconv_mime_decode does ignore special characters). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #55146 (iconv_mime_decode_headers() skips some headers).', + 'raw' => 'Fixed bug #55146 (iconv_mime_decode_headers() skips some headers). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 11+ named placeholders).', + 'raw' => 'Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 11+ named placeholders). (Anatol)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader callback undefined).', + 'raw' => 'Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader callback undefined). (Ville Hukkamäki)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76704 (mb_detect_order return value varies based on argument type).', + 'raw' => 'Fixed bug #76704 (mb_detect_order return value varies based on argument type). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file).', + 'raw' => 'Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76705 (unusable ssl => peer_fingerprint in stream_context_create()).', + 'raw' => 'Fixed bug #76705 (unusable ssl => peer_fingerprint in stream_context_create()). (Jakub Zelenka)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76595 (phpdbg man page contains outdated information).', + 'raw' => 'Fixed bug #76595 (phpdbg man page contains outdated information). (Kevin Abel)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()).', + 'raw' => 'Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0).', + 'raw' => 'Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0). (Tim Siebels)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76778 (array_reduce leaks memory if callback throws exception).', + 'raw' => 'Fixed bug #76778 (array_reduce leaks memory if callback throws exception). (cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure option).', + 'raw' => 'Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure option). (Jay Bonci)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76709 (Minimal required zlib library is 1.2.0.4).', + 'raw' => 'Fixed bug #76709 (Minimal required zlib library is 1.2.0.4). (petk)', + ), + ), + ), + ), + '7.1.21' => + array ( + 'date' => '16 Aug 2018', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52974 (jewish.c: compile error under Windows with GBK charset).', + 'raw' => 'Fixed bug #52974 (jewish.c: compile error under Windows with GBK charset). (cmb)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76366 (References in sub-array for filtering breaks the filter).', + 'raw' => 'Fixed bug #76366 (References in sub-array for filtering breaks the filter). (ZiHang Gao)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76488 (Memory leak when fetching a BLOB field).', + 'raw' => 'Fixed bug #76488 (Memory leak when fetching a BLOB field). (Simonov Denis)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75402 (Possible Memory Leak using PDO::CURSOR_SCROLL option).', + 'raw' => 'Fixed bug #75402 (Possible Memory Leak using PDO::CURSOR_SCROLL option). (Anatol)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn\'t juggle).', + 'raw' => 'Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn\'t juggle). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68553 (array_column: null values in $index_key become incrementing keys in result).', + 'raw' => 'Fixed bug #68553 (array_column: null values in $index_key become incrementing keys in result). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73817 (Incorrect entries in get_html_translation_table).', + 'raw' => 'Fixed bug #73817 (Incorrect entries in get_html_translation_table). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76643 (Segmentation fault when using `output_add_rewrite_var`).', + 'raw' => 'Fixed bug #76643 (Segmentation fault when using `output_add_rewrite_var`). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76524 (ZipArchive memory leak (OVERWRITE flag and empty archive)).', + 'raw' => 'Fixed bug #76524 (ZipArchive memory leak (OVERWRITE flag and empty archive)). (Timur Ibragimov)', + ), + ), + ), + ), + '7.1.20' => + array ( + 'date' => '07 Jul 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76534 (PHP hangs on \'illegal string offset on string references with an error handler).', + 'raw' => 'Fixed bug #76534 (PHP hangs on \'illegal string offset on string references with an error handler). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize properly).', + 'raw' => 'Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize properly). (Nikita)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76462 (Undefined property: DateInterval::$f).', + 'raw' => 'Fixed bug #76462 (Undefined property: DateInterval::$f). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to non-blocking).', + 'raw' => 'Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to non-blocking). (Nikita)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74670 (Integer Underflow when unserializing GMP and possible other classes).', + 'raw' => 'Fixed bug #74670 (Integer Underflow when unserializing GMP and possible other classes). (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong type).', + 'raw' => 'Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong type). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76532 (Integer overflow and excessive memory usage in mb_strimwidth).', + 'raw' => 'Fixed bug #76532 (Integer overflow and excessive memory usage in mb_strimwidth). (MarcusSchwarz)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76548 (pg_fetch_result did not fetch the next row).', + 'raw' => 'Fixed bug #76548 (pg_fetch_result did not fetch the next row). (Anatol)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix arginfo wrt. optional/required parameters.', + 'raw' => 'Fix arginfo wrt. optional/required parameters. (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler).', + 'raw' => 'Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with inherited classes).', + 'raw' => 'Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with inherited classes). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys).', + 'raw' => 'Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71848 (getimagesize with $imageinfo returns false).', + 'raw' => 'Fixed bug #71848 (getimagesize with $imageinfo returns false). (cmb)', + ), + ), + ), + ), + '7.1.19' => + array ( + 'date' => '22 Jun 2018', + 'modules' => + array ( + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76333 (PHP built-in server does not find files if root path contains special characters).', + 'raw' => 'Fixed bug #76333 (PHP built-in server does not find files if root path contains special characters). (Anatol)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76296 (openssl_pkey_get_public does not respect open_basedir).', + 'raw' => 'Fixed bug #76296 (openssl_pkey_get_public does not respect open_basedir). (Erik Lax, Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76174 (openssl extension fails to build with LibreSSL 2.7).', + 'raw' => 'Fixed bug #76174 (openssl extension fails to build with LibreSSL 2.7). (Jakub Zelenka)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76367 (NoRewindIterator segfault 11).', + 'raw' => 'Fixed bug #76367 (NoRewindIterator segfault 11). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76335 ("link(): Bad file descriptor" with non-ASCII path).', + 'raw' => 'Fixed bug #76335 ("link(): Bad file descriptor" with non-ASCII path). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT).', + 'raw' => 'Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT). (Bob)', + ), + ), + ), + ), + '7.1.18' => + array ( + 'date' => '24 May 2018', + 'modules' => + array ( + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76075 --with-fpm-acl wrongly tries to find libacl on FreeBSD.', + 'raw' => 'Fixed bug #76075 --with-fpm-acl wrongly tries to find libacl on FreeBSD. (mgorny)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74385 (Locale::parseLocale() broken with some arguments).', + 'raw' => 'Fixed bug #74385 (Locale::parseLocale() broken with some arguments). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).', + 'raw' => 'Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76275 (Assertion failure in file cache when unserializing empty try_catch_array).', + 'raw' => 'Fixed bug #76275 (Assertion failure in file cache when unserializing empty try_catch_array). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors).', + 'raw' => 'Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors). (Nikita)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed arginfo for array_replace(_recursive) and array_merge(_recursive).', + 'raw' => 'Fixed arginfo for array_replace(_recursive) and array_merge(_recursive). (carusogabriel)', + ), + ), + ), + ), + '7.1.17' => + array ( + 'date' => '26 Apr 2018', + 'modules' => + array ( + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76131 (mismatch arginfo for date_create).', + 'raw' => 'Fixed bug #76131 (mismatch arginfo for date_create). (carusogabriel)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68440 (ERROR: failed to reload: execvp() failed: Argument list too long).', + 'raw' => 'Fixed bug #68440 (ERROR: failed to reload: execvp() failed: Argument list too long). (Jacob Hipps)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect write to getenv result in FPM reload.', + 'raw' => 'Fixed incorrect write to getenv result in FPM reload. (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52070 (imagedashedline() - dashed line sometimes is not visible).', + 'raw' => 'Fixed bug #52070 (imagedashedline() - dashed line sometimes is not visible). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76153 (Intl compilation fails with icu4c 61.1).', + 'raw' => 'Fixed bug #76153 (Intl compilation fails with icu4c 61.1). (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75944 (Wrong cp1251 detection).', + 'raw' => 'Fixed bug #75944 (Wrong cp1251 detection). (dmk001)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1).', + 'raw' => 'Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1). (chrullrich, cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite).', + 'raw' => 'Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76131 (mismatch arginfo for splarray constructor).', + 'raw' => 'Fixed bug #76131 (mismatch arginfo for splarray constructor). (carusogabriel)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75996 (incorrect url in header for mt_rand).', + 'raw' => 'Fixed bug #75996 (incorrect url in header for mt_rand). (tatarbj)', + ), + ), + ), + ), + '7.1.16' => + array ( + 'date' => '29 Mar 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76025 (Segfault while throwing exception in error_handler).', + 'raw' => 'Fixed bug #76025 (Segfault while throwing exception in error_handler). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76044 (\'date: illegal option -- -\' in ./configure on FreeBSD).', + 'raw' => 'Fixed bug #76044 (\'date: illegal option -- -\' in ./configure on FreeBSD). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls).', + 'raw' => 'Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73957 (signed integer conversion in imagescale()).', + 'raw' => 'Fixed bug #73957 (signed integer conversion in imagescale()). (cmb)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76088 (ODBC functions are not available by default on Windows).', + 'raw' => 'Fixed bug #76088 (ODBC functions are not available by default on Windows). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76074 (opcache corrupts variable in for-loop).', + 'raw' => 'Fixed bug #76074 (opcache corrupts variable in for-loop). (Bob)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76085 (Segmentation fault in buildFromIterator when directory name contains a \\n).', + 'raw' => 'Fixed bug #76085 (Segmentation fault in buildFromIterator when directory name contains a \\n). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74139 (mail.add_x_header default inconsistent with docs).', + 'raw' => 'Fixed bug #74139 (mail.add_x_header default inconsistent with docs). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76068 (parse_ini_string fails to parse "[foo]\\nbar=1|>baz" with segfault).', + 'raw' => 'Fixed bug #76068 (parse_ini_string fails to parse "[foo]\\nbar=1|>baz" with segfault). (Anatol)', + ), + ), + ), + ), + '7.1.15' => + array ( + 'date' => '01 Mar 2018', + 'modules' => + array ( + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75882 (a simple way for segfaults in threadsafe php just with configuration).', + 'raw' => 'Fixed bug #75882 (a simple way for segfaults in threadsafe php just with configuration). (Anatol)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75857 (Timezone gets truncated when formatted).', + 'raw' => 'Fixed bug #75857 (Timezone gets truncated when formatted). (carusogabriel)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null`).', + 'raw' => 'Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null`). (Pedro Lacerda)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it).', + 'raw' => 'Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). (jhdxr)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed ftp_pasv arginfo.', + 'raw' => 'Fixed ftp_pasv arginfo. (carusogabriel)', + ), + 1 => + array ( + 'message' => 'Fixed imagesetinterpolation arginfo.', + 'raw' => 'Fixed imagesetinterpolation arginfo. (Gabriel Caruso)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75867 (Freeing uninitialized pointer).', + 'raw' => 'Fixed bug #75867 (Freeing uninitialized pointer). (Philip Prindeville)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros).', + 'raw' => 'Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke)', + ), + ), + 'libxml2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75871 (use pkg-config where available).', + 'raw' => 'Fixed bug #75871 (use pkg-config where available). (pmmaga)', + ), + 1 => + array ( + 'message' => 'Fixed negotiation of MySQL authenticaton plugin.', + 'raw' => 'Fixed negotiation of MySQL authenticaton plugin. (Johannes)', + ), + 2 => + array ( + 'message' => 'Fixed a memleak with SSL connections.', + 'raw' => 'Fixed a memleak with SSL connections. (Johannes)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73725 (Unable to retrieve value of varchar(max) type).', + 'raw' => 'Fixed bug #73725 (Unable to retrieve value of varchar(max) type). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75969 (Assertion failure in live range DCE due to block pass misoptimization).', + 'raw' => 'Fixed bug #75969 (Assertion failure in live range DCE due to block pass misoptimization). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed openssl_* arginfos.', + 'raw' => 'Fixed openssl_* arginfos. (carusogabriel)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)).', + 'raw' => 'Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)). (Sam Ding)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed #75838 (Memory leak in pg_escape_bytea()).', + 'raw' => 'Fixed #75838 (Memory leak in pg_escape_bytea()). (ard_1 at mail dot ru)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65414 (deal with leading slash when adding files correctly).', + 'raw' => 'Fixed bug #65414 (deal with leading slash when adding files correctly). (bishopb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74519 (strange behavior of AppendIterator).', + 'raw' => 'Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75961 (Strange references behavior).', + 'raw' => 'Fixed bug #75961 (Strange references behavior). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75916 (DNS_CAA record results contain garbage).', + 'raw' => 'Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike, Philip Sharp)', + ), + 2 => + array ( + 'message' => 'Fixed some arginfos.', + 'raw' => 'Fixed some arginfos. (carusogabriel)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75981 (stack-buffer-overflow while parsing HTTP response).', + 'raw' => 'Fixed bug #75981 (stack-buffer-overflow while parsing HTTP response). (Stas)', + ), + ), + ), + ), + '7.1.14' => + array ( + 'date' => '01 Feb 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75679 (Path 260 character problem).', + 'raw' => 'Fixed bug #75679 (Path 260 character problem). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75786 (segfault when using spread operator on generator passed by reference).', + 'raw' => 'Fixed bug #75786 (segfault when using spread operator on generator passed by reference). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75799 (arg of get_defined_functions is optional).', + 'raw' => 'Fixed bug #75799 (arg of get_defined_functions is optional). (carusogabriel)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75396 (Exit inside generator finally results in fatal error).', + 'raw' => 'Fixed bug #75396 (Exit inside generator finally results in fatal error). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75079 (self keyword leads to incorrectly generated TypeError when in closure in trait).', + 'raw' => 'Fixed bug #75079 (self keyword leads to incorrectly generated TypeError when in closure in trait). (Nikita)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75794 (getenv() crashes on Windows 7.2.1 when second parameter is false).', + 'raw' => 'Fixed bug #75794 (getenv() crashes on Windows 7.2.1 when second parameter is false). (Anatol)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75774 (imap_append HeapCorruction).', + 'raw' => 'Fixed bug #75774 (imap_append HeapCorruction). (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62545 (wrong unicode mapping in some charsets).', + 'raw' => 'Fixed bug #62545 (wrong unicode mapping in some charsets). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75720 (File cache not populated after SHM runs full).', + 'raw' => 'Fixed bug #75720 (File cache not populated after SHM runs full). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash).', + 'raw' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash). (Dmitry)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75671 (pg_version() crashes when called on a connection to cockroach).', + 'raw' => 'Fixed bug #75671 (pg_version() crashes when called on a connection to cockroach). (magicaltux at gmail dot com)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75775 (readline_read_history segfaults with empty file).', + 'raw' => 'Fixed bug #75775 (readline_read_history segfaults with empty file). (Anatol)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75735 ([embed SAPI] Segmentation fault in sapi_register_post_entry).', + 'raw' => 'Fixed bug #75735 ([embed SAPI] Segmentation fault in sapi_register_post_entry). (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used).', + 'raw' => 'Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used). (Anton Artamonov)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75502 (Segmentation fault in zend_string_release).', + 'raw' => 'Fixed bug #75502 (Segmentation fault in zend_string_release). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75717 (RecursiveArrayIterator does not traverse arrays by reference).', + 'raw' => 'Fixed bug #75717 (RecursiveArrayIterator does not traverse arrays by reference). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75242 (RecursiveArrayIterator doesn\'t have constants from parent class).', + 'raw' => 'Fixed bug #75242 (RecursiveArrayIterator doesn\'t have constants from parent class). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73209 (RecursiveArrayIterator does not iterate object properties).', + 'raw' => 'Fixed bug #73209 (RecursiveArrayIterator does not iterate object properties). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75781 (substr_count incorrect result).', + 'raw' => 'Fixed bug #75781 (substr_count incorrect result). (Laruence)', + ), + ), + ), + ), + '7.1.13' => + array ( + 'date' => '04 Jan 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26).', + 'raw' => 'Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75384 (PHP seems incompatible with OneDrive files on demand).', + 'raw' => 'Fixed bug #75384 (PHP seems incompatible with OneDrive files on demand). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74862 (Unable to clone instance when private __clone defined).', + 'raw' => 'Fixed bug #74862 (Unable to clone instance when private __clone defined). (Daniel Ciochiu)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75074 (php-process crash when is_file() is used with strings longer 260 chars).', + 'raw' => 'Fixed bug #75074 (php-process crash when is_file() is used with strings longer 260 chars). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69727 (Remove timestamps from build to make it reproducible).', + 'raw' => 'Fixed bug #69727 (Remove timestamps from build to make it reproducible). (jelle van der Waa)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60471 (Random "Invalid request (unexpected EOF)" using a router script).', + 'raw' => 'Fixed bug #60471 (Random "Invalid request (unexpected EOF)" using a router script). (SammyK)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73830 (Directory does not exist).', + 'raw' => 'Fixed bug #73830 (Directory does not exist). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between requests).', + 'raw' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between requests). (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx).', + 'raw' => 'Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx). (Christoph)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75608 ("Narrowing occurred during type inference" error).', + 'raw' => 'Fixed bug #75608 ("Narrowing occurred during type inference" error). (Laruence, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75570 ("Narrowing occurred during type inference" error).', + 'raw' => 'Fixed bug #75570 ("Narrowing occurred during type inference" error). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash).', + 'raw' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash). (Dmitry)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74183 (preg_last_error not returning error code after error).', + 'raw' => 'Fixed bug #74183 (preg_last_error not returning error code after error). (Andrew Nester)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74782 (remove file name from output to avoid XSS).', + 'raw' => 'Fixed bug #74782 (remove file name from output to avoid XSS). (stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75511 (fread not free unused buffer).', + 'raw' => 'Fixed bug #75511 (fread not free unused buffer). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75514 (mt_rand returns value outside [$min,$max]+ on 32-bit)', + 'raw' => 'Fixed bug #75514 (mt_rand returns value outside [$min,$max]+ on 32-bit) (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75535 (Inappropriately parsing HTTP response leads to PHP segment fault).', + 'raw' => 'Fixed bug #75535 (Inappropriately parsing HTTP response leads to PHP segment fault). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing).', + 'raw' => 'Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing). (sarciszewski)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73124 (php_ini_scanned_files() not reporting correctly).', + 'raw' => 'Fixed bug #73124 (php_ini_scanned_files() not reporting correctly). (John Stevenson)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75574 (putenv does not work properly if parameter contains non-ASCII unicode character).', + 'raw' => 'Fixed bug #75574 (putenv does not work properly if parameter contains non-ASCII unicode character). (Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75540 (Segfault with libzip 1.3.1).', + 'raw' => 'Fixed bug #75540 (Segfault with libzip 1.3.1). (Remi)', + ), + ), + ), + ), + '7.1.12' => + array ( + 'date' => '23 Nov 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75420 (Crash when modifing property name in __isset for BP_VAR_IS).', + 'raw' => 'Fixed bug #75420 (Crash when modifing property name in __isset for BP_VAR_IS). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75368 (mmap/munmap trashing on unlucky allocations).', + 'raw' => 'Fixed bug #75368 (mmap/munmap trashing on unlucky allocations). (Nikita, Dmitry)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75287 (Builtin webserver crash after chdir in a shutdown function).', + 'raw' => 'Fixed bug #75287 (Builtin webserver crash after chdir in a shutdown function). (Laruence)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53070 (enchant_broker_get_path crashes if no path is set).', + 'raw' => 'Fixed bug #53070 (enchant_broker_get_path crashes if no path is set). (jelle van der Waa, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75365 (Enchant still reports version 1.1.0).', + 'raw' => 'Fixed bug #75365 (Enchant still reports version 1.1.0). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75301 (Exif extension has built in revision version).', + 'raw' => 'Fixed bug #75301 (Exif extension has built in revision version). (Peter Kokot)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65148 (imagerotate may alter image dimensions).', + 'raw' => 'Fixed bug #65148 (imagerotate may alter image dimensions). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75437 (Wrong reflection on imagewebp).', + 'raw' => 'Fixed bug #75437 (Wrong reflection on imagewebp). (Fabien Villepinte)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination).', + 'raw' => 'Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination). (andrewnester)', + ), + ), + 'interbase' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75453 (Incorrect reflection for ibase_[p]connect).', + 'raw' => 'Fixed bug #75453 (Incorrect reflection for ibase_[p]connect). (villfa)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75434 (Wrong reflection for mysqli_fetch_all function).', + 'raw' => 'Fixed bug #75434 (Wrong reflection for mysqli_fetch_all function). (Fabien Villepinte)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed valgrind issue.', + 'raw' => 'Fixed valgrind issue. (Tianfang Yang)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75363 (openssl_x509_parse leaks memory).', + 'raw' => 'Fixed bug #75363 (openssl_x509_parse leaks memory). (Bob, Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75307 (Wrong reflection for openssl_open function).', + 'raw' => 'Fixed bug #75307 (Wrong reflection for openssl_open function). (villfa)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75373 (Warning Internal error: wrong size calculation).', + 'raw' => 'Fixed bug #75373 (Warning Internal error: wrong size calculation). (Laruence, Dmitry)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75419 (Default link incorrectly cleared/linked by pg_close()).', + 'raw' => 'Fixed bug #75419 (Default link incorrectly cleared/linked by pg_close()). (Sara)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders).', + 'raw' => 'Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders). (villfa)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75299 (Wrong reflection on inflate_init and inflate_add).', + 'raw' => 'Fixed bug #75299 (Wrong reflection on inflate_init and inflate_add). (Fabien Villepinte)', + ), + ), + ), + ), + '7.1.11' => + array ( + 'date' => '26 Oct 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).', + 'raw' => 'Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75236 (infinite loop when printing an error-message).', + 'raw' => 'Fixed bug #75236 (infinite loop when printing an error-message). (Andrea)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75252 (Incorrect token formatting on two parse errors in one request).', + 'raw' => 'Fixed bug #75252 (Incorrect token formatting on two parse errors in one request). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75220 (Segfault when calling is_callable on parent).', + 'raw' => 'Fixed bug #75220 (Segfault when calling is_callable on parent). (andrewnester)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75290 (debug info of Closures of internal functions contain garbage argument names).', + 'raw' => 'Fixed bug #75290 (debug info of Closures of internal functions contain garbage argument names). (Andrea)', + ), + ), + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75311 (error: \'zend_hash_key\' has no member named \'arKey\' in apache2handler).', + 'raw' => 'Fixed bug #75311 (error: \'zend_hash_key\' has no member named \'arKey\' in apache2handler). (mcarbonneaux)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75055 (Out-Of-Bounds Read in timelib_meridian()).', + 'raw' => 'Fixed bug #75055 (Out-Of-Bounds Read in timelib_meridian()). (Derick)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75303 (sha3 hangs on bigendian).', + 'raw' => 'Fixed bug #75303 (sha3 hangs on bigendian). (Remi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75318 (The parameter of UConverter::getAliases() is not optional).', + 'raw' => 'Fixed bug #75318 (The parameter of UConverter::getAliases() is not optional). (cmb)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75248 (Binary directory doesn\'t get created when building only litespeed SAPI).', + 'raw' => 'Fixed bug #75248 (Binary directory doesn\'t get created when building only litespeed SAPI). (petk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75251 (Missing program prefix and suffix).', + 'raw' => 'Fixed bug #75251 (Missing program prefix and suffix). (petk)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72535 (arcfour encryption stream filter crashes php).', + 'raw' => 'Fixed bug #72535 (arcfour encryption stream filter crashes php). (Leigh)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75018 (Data corruption when reading fields of bit type).', + 'raw' => 'Fixed bug #75018 (Data corruption when reading fields of bit type). (Anatol)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect reference counting.', + 'raw' => 'Fixed incorrect reference counting. (Dmitry, Tianfang Yang)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75255 (Request hangs and not finish).', + 'raw' => 'Fixed bug #75255 (Request hangs and not finish). (Dmitry)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75207 (applied upstream patch for CVE-2016-1283).', + 'raw' => 'Fixed bug #75207 (applied upstream patch for CVE-2016-1283). (Anatol)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75177 (Type \'bit\' is fetched as unexpected string).', + 'raw' => 'Fixed bug #75177 (Type \'bit\' is fetched as unexpected string). (Anatol)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73629 (SplDoublyLinkedList::setIteratorMode masks intern flags).', + 'raw' => 'Fixed bug #73629 (SplDoublyLinkedList::setIteratorMode masks intern flags). (J. Jeising, cmb)', + ), + ), + ), + ), + '7.1.10' => + array ( + 'date' => '28 Sep 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75042 (run-tests.php issues with EXTENSION block).', + 'raw' => 'Fixed bug #75042 (run-tests.php issues with EXTENSION block). (John Boehr)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44995 (bcpowmod() fails if scale != 0).', + 'raw' => 'Fixed bug #44995 (bcpowmod() fails if scale != 0). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #46781 (BC math handles minus zero incorrectly).', + 'raw' => 'Fixed bug #46781 (BC math handles minus zero incorrectly). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1).', + 'raw' => 'Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1). (okano1220, cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus).', + 'raw' => 'Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus). (cmb)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70470 (Built-in server truncates headers spanning over TCP packets).', + 'raw' => 'Fixed bug #70470 (Built-in server truncates headers spanning over TCP packets). (bouk)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75093 (OpenSSL support not detected).', + 'raw' => 'Fixed bug #75093 (OpenSSL support not detected). (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75124 (gdImageGrayScale() may produce colors).', + 'raw' => 'Fixed bug #75124 (gdImageGrayScale() may produce colors). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?).', + 'raw' => 'Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?). (cmb)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73730 (textdomain(null) throws in strict mode).', + 'raw' => 'Fixed bug #73730 (textdomain(null) throws in strict mode). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75090 (IntlGregorianCalendar doesn\'t have constants from parent class).', + 'raw' => 'Fixed bug #75090 (IntlGregorianCalendar doesn\'t have constants from parent class). (tpunt)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75193 (segfault in collator_convert_object_to_string).', + 'raw' => 'Fixed bug #75193 (segfault in collator_convert_object_to_string). (Remi)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up).', + 'raw' => 'Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up). (Ingmar Runge)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75155 (AppendIterator::append() is broken when appending another AppendIterator).', + 'raw' => 'Fixed bug #75155 (AppendIterator::append() is broken when appending another AppendIterator). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop).', + 'raw' => 'Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop). (jhdxr)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75152 (signed integer overflow in parse_iv).', + 'raw' => 'Fixed bug #75152 (signed integer overflow in parse_iv). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75097 (gethostname fails if your host name is 64 chars long).', + 'raw' => 'Fixed bug #75097 (gethostname fails if your host name is 64 chars long). (Andrea)', + ), + ), + ), + ), + '7.1.9' => + array ( + 'date' => '31 Aug 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74947 (Segfault in scanner on INF number).', + 'raw' => 'Fixed bug #74947 (Segfault in scanner on INF number). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74954 (null deref and segfault in zend_generator_resume()).', + 'raw' => 'Fixed bug #74954 (null deref and segfault in zend_generator_resume()). (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74725 (html_errors=1 breaks unhandled exceptions).', + 'raw' => 'Fixed bug #74725 (html_errors=1 breaks unhandled exceptions). (Andrea)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75063 (Main CWD initialized with wrong codepage).', + 'raw' => 'Fixed bug #75063 (Main CWD initialized with wrong codepage). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75349 (NAN comparison).', + 'raw' => 'Fixed bug #75349 (NAN comparison). (Sara)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74125 (Fixed finding CURL on systems with multiarch support).', + 'raw' => 'Fixed bug #74125 (Fixed finding CURL on systems with multiarch support). (cebe)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75002 (Null Pointer Dereference in timelib_time_clone).', + 'raw' => 'Fixed bug #75002 (Null Pointer Dereference in timelib_time_clone). (Derick)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74993 (Wrong reflection on some locale_* functions).', + 'raw' => 'Fixed bug #74993 (Wrong reflection on some locale_* functions). (Sara)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71606 (Segmentation fault mb_strcut with HTML-ENTITIES encoding).', + 'raw' => 'Fixed bug #71606 (Segmentation fault mb_strcut with HTML-ENTITIES encoding). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62934 (mb_convert_kana() does not convert iteration marks).', + 'raw' => 'Fixed bug #62934 (mb_convert_kana() does not convert iteration marks). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75001 (Wrong reflection on mb_eregi_replace).', + 'raw' => 'Fixed bug #75001 (Wrong reflection on mb_eregi_replace). (Fabien Villepinte)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74968 (PHP crashes when calling mysqli_result::fetch_object with an abstract class).', + 'raw' => 'Fixed bug #74968 (PHP crashes when calling mysqli_result::fetch_object with an abstract class). (Anatol)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Expose oci_unregister_taf_callback()', + 'raw' => 'Expose oci_unregister_taf_callback() (Tianfang Yang)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74980 (Narrowing occurred during type inference).', + 'raw' => 'Fixed bug #74980 (Narrowing occurred during type inference). (Laruence)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74991 (include_path has a 4096 char limit in some cases).', + 'raw' => 'Fixed bug #74991 (include_path has a 4096 char limit in some cases). (bwbroersma)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74949 (null pointer dereference in _function_string).', + 'raw' => 'Fixed bug #74949 (null pointer dereference in _function_string). (Laruence)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start with "#").', + 'raw' => 'Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start with "#"). (Andrew Nester)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74833 (SID constant created with wrong module number).', + 'raw' => 'Fixed bug #74833 (SID constant created with wrong module number). (Anatol)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74950 (nullpointer deref in simplexml_element_getDocNamespaces).', + 'raw' => 'Fixed bug #74950 (nullpointer deref in simplexml_element_getDocNamespaces). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75049 (spl_autoload_unregister can\'t handle spl_autoload_functions results).', + 'raw' => 'Fixed bug #75049 (spl_autoload_unregister can\'t handle spl_autoload_functions results). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74669 (Unserialize ArrayIterator broken).', + 'raw' => 'Fixed bug #74669 (Unserialize ArrayIterator broken). (Andrew Nester)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74977 (Appending AppendIterator leads to segfault).', + 'raw' => 'Fixed bug #74977 (Appending AppendIterator leads to segfault). (Andrew Nester)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75015 (Crash in recursive iterator destructors).', + 'raw' => 'Fixed bug #75015 (Crash in recursive iterator destructors). (Julien)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75075 (unpack with X* causes infinity loop).', + 'raw' => 'Fixed bug #75075 (unpack with X* causes infinity loop). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74103 (heap-use-after-free when unserializing invalid array size).', + 'raw' => 'Fixed bug #74103 (heap-use-after-free when unserializing invalid array size). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization).', + 'raw' => 'Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization). (Nikita)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73793 (WDDX uses wrong decimal seperator).', + 'raw' => 'Fixed bug #73793 (WDDX uses wrong decimal seperator). (cmb)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74975 (Incorrect xmlrpc serialization for classes with declared properties).', + 'raw' => 'Fixed bug #74975 (Incorrect xmlrpc serialization for classes with declared properties). (blar)', + ), + ), + ), + ), + '7.1.8' => + array ( + 'date' => '03 Aug 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74832 (Loading PHP extension with already registered function name leads to a crash).', + 'raw' => 'Fixed bug #74832 (Loading PHP extension with already registered function name leads to a crash). (jpauli)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74780 (parse_url() broken when query string contains colon).', + 'raw' => 'Fixed bug #74780 (parse_url() broken when query string contains colon). (jhdxr)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74761 (Unary operator expected error on some systems).', + 'raw' => 'Fixed bug #74761 (Unary operator expected error on some systems). (petk)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73900 (Use After Free in unserialize() SplFixedArray).', + 'raw' => 'Fixed bug #73900 (Use After Free in unserialize() SplFixedArray). (nikic)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74923 (Crash when crawling through network share).', + 'raw' => 'Fixed bug #74923 (Crash when crawling through network share). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74913 (fixed incorrect poll.h include).', + 'raw' => 'Fixed bug #74913 (fixed incorrect poll.h include). (petk)', + ), + 6 => + array ( + 'message' => 'Fixed bug #74906 (fixed incorrect errno.h include).', + 'raw' => 'Fixed bug #74906 (fixed incorrect errno.h include). (petk)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74852 (property_exists returns true on unknown DateInterval property).', + 'raw' => 'Fixed bug #74852 (property_exists returns true on unknown DateInterval property). (jhdxr)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74625 (Integer overflow in oci_bind_array_by_name).', + 'raw' => 'Fixed bug #74625 (Integer overflow in oci_bind_array_by_name). (Ingmar Runge)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74623 (Infinite loop in type inference when using HTMLPurifier).', + 'raw' => 'Fixed bug #74623 (Infinite loop in type inference when using HTMLPurifier). (nikic)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74798 (pkcs7_en/decrypt does not work if \\x0a is used in content).', + 'raw' => 'Fixed bug #74798 (pkcs7_en/decrypt does not work if \\x0a is used in content). (Anatol)', + ), + 1 => + array ( + 'message' => 'Added OPENSSL_DONT_ZERO_PAD_KEY constant to prevent key padding and fix bug #71917 (openssl_open() returns junk on envelope < 16 bytes) and bug #72362 (OpenSSL Blowfish encryption is incorrect for short keys).', + 'raw' => 'Added OPENSSL_DONT_ZERO_PAD_KEY constant to prevent key padding and fix bug #71917 (openssl_open() returns junk on envelope < 16 bytes) and bug #72362 (OpenSSL Blowfish encryption is incorrect for short keys). (Jakub Zelenka)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69356 (PDOStatement::debugDumpParams() truncates query).', + 'raw' => 'Fixed bug #69356 (PDOStatement::debugDumpParams() truncates query). (Adam Baratz)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73471 (PHP freezes with AppendIterator).', + 'raw' => 'Fixed bug #73471 (PHP freezes with AppendIterator). (jhdxr)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74883 (SQLite3::__construct() produces "out of memory" exception with invalid flags).', + 'raw' => 'Fixed bug #74883 (SQLite3::__construct() produces "out of memory" exception with invalid flags). (Anatol)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73173 (huge memleak when wddx_unserialize).', + 'raw' => 'Fixed bug #73173 (huge memleak when wddx_unserialize). (tloi at fortinet dot com)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73944 (dictionary option of inflate_init() does not work).', + 'raw' => 'Fixed bug #73944 (dictionary option of inflate_init() does not work). (wapmorgan)', + ), + ), + ), + ), + '7.1.7' => + array ( + 'date' => '06 Jul 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74738 (Multiple [PATH=] and [HOST=] sections not properly parsed).', + 'raw' => 'Fixed bug #74738 (Multiple [PATH=] and [HOST=] sections not properly parsed). (Manuel Mausz)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74658 (Undefined constants in array properties result in broken properties).', + 'raw' => 'Fixed bug #74658 (Undefined constants in array properties result in broken properties). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed misparsing of abstract unix domain socket names.', + 'raw' => 'Fixed misparsing of abstract unix domain socket names. (Sara)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74603 (PHP INI Parsing Stack Buffer Overflow Vulnerability).', + 'raw' => 'Fixed bug #74603 (PHP INI Parsing Stack Buffer Overflow Vulnerability). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74101, bug #74614 (Unserialize Heap Use-After-Free (READ: 1) in zval_get_type).', + 'raw' => 'Fixed bug #74101, bug #74614 (Unserialize Heap Use-After-Free (READ: 1) in zval_get_type). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74111 (Heap buffer overread (READ: 1) finish_nested_data from unserialize).', + 'raw' => 'Fixed bug #74111 (Heap buffer overread (READ: 1) finish_nested_data from unserialize). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #74819 (wddx_deserialize() heap out-of-bound read via php_parse_date()).', + 'raw' => 'Fixed bug #74819 (wddx_deserialize() heap out-of-bound read via php_parse_date()). (Derick)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74639 (implement clone for DatePeriod and DateInterval).', + 'raw' => 'Fixed bug #74639 (implement clone for DatePeriod and DateInterval). (andrewnester)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69373 (References to deleted XPath query results).', + 'raw' => 'Fixed bug #69373 (References to deleted XPath query results). (ttoohey)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74435 (Buffer over-read into uninitialized memory).', + 'raw' => 'Fixed bug #74435 (Buffer over-read into uninitialized memory). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73473 (Stack Buffer Overflow in msgfmt_parse_message).', + 'raw' => 'Fixed bug #73473 (Stack Buffer Overflow in msgfmt_parse_message). (libnex)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74705 (Wrong reflection on Collator::getSortKey and collator_get_sort_key).', + 'raw' => 'Fixed bug #74705 (Wrong reflection on Collator::getSortKey and collator_get_sort_key). (Tyson Andre, Remi)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Add oniguruma upstream fix (CVE-2017-9224, CVE-2017-9226, CVE-2017-9227, CVE-2017-9228, CVE-2017-9229)', + 'raw' => 'Add oniguruma upstream fix (CVE-2017-9224, CVE-2017-9226, CVE-2017-9227, CVE-2017-9228, CVE-2017-9229) (Remi, Mamoru TASAKA)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Add TAF callback (PR #2459).', + 'raw' => 'Add TAF callback (PR #2459). (KoenigsKind)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp).', + 'raw' => 'Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp). (Laruence)', + ), + 1 => + array ( + 'message' => 'Revert opcache.enable_cli to default disabled.', + 'raw' => 'Revert opcache.enable_cli to default disabled. (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74720 (pkcs7_en/decrypt does not work if \\x1a is used in content).', + 'raw' => 'Fixed bug #74720 (pkcs7_en/decrypt does not work if \\x1a is used in content). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74651 (negative-size-param (-1) in memcpy in zif_openssl_seal()).', + 'raw' => 'Fixed bug #74651 (negative-size-param (-1) in memcpy in zif_openssl_seal()). (Stas)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Support Instant Client 12.2 in --with-pdo-oci configure option.', + 'raw' => 'Support Instant Client 12.2 in --with-pdo-oci configure option. (Tianfang Yang)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74673 (Segfault when cast Reflection object to string with undefined constant).', + 'raw' => 'Fixed bug #74673 (Segfault when cast Reflection object to string with undefined constant). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74478 (null coalescing operator failing with SplFixedArray).', + 'raw' => 'Fixed bug #74478 (null coalescing operator failing with SplFixedArray). (jhdxr)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74598 (ftp:// wrapper ignores context arg).', + 'raw' => 'Fixed bug #74598 (ftp:// wrapper ignores context arg). (Sara)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74386 (Phar::__construct reflection incorrect).', + 'raw' => 'Fixed bug #74386 (Phar::__construct reflection incorrect). (villfa)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74679 (Incorrect conversion array with WSDL_CACHE_MEMORY).', + 'raw' => 'Fixed bug #74679 (Incorrect conversion array with WSDL_CACHE_MEMORY). (Dmitry)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74556 (stream_socket_get_name() returns \'\\0\').', + 'raw' => 'Fixed bug #74556 (stream_socket_get_name() returns \'\\0\'). (Sara)', + ), + ), + ), + ), + '7.1.6' => + array ( + 'date' => '8 Jun 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74600 (crash (SIGSEGV) in _zend_hash_add_or_update_i).', + 'raw' => 'Fixed bug #74600 (crash (SIGSEGV) in _zend_hash_add_or_update_i). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74546 (SIGILL in ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST).', + 'raw' => 'Fixed bug #74546 (SIGILL in ZEND_FETCH_CLASS_CONSTANT_SPEC_CONST_CONST). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74589 (__DIR__ wrong for unicode character).', + 'raw' => 'Fixed bug #74589 (__DIR__ wrong for unicode character). (Anatol)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74468 (wrong reflection on Collator::sortWithSortKeys).', + 'raw' => 'Fixed bug #74468 (wrong reflection on Collator::sortWithSortKeys). (villfa)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74547 (mysqli::change_user() doesn\'t accept null as $database argument w/strict_types).', + 'raw' => 'Fixed bug #74547 (mysqli::change_user() doesn\'t accept null as $database argument w/strict_types). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled).', + 'raw' => 'Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled). (Laruence)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51918 (Phar::webPhar() does not handle requests sent through PUT and DELETE method).', + 'raw' => 'Fixed bug #51918 (Phar::webPhar() does not handle requests sent through PUT and DELETE method). (Christian Weiske)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74490 (readline() moves the cursor to the beginning of the line).', + 'raw' => 'Fixed bug #74490 (readline() moves the cursor to the beginning of the line). (Anatol)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74510 (win32/sendmail.c anchors CC header but not BCC).', + 'raw' => 'Fixed bug #74510 (win32/sendmail.c anchors CC header but not BCC). (Damian Wadley, Anatol)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74457 (Wrong reflection on XMLReader::expand).', + 'raw' => 'Fixed bug #74457 (Wrong reflection on XMLReader::expand). (villfa)', + ), + ), + ), + ), + '7.1.5' => + array ( + 'date' => '11 May 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74408 (Endless loop bypassing execution time limit).', + 'raw' => 'Fixed bug #74408 (Endless loop bypassing execution time limit). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74353 (Segfault when killing within bash script trap code).', + 'raw' => 'Fixed bug #74353 (Segfault when killing within bash script trap code). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74340 (Magic function __get has different behavior in php 7.1.x).', + 'raw' => 'Fixed bug #74340 (Magic function __get has different behavior in php 7.1.x). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74188 (Null coalescing operator fails for undeclared static class properties).', + 'raw' => 'Fixed bug #74188 (Null coalescing operator fails for undeclared static class properties). (tpunt)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74444 (multiple catch freezes in some cases).', + 'raw' => 'Fixed bug #74444 (multiple catch freezes in some cases). (David Matějka)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74410 (stream_select() is broken on Windows Nanoserver).', + 'raw' => 'Fixed bug #74410 (stream_select() is broken on Windows Nanoserver). (Matt Ficken)', + ), + 6 => + array ( + 'message' => 'Fixed bug #74337 (php-cgi.exe crash on facebook callback).', + 'raw' => 'Fixed bug #74337 (php-cgi.exe crash on facebook callback). (Anton Serbulov)', + ), + 7 => + array ( + 'message' => 'Patch for bug #74216 was reverted.', + 'raw' => 'Patch for bug #74216 was reverted. (Anatol)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74404 (Wrong reflection on DateTimeZone::getTransitions).', + 'raw' => 'Fixed bug #74404 (Wrong reflection on DateTimeZone::getTransitions). (krakjoe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74080 (add constant for RFC7231 format datetime).', + 'raw' => 'Fixed bug #74080 (add constant for RFC7231 format datetime). (duncan3dc)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74416 (Wrong reflection on DOMNode::cloneNode).', + 'raw' => 'Fixed bug #74416 (Wrong reflection on DOMNode::cloneNode). (Remi, Fabien Villepinte)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74379 (syntax error compile error in libmagic/apprentice.c).', + 'raw' => 'Fixed bug #74379 (syntax error compile error in libmagic/apprentice.c). (Laruence)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74343 (compile fails on solaris 11 with system gd2 library).', + 'raw' => 'Fixed bug #74343 (compile fails on solaris 11 with system gd2 library). (krakjoe)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74432 (mysqli_connect adding ":3306" to $host if $port parameter not given).', + 'raw' => 'Fixed bug #74432 (mysqli_connect adding ":3306" to $host if $port parameter not given). (Anatol)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74376 (Invalid free of persistent results on error/connection loss).', + 'raw' => 'Fixed bug #74376 (Invalid free of persistent results on error/connection loss). (Yussuf Khalil)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65683 (Intl does not support DateTimeImmutable).', + 'raw' => 'Fixed bug #65683 (Intl does not support DateTimeImmutable). (Ben Scholzen)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74298 (IntlDateFormatter->format() doesn\'t return microseconds/fractions).', + 'raw' => 'Fixed bug #74298 (IntlDateFormatter->format() doesn\'t return microseconds/fractions). (Andrew Nester)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74433 (wrong reflection for Normalizer methods).', + 'raw' => 'Fixed bug #74433 (wrong reflection for Normalizer methods). (villfa)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74439 (wrong reflection for Locale methods).', + 'raw' => 'Fixed bug #74439 (wrong reflection for Locale methods). (villfa)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74456 (Segmentation error while running a script in CLI mode).', + 'raw' => 'Fixed bug #74456 (Segmentation error while running a script in CLI mode). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74431 (foreach infinite loop).', + 'raw' => 'Fixed bug #74431 (foreach infinite loop). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74442 (Opcached version produces a nested array).', + 'raw' => 'Fixed bug #74442 (Opcached version produces a nested array). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73833 (null character not allowed in openssl_pkey_get_private).', + 'raw' => 'Fixed bug #73833 (null character not allowed in openssl_pkey_get_private). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73711 (Segfault in openssl_pkey_new when generating DSA or DH key).', + 'raw' => 'Fixed bug #73711 (Segfault in openssl_pkey_new when generating DSA or DH key). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74341 (openssl_x509_parse fails to parse ASN.1 UTCTime without seconds).', + 'raw' => 'Fixed bug #74341 (openssl_x509_parse fails to parse ASN.1 UTCTime without seconds). (Moritz Fain)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73808 (iv length warning too restrictive for aes-128-ccm).', + 'raw' => 'Fixed bug #73808 (iv length warning too restrictive for aes-128-ccm). (Jakub Zelenka)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74383 (phar method parameters reflection correction).', + 'raw' => 'Fixed bug #74383 (phar method parameters reflection correction). (mhagstrand)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74489 (readline() immediately returns false in interactive console mode).', + 'raw' => 'Fixed bug #74489 (readline() immediately returns false in interactive console mode). (Anatol)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72071 (setcookie allows max-age to be negative).', + 'raw' => 'Fixed bug #72071 (setcookie allows max-age to be negative). (Craig Duncan)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74361 (Compaction in array_rand() violates COW).', + 'raw' => 'Fixed bug #74361 (Compaction in array_rand() violates COW). (Nikita)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74429 (Remote socket URI with unique persistence identifier broken).', + 'raw' => 'Fixed bug #74429 (Remote socket URI with unique persistence identifier broken). (Sara)', + ), + ), + ), + ), + '7.1.4' => + array ( + 'date' => '13 Apr 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74149 (static embed SAPI linkage error).', + 'raw' => 'Fixed bug #74149 (static embed SAPI linkage error). (krakjoe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73370 (falsely exits with "Out of Memory" when using USE_ZEND_ALLOC=0).', + 'raw' => 'Fixed bug #73370 (falsely exits with "Out of Memory" when using USE_ZEND_ALLOC=0). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73960 (Leak with instance method calling static method with referenced return).', + 'raw' => 'Fixed bug #73960 (Leak with instance method calling static method with referenced return). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #69676 (Resolution of self::FOO in class constants not correct).', + 'raw' => 'Fixed bug #69676 (Resolution of self::FOO in class constants not correct). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74265 (Build problems after 7.0.17 release: undefined reference to `isfinite\').', + 'raw' => 'Fixed bug #74265 (Build problems after 7.0.17 release: undefined reference to `isfinite\'). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74302 (yield fromLABEL is over-greedy).', + 'raw' => 'Fixed bug #74302 (yield fromLABEL is over-greedy). (Sara)', + ), + ), + 'apache' => + array ( + 0 => + array ( + 'message' => 'Reverted patch for bug #61471, fixes bug #74318.', + 'raw' => 'Reverted patch for bug #61471, fixes bug #74318. (Anatol)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72096 (Swatch time value incorrect for dates before 1970).', + 'raw' => 'Fixed bug #72096 (Swatch time value incorrect for dates before 1970). (mcq8)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74004 (LIBXML_NOWARNING flag ingnored on loadHTML*).', + 'raw' => 'Fixed bug #74004 (LIBXML_NOWARNING flag ingnored on loadHTML*). (somedaysummer)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74230 (iconv fails to fail on surrogates).', + 'raw' => 'Fixed bug #74230 (iconv fails to fail on surrogates). (Anatol)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed uninitialized data causing random crash.', + 'raw' => 'Fixed uninitialized data causing random crash. (Dmitry)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74250 (OPcache compilation performance regression in PHP 5.6/7 with huge classes).', + 'raw' => 'Fixed bug #74250 (OPcache compilation performance regression in PHP 5.6/7 with huge classes). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72333 (fwrite() on non-blocking SSL sockets doesn\'t work).', + 'raw' => 'Fixed bug #72333 (fwrite() on non-blocking SSL sockets doesn\'t work). (Jakub Zelenka)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71003 (Expose MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT to PDO interface).', + 'raw' => 'Fixed bug #71003 (Expose MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT to PDO interface). (Thomas Orozco)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74058 (ArrayObject can not notice changes).', + 'raw' => 'Fixed bug #74058 (ArrayObject can not notice changes). (Andrew Nester)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #74217 (Allow creation of deterministic sqlite functions).', + 'raw' => 'Implemented FR #74217 (Allow creation of deterministic sqlite functions). (Andrew Nester)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74216 (Correctly fail on invalid IP address ports).', + 'raw' => 'Fixed bug #74216 (Correctly fail on invalid IP address ports). (Sara)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74240 (deflate_add can allocate too much memory).', + 'raw' => 'Fixed bug #74240 (deflate_add can allocate too much memory). (Matt Bonneau)', + ), + ), + ), + ), + '7.1.3' => + array ( + 'date' => '16 Mar 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74157 (Segfault with nested generators).', + 'raw' => 'Fixed bug #74157 (Segfault with nested generators). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74164 (PHP hangs when an invalid value is dynamically passed to typehinted by-ref arg).', + 'raw' => 'Fixed bug #74164 (PHP hangs when an invalid value is dynamically passed to typehinted by-ref arg). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74093 (Maximum execution time of n+2 seconds exceed not written in error_log).', + 'raw' => 'Fixed bug #74093 (Maximum execution time of n+2 seconds exceed not written in error_log). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite).', + 'raw' => 'Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite). (Dmitry, Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74084 (Out of bound read - zend_mm_alloc_small).', + 'raw' => 'Fixed bug #74084 (Out of bound read - zend_mm_alloc_small). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73807 (Performance problem with processing large post request).', + 'raw' => 'Fixed bug #73807 (Performance problem with processing large post request). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #73998 (array_key_exists fails on arrays created by get_object_vars).', + 'raw' => 'Fixed bug #73998 (array_key_exists fails on arrays created by get_object_vars). (mhagstrand)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73954 (NAN check fails on Alpine Linux with musl).', + 'raw' => 'Fixed bug #73954 (NAN check fails on Alpine Linux with musl). (Andrea)', + ), + 8 => + array ( + 'message' => 'Fixed bug #73677 (Generating phar.phar core dump with gcc ASAN enabled build).', + 'raw' => 'Fixed bug #73677 (Generating phar.phar core dump with gcc ASAN enabled build). (ondrej)', + ), + ), + 'apache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61471 (Incomplete POST does not timeout but is passed to PHP).', + 'raw' => 'Fixed bug #61471 (Incomplete POST does not timeout but is passed to PHP). (Zheng Shao)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73837 ("new DateTime()" sometimes returns 1 second ago value).', + 'raw' => 'Fixed bug #73837 ("new DateTime()" sometimes returns 1 second ago value). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69860 (php-fpm process accounting is broken with keepalive).', + 'raw' => 'Fixed bug #69860 (php-fpm process accounting is broken with keepalive). (Denis Yeldandi)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73127 (gost-crypto hash incorrect if input data contains long 0xFF sequence).', + 'raw' => 'Fixed bug #73127 (gost-crypto hash incorrect if input data contains long 0xFF sequence). (Grundik)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74031 (ReflectionFunction for imagepng is missing last two parameters).', + 'raw' => 'Fixed bug #74031 (ReflectionFunction for imagepng is missing last two parameters). (finwe)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74021 (fetch_array broken data. Data more then MEDIUMBLOB).', + 'raw' => 'Fixed bug #74021 (fetch_array broken data. Data more then MEDIUMBLOB). (Andrew Nester, Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74152 (if statement says true to a null variable).', + 'raw' => 'Fixed bug #74152 (if statement says true to a null variable). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74019 (Segfault with list).', + 'raw' => 'Fixed bug #74019 (Segfault with list). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74022 (PHP Fast CGI crashes when reading from a pfx file).', + 'raw' => 'Fixed bug #74022 (PHP Fast CGI crashes when reading from a pfx file). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74099 (Memory leak with openssl_encrypt()).', + 'raw' => 'Fixed bug #74099 (Memory leak with openssl_encrypt()). (Andrew Nester)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74159 (Writing a large buffer to a non-blocking encrypted stream fails with "bad write retry").', + 'raw' => 'Fixed bug #74159 (Writing a large buffer to a non-blocking encrypted stream fails with "bad write retry"). (trowski)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54379 (PDO_OCI: UTF-8 output gets truncated).', + 'raw' => 'Fixed bug #54379 (PDO_OCI: UTF-8 output gets truncated). (gureedo / Oracle)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74413 (incorrect reflection for SQLite3::enableExceptions).', + 'raw' => 'Fixed bug #74413 (incorrect reflection for SQLite3::enableExceptions). (krakjoe)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74005 (mail.add_x_header causes RFC-breaking lone line feed).', + 'raw' => 'Fixed bug #74005 (mail.add_x_header causes RFC-breaking lone line feed). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74041 (substr_count with length=0 broken).', + 'raw' => 'Fixed bug #74041 (substr_count with length=0 broken). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73118 (is_callable callable name reports misleading value for anonymous classes).', + 'raw' => 'Fixed bug #73118 (is_callable callable name reports misleading value for anonymous classes). (Adam Saponara)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74105 (PHP on Linux should use /dev/urandom when getrandom is not available).', + 'raw' => 'Fixed bug #74105 (PHP on Linux should use /dev/urandom when getrandom is not available). (Benjamin Robin)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74708 (Invalid Reflection signatures for random_bytes and random_int).', + 'raw' => 'Fixed bug #74708 (Invalid Reflection signatures for random_bytes and random_int). (Tyson Andre, Remi)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73496 (Invalid memory access in zend_inline_hash_func).', + 'raw' => 'Fixed bug #73496 (Invalid memory access in zend_inline_hash_func). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74090 (stream_get_contents maxlength>-1 returns empty string).', + 'raw' => 'Fixed bug #74090 (stream_get_contents maxlength>-1 returns empty string). (Anatol)', + ), + ), + ), + ), + '7.1.2' => + array ( + 'date' => '16 Feb 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Improved GENERATOR_CREATE opcode handler.', + 'raw' => 'Improved GENERATOR_CREATE opcode handler. (Bob, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73877 (readlink() returns garbage for UTF-8 paths).', + 'raw' => 'Fixed bug #73877 (readlink() returns garbage for UTF-8 paths). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73876 (Crash when exporting **= in expansion of assign op).', + 'raw' => 'Fixed bug #73876 (Crash when exporting **= in expansion of assign op). (Sara)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73962 (bug with symlink related to cyrillic directory).', + 'raw' => 'Fixed bug #73962 (bug with symlink related to cyrillic directory). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73969 (segfault in debug_print_backtrace).', + 'raw' => 'Fixed bug #73969 (segfault in debug_print_backtrace). (andrewnester)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73994 (arginfo incorrect for unpack).', + 'raw' => 'Fixed bug #73994 (arginfo incorrect for unpack). (krakjoe)', + ), + 6 => + array ( + 'message' => 'Fixed bug #73973 (assertion error in debug_zval_dump).', + 'raw' => 'Fixed bug #73973 (assertion error in debug_zval_dump). (andrewnester)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54382 (getAttributeNodeNS doesn\'t get xmlns* attributes).', + 'raw' => 'Fixed bug #54382 (getAttributeNodeNS doesn\'t get xmlns* attributes). (aboks)', + ), + ), + 'dtrace' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73965 (DTrace reported as enabled when disabled).', + 'raw' => 'Fixed bug #73965 (DTrace reported as enabled when disabled). (Remi)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73904 (php-cgi fails to load -c specified php.ini file).', + 'raw' => 'Fixed bug #73904 (php-cgi fails to load -c specified php.ini file). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72898 (PHP_FCGI_CHILDREN is not included in phpinfo()).', + 'raw' => 'Fixed bug #72898 (PHP_FCGI_CHILDREN is not included in phpinfo()). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69865 (php-fpm does not close stderr when using syslog).', + 'raw' => 'Fixed bug #69865 (php-fpm does not close stderr when using syslog). (m6w6)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73968 (Premature failing of XBM reading).', + 'raw' => 'Fixed bug #73968 (Premature failing of XBM reading). (cmb)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69993 (test for gmp.h needs to test machine includes).', + 'raw' => 'Fixed bug #69993 (test for gmp.h needs to test machine includes). (Jordan Gigov)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Added hash_hkdf() function.', + 'raw' => 'Added hash_hkdf() function. (Andrey Andreev)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73961 (environmental build dependency in hash sha3 source).', + 'raw' => 'Fixed bug #73961 (environmental build dependency in hash sha3 source). (krakjoe)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix bug #73956 (Link use CC instead of CXX).', + 'raw' => 'Fix bug #73956 (Link use CC instead of CXX). (Remi)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73933 (error/segfault with ldap_mod_replace and opcache).', + 'raw' => 'Fixed bug #73933 (error/segfault with ldap_mod_replace and opcache). (Laruence)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73949 (leak in mysqli_fetch_object).', + 'raw' => 'Fixed bug #73949 (leak in mysqli_fetch_object). (krakjoe)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69899 (segfault on close() after free_result() with mysqlnd).', + 'raw' => 'Fixed bug #69899 (segfault on close() after free_result() with mysqlnd). (Richard Fussenegger)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73983 (crash on finish work with phar in cli + opcache).', + 'raw' => 'Fixed bug #73983 (crash on finish work with phar in cli + opcache). (Anatol)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71519 (add serial hex to return value array).', + 'raw' => 'Fixed bug #71519 (add serial hex to return value array). (xrobau)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73692 (Compile ext/openssl with openssl 1.1.0 on Win).', + 'raw' => 'Fixed bug #73692 (Compile ext/openssl with openssl 1.1.0 on Win). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73978 (openssl_decrypt triggers bug in PDO).', + 'raw' => 'Fixed bug #73978 (openssl_decrypt triggers bug in PDO). (Jakub Zelenka)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #72583 (All data are fetched as strings).', + 'raw' => 'Implemented FR #72583 (All data are fetched as strings). (Dorin Marcoci)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73959 (lastInsertId fails to throw an exception for wrong sequence name).', + 'raw' => 'Fixed bug #73959 (lastInsertId fails to throw an exception for wrong sequence name). (andrewnester)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70417 (PharData::compress() doesn\'t close temp file).', + 'raw' => 'Fixed bug #70417 (PharData::compress() doesn\'t close temp file). (cmb)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71219 (configure script incorrectly checks for ttyname_r).', + 'raw' => 'Fixed bug #71219 (configure script incorrectly checks for ttyname_r). (atoh)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69582 (session not readable by root in CLI).', + 'raw' => 'Fixed bug #69582 (session not readable by root in CLI). (EvgeniySpinov)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73896 (spl_autoload() crashes when calls magic _call()).', + 'raw' => 'Fixed bug #73896 (spl_autoload() crashes when calls magic _call()). (Dmitry)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69442 (closing of fd incorrect when PTS enabled).', + 'raw' => 'Fixed bug #69442 (closing of fd incorrect when PTS enabled). (jaytaph)', + ), + 1 => + array ( + 'message' => 'Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked").', + 'raw' => 'Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked"). (Rowan Collins)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72974 (imap is undefined service on AIX).', + 'raw' => 'Fixed bug #72974 (imap is undefined service on AIX). (matthieu.sarter)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72979 (money_format stores wrong length AIX).', + 'raw' => 'Fixed bug #72979 (money_format stores wrong length AIX). (matthieu.sarter)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73374 (intval() with base 0 should detect binary).', + 'raw' => 'Fixed bug #73374 (intval() with base 0 should detect binary). (Leigh)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69061 (mail.log = syslog contains double information).', + 'raw' => 'Fixed bug #69061 (mail.log = syslog contains double information). (Tom Sommer)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70103 (ZipArchive::addGlob ignores remove_all_path option).', + 'raw' => 'Fixed bug #70103 (ZipArchive::addGlob ignores remove_all_path option). (cmb, Mitch Hagstrand)', + ), + ), + ), + ), + '7.1.1' => + array ( + 'date' => '19 Jan 2017', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73792 (invalid foreach loop hangs script).', + 'raw' => 'Fixed bug #73792 (invalid foreach loop hangs script). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73686 (Adding settype()ed values to ArrayObject results in references).', + 'raw' => 'Fixed bug #73686 (Adding settype()ed values to ArrayObject results in references). (Nikita, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created with list()).', + 'raw' => 'Fixed bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created with list()). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73727 (ZEND_MM_BITSET_LEN is "undefined symbol" in zend_bitset.h).', + 'raw' => 'Fixed bug #73727 (ZEND_MM_BITSET_LEN is "undefined symbol" in zend_bitset.h). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73753 (unserialized array pointer not advancing).', + 'raw' => 'Fixed bug #73753 (unserialized array pointer not advancing). (David Walker)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73783 (SIG_IGN doesn\'t work when Zend Signals is enabled).', + 'raw' => 'Fixed bug #73783 (SIG_IGN doesn\'t work when Zend Signals is enabled). (David Walker)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72555 (CLI output(japanese) on Windows).', + 'raw' => 'Fixed bug #72555 (CLI output(japanese) on Windows). (Anatol)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73679 (DOTNET read access violation using invalid codepage).', + 'raw' => 'Fixed bug #73679 (DOTNET read access violation using invalid codepage). (Anatol)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67474 (getElementsByTagNameNS filter on default ns).', + 'raw' => 'Fixed bug #67474 (getElementsByTagNameNS filter on default ns). (aboks)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73646 (mb_ereg_search_init null pointer dereference).', + 'raw' => 'Fixed bug #73646 (mb_ereg_search_init null pointer dereference). (Laruence)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73462 (Persistent connections don\'t set $connect_errno).', + 'raw' => 'Fixed bug #73462 (Persistent connections don\'t set $connect_errno). (darkain)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Optimized handling of BIT fields - less memory copies and lower memory usage.', + 'raw' => 'Optimized handling of BIT fields - less memory copies and lower memory usage. (Andrey)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE).', + 'raw' => 'Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE). (vanviegen)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73789 (Strange behavior of class constants in switch/case block).', + 'raw' => 'Fixed bug #73789 (Strange behavior of class constants in switch/case block). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead).', + 'raw' => 'Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73654 (Segmentation fault in zend_call_function).', + 'raw' => 'Fixed bug #73654 (Segmentation fault in zend_call_function). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73668 ("SIGFPE Arithmetic exception" in opcache when divide by minus 1).', + 'raw' => 'Fixed bug #73668 ("SIGFPE Arithmetic exception" in opcache when divide by minus 1). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73847 (Recursion when a variable is redefined as array).', + 'raw' => 'Fixed bug #73847 (Recursion when a variable is redefined as array). (Nikita)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72931 (PDO_FIREBIRD with Firebird 3.0 not work on returning statement).', + 'raw' => 'Fixed bug #72931 (PDO_FIREBIRD with Firebird 3.0 not work on returning statement). (Dorin Marcoci)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73794 (Crash (out of memory) when using run and # command separator).', + 'raw' => 'Fixed bug #73794 (Crash (out of memory) when using run and # command separator). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73704 (phpdbg shows the wrong line in files with shebang).', + 'raw' => 'Fixed bug #73704 (phpdbg shows the wrong line in files with shebang). (Bob)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Reverted fix for bug #73530 (Unsetting result set may reset other result set).', + 'raw' => 'Reverted fix for bug #73530 (Unsetting result set may reset other result set). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73594 (dns_get_record does not populate $additional out parameter).', + 'raw' => 'Fixed bug #73594 (dns_get_record does not populate $additional out parameter). (Bruce Weirdan)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70213 (Unserialize context shared on double class lookup).', + 'raw' => 'Fixed bug #70213 (Unserialize context shared on double class lookup). (Taoguang Chen)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73154 (serialize object with __sleep function crash).', + 'raw' => 'Fixed bug #73154 (serialize object with __sleep function crash). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70490 (get_browser function is very slow).', + 'raw' => 'Fixed bug #70490 (get_browser function is very slow). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage).', + 'raw' => 'Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage). (Nikita)', + ), + 5 => + array ( + 'message' => 'Add subject to mail log.', + 'raw' => 'Add subject to mail log. (tomsommer)', + ), + 6 => + array ( + 'message' => 'Fixed bug #31875 (get_defined_functions additional param to exclude disabled functions).', + 'raw' => 'Fixed bug #31875 (get_defined_functions additional param to exclude disabled functions). (willianveiga)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73373 (deflate_add does not verify that output was not truncated).', + 'raw' => 'Fixed bug #73373 (deflate_add does not verify that output was not truncated). (Matt Bonneau)', + ), + ), + ), + ), + '7.1.0' => + array ( + 'date' => '01 Dec 2016', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added nullable types.', + 'raw' => 'Added nullable types. (Levi, Dmitry)', + ), + 1 => + array ( + 'message' => 'Added DFA optimization framework based on e-SSA form.', + 'raw' => 'Added DFA optimization framework based on e-SSA form. (Dmitry, Nikita)', + ), + 2 => + array ( + 'message' => 'Added specialized opcode handlers (e.g. ZEND_ADD_LONG_NO_OVERFLOW).', + 'raw' => 'Added specialized opcode handlers (e.g. ZEND_ADD_LONG_NO_OVERFLOW). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Added [] = as alternative construct to list() =.', + 'raw' => 'Added [] = as alternative construct to list() =. (Bob)', + ), + 4 => + array ( + 'message' => 'Added void return type.', + 'raw' => 'Added void return type. (Andrea)', + ), + 5 => + array ( + 'message' => 'Added support for negative string offsets in string offset syntax and various string functions.', + 'raw' => 'Added support for negative string offsets in string offset syntax and various string functions. (Francois)', + ), + 6 => + array ( + 'message' => 'Added a form of the list() construct where keys can be specified.', + 'raw' => 'Added a form of the list() construct where keys can be specified. (Andrea)', + ), + 7 => + array ( + 'message' => 'Implemented safe execution timeout handling, that prevents random crashes after "Maximum execution time exceeded" error.', + 'raw' => 'Implemented safe execution timeout handling, that prevents random crashes after "Maximum execution time exceeded" error. (Dmitry)', + ), + 8 => + array ( + 'message' => 'Implemented the RFC `Support Class Constant Visibility`.', + 'raw' => 'Implemented the RFC `Support Class Constant Visibility`. (Sean DuBois, Reeze Xia, Dmitry)', + ), + 9 => + array ( + 'message' => 'Implemented the RFC `Catching multiple exception types`.', + 'raw' => 'Implemented the RFC `Catching multiple exception types`. (Bronislaw Bialek, Pierrick)', + ), + 10 => + array ( + 'message' => 'Implemented logging to syslog with dynamic error levels.', + 'raw' => 'Implemented logging to syslog with dynamic error levels. (Jani Ollikainen)', + ), + 11 => + array ( + 'message' => 'Implemented FR #72614 (Support "nmake test" on building extensions by phpize).', + 'raw' => 'Implemented FR #72614 (Support "nmake test" on building extensions by phpize). (Yuji Uchiyama)', + ), + 12 => + array ( + 'message' => 'Implemented RFC: Iterable.', + 'raw' => 'Implemented RFC: Iterable. (Aaron Piotrowski)', + ), + 13 => + array ( + 'message' => 'Implemented RFC: Closure::fromCallable', + 'raw' => 'Implemented RFC: Closure::fromCallable (Danack)', + ), + 14 => + array ( + 'message' => 'Implemented RFC: Replace "Missing argument" warning with "\\ArgumentCountError" exception.', + 'raw' => 'Implemented RFC: Replace "Missing argument" warning with "\\ArgumentCountError" exception. (Dmitry, Davey)', + ), + 15 => + array ( + 'message' => 'Implemented RFC: Fix inconsistent behavior of $this variable.', + 'raw' => 'Implemented RFC: Fix inconsistent behavior of $this variable. (Dmitry)', + ), + 16 => + array ( + 'message' => 'Fixed bug #73585 (Logging of "Internal Zend error - Missing class information" missing class name).', + 'raw' => 'Fixed bug #73585 (Logging of "Internal Zend error - Missing class information" missing class name). (Laruence)', + ), + 17 => + array ( + 'message' => 'Fixed memory leak(null coalescing operator with Spl hash).', + 'raw' => 'Fixed memory leak(null coalescing operator with Spl hash). (Tyson Andre)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72736 (Slow performance when fetching large dataset with mysqli / PDO).', + 'raw' => 'Fixed bug #72736 (Slow performance when fetching large dataset with mysqli / PDO). (Dmitry)', + ), + 19 => + array ( + 'message' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow).', + 'raw' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow). (cmb)', + ), + 20 => + array ( + 'message' => 'Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images).', + 'raw' => 'Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images). (cmb)', + ), + 21 => + array ( + 'message' => 'Fixed bug #73350 (Exception::__toString() cause circular references).', + 'raw' => 'Fixed bug #73350 (Exception::__toString() cause circular references). (Laruence)', + ), + 22 => + array ( + 'message' => 'Fixed bug #73329 ((Float)"Nano" == NAN).', + 'raw' => 'Fixed bug #73329 ((Float)"Nano" == NAN). (Anatol)', + ), + 23 => + array ( + 'message' => 'Fixed bug #73288 (Segfault in __clone > Exception.toString > __get).', + 'raw' => 'Fixed bug #73288 (Segfault in __clone > Exception.toString > __get). (Laruence)', + ), + 24 => + array ( + 'message' => 'Fixed for #73240 (Write out of bounds at number_format).', + 'raw' => 'Fixed for #73240 (Write out of bounds at number_format). (Stas)', + ), + 25 => + array ( + 'message' => 'Fix pthreads detection when cross-compiling', + 'raw' => 'Fix pthreads detection when cross-compiling (ffontaine)', + ), + 26 => + array ( + 'message' => 'Fixed bug #73337 (try/catch not working with two exceptions inside a same operation).', + 'raw' => 'Fixed bug #73337 (try/catch not working with two exceptions inside a same operation). (Dmitry)', + ), + 27 => + array ( + 'message' => 'Fixed bug #73156 (segfault on undefined function).', + 'raw' => 'Fixed bug #73156 (segfault on undefined function). (Dmitry)', + ), + 28 => + array ( + 'message' => 'Fixed bug #73163 (PHP hangs if error handler throws while accessing undef const in default value).', + 'raw' => 'Fixed bug #73163 (PHP hangs if error handler throws while accessing undef const in default value). (Nikita)', + ), + 29 => + array ( + 'message' => 'Fixed bug #73172 (parse error: Invalid numeric literal).', + 'raw' => 'Fixed bug #73172 (parse error: Invalid numeric literal). (Nikita, Anatol)', + ), + 30 => + array ( + 'message' => 'Fixed bug #73181 (parse_str() without a second argument leads to crash).', + 'raw' => 'Fixed bug #73181 (parse_str() without a second argument leads to crash). (Nikita)', + ), + 31 => + array ( + 'message' => 'Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c).', + 'raw' => 'Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c). (cmb)', + ), + 32 => + array ( + 'message' => 'Fixed bug #73058 (crypt broken when salt is \'too\' long).', + 'raw' => 'Fixed bug #73058 (crypt broken when salt is \'too\' long). (Anatol)', + ), + 33 => + array ( + 'message' => 'Fixed bug #72944 (Null pointer deref in zval_delref_p).', + 'raw' => 'Fixed bug #72944 (Null pointer deref in zval_delref_p). (Dmitry)', + ), + 34 => + array ( + 'message' => 'Fixed bug #72943 (assign_dim on string doesn\'t reset hval).', + 'raw' => 'Fixed bug #72943 (assign_dim on string doesn\'t reset hval). (Laruence)', + ), + 35 => + array ( + 'message' => 'Fixed bug #72598 (Reference is lost after array_slice())', + 'raw' => 'Fixed bug #72598 (Reference is lost after array_slice()) (Nikita)', + ), + 36 => + array ( + 'message' => 'Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify).', + 'raw' => 'Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify). (Anatol)', + ), + 37 => + array ( + 'message' => 'Fixed bug #72813 (Segfault with __get returned by ref).', + 'raw' => 'Fixed bug #72813 (Segfault with __get returned by ref). (Laruence)', + ), + 38 => + array ( + 'message' => 'Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator).', + 'raw' => 'Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator). (Nikita)', + ), + 39 => + array ( + 'message' => 'TypeError messages for arg_info type checks will now say "must be ... or null" where the parameter or return type accepts null.', + 'raw' => 'TypeError messages for arg_info type checks will now say "must be ... or null" where the parameter or return type accepts null. (Andrea)', + ), + 40 => + array ( + 'message' => 'Fixed bug #72857 (stream_socket_recvfrom read access violation).', + 'raw' => 'Fixed bug #72857 (stream_socket_recvfrom read access violation). (Anatol)', + ), + 41 => + array ( + 'message' => 'Fixed bug #72663 (Create an Unexpected Object and Don\'t Invoke __wakeup() in Deserialization).', + 'raw' => 'Fixed bug #72663 (Create an Unexpected Object and Don\'t Invoke __wakeup() in Deserialization). (Stas)', + ), + 42 => + array ( + 'message' => 'Fixed bug #72681 (PHP Session Data Injection Vulnerability).', + 'raw' => 'Fixed bug #72681 (PHP Session Data Injection Vulnerability). (Stas)', + ), + 43 => + array ( + 'message' => 'Fixed bug #72742 (memory allocator fails to realloc small block to large one).', + 'raw' => 'Fixed bug #72742 (memory allocator fails to realloc small block to large one). (Stas)', + ), + 44 => + array ( + 'message' => 'Fixed URL rewriter. It would not rewrite \'//example.com/\' URL unconditionally. URL rewrite target hosts whitelist is implemented.', + 'raw' => 'Fixed URL rewriter. It would not rewrite \'//example.com/\' URL unconditionally. URL rewrite target hosts whitelist is implemented. (Yasuo)', + ), + 45 => + array ( + 'message' => 'Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX).', + 'raw' => 'Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX). (Yuji Uchiyama)', + ), + 46 => + array ( + 'message' => 'Fixed bug #72683 (getmxrr broken).', + 'raw' => 'Fixed bug #72683 (getmxrr broken). (Anatol)', + ), + 47 => + array ( + 'message' => 'Fixed bug #72629 (Caught exception assignment to variables ignores references).', + 'raw' => 'Fixed bug #72629 (Caught exception assignment to variables ignores references). (Laruence)', + ), + 48 => + array ( + 'message' => 'Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals).', + 'raw' => 'Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals). (Laruence)', + ), + 49 => + array ( + 'message' => 'Fixed bug #72581 (previous property undefined in Exception after deserialization).', + 'raw' => 'Fixed bug #72581 (previous property undefined in Exception after deserialization). (Laruence)', + ), + 50 => + array ( + 'message' => 'Fixed bug #72543 (Different references behavior comparing to PHP 5)', + 'raw' => 'Fixed bug #72543 (Different references behavior comparing to PHP 5) (Laruence, Dmitry, Nikita)', + ), + 51 => + array ( + 'message' => 'Fixed bug #72347 (VERIFY_RETURN type casts visible in finally).', + 'raw' => 'Fixed bug #72347 (VERIFY_RETURN type casts visible in finally). (Dmitry)', + ), + 52 => + array ( + 'message' => 'Fixed bug #72216 (Return by reference with finally is not memory safe).', + 'raw' => 'Fixed bug #72216 (Return by reference with finally is not memory safe). (Dmitry)', + ), + 53 => + array ( + 'message' => 'Fixed bug #72215 (Wrong return value if var modified in finally).', + 'raw' => 'Fixed bug #72215 (Wrong return value if var modified in finally). (Dmitry)', + ), + 54 => + array ( + 'message' => 'Fixed bug #71818 (Memory leak when array altered in destructor).', + 'raw' => 'Fixed bug #71818 (Memory leak when array altered in destructor). (Dmitry)', + ), + 55 => + array ( + 'message' => 'Fixed bug #71539 (Memory error on $arr[$a] =& $arr[$b] if RHS rehashes)', + 'raw' => 'Fixed bug #71539 (Memory error on $arr[$a] =& $arr[$b] if RHS rehashes) (Dmitry, Nikita)', + ), + 56 => + array ( + 'message' => 'Added new constant PHP_FD_SETSIZE.', + 'raw' => 'Added new constant PHP_FD_SETSIZE. (cmb)', + ), + 57 => + array ( + 'message' => 'Added optind parameter to getopt().', + 'raw' => 'Added optind parameter to getopt(). (as)', + ), + 58 => + array ( + 'message' => 'Added PHP to SAPI error severity mapping for logs.', + 'raw' => 'Added PHP to SAPI error severity mapping for logs. (Martin Vobruba)', + ), + 59 => + array ( + 'message' => 'Fixed bug #71911 (Unable to set --enable-debug on building extensions by phpize on Windows).', + 'raw' => 'Fixed bug #71911 (Unable to set --enable-debug on building extensions by phpize on Windows). (Yuji Uchiyama)', + ), + 60 => + array ( + 'message' => 'Fixed bug #29368 (The destructor is called when an exception is thrown from the constructor).', + 'raw' => 'Fixed bug #29368 (The destructor is called when an exception is thrown from the constructor). (Dmitry)', + ), + 61 => + array ( + 'message' => 'Implemented RFC: RNG Fixes.', + 'raw' => 'Implemented RFC: RNG Fixes. (Leigh)', + ), + 62 => + array ( + 'message' => 'Implemented email validation as per RFC 6531.', + 'raw' => 'Implemented email validation as per RFC 6531. (Leo Feyer, Anatol)', + ), + 63 => + array ( + 'message' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex).', + 'raw' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex). (Stas)', + ), + 64 => + array ( + 'message' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications).', + 'raw' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications). (Stas)', + ), + 65 => + array ( + 'message' => 'Fixed bug #72523 (dtrace issue with reflection (failed test)).', + 'raw' => 'Fixed bug #72523 (dtrace issue with reflection (failed test)). (Laruence)', + ), + 66 => + array ( + 'message' => 'Fixed bug #72508 (strange references after recursive function call and "switch" statement).', + 'raw' => 'Fixed bug #72508 (strange references after recursive function call and "switch" statement). (Laruence)', + ), + 67 => + array ( + 'message' => 'Fixed bug #72441 (Segmentation fault: RFC list_keys).', + 'raw' => 'Fixed bug #72441 (Segmentation fault: RFC list_keys). (Laruence)', + ), + 68 => + array ( + 'message' => 'Fixed bug #72395 (list() regression).', + 'raw' => 'Fixed bug #72395 (list() regression). (Laruence)', + ), + 69 => + array ( + 'message' => 'Fixed bug #72373 (TypeError after Generator function w/declared return type finishes).', + 'raw' => 'Fixed bug #72373 (TypeError after Generator function w/declared return type finishes). (Nikita)', + ), + 70 => + array ( + 'message' => 'Fixed bug #69489 (tempnam() should raise notice if falling back to temp dir).', + 'raw' => 'Fixed bug #69489 (tempnam() should raise notice if falling back to temp dir). (Laruence, Anatol)', + ), + 71 => + array ( + 'message' => 'Fixed UTF-8 and long path support on Windows.', + 'raw' => 'Fixed UTF-8 and long path support on Windows. (Anatol)', + ), + 72 => + array ( + 'message' => 'Fixed bug #53432 (Assignment via string index access on an empty string converts to array).', + 'raw' => 'Fixed bug #53432 (Assignment via string index access on an empty string converts to array). (Nikita)', + ), + 73 => + array ( + 'message' => 'Fixed bug #62210 (Exceptions can leak temporary variables).', + 'raw' => 'Fixed bug #62210 (Exceptions can leak temporary variables). (Dmitry, Bob)', + ), + 74 => + array ( + 'message' => 'Fixed bug #62814 (It is possible to stiffen child class members visibility).', + 'raw' => 'Fixed bug #62814 (It is possible to stiffen child class members visibility). (Nikita)', + ), + 75 => + array ( + 'message' => 'Fixed bug #69989 (Generators don\'t participate in cycle GC).', + 'raw' => 'Fixed bug #69989 (Generators don\'t participate in cycle GC). (Nikita)', + ), + 76 => + array ( + 'message' => 'Fixed bug #70228 (Memleak if return in finally block).', + 'raw' => 'Fixed bug #70228 (Memleak if return in finally block). (Dmitry)', + ), + 77 => + array ( + 'message' => 'Fixed bug #71266 (Missing separation of properties HT in foreach etc).', + 'raw' => 'Fixed bug #71266 (Missing separation of properties HT in foreach etc). (Dmitry)', + ), + 78 => + array ( + 'message' => 'Fixed bug #71604 (Aborted Generators continue after nested finally).', + 'raw' => 'Fixed bug #71604 (Aborted Generators continue after nested finally). (Nikita)', + ), + 79 => + array ( + 'message' => 'Fixed bug #71572 (String offset assignment from an empty string inserts null byte).', + 'raw' => 'Fixed bug #71572 (String offset assignment from an empty string inserts null byte). (Francois)', + ), + 80 => + array ( + 'message' => 'Fixed bug #71897 (ASCII 0x7F Delete control character permitted in identifiers).', + 'raw' => 'Fixed bug #71897 (ASCII 0x7F Delete control character permitted in identifiers). (Andrea)', + ), + 81 => + array ( + 'message' => 'Fixed bug #72188 (Nested try/finally blocks losing return value).', + 'raw' => 'Fixed bug #72188 (Nested try/finally blocks losing return value). (Dmitry)', + ), + 82 => + array ( + 'message' => 'Fixed bug #72213 (Finally leaks on nested exceptions).', + 'raw' => 'Fixed bug #72213 (Finally leaks on nested exceptions). (Dmitry, Nikita)', + ), + 83 => + array ( + 'message' => 'Fixed bug #47517 (php-cgi.exe missing UAC manifest).', + 'raw' => 'Fixed bug #47517 (php-cgi.exe missing UAC manifest). (maxdax15801 at users noreply github com)', + ), + 84 => + array ( + 'message' => 'Change statement and fcall extension handlers to accept frame.', + 'raw' => 'Change statement and fcall extension handlers to accept frame. (Joe)', + ), + 85 => + array ( + 'message' => 'Number operators taking numeric strings now emit E_NOTICEs or E_WARNINGs when given malformed numeric strings.', + 'raw' => 'Number operators taking numeric strings now emit E_NOTICEs or E_WARNINGs when given malformed numeric strings. (Andrea)', + ), + 86 => + array ( + 'message' => '(int), intval() where $base is 10 or unspecified, settype(), decbin(), decoct(), dechex(), integer operators and other conversions now always respect scientific notation in numeric strings.', + 'raw' => '(int), intval() where $base is 10 or unspecified, settype(), decbin(), decoct(), dechex(), integer operators and other conversions now always respect scientific notation in numeric strings. (Andrea)', + ), + 87 => + array ( + 'message' => 'Raise a compile-time warning on octal escape sequence overflow.', + 'raw' => 'Raise a compile-time warning on octal escape sequence overflow. (Sara)', + ), + 88 => + array ( + 'message' => 'Fixed bug #73350 (Exception::__toString() cause circular references).', + 'raw' => 'Fixed bug #73350 (Exception::__toString() cause circular references). (Laruence)', + ), + 89 => + array ( + 'message' => 'Fixed bug #73181 (parse_str() without a second argument leads to crash).', + 'raw' => 'Fixed bug #73181 (parse_str() without a second argument leads to crash). (Nikita)', + ), + 90 => + array ( + 'message' => 'Fixed bug #66773 (Autoload with Opcache allows importing conflicting class name to namespace).', + 'raw' => 'Fixed bug #66773 (Autoload with Opcache allows importing conflicting class name to namespace). (Nikita)', + ), + 91 => + array ( + 'message' => 'Fixed bug #66862 ((Sub-)Namespaces unexpected behaviour).', + 'raw' => 'Fixed bug #66862 ((Sub-)Namespaces unexpected behaviour). (Nikita)', + ), + 92 => + array ( + 'message' => 'Fix pthreads detection when cross-compiling', + 'raw' => 'Fix pthreads detection when cross-compiling (ffontaine)', + ), + 93 => + array ( + 'message' => 'Fixed bug #73337 (try/catch not working with two exceptions inside a same operation).', + 'raw' => 'Fixed bug #73337 (try/catch not working with two exceptions inside a same operation). (Dmitry)', + ), + 94 => + array ( + 'message' => 'Fixed bug #73338 (Exception thrown from error handler causes valgrind warnings (and crashes)).', + 'raw' => 'Fixed bug #73338 (Exception thrown from error handler causes valgrind warnings (and crashes)). (Bob, Dmitry)', + ), + 95 => + array ( + 'message' => 'Fixed bug #73329 ((Float)"Nano" == NAN).', + 'raw' => 'Fixed bug #73329 ((Float)"Nano" == NAN). (Anatol)', + ), + 96 => + array ( + 'message' => 'Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c).', + 'raw' => 'Fixed bug #73025 (Heap Buffer Overflow in virtual_popen of zend_virtual_cwd.c). (cmb)', + ), + 97 => + array ( + 'message' => 'Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify).', + 'raw' => 'Fixed bug #72703 (Out of bounds global memory read in BF_crypt triggered by password_verify). (Anatol)', + ), + 98 => + array ( + 'message' => 'Fixed bug #73058 (crypt broken when salt is \'too\' long).', + 'raw' => 'Fixed bug #73058 (crypt broken when salt is \'too\' long). (Anatol)', + ), + 99 => + array ( + 'message' => 'Fixed bug #69579 (Invalid free in extension trait).', + 'raw' => 'Fixed bug #69579 (Invalid free in extension trait). (John Boehr)', + ), + 100 => + array ( + 'message' => 'Fixed bug #73156 (segfault on undefined function).', + 'raw' => 'Fixed bug #73156 (segfault on undefined function). (Dmitry)', + ), + 101 => + array ( + 'message' => 'Fixed bug #73163 (PHP hangs if error handler throws while accessing undef const in default value).', + 'raw' => 'Fixed bug #73163 (PHP hangs if error handler throws while accessing undef const in default value). (Nikita)', + ), + 102 => + array ( + 'message' => 'Fixed bug #73172 (parse error: Invalid numeric literal).', + 'raw' => 'Fixed bug #73172 (parse error: Invalid numeric literal). (Nikita, Anatol)', + ), + 103 => + array ( + 'message' => 'Fixed for #73240 (Write out of bounds at number_format).', + 'raw' => 'Fixed for #73240 (Write out of bounds at number_format). (Stas)', + ), + 104 => + array ( + 'message' => 'Fixed bug #73147 (Use After Free in PHP7 unserialize()).', + 'raw' => 'Fixed bug #73147 (Use After Free in PHP7 unserialize()). (Stas)', + ), + 105 => + array ( + 'message' => 'Fixed bug #73189 (Memcpy negative size parameter php_resolve_path).', + 'raw' => 'Fixed bug #73189 (Memcpy negative size parameter php_resolve_path). (Stas)', + ), + 106 => + array ( + 'message' => 'Fixed bug #72944 (Null pointer deref in zval_delref_p).', + 'raw' => 'Fixed bug #72944 (Null pointer deref in zval_delref_p). (Dmitry)', + ), + 107 => + array ( + 'message' => 'Fixed bug #72943 (assign_dim on string doesn\'t reset hval).', + 'raw' => 'Fixed bug #72943 (assign_dim on string doesn\'t reset hval). (Laruence)', + ), + 108 => + array ( + 'message' => 'Fixed bug #72911 (Memleak in zend_binary_assign_op_obj_helper).', + 'raw' => 'Fixed bug #72911 (Memleak in zend_binary_assign_op_obj_helper). (Laruence)', + ), + 109 => + array ( + 'message' => 'Fixed bug #72813 (Segfault with __get returned by ref).', + 'raw' => 'Fixed bug #72813 (Segfault with __get returned by ref). (Laruence)', + ), + 110 => + array ( + 'message' => 'Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator).', + 'raw' => 'Fixed bug #72767 (PHP Segfaults when trying to expand an infinite operator). (Nikita)', + ), + 111 => + array ( + 'message' => 'Fixed bug #72854 (PHP Crashes on duplicate destructor call).', + 'raw' => 'Fixed bug #72854 (PHP Crashes on duplicate destructor call). (Nikita)', + ), + 112 => + array ( + 'message' => 'Fixed bug #72857 (stream_socket_recvfrom read access violation).', + 'raw' => 'Fixed bug #72857 (stream_socket_recvfrom read access violation). (Anatol)', + ), + 113 => + array ( + 'message' => 'Fixed bug #72629 (Caught exception assignment to variables ignores references).', + 'raw' => 'Fixed bug #72629 (Caught exception assignment to variables ignores references). (Laruence)', + ), + 114 => + array ( + 'message' => 'Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals).', + 'raw' => 'Fixed bug #72594 (Calling an earlier instance of an included anonymous class fatals). (Laruence)', + ), + 115 => + array ( + 'message' => 'Fixed bug #72581 (previous property undefined in Exception after deserialization).', + 'raw' => 'Fixed bug #72581 (previous property undefined in Exception after deserialization). (Laruence)', + ), + 116 => + array ( + 'message' => 'Fixed bug #72496 (Cannot declare public method with signature incompatible with parent private method).', + 'raw' => 'Fixed bug #72496 (Cannot declare public method with signature incompatible with parent private method). (Pedro Magalhães)', + ), + 117 => + array ( + 'message' => 'Fixed bug #72024 (microtime() leaks memory).', + 'raw' => 'Fixed bug #72024 (microtime() leaks memory). (maroszek at gmx dot net)', + ), + 118 => + array ( + 'message' => 'Fixed bug #71911 (Unable to set --enable-debug on building extensions by phpize on Windows).', + 'raw' => 'Fixed bug #71911 (Unable to set --enable-debug on building extensions by phpize on Windows). (Yuji Uchiyama)', + ), + 119 => + array ( + 'message' => 'Fixed bug causing ClosedGeneratorException being thrown into the calling code instead of the Generator yielding from.', + 'raw' => 'Fixed bug causing ClosedGeneratorException being thrown into the calling code instead of the Generator yielding from. (Bob)', + ), + 120 => + array ( + 'message' => 'Implemented FR #72614 (Support "nmake test" on building extensions by phpize).', + 'raw' => 'Implemented FR #72614 (Support "nmake test" on building extensions by phpize). (Yuji Uchiyama)', + ), + 121 => + array ( + 'message' => 'Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX).', + 'raw' => 'Fixed bug #72641 (phpize (on Windows) ignores PHP_PREFIX). (Yuji Uchiyama)', + ), + 122 => + array ( + 'message' => 'Fixed potential segfault in object storage freeing in shutdown sequence.', + 'raw' => 'Fixed potential segfault in object storage freeing in shutdown sequence. (Bob)', + ), + 123 => + array ( + 'message' => 'Fixed bug #72663 (Create an Unexpected Object and Don\'t Invoke __wakeup() in Deserialization).', + 'raw' => 'Fixed bug #72663 (Create an Unexpected Object and Don\'t Invoke __wakeup() in Deserialization). (Stas)', + ), + 124 => + array ( + 'message' => 'Fixed bug #72681 (PHP Session Data Injection Vulnerability).', + 'raw' => 'Fixed bug #72681 (PHP Session Data Injection Vulnerability). (Stas)', + ), + 125 => + array ( + 'message' => 'Fixed bug #72683 (getmxrr broken).', + 'raw' => 'Fixed bug #72683 (getmxrr broken). (Anatol)', + ), + 126 => + array ( + 'message' => 'Fixed bug #72742 (memory allocator fails to realloc small block to large one).', + 'raw' => 'Fixed bug #72742 (memory allocator fails to realloc small block to large one). (Stas)', + ), + 127 => + array ( + 'message' => 'Fixed URL rewriter partially. It would not rewrite \'//example.com/\' URL unconditionally. Only requested host(HTTP_HOST) is rewritten.', + 'raw' => 'Fixed URL rewriter partially. It would not rewrite \'//example.com/\' URL unconditionally. Only requested host(HTTP_HOST) is rewritten. (Yasuo)', + ), + 128 => + array ( + 'message' => 'Fixed bug #72508 (strange references after recursive function call and "switch" statement).', + 'raw' => 'Fixed bug #72508 (strange references after recursive function call and "switch" statement). (Laruence)', + ), + 129 => + array ( + 'message' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex).', + 'raw' => 'Fixed bug #72513 (Stack-based buffer overflow vulnerability in virtual_file_ex). (Stas)', + ), + 130 => + array ( + 'message' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications).', + 'raw' => 'Fixed bug #72573 (HTTP_PROXY is improperly trusted by some PHP libraries and applications). (Stas)', + ), + 131 => + array ( + 'message' => 'Fixed bug #72218 (If host name cannot be resolved then PHP 7 crashes).', + 'raw' => 'Fixed bug #72218 (If host name cannot be resolved then PHP 7 crashes). (Esminis at esminis dot lt)', + ), + 132 => + array ( + 'message' => 'Fixed bug #72221 (segfault, past-the-end access).', + 'raw' => 'Fixed bug #72221 (segfault, past-the-end access). (Lauri Kenttä)', + ), + 133 => + array ( + 'message' => 'Fixed bug #72268 (Integer Overflow in nl2br()).', + 'raw' => 'Fixed bug #72268 (Integer Overflow in nl2br()). (Stas)', + ), + 134 => + array ( + 'message' => 'Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()).', + 'raw' => 'Fixed bug #72275 (Integer Overflow in json_encode()/json_decode()/ json_utf8_to_utf16()). (Stas)', + ), + 135 => + array ( + 'message' => 'Fixed bug #72400 (Integer Overflow in addcslashes/addslashes).', + 'raw' => 'Fixed bug #72400 (Integer Overflow in addcslashes/addslashes). (Stas)', + ), + 136 => + array ( + 'message' => 'Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL).', + 'raw' => 'Fixed bug #72403 (Integer Overflow in Length of String-typed ZVAL). (Stas)', + ), + 137 => + array ( + 'message' => 'Fixed bug #72162 (use-after-free - error_reporting).', + 'raw' => 'Fixed bug #72162 (use-after-free - error_reporting). (Laruence)', + ), + 138 => + array ( + 'message' => 'Add compiler option to disable special case function calls.', + 'raw' => 'Add compiler option to disable special case function calls. (Joe)', + ), + 139 => + array ( + 'message' => 'Fixed bug #72101 (crash on complex code).', + 'raw' => 'Fixed bug #72101 (crash on complex code). (Dmitry)', + ), + 140 => + array ( + 'message' => 'Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer).', + 'raw' => 'Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer). (Mikhail Galanin)', + ), + 141 => + array ( + 'message' => 'Fixed bug #72057 (PHP Hangs when using custom error handler and typehint).', + 'raw' => 'Fixed bug #72057 (PHP Hangs when using custom error handler and typehint). (Nikita Nefedov)', + ), + 142 => + array ( + 'message' => 'Fixed bug #72038 (Function calls with values to a by-ref parameter don\'t always throw a notice).', + 'raw' => 'Fixed bug #72038 (Function calls with values to a by-ref parameter don\'t always throw a notice). (Bob)', + ), + 143 => + array ( + 'message' => 'Fixed bug #71737 (Memory leak in closure with parameter named $this).', + 'raw' => 'Fixed bug #71737 (Memory leak in closure with parameter named $this). (Nikita)', + ), + 144 => + array ( + 'message' => 'Fixed bug #72059 (?? is not allowed on constant expressions).', + 'raw' => 'Fixed bug #72059 (?? is not allowed on constant expressions). (Bob, Marcio)', + ), + 145 => + array ( + 'message' => 'Fixed bug #72159 (Imported Class Overrides Local Class Name).', + 'raw' => 'Fixed bug #72159 (Imported Class Overrides Local Class Name). (Nikita)', + ), + 146 => + array ( + 'message' => 'Fixed bug #71930 (_zval_dtor_func: Assertion `(arr)->gc.refcount <= 1\' failed).', + 'raw' => 'Fixed bug #71930 (_zval_dtor_func: Assertion `(arr)->gc.refcount <= 1\' failed). (Laruence)', + ), + 147 => + array ( + 'message' => 'Fixed bug #71922 (Crash on assert(new class{})).', + 'raw' => 'Fixed bug #71922 (Crash on assert(new class{})). (Nikita)', + ), + 148 => + array ( + 'message' => 'Fixed bug #71914 (Reference is lost in "switch").', + 'raw' => 'Fixed bug #71914 (Reference is lost in "switch"). (Laruence)', + ), + 149 => + array ( + 'message' => 'Fixed bug #71871 (Interfaces allow final and abstract functions).', + 'raw' => 'Fixed bug #71871 (Interfaces allow final and abstract functions). (Nikita)', + ), + 150 => + array ( + 'message' => 'Fixed Bug #71859 (zend_objects_store_call_destructors operates on realloced memory, crashing).', + 'raw' => 'Fixed Bug #71859 (zend_objects_store_call_destructors operates on realloced memory, crashing). (Laruence)', + ), + 151 => + array ( + 'message' => 'Fixed bug #71841 (EG(error_zval) is not handled well).', + 'raw' => 'Fixed bug #71841 (EG(error_zval) is not handled well). (Laruence)', + ), + 152 => + array ( + 'message' => 'Fixed bug #71750 (Multiple Heap Overflows in php_raw_url_encode/ php_url_encode).', + 'raw' => 'Fixed bug #71750 (Multiple Heap Overflows in php_raw_url_encode/ php_url_encode). (Stas)', + ), + 153 => + array ( + 'message' => 'Fixed bug #71731 (Null coalescing operator and ArrayAccess).', + 'raw' => 'Fixed bug #71731 (Null coalescing operator and ArrayAccess). (Nikita)', + ), + 154 => + array ( + 'message' => 'Fixed bug #71609 (Segmentation fault on ZTS with gethostbyname).', + 'raw' => 'Fixed bug #71609 (Segmentation fault on ZTS with gethostbyname). (krakjoe)', + ), + 155 => + array ( + 'message' => 'Fixed bug #71414 (Inheritance, traits and interfaces).', + 'raw' => 'Fixed bug #71414 (Inheritance, traits and interfaces). (krakjoe)', + ), + 156 => + array ( + 'message' => 'Fixed bug #71359 (Null coalescing operator and magic).', + 'raw' => 'Fixed bug #71359 (Null coalescing operator and magic). (krakjoe)', + ), + 157 => + array ( + 'message' => 'Fixed bug #71334 (Cannot access array keys while uksort()).', + 'raw' => 'Fixed bug #71334 (Cannot access array keys while uksort()). (Nikita)', + ), + 158 => + array ( + 'message' => 'Fixed bug #69659 (ArrayAccess, isset() and the offsetExists method).', + 'raw' => 'Fixed bug #69659 (ArrayAccess, isset() and the offsetExists method). (Nikita)', + ), + 159 => + array ( + 'message' => 'Fixed bug #69537 (__debugInfo with empty string for key gives error).', + 'raw' => 'Fixed bug #69537 (__debugInfo with empty string for key gives error). (krakjoe)', + ), + 160 => + array ( + 'message' => 'Fixed bug #62059 (ArrayObject and isset are not friends).', + 'raw' => 'Fixed bug #62059 (ArrayObject and isset are not friends). (Nikita)', + ), + 161 => + array ( + 'message' => 'Fixed bug #71980 (Decorated/Nested Generator is Uncloseable in Finally).', + 'raw' => 'Fixed bug #71980 (Decorated/Nested Generator is Uncloseable in Finally). (Nikita)', + ), + 162 => + array ( + 'message' => 'Huge pages disabled by default.', + 'raw' => 'Huge pages disabled by default. (Rasmus)', + ), + 163 => + array ( + 'message' => 'Added ability to enable huge pages in Zend Memory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=1.', + 'raw' => 'Added ability to enable huge pages in Zend Memory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=1. (Dmitry)', + ), + 164 => + array ( + 'message' => 'Fixed bug #71756 (Call-by-reference widens scope to uninvolved functions when used in switch).', + 'raw' => 'Fixed bug #71756 (Call-by-reference widens scope to uninvolved functions when used in switch). (Laruence)', + ), + 165 => + array ( + 'message' => 'Fixed bug #71729 (Possible crash in zend_bin_strtod, zend_oct_strtod, zend_hex_strtod).', + 'raw' => 'Fixed bug #71729 (Possible crash in zend_bin_strtod, zend_oct_strtod, zend_hex_strtod). (Laruence)', + ), + 166 => + array ( + 'message' => 'Fixed bug #71695 (Global variables are reserved before execution).', + 'raw' => 'Fixed bug #71695 (Global variables are reserved before execution). (Laruence)', + ), + 167 => + array ( + 'message' => 'Fixed bug #71629 (Out-of-bounds access in php_url_decode in context php_stream_url_wrap_rfc2397).', + 'raw' => 'Fixed bug #71629 (Out-of-bounds access in php_url_decode in context php_stream_url_wrap_rfc2397). (mt at debian dot org)', + ), + 168 => + array ( + 'message' => 'Fixed bug #71622 (Strings used in pass-as-reference cannot be used to invoke C::$callable()).', + 'raw' => 'Fixed bug #71622 (Strings used in pass-as-reference cannot be used to invoke C::$callable()). (Bob)', + ), + 169 => + array ( + 'message' => 'Fixed bug #71596 (Segmentation fault on ZTS with date function (setlocale)).', + 'raw' => 'Fixed bug #71596 (Segmentation fault on ZTS with date function (setlocale)). (Anatol)', + ), + 170 => + array ( + 'message' => 'Fixed bug #71535 (Integer overflow in zend_mm_alloc_heap()).', + 'raw' => 'Fixed bug #71535 (Integer overflow in zend_mm_alloc_heap()). (Dmitry)', + ), + 171 => + array ( + 'message' => 'Fixed bug #71470 (Leaked 1 hashtable iterators).', + 'raw' => 'Fixed bug #71470 (Leaked 1 hashtable iterators). (Nikita)', + ), + 172 => + array ( + 'message' => 'Fixed bug #71575 (ISO C does not allow extra ‘;’ outside of a function).', + 'raw' => 'Fixed bug #71575 (ISO C does not allow extra ‘;’ outside of a function). (asgrim)', + ), + 173 => + array ( + 'message' => 'Fixed bug #71724 (yield from does not count EOLs).', + 'raw' => 'Fixed bug #71724 (yield from does not count EOLs). (Nikita)', + ), + 174 => + array ( + 'message' => 'Fixed bug #71767 (ReflectionMethod::getDocComment returns the wrong comment).', + 'raw' => 'Fixed bug #71767 (ReflectionMethod::getDocComment returns the wrong comment). (Grigorii Sokolik)', + ), + 175 => + array ( + 'message' => 'Fixed bug #71806 (php_strip_whitespace() fails on some numerical values).', + 'raw' => 'Fixed bug #71806 (php_strip_whitespace() fails on some numerical values). (Nikita)', + ), + 176 => + array ( + 'message' => 'Fixed bug #71624 (`php -R` (PHP_MODE_PROCESS_STDIN) is broken).', + 'raw' => 'Fixed bug #71624 (`php -R` (PHP_MODE_PROCESS_STDIN) is broken). (Sean DuBois)', + ), + 177 => + array ( + 'message' => 'Fixed bug (Low probability segfault in zend_arena).', + 'raw' => 'Fixed bug (Low probability segfault in zend_arena). (Laruence)', + ), + 178 => + array ( + 'message' => 'Fixed bug #71441 (Typehinted Generator with return in try/finally crashes).', + 'raw' => 'Fixed bug #71441 (Typehinted Generator with return in try/finally crashes). (Bob)', + ), + 179 => + array ( + 'message' => 'Fixed bug #71442 (forward_static_call crash).', + 'raw' => 'Fixed bug #71442 (forward_static_call crash). (Laruence)', + ), + 180 => + array ( + 'message' => 'Fixed bug #71443 (Segfault using built-in webserver with intl using symfony).', + 'raw' => 'Fixed bug #71443 (Segfault using built-in webserver with intl using symfony). (Laruence)', + ), + 181 => + array ( + 'message' => 'Fixed bug #71449 (An integer overflow bug in php_implode()).', + 'raw' => 'Fixed bug #71449 (An integer overflow bug in php_implode()). (Stas)', + ), + 182 => + array ( + 'message' => 'Fixed bug #71450 (An integer overflow bug in php_str_to_str_ex()).', + 'raw' => 'Fixed bug #71450 (An integer overflow bug in php_str_to_str_ex()). (Stas)', + ), + 183 => + array ( + 'message' => 'Fixed bug #71474 (Crash because of VM stack corruption on Magento2).', + 'raw' => 'Fixed bug #71474 (Crash because of VM stack corruption on Magento2). (Dmitry)', + ), + 184 => + array ( + 'message' => 'Fixed bug #71485 (Return typehint on internal func causes Fatal error when it throws exception).', + 'raw' => 'Fixed bug #71485 (Return typehint on internal func causes Fatal error when it throws exception). (Laruence)', + ), + 185 => + array ( + 'message' => 'Fixed bug #71529 (Variable references on array elements don\'t work when using count).', + 'raw' => 'Fixed bug #71529 (Variable references on array elements don\'t work when using count). (Nikita)', + ), + 186 => + array ( + 'message' => 'Fixed bug #71601 (finally block not executed after yield from).', + 'raw' => 'Fixed bug #71601 (finally block not executed after yield from). (Bob)', + ), + 187 => + array ( + 'message' => 'Fixed bug #71637 (Multiple Heap Overflow due to integer overflows in xml/filter_url/addcslashes). (CVE-2016-4344, CVE-2016-4345, CVE-2016-4346)', + 'raw' => 'Fixed bug #71637 (Multiple Heap Overflow due to integer overflows in xml/filter_url/addcslashes). (CVE-2016-4344, CVE-2016-4345, CVE-2016-4346) (Stas)', + ), + 188 => + array ( + 'message' => 'Added support for new HTTP 451 code.', + 'raw' => 'Added support for new HTTP 451 code. (Julien)', + ), + 189 => + array ( + 'message' => 'Fixed bug #71039 (exec functions ignore length but look for NULL termination).', + 'raw' => 'Fixed bug #71039 (exec functions ignore length but look for NULL termination). (Anatol)', + ), + 190 => + array ( + 'message' => 'Fixed bug #71089 (No check to duplicate zend_extension).', + 'raw' => 'Fixed bug #71089 (No check to duplicate zend_extension). (Remi)', + ), + 191 => + array ( + 'message' => 'Fixed bug #71201 (round() segfault on 64-bit builds).', + 'raw' => 'Fixed bug #71201 (round() segfault on 64-bit builds). (Anatol)', + ), + 192 => + array ( + 'message' => 'Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start).', + 'raw' => 'Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start). (hugh at allthethings dot co dot nz)', + ), + 193 => + array ( + 'message' => 'Fixed bug #71248 (Wrong interface is enforced).', + 'raw' => 'Fixed bug #71248 (Wrong interface is enforced). (Dmitry)', + ), + 194 => + array ( + 'message' => 'Fixed bug #71273 (A wrong ext directory setup in php.ini leads to crash).', + 'raw' => 'Fixed bug #71273 (A wrong ext directory setup in php.ini leads to crash). (Anatol)', + ), + 195 => + array ( + 'message' => 'Fixed Bug #71275 (Bad method called on cloning an object having a trait).', + 'raw' => 'Fixed Bug #71275 (Bad method called on cloning an object having a trait). (Bob)', + ), + 196 => + array ( + 'message' => 'Fixed bug #71297 (Memory leak with consecutive yield from).', + 'raw' => 'Fixed bug #71297 (Memory leak with consecutive yield from). (Bob)', + ), + 197 => + array ( + 'message' => 'Fixed bug #71300 (Segfault in zend_fetch_string_offset).', + 'raw' => 'Fixed bug #71300 (Segfault in zend_fetch_string_offset). (Laruence)', + ), + 198 => + array ( + 'message' => 'Fixed bug #71314 (var_export(INF) prints INF.0).', + 'raw' => 'Fixed bug #71314 (var_export(INF) prints INF.0). (Andrea)', + ), + 199 => + array ( + 'message' => 'Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input).', + 'raw' => 'Fixed bug #71323 (Output of stream_get_meta_data can be falsified by its input). (Leo Gaspard)', + ), + 200 => + array ( + 'message' => 'Fixed bug #71336 (Wrong is_ref on properties as exposed via get_object_vars()).', + 'raw' => 'Fixed bug #71336 (Wrong is_ref on properties as exposed via get_object_vars()). (Laruence)', + ), + 201 => + array ( + 'message' => 'Fixed bug #71459 (Integer overflow in iptcembed()).', + 'raw' => 'Fixed bug #71459 (Integer overflow in iptcembed()). (Stas)', + ), + 202 => + array ( + 'message' => 'Fixed bug #71165 (-DGC_BENCH=1 doesn\'t work on PHP7).', + 'raw' => 'Fixed bug #71165 (-DGC_BENCH=1 doesn\'t work on PHP7). (y dot uchiyama dot 1015 at gmail dot com)', + ), + 203 => + array ( + 'message' => 'Fixed bug #71163 (Segmentation Fault: cleanup_unfinished_calls).', + 'raw' => 'Fixed bug #71163 (Segmentation Fault: cleanup_unfinished_calls). (Laruence)', + ), + 204 => + array ( + 'message' => 'Fixed bug #71109 (ZEND_MOD_CONFLICTS("xdebug") doesn\'t work).', + 'raw' => 'Fixed bug #71109 (ZEND_MOD_CONFLICTS("xdebug") doesn\'t work). (Laruence)', + ), + 205 => + array ( + 'message' => 'Fixed bug #71092 (Segmentation fault with return type hinting).', + 'raw' => 'Fixed bug #71092 (Segmentation fault with return type hinting). (Laruence)', + ), + 206 => + array ( + 'message' => 'Fixed bug memleak in header_register_callback.', + 'raw' => 'Fixed bug memleak in header_register_callback. (Laruence)', + ), + 207 => + array ( + 'message' => 'Fixed bug #71067 (Local object in class method stays in memory for each call).', + 'raw' => 'Fixed bug #71067 (Local object in class method stays in memory for each call). (Laruence)', + ), + 208 => + array ( + 'message' => 'Fixed bug #66909 (configure fails utf8_to_mutf7 test).', + 'raw' => 'Fixed bug #66909 (configure fails utf8_to_mutf7 test). (Michael Orlitzky)', + ), + 209 => + array ( + 'message' => 'Fixed bug #70781 (Extension tests fail on dynamic ext dependency).', + 'raw' => 'Fixed bug #70781 (Extension tests fail on dynamic ext dependency). (Francois Laupretre)', + ), + 210 => + array ( + 'message' => 'Fixed bug #71089 (No check to duplicate zend_extension).', + 'raw' => 'Fixed bug #71089 (No check to duplicate zend_extension). (Remi)', + ), + 211 => + array ( + 'message' => 'Fixed bug #71086 (Invalid numeric literal parse error within highlight_string() function).', + 'raw' => 'Fixed bug #71086 (Invalid numeric literal parse error within highlight_string() function). (Nikita)', + ), + 212 => + array ( + 'message' => 'Fixed bug #71154 (Incorrect HT iterator invalidation causes iterator reuse).', + 'raw' => 'Fixed bug #71154 (Incorrect HT iterator invalidation causes iterator reuse). (Nikita)', + ), + 213 => + array ( + 'message' => 'Fixed bug #52355 (Negating zero does not produce negative zero).', + 'raw' => 'Fixed bug #52355 (Negating zero does not produce negative zero). (Andrea)', + ), + 214 => + array ( + 'message' => 'Fixed bug #66179 (var_export() exports float as integer).', + 'raw' => 'Fixed bug #66179 (var_export() exports float as integer). (Andrea)', + ), + 215 => + array ( + 'message' => 'Fixed bug #70804 (Unary add on negative zero produces positive zero).', + 'raw' => 'Fixed bug #70804 (Unary add on negative zero produces positive zero). (Andrea)', + ), + ), + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Enable per-module logging in Apache 2.4+.', + 'raw' => 'Enable per-module logging in Apache 2.4+. (Martin Vobruba)', + ), + 1 => + array ( + 'message' => 'Fix >2G Content-Length headers in apache2handler.', + 'raw' => 'Fix >2G Content-Length headers in apache2handler. (Adam Harvey)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fix bug #73190 (memcpy negative parameter _bc_new_num_ex).', + 'raw' => 'Fix bug #73190 (memcpy negative parameter _bc_new_num_ex). (Stas)', + ), + 1 => + array ( + 'message' => 'Fix bug #73190 (memcpy negative parameter _bc_new_num_ex).', + 'raw' => 'Fix bug #73190 (memcpy negative parameter _bc_new_num_ex). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72093 (bcpowmod accepts negative scale and corrupts _one_ definition).', + 'raw' => 'Fixed bug #72093 (bcpowmod accepts negative scale and corrupts _one_ definition). (Stas)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption).', + 'raw' => 'Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72613 (Inadequate error handling in bzread()).', + 'raw' => 'Fixed bug #72613 (Inadequate error handling in bzread()). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption).', + 'raw' => 'Fixed bug #72837 (integer overflow in bzdecompress caused heap corruption). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72613 (Inadequate error handling in bzread()).', + 'raw' => 'Fixed bug #72613 (Inadequate error handling in bzread()). (Stas)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fix integer overflows', + 'raw' => 'Fix integer overflows (Joshua Rogers)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67976 (cal_days_month() fails for final month of the French calendar).', + 'raw' => 'Fixed bug #67976 (cal_days_month() fails for final month of the French calendar). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd).', + 'raw' => 'Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #67976 (cal_days_month() fails for final month of the French calendar).', + 'raw' => 'Fixed bug #67976 (cal_days_month() fails for final month of the French calendar). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd).', + 'raw' => 'Fixed bug #71894 (AddressSanitizer: global-buffer-overflow in zif_cal_from_jd). (cmb)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73360 (Unable to work in root with unicode chars).', + 'raw' => 'Fixed bug #73360 (Unable to work in root with unicode chars). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71276 (Built-in webserver does not send Date header).', + 'raw' => 'Fixed bug #71276 (Built-in webserver does not send Date header). (see at seos fr)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69953 (Support MKCALENDAR request method).', + 'raw' => 'Fixed bug #69953 (Support MKCALENDAR request method). (Christoph)', + ), + 3 => + array ( + 'message' => 'Fixed bug #71559 (Built-in HTTP server, we can download file in web by bug).', + 'raw' => 'Fixed bug #71559 (Built-in HTTP server, we can download file in web by bug). (Johannes, Anatol)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73126 (Cannot pass parameter 1 by reference).', + 'raw' => 'Fixed bug #73126 (Cannot pass parameter 1 by reference). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69579 (Invalid free in extension trait).', + 'raw' => 'Fixed bug #69579 (Invalid free in extension trait). (John Boehr)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72922 (COM called from PHP does not return out parameters).', + 'raw' => 'Fixed bug #72922 (COM called from PHP does not return out parameters). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7).', + 'raw' => 'Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72498 (variant_date_from_timestamp null dereference).', + 'raw' => 'Fixed bug #72498 (variant_date_from_timestamp null dereference). (Anatol)', + ), + 5 => + array ( + 'message' => 'Implement support for handling HTTP/2 Server Push.', + 'raw' => 'Implement support for handling HTTP/2 Server Push. (Davey)', + ), + 6 => + array ( + 'message' => 'Add curl_multi_errno(), curl_share_errno() and curl_share_strerror() functions.', + 'raw' => 'Add curl_multi_errno(), curl_share_errno() and curl_share_strerror() functions. (Pierrick)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72674 (Heap overflow in curl_escape).', + 'raw' => 'Fixed bug #72674 (Heap overflow in curl_escape). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72541 (size_t overflow lead to heap corruption). .', + 'raw' => 'Fixed bug #72541 (size_t overflow lead to heap corruption). (Stas).', + ), + 9 => + array ( + 'message' => 'Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER).', + 'raw' => 'Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER). (Pierrick)', + ), + 10 => + array ( + 'message' => 'Fixed bug #71929 (CURLINFO_CERTINFO data parsing error).', + 'raw' => 'Fixed bug #71929 (CURLINFO_CERTINFO data parsing error). (Pierrick)', + ), + 11 => + array ( + 'message' => 'Fixed bug #73126 (Cannot pass parameter 1 by reference).', + 'raw' => 'Fixed bug #73126 (Cannot pass parameter 1 by reference). (Anatol)', + ), + 12 => + array ( + 'message' => 'Fixed bug #72922 (COM called from PHP does not return out parameters).', + 'raw' => 'Fixed bug #72922 (COM called from PHP does not return out parameters). (Anatol)', + ), + 13 => + array ( + 'message' => 'Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7).', + 'raw' => 'Fixed bug #72569 (DOTNET/COM array parameters broke in PHP7). (Anatol)', + ), + 14 => + array ( + 'message' => 'Fixed bug #72498 (variant_date_from_timestamp null dereference).', + 'raw' => 'Fixed bug #72498 (variant_date_from_timestamp null dereference). (Anatol)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69587 (DateInterval properties and isset).', + 'raw' => 'Fixed bug #69587 (DateInterval properties and isset). (jhdxr)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73426 (createFromFormat with \'z\' format char results in incorrect time).', + 'raw' => 'Fixed bug #73426 (createFromFormat with \'z\' format char results in incorrect time). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #45554 (Inconsistent behavior of the u format char).', + 'raw' => 'Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #48225 (DateTime parser doesn\'t set microseconds for "now").', + 'raw' => 'Fixed bug #48225 (DateTime parser doesn\'t set microseconds for "now"). (Derick)', + ), + 4 => + array ( + 'message' => 'Fixed bug #52514 (microseconds are missing in DateTime class).', + 'raw' => 'Fixed bug #52514 (microseconds are missing in DateTime class). (Derick)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52519 (microseconds in DateInterval are missing).', + 'raw' => 'Fixed bug #52519 (microseconds in DateInterval are missing). (Derick)', + ), + 6 => + array ( + 'message' => 'Fixed bug #60089 (DateTime::createFromFormat() U after u nukes microtime).', + 'raw' => 'Fixed bug #60089 (DateTime::createFromFormat() U after u nukes microtime). (Derick)', + ), + 7 => + array ( + 'message' => 'Fixed bug #64887 (Allow DateTime modification with subsecond items).', + 'raw' => 'Fixed bug #64887 (Allow DateTime modification with subsecond items). (Derick)', + ), + 8 => + array ( + 'message' => 'Fixed bug #68506 (General DateTime improvments needed for microseconds to become useful).', + 'raw' => 'Fixed bug #68506 (General DateTime improvments needed for microseconds to become useful). (Derick)', + ), + 9 => + array ( + 'message' => 'Fixed bug #73109 (timelib_meridian doesn\'t parse dots correctly).', + 'raw' => 'Fixed bug #73109 (timelib_meridian doesn\'t parse dots correctly). (Derick)', + ), + 10 => + array ( + 'message' => 'Fixed bug #73247 (DateTime constructor does not initialise microseconds property).', + 'raw' => 'Fixed bug #73247 (DateTime constructor does not initialise microseconds property). (Derick)', + ), + 11 => + array ( + 'message' => 'Fixed bug #73147 (Use After Free in PHP7 unserialize()).', + 'raw' => 'Fixed bug #73147 (Use After Free in PHP7 unserialize()). (Stas)', + ), + 12 => + array ( + 'message' => 'Fixed bug #73189 (Memcpy negative size parameter php_resolve_path).', + 'raw' => 'Fixed bug #73189 (Memcpy negative size parameter php_resolve_path). (Stas)', + ), + 13 => + array ( + 'message' => 'Fixed bug #66836 (DateTime::createFromFormat \'U\' with pre 1970 dates fails parsing).', + 'raw' => 'Fixed bug #66836 (DateTime::createFromFormat \'U\' with pre 1970 dates fails parsing). (derick)', + ), + 14 => + array ( + 'message' => 'Invalid serialization data for a DateTime or DatePeriod object will now throw an instance of Error from __wakeup() or __set_state() instead of resulting in a fatal error.', + 'raw' => 'Invalid serialization data for a DateTime or DatePeriod object will now throw an instance of Error from __wakeup() or __set_state() instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 15 => + array ( + 'message' => 'Timezone initialization failure from serialized data will now throw an instance of Error from __wakeup() or __set_state() instead of resulting in a fatal error.', + 'raw' => 'Timezone initialization failure from serialized data will now throw an instance of Error from __wakeup() or __set_state() instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 16 => + array ( + 'message' => 'Export date_get_interface_ce() for extension use.', + 'raw' => 'Export date_get_interface_ce() for extension use. (Jeremy Mikola)', + ), + 17 => + array ( + 'message' => 'Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week).', + 'raw' => 'Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week). (Derick)', + ), + 18 => + array ( + 'message' => 'Fixed bug #73091 (Unserializing DateInterval object may lead to __toString invocation).', + 'raw' => 'Fixed bug #73091 (Unserializing DateInterval object may lead to __toString invocation). (Stas)', + ), + 19 => + array ( + 'message' => 'Fixed bug #66836 (DateTime::createFromFormat \'U\' with pre 1970 dates fails parsing).', + 'raw' => 'Fixed bug #66836 (DateTime::createFromFormat \'U\' with pre 1970 dates fails parsing). (derick)', + ), + 20 => + array ( + 'message' => 'Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week).', + 'raw' => 'Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week). (Derick)', + ), + 21 => + array ( + 'message' => 'Fixed bug #71889 (DateInterval::format Segmentation fault).', + 'raw' => 'Fixed bug #71889 (DateInterval::format Segmentation fault). (Thomas Punt)', + ), + 22 => + array ( + 'message' => 'Fixed bug #71635 (DatePeriod::getEndDate segfault).', + 'raw' => 'Fixed bug #71635 (DatePeriod::getEndDate segfault). (Thomas Punt)', + ), + 23 => + array ( + 'message' => 'Fixed bug #71525 (Calls to date_modify will mutate timelib_rel_time, causing date_date_set issues).', + 'raw' => 'Fixed bug #71525 (Calls to date_modify will mutate timelib_rel_time, causing date_date_set issues). (Sean DuBois)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70825 (Cannot fetch multiple values with group in ini file).', + 'raw' => 'Fixed bug #70825 (Cannot fetch multiple values with group in ini file). (cmb)', + ), + 1 => + array ( + 'message' => 'Data modification functions (e.g.: dba_insert()) now throw an instance of Error instead of triggering a catchable fatal error if the key is does not contain exactly two elements.', + 'raw' => 'Data modification functions (e.g.: dba_insert()) now throw an instance of Error instead of triggering a catchable fatal error if the key is does not contain exactly two elements. (Aaron Piotrowski)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70825 (Cannot fetch multiple values with group in ini file).', + 'raw' => 'Fixed bug #70825 (Cannot fetch multiple values with group in ini file). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72157 (use-after-free caused by dba_open).', + 'raw' => 'Fixed bug #72157 (use-after-free caused by dba_open). (Shm, Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed key leak with invalid resource.', + 'raw' => 'Fixed key leak with invalid resource. (Laruence)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73150 (missing NULL check in dom_document_save_html).', + 'raw' => 'Fixed bug #73150 (missing NULL check in dom_document_save_html). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66502 (DOM document dangling reference).', + 'raw' => 'Fixed bug #66502 (DOM document dangling reference). (Sean Heelan, cmb)', + ), + 2 => + array ( + 'message' => 'Invalid schema or RelaxNG validation contexts will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Invalid schema or RelaxNG validation contexts will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 3 => + array ( + 'message' => 'Attempting to register a node class that does not extend the appropriate base class will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Attempting to register a node class that does not extend the appropriate base class will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 4 => + array ( + 'message' => 'Attempting to read an invalid or write to a readonly property will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Attempting to read an invalid or write to a readonly property will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73150 (missing NULL check in dom_document_save_html).', + 'raw' => 'Fixed bug #73150 (missing NULL check in dom_document_save_html). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #66502 (DOM document dangling reference).', + 'raw' => 'Fixed bug #66502 (DOM document dangling reference). (Sean Heelan, cmb)', + ), + ), + 'dtrace' => + array ( + 0 => + array ( + 'message' => 'Disabled PHP call tracing by default (it makes significant overhead). This may be enabled again using envirionment variable USE_ZEND_DTRACE=1.', + 'raw' => 'Disabled PHP call tracing by default (it makes significant overhead). This may be enabled again using envirionment variable USE_ZEND_DTRACE=1. (Dmitry)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72735 (Samsung picture thumb not read (zero size)).', + 'raw' => 'Fixed bug #72735 (Samsung picture thumb not read (zero size)). (Kalle, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment).', + 'raw' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72735 (Samsung picture thumb not read (zero size)).', + 'raw' => 'Fixed bug #72735 (Samsung picture thumb not read (zero size)). (Kalle, Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #72627 (Memory Leakage In exif_process_IFD_in_TIFF). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #72603 (Out of bound read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment).', + 'raw' => 'Fixed bug #72618 (NULL Pointer Dereference in exif_process_user_comment). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72094 (Out of bounds heap read access in exif header processing).', + 'raw' => 'Fixed bug #72094 (Out of bounds heap read access in exif header processing). (Stas)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE).', + 'raw' => 'Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE). (julien)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73054 (default option ignored when object passed to int filter).', + 'raw' => 'Fixed bug #73054 (default option ignored when object passed to int filter). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range).', + 'raw' => 'Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range). (bugs dot php dot net at majkl578 dot cz)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE).', + 'raw' => 'Fixed bug #72972 (Bad filter for the flags FILTER_FLAG_NO_RES_RANGE and FILTER_FLAG_NO_PRIV_RANGE). (julien)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73054 (default option ignored when object passed to int filter).', + 'raw' => 'Fixed bug #73054 (default option ignored when object passed to int filter). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range).', + 'raw' => 'Fixed bug #71745 (FILTER_FLAG_NO_RES_RANGE does not cover whole 127.0.0.0/8 range). (bugs dot php dot net at majkl578 dot cz)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71063 (filter_input(INPUT_ENV, ..) does not work).', + 'raw' => 'Fixed bug #71063 (filter_input(INPUT_ENV, ..) does not work). (Reeze Xia)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user).', + 'raw' => 'Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user). (gooh)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user).', + 'raw' => 'Fixed bug #72575 (using --allow-to-run-as-root should ignore missing user). (gooh)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72308 (fastcgi_finish_request and logging environment variables).', + 'raw' => 'Fixed bug #72308 (fastcgi_finish_request and logging environment variables). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62172 (FPM not working with Apache httpd 2.4 balancer/fcgi setup).', + 'raw' => 'Fixed bug #62172 (FPM not working with Apache httpd 2.4 balancer/fcgi setup). (Matt Haught, Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #71269 (php-fpm dumped core).', + 'raw' => 'Fixed bug #71269 (php-fpm dumped core). (Mickaël)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70755 (fpm_log.c memory leak and buffer overflow).', + 'raw' => 'Fixed bug #70755 (fpm_log.c memory leak and buffer overflow). (Stas)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse).', + 'raw' => 'Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse). (Benedict Singer)', + ), + 1 => + array ( + 'message' => 'Implemented FR #55651 (Option to ignore the returned FTP PASV address).', + 'raw' => 'Implemented FR #55651 (Option to ignore the returned FTP PASV address). (abrender at elitehosts dot com)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse).', + 'raw' => 'Fixed bug #70195 (Cannot upload file using ftp_put to FTPES with require_ssl_reuse). (Benedict Singer)', + ), + 3 => + array ( + 'message' => 'Implemented FR #55651 (Option to ignore the returned FTP PASV address).', + 'raw' => 'Implemented FR #55651 (Option to ignore the returned FTP PASV address). (abrender at elitehosts dot com)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73213 (Integer overflow in imageline() with antialiasing).', + 'raw' => 'Fixed bug #73213 (Integer overflow in imageline() with antialiasing). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()).', + 'raw' => 'Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()).', + 'raw' => 'Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf).', + 'raw' => 'Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending).', + 'raw' => 'Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c).', + 'raw' => 'Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c). (trylab, cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box).', + 'raw' => 'Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box). (Mark Plomer, cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given).', + 'raw' => 'Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries).', + 'raw' => 'Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries). (cmb)', + ), + 9 => + array ( + 'message' => 'Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files).', + 'raw' => 'Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files). (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug #73161 (imagecreatefromgd2() may leak memory).', + 'raw' => 'Fixed bug #73161 (imagecreatefromgd2() may leak memory). (cmb)', + ), + 11 => + array ( + 'message' => 'Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette).', + 'raw' => 'Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette). (cmb)', + ), + 12 => + array ( + 'message' => 'Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images).', + 'raw' => 'Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images). (cmb)', + ), + 13 => + array ( + 'message' => 'Fixed bug #72913 (imagecopy() loses single-color transparency on palette images).', + 'raw' => 'Fixed bug #72913 (imagecopy() loses single-color transparency on palette images). (cmb)', + ), + 14 => + array ( + 'message' => 'Fixed bug #68716 (possible resource leaks in _php_image_convert()).', + 'raw' => 'Fixed bug #68716 (possible resource leaks in _php_image_convert()). (cmb)', + ), + 15 => + array ( + 'message' => 'Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles).', + 'raw' => 'Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles). (cmb)', + ), + 16 => + array ( + 'message' => 'Fixed bug #72697 (select_colors write out-of-bounds).', + 'raw' => 'Fixed bug #72697 (select_colors write out-of-bounds). (Stas)', + ), + 17 => + array ( + 'message' => 'Fixed bug #72730 (imagegammacorrect allows arbitrary write access).', + 'raw' => 'Fixed bug #72730 (imagegammacorrect allows arbitrary write access). (Stas)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72596 (imagetypes function won\'t advertise WEBP support).', + 'raw' => 'Fixed bug #72596 (imagetypes function won\'t advertise WEBP support). (cmb)', + ), + 19 => + array ( + 'message' => 'Fixed bug #72604 (imagearc() ignores thickness for full arcs).', + 'raw' => 'Fixed bug #72604 (imagearc() ignores thickness for full arcs). (cmb)', + ), + 20 => + array ( + 'message' => 'Fixed bug #70315 (500 Server Error but page is fully rendered).', + 'raw' => 'Fixed bug #70315 (500 Server Error but page is fully rendered). (cmb)', + ), + 21 => + array ( + 'message' => 'Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode).', + 'raw' => 'Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode). (cmb)', + ), + 22 => + array ( + 'message' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access).', + 'raw' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access). (Pierre)', + ), + 23 => + array ( + 'message' => 'Fixed bug #72519 (imagegif/output out-of-bounds access).', + 'raw' => 'Fixed bug #72519 (imagegif/output out-of-bounds access). (Pierre)', + ), + 24 => + array ( + 'message' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()).', + 'raw' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). (Pierre)', + ), + 25 => + array ( + 'message' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow).', + 'raw' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow). (Pierre)', + ), + 26 => + array ( + 'message' => 'Fixed bug #72494 (imagecropauto out-of-bounds access).', + 'raw' => 'Fixed bug #72494 (imagecropauto out-of-bounds access). (Fernando, Pierre, cmb)', + ), + 27 => + array ( + 'message' => 'Fixed bug #72404 (imagecreatefromjpeg fails on selfie).', + 'raw' => 'Fixed bug #72404 (imagecreatefromjpeg fails on selfie). (cmb)', + ), + 28 => + array ( + 'message' => 'Fixed bug #43475 (Thick styled lines have scrambled patterns).', + 'raw' => 'Fixed bug #43475 (Thick styled lines have scrambled patterns). (cmb)', + ), + 29 => + array ( + 'message' => 'Fixed bug #53640 (XBM images require width to be multiple of 8).', + 'raw' => 'Fixed bug #53640 (XBM images require width to be multiple of 8). (cmb)', + ), + 30 => + array ( + 'message' => 'Fixed bug #64641 (imagefilledpolygon doesn\'t draw horizontal line).', + 'raw' => 'Fixed bug #64641 (imagefilledpolygon doesn\'t draw horizontal line). (cmb)', + ), + 31 => + array ( + 'message' => 'Fixed bug #73213 (Integer overflow in imageline() with antialiasing).', + 'raw' => 'Fixed bug #73213 (Integer overflow in imageline() with antialiasing). (cmb)', + ), + 32 => + array ( + 'message' => 'Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()).', + 'raw' => 'Fixed bug #73272 (imagescale() is not affected by, but affects imagesetinterpolation()). (cmb)', + ), + 33 => + array ( + 'message' => 'Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()).', + 'raw' => 'Fixed bug #73279 (Integer overflow in gdImageScaleBilinearPalette()). (cmb)', + ), + 34 => + array ( + 'message' => 'Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf).', + 'raw' => 'Fixed bug #73280 (Stack Buffer Overflow in GD dynamicGetbuf). (cmb)', + ), + 35 => + array ( + 'message' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow).', + 'raw' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow). (cmb)', + ), + 36 => + array ( + 'message' => 'Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images).', + 'raw' => 'Fixed bug #72696 (imagefilltoborder stackoverflow on truecolor images). (cmb)', + ), + 37 => + array ( + 'message' => 'Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette).', + 'raw' => 'Fixed bug #67325 (imagetruecolortopalette: white is duplicated in palette). (cmb)', + ), + 38 => + array ( + 'message' => 'Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending).', + 'raw' => 'Fixed bug #50194 (imagettftext broken on transparent background w/o alphablending). (cmb)', + ), + 39 => + array ( + 'message' => 'Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c).', + 'raw' => 'Fixed bug #73003 (Integer Overflow in gdImageWebpCtx of gd_webp.c). (trylab, cmb)', + ), + 40 => + array ( + 'message' => 'Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box).', + 'raw' => 'Fixed bug #53504 (imagettfbbox gives incorrect values for bounding box). (Mark Plomer, cmb)', + ), + 41 => + array ( + 'message' => 'Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given).', + 'raw' => 'Fixed bug #73157 (imagegd2() ignores 3rd param if 4 are given). (cmb)', + ), + 42 => + array ( + 'message' => 'Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries).', + 'raw' => 'Fixed bug #73155 (imagegd2() writes wrong chunk sizes on boundaries). (cmb)', + ), + 43 => + array ( + 'message' => 'Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files).', + 'raw' => 'Fixed bug #73159 (imagegd2(): unrecognized formats may result in corrupted files). (cmb)', + ), + 44 => + array ( + 'message' => 'Fixed bug #73161 (imagecreatefromgd2() may leak memory).', + 'raw' => 'Fixed bug #73161 (imagecreatefromgd2() may leak memory). (cmb)', + ), + 45 => + array ( + 'message' => 'Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles).', + 'raw' => 'Fixed bug #72709 (imagesetstyle() causes OOB read for empty $styles). (cmb)', + ), + 46 => + array ( + 'message' => 'Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images).', + 'raw' => 'Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor images). (cmb)', + ), + 47 => + array ( + 'message' => 'Fixed bug #72913 (imagecopy() loses single-color transparency on palette images).', + 'raw' => 'Fixed bug #72913 (imagecopy() loses single-color transparency on palette images). (cmb)', + ), + 48 => + array ( + 'message' => 'Fixed bug #68716 (possible resource leaks in _php_image_convert()).', + 'raw' => 'Fixed bug #68716 (possible resource leaks in _php_image_convert()). (cmb)', + ), + 49 => + array ( + 'message' => 'Fixed bug #72596 (imagetypes function won\'t advertise WEBP support).', + 'raw' => 'Fixed bug #72596 (imagetypes function won\'t advertise WEBP support). (cmb)', + ), + 50 => + array ( + 'message' => 'Fixed bug #72604 (imagearc() ignores thickness for full arcs).', + 'raw' => 'Fixed bug #72604 (imagearc() ignores thickness for full arcs). (cmb)', + ), + 51 => + array ( + 'message' => 'Fixed bug #70315 (500 Server Error but page is fully rendered).', + 'raw' => 'Fixed bug #70315 (500 Server Error but page is fully rendered). (cmb)', + ), + 52 => + array ( + 'message' => 'Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode).', + 'raw' => 'Fixed bug #43828 (broken transparency of imagearc for truecolor in blendingmode). (cmb)', + ), + 53 => + array ( + 'message' => 'Fixed bug #66555 (Always false condition in ext/gd/libgd/gdkanji.c).', + 'raw' => 'Fixed bug #66555 (Always false condition in ext/gd/libgd/gdkanji.c). (cmb)', + ), + 54 => + array ( + 'message' => 'Fixed bug #68712 (suspicious if-else statements).', + 'raw' => 'Fixed bug #68712 (suspicious if-else statements). (cmb)', + ), + 55 => + array ( + 'message' => 'Fixed bug #72697 (select_colors write out-of-bounds).', + 'raw' => 'Fixed bug #72697 (select_colors write out-of-bounds). (Stas)', + ), + 56 => + array ( + 'message' => 'Fixed bug #72730 (imagegammacorrect allows arbitrary write access).', + 'raw' => 'Fixed bug #72730 (imagegammacorrect allows arbitrary write access). (Stas)', + ), + 57 => + array ( + 'message' => 'Fixed bug #43475 (Thick styled lines have scrambled patterns).', + 'raw' => 'Fixed bug #43475 (Thick styled lines have scrambled patterns). (cmb)', + ), + 58 => + array ( + 'message' => 'Fixed bug #53640 (XBM images require width to be multiple of 8).', + 'raw' => 'Fixed bug #53640 (XBM images require width to be multiple of 8). (cmb)', + ), + 59 => + array ( + 'message' => 'Fixed bug #64641 (imagefilledpolygon doesn\'t draw horizontal line).', + 'raw' => 'Fixed bug #64641 (imagefilledpolygon doesn\'t draw horizontal line). (cmb)', + ), + 60 => + array ( + 'message' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access).', + 'raw' => 'Fixed bug #72512 (gdImageTrueColorToPaletteBody allows arbitrary write/read access). (Pierre)', + ), + 61 => + array ( + 'message' => 'Fixed bug #72519 (imagegif/output out-of-bounds access).', + 'raw' => 'Fixed bug #72519 (imagegif/output out-of-bounds access). (Pierre)', + ), + 62 => + array ( + 'message' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()).', + 'raw' => 'Fixed bug #72558 (Integer overflow error within _gdContributionsAlloc()). (Pierre)', + ), + 63 => + array ( + 'message' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow).', + 'raw' => 'Fixed bug #72482 (Ilegal write/read access caused by gdImageAALine overflow). (Pierre)', + ), + 64 => + array ( + 'message' => 'Fixed bug #72494 (imagecropauto out-of-bounds access).', + 'raw' => 'Fixed bug #72494 (imagecropauto out-of-bounds access). (Pierre)', + ), + 65 => + array ( + 'message' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874)', + 'raw' => 'Fixed bug #66387 (Stack overflow with imagefilltoborder). (CVE-2015-8874) (cmb)', + ), + 66 => + array ( + 'message' => 'Fixed bug #72298 (pass2_no_dither out-of-bounds access).', + 'raw' => 'Fixed bug #72298 (pass2_no_dither out-of-bounds access). (Stas)', + ), + 67 => + array ( + 'message' => 'Fixed bug #72337 (invalid dimensions can lead to crash).', + 'raw' => 'Fixed bug #72337 (invalid dimensions can lead to crash). (Pierre)', + ), + 68 => + array ( + 'message' => 'Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow). (CVE-2016-5766)', + 'raw' => 'Fixed bug #72339 (Integer Overflow in _gd2GetHeader() resulting in heap overflow). (CVE-2016-5766) (Pierre)', + ), + 69 => + array ( + 'message' => 'Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert).', + 'raw' => 'Fixed bug #72407 (NULL Pointer Dereference at _gdScaleVert). (Stas)', + ), + 70 => + array ( + 'message' => 'Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow). (CVE-2016-5767)', + 'raw' => 'Fixed bug #72446 (Integer Overflow in gdImagePaletteToTrueColor() resulting in heap overflow). (CVE-2016-5767) (Pierre)', + ), + 71 => + array ( + 'message' => 'Fixed bug #72227 (imagescale out-of-bounds read).', + 'raw' => 'Fixed bug #72227 (imagescale out-of-bounds read). (Stas)', + ), + 72 => + array ( + 'message' => 'Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074)', + 'raw' => 'Fixed bug #71912 (libgd: signedness vulnerability). (CVE-2016-3074) (Stas)', + ), + 73 => + array ( + 'message' => 'Improved fix for bug #70976.', + 'raw' => 'Improved fix for bug #70976. (Remi)', + ), + 74 => + array ( + 'message' => 'Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds). (CVE-2016-1903)', + 'raw' => 'Fixed bug #70976 (Memory Read via gdImageRotateInterpolated Array Index Out of Bounds). (CVE-2016-1903) (emmanuel dot law at gmail dot com)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Added SHA3 fixed mode algorithms (224, 256, 384, and 512 bit).', + 'raw' => 'Added SHA3 fixed mode algorithms (224, 256, 384, and 512 bit). (Sara)', + ), + 1 => + array ( + 'message' => 'Added SHA512/256 and SHA512/224 algorithms.', + 'raw' => 'Added SHA512/256 and SHA512/224 algorithms. (Sara)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72320 (iconv_substr returns false for empty strings).', + 'raw' => 'Fixed bug #72320 (iconv_substr returns false for empty strings). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72320 (iconv_substr returns false for empty strings).', + 'raw' => 'Fixed bug #72320 (iconv_substr returns false for empty strings). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash).', + 'raw' => 'Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash). (Anatol)', + ), + 1 => + array ( + 'message' => 'An email address longer than 16385 bytes will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'An email address longer than 16385 bytes will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash).', + 'raw' => 'Fixed bug #73418 (Integer Overflow in "_php_imap_mail" leads to crash). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #71148 (Bind reference overwritten on PHP 7).', + 'raw' => 'Fixed bug #71148 (Bind reference overwritten on PHP 7). (Oracle Corp.)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72852 (imap_mail null dereference).', + 'raw' => 'Fixed bug #72852 (imap_mail null dereference). (Anatol)', + ), + ), + 'interbase' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73512 (Fails to find firebird headers as don\'t use fb_config output).', + 'raw' => 'Fixed bug #73512 (Fails to find firebird headers as don\'t use fb_config output). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed Bug #71305 (Crash when optional resource is omitted).', + 'raw' => 'Fixed Bug #71305 (Crash when optional resource is omitted). (Laruence, Anatol)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73007 (add locale length check).', + 'raw' => 'Fixed bug #73007 (add locale length check). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73218 (add mitigation for ICU int overflow).', + 'raw' => 'Fixed bug #73218 (add mitigation for ICU int overflow). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence).', + 'raw' => 'Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73007 (add locale length check).', + 'raw' => 'Fixed bug #73007 (add locale length check). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72639 (Segfault when instantiating class that extends IntlCalendar and adds a property).', + 'raw' => 'Fixed bug #72639 (Segfault when instantiating class that extends IntlCalendar and adds a property). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72658 (Locale::lookup() / locale_lookup() hangs if no match found).', + 'raw' => 'Fixed bug #72658 (Locale::lookup() / locale_lookup() hangs if no match found). (Anatol)', + ), + 6 => + array ( + 'message' => 'Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names).', + 'raw' => 'Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access).', + 'raw' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access). (Stas)', + ), + 8 => + array ( + 'message' => 'Failure to call the parent constructor in a class extending Collator before invoking the parent methods will throw an instance of Error instead of resulting in a recoverable fatal error.', + 'raw' => 'Failure to call the parent constructor in a class extending Collator before invoking the parent methods will throw an instance of Error instead of resulting in a recoverable fatal error. (Aaron Piotrowski)', + ), + 9 => + array ( + 'message' => 'Cloning a Transliterator object may will now throw an instance of Error instead of resulting in a fatal error if cloning the internal transliterator fails.', + 'raw' => 'Cloning a Transliterator object may will now throw an instance of Error instead of resulting in a fatal error if cloning the internal transliterator fails. (Aaron Piotrowski)', + ), + 10 => + array ( + 'message' => 'Added IntlTimeZone::getWindowsID() and IntlTimeZone::getIDForWindowsID().', + 'raw' => 'Added IntlTimeZone::getWindowsID() and IntlTimeZone::getIDForWindowsID(). (Sara)', + ), + 11 => + array ( + 'message' => 'Fixed bug #69374 (IntlDateFormatter formatObject returns wrong utf8 value).', + 'raw' => 'Fixed bug #69374 (IntlDateFormatter formatObject returns wrong utf8 value). (lenhatanh86 at gmail com)', + ), + 12 => + array ( + 'message' => 'Fixed bug #69398 (IntlDateFormatter formatObject returns wrong value when time style is NONE).', + 'raw' => 'Fixed bug #69398 (IntlDateFormatter formatObject returns wrong value when time style is NONE). (lenhatanh86 at gmail com)', + ), + 13 => + array ( + 'message' => 'Fixed bug #73218 (add mitigation for ICU int overflow).', + 'raw' => 'Fixed bug #73218 (add mitigation for ICU int overflow). (Stas)', + ), + 14 => + array ( + 'message' => 'Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence).', + 'raw' => 'Fixed bug #65732 (grapheme_*() is not Unicode compliant on CR LF sequence). (cmb)', + ), + 15 => + array ( + 'message' => 'Fixed bug #73007 (add locale length check).', + 'raw' => 'Fixed bug #73007 (add locale length check). (Stas)', + ), + 16 => + array ( + 'message' => 'Fixed bug #72639 (Segfault when instantiating class that extends IntlCalendar and adds a property).', + 'raw' => 'Fixed bug #72639 (Segfault when instantiating class that extends IntlCalendar and adds a property). (Laruence)', + ), + 17 => + array ( + 'message' => 'Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names).', + 'raw' => 'Partially fixed #72506 (idn_to_ascii for UTS #46 incorrect for long domain names). (cmb)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access).', + 'raw' => 'Fixed bug #72533 (locale_accept_from_http out-of-bounds access). (Stas)', + ), + 19 => + array ( + 'message' => 'Fixed bug #70484 (selectordinal doesn\'t work with named parameters).', + 'raw' => 'Fixed bug #70484 (selectordinal doesn\'t work with named parameters). (Anatol)', + ), + 20 => + array ( + 'message' => 'Fixed bug #64524 (Add intl.use_exceptions to php.ini-*).', + 'raw' => 'Fixed bug #64524 (Add intl.use_exceptions to php.ini-*). (Anatol)', + ), + 21 => + array ( + 'message' => 'Fixed bug #72241 (get_icu_value_internal out-of-bounds read).', + 'raw' => 'Fixed bug #72241 (get_icu_value_internal out-of-bounds read). (Stas)', + ), + 22 => + array ( + 'message' => 'Fixed bug #71516 (IntlDateFormatter looses locale if pattern is set via constructor).', + 'raw' => 'Fixed bug #71516 (IntlDateFormatter looses locale if pattern is set via constructor). (Anatol)', + ), + 23 => + array ( + 'message' => 'Fixed bug #70455 (Missing constant: IntlChar::NO_NUMERIC_VALUE).', + 'raw' => 'Fixed bug #70455 (Missing constant: IntlChar::NO_NUMERIC_VALUE). (Anatol)', + ), + 24 => + array ( + 'message' => 'Fixed bug #70451, #70452 (Inconsistencies in return values of IntlChar methods).', + 'raw' => 'Fixed bug #70451, #70452 (Inconsistencies in return values of IntlChar methods). (Daniel Persson)', + ), + 25 => + array ( + 'message' => 'Fixed bug #68893 (Stackoverflow in datefmt_create).', + 'raw' => 'Fixed bug #68893 (Stackoverflow in datefmt_create). (Anatol)', + ), + 26 => + array ( + 'message' => 'Fixed bug #66289 (Locale::lookup incorrectly returns en or en_US if locale is empty).', + 'raw' => 'Fixed bug #66289 (Locale::lookup incorrectly returns en or en_US if locale is empty). (Anatol)', + ), + 27 => + array ( + 'message' => 'Fixed bug #70484 (selectordinal doesn\'t work with named parameters).', + 'raw' => 'Fixed bug #70484 (selectordinal doesn\'t work with named parameters). (Anatol)', + ), + 28 => + array ( + 'message' => 'Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative offset).', + 'raw' => 'Fixed bug #72061 (Out-of-bounds reads in zif_grapheme_stripos with negative offset). (Stas)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Introduced encoder struct instead of global which fixes bugs #66025 and #73254 related to pretty print indentation.', + 'raw' => 'Introduced encoder struct instead of global which fixes bugs #66025 and #73254 related to pretty print indentation. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73113 (Segfault with throwing JsonSerializable).', + 'raw' => 'Fixed bug #73113 (Segfault with throwing JsonSerializable). (julien)', + ), + 2 => + array ( + 'message' => 'Implemented earlier return when json_encode fails, fixes bugs #68992 (Stacking exceptions thrown by JsonSerializable) and #70275 (On recursion error, json_encode can eat up all system memory).', + 'raw' => 'Implemented earlier return when json_encode fails, fixes bugs #68992 (Stacking exceptions thrown by JsonSerializable) and #70275 (On recursion error, json_encode can eat up all system memory). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Implemented FR #46600 ("_empty_" key in objects).', + 'raw' => 'Implemented FR #46600 ("_empty_" key in objects). (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Exported JSON parser API including json_parser_method that can be used for implementing custom logic when parsing JSON.', + 'raw' => 'Exported JSON parser API including json_parser_method that can be used for implementing custom logic when parsing JSON. (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Escaped U+2028 and U+2029 when JSON_UNESCAPED_UNICODE is supplied as json_encode options and added JSON_UNESCAPED_LINE_TERMINATORS to restore the previous behaviour.', + 'raw' => 'Escaped U+2028 and U+2029 when JSON_UNESCAPED_UNICODE is supplied as json_encode options and added JSON_UNESCAPED_LINE_TERMINATORS to restore the previous behaviour. (Eddie Kohler)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72069 (Behavior \\JsonSerializable different from json_encode).', + 'raw' => 'Fixed bug #72069 (Behavior \\JsonSerializable different from json_encode). (Laruence)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Providing an unknown modification type to ldap_batch_modify() will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Providing an unknown modification type to ldap_batch_modify() will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71249 (ldap_mod_replace/ldap_mod_add store value as string "Array").', + 'raw' => 'Fixed bug #71249 (ldap_mod_replace/ldap_mod_add store value as string "Array"). (Laruence)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73532 (Null pointer dereference in mb_eregi).', + 'raw' => 'Fixed bug #73532 (Null pointer dereference in mb_eregi). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66964 (mb_convert_variables() cannot detect recursion)', + 'raw' => 'Fixed bug #66964 (mb_convert_variables() cannot detect recursion) (Yasuo)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72992 (mbstring.internal_encoding doesn\'t inherit default_charset).', + 'raw' => 'Fixed bug #72992 (mbstring.internal_encoding doesn\'t inherit default_charset). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66797 (mb_substr only takes 32-bit signed integer).', + 'raw' => 'Fixed bug #66797 (mb_substr only takes 32-bit signed integer). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72711 (`mb_ereg` does not clear the `$regs` parameter on failure).', + 'raw' => 'Fixed bug #72711 (`mb_ereg` does not clear the `$regs` parameter on failure). (ju1ius)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width).', + 'raw' => 'Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width).', + 'raw' => 'Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72694 (mb_ereg_search_setpos does not accept a string\'s last position).', + 'raw' => 'Fixed bug #72694 (mb_ereg_search_setpos does not accept a string\'s last position). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error).', + 'raw' => 'Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error). (ju1ius)', + ), + 9 => + array ( + 'message' => 'Deprecated mb_ereg_replace() eval option.', + 'raw' => 'Deprecated mb_ereg_replace() eval option. (Rouven Weßling, cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug #69151 (mb_ereg should reject ill-formed byte sequence).', + 'raw' => 'Fixed bug #69151 (mb_ereg should reject ill-formed byte sequence). (Masaki Kagaya)', + ), + 11 => + array ( + 'message' => 'Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - oob read access).', + 'raw' => 'Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - oob read access). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #72399 (Use-After-Free in MBString (search_re)).', + 'raw' => 'Fixed bug #72399 (Use-After-Free in MBString (search_re)). (Laruence)', + ), + 13 => + array ( + 'message' => 'mb_ereg() and mb_eregi() will now throw an instance of ParseError if an invalid PHP expression is provided and the \'e\' option is used.', + 'raw' => 'mb_ereg() and mb_eregi() will now throw an instance of ParseError if an invalid PHP expression is provided and the \'e\' option is used. (Aaron Piotrowski)', + ), + 14 => + array ( + 'message' => 'Fixed bug #66797 (mb_substr only takes 32-bit signed integer).', + 'raw' => 'Fixed bug #66797 (mb_substr only takes 32-bit signed integer). (cmb)', + ), + 15 => + array ( + 'message' => 'Fixed bug #66964 (mb_convert_variables() cannot detect recursion)', + 'raw' => 'Fixed bug #66964 (mb_convert_variables() cannot detect recursion) (Yasuo)', + ), + 16 => + array ( + 'message' => 'Fixed bug #72992 (mbstring.internal_encoding doesn\'t inherit default_charset).', + 'raw' => 'Fixed bug #72992 (mbstring.internal_encoding doesn\'t inherit default_charset). (Yasuo)', + ), + 17 => + array ( + 'message' => 'Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width).', + 'raw' => 'Fixed bug #72691 (mb_ereg_search raises a warning if a match zero-width). (cmb)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width).', + 'raw' => 'Fixed bug #72693 (mb_ereg_search increments search position when a match zero-width). (cmb)', + ), + 19 => + array ( + 'message' => 'Fixed bug #72694 (mb_ereg_search_setpos does not accept a string\'s last position).', + 'raw' => 'Fixed bug #72694 (mb_ereg_search_setpos does not accept a string\'s last position). (cmb)', + ), + 20 => + array ( + 'message' => 'Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error).', + 'raw' => 'Fixed bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error). (ju1ius)', + ), + 21 => + array ( + 'message' => 'Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - oob read access).', + 'raw' => 'Fixed bug #72405 (mb_ereg_replace - mbc_to_code (oniguruma) - oob read access). (Laruence)', + ), + 22 => + array ( + 'message' => 'Fixed bug #72399 (Use-After-Free in MBString (search_re)).', + 'raw' => 'Fixed bug #72399 (Use-After-Free in MBString (search_re)). (Laruence)', + ), + 23 => + array ( + 'message' => 'Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). (CVE-2016-5768)', + 'raw' => 'Fixed bug #72402 (_php_mb_regex_ereg_replace_exec - double free). (CVE-2016-5768) (Stas)', + ), + 24 => + array ( + 'message' => 'Fixed bug #72164 (Null Pointer Dereference - mb_ereg_replace).', + 'raw' => 'Fixed bug #72164 (Null Pointer Dereference - mb_ereg_replace). (Laruence)', + ), + 25 => + array ( + 'message' => 'Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut). (CVE-2016-4073)', + 'raw' => 'Fixed bug #71906 (AddressSanitizer: negative-size-param (-1) in mbfl_strcut). (CVE-2016-4073) (Stas)', + ), + 26 => + array ( + 'message' => 'Fixed bug #71397 (mb_send_mail segmentation fault).', + 'raw' => 'Fixed bug #71397 (mb_send_mail segmentation fault). (Andrea, Yasuo)', + ), + 27 => + array ( + 'message' => 'Fixed bug #71066 (mb_send_mail: Program terminated with signal SIGSEGV, Segmentation fault).', + 'raw' => 'Fixed bug #71066 (mb_send_mail: Program terminated with signal SIGSEGV, Segmentation fault). (Laruence)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'Deprecated ext/mcrypt.', + 'raw' => 'Deprecated ext/mcrypt. (Scott Arciszewski, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72782 (Heap Overflow due to integer overflows).', + 'raw' => 'Fixed bug #72782 (Heap Overflow due to integer overflows). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to heap overflow in mdecrypt_generic).', + 'raw' => 'Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to heap overflow in mdecrypt_generic). (Stas)', + ), + 3 => + array ( + 'message' => 'mcrypt_encrypt() and mcrypt_decrypt() will throw an instance of Error instead of resulting in a fatal error if mcrypt cannot be initialized.', + 'raw' => 'mcrypt_encrypt() and mcrypt_decrypt() will throw an instance of Error instead of resulting in a fatal error if mcrypt cannot be initialized. (Aaron Piotrowski)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72782 (Heap Overflow due to integer overflows).', + 'raw' => 'Fixed bug #72782 (Heap Overflow due to integer overflows). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to heap overflow in mdecrypt_generic).', + 'raw' => 'Fixed bug #72551, bug #72552 (In correct casting from size_t to int lead to heap overflow in mdecrypt_generic). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769)', + 'raw' => 'Fixed bug #72455 (Heap Overflow due to integer overflows). (CVE-2016-5769) (Stas)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Attempting to read an invalid or write to a readonly property will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Attempting to read an invalid or write to a readonly property will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*).', + 'raw' => 'Fixed bug #64526 (Add missing mysqlnd.* parameters to php.ini-*). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71863 (Segfault when EXPLAIN with "Unknown column" error when using MariaDB).', + 'raw' => 'Fixed bug #71863 (Segfault when EXPLAIN with "Unknown column" error when using MariaDB). (Andrey)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72701 (mysqli_get_host_info() wrong output).', + 'raw' => 'Fixed bug #72701 (mysqli_get_host_info() wrong output). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #71148 (Bind reference overwritten on PHP 7).', + 'raw' => 'Fixed bug #71148 (Bind reference overwritten on PHP 7). (Oracle Corp.)', + ), + 4 => + array ( + 'message' => 'Fixed invalid handle error with Implicit Result Sets.', + 'raw' => 'Fixed invalid handle error with Implicit Result Sets. (Chris Jones)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72524 (Binding null values triggers ORA-24816 error).', + 'raw' => 'Fixed bug #72524 (Binding null values triggers ORA-24816 error). (Chris Jones)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72489 (PHP Crashes When Modifying Array Containing MySQLi Result Data).', + 'raw' => 'Fixed bug #72489 (PHP Crashes When Modifying Array Containing MySQLi Result Data). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72293 (Heap overflow in mysqlnd related to BIT fields).', + 'raw' => 'Fixed bug #72293 (Heap overflow in mysqlnd related to BIT fields). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed invalid handle error with Implicit Result Sets.', + 'raw' => 'Fixed invalid handle error with Implicit Result Sets. (Chris Jones)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72524 (Binding null values triggers ORA-24816 error).', + 'raw' => 'Fixed bug #72524 (Binding null values triggers ORA-24816 error). (Chris Jones)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73448 (odbc_errormsg returns trash, always 513 bytes).', + 'raw' => 'Fixed bug #73448 (odbc_errormsg returns trash, always 513 bytes). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63171 (Script hangs after max_execution_time).', + 'raw' => 'Fixed bug #63171 (Script hangs after max_execution_time). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #47803, #69526 (Executing prepared statements is succesfull only for the first two statements).', + 'raw' => 'Fixed bug #47803, #69526 (Executing prepared statements is succesfull only for the first two statements). (einavitamar at gmail dot com, Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73583 (Segfaults when conditionally declared class and function have the same name).', + 'raw' => 'Fixed bug #73583 (Segfaults when conditionally declared class and function have the same name). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69090', + 'raw' => 'Fixed bug #69090 (check cached files permissions)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function).', + 'raw' => 'Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72949 (Typo in opcache error message).', + 'raw' => 'Fixed bug #72949 (Typo in opcache error message). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72762 (Infinite loop while parsing a file with opcache enabled).', + 'raw' => 'Fixed bug #72762 (Infinite loop while parsing a file with opcache enabled). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72590 (Opcache restart with kill_all_lockers does not work).', + 'raw' => 'Fixed bug #72590 (Opcache restart with kill_all_lockers does not work). (Keyur)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function).', + 'raw' => 'Fixed bug #72982 (Memory leak in zend_accel_blacklist_update_regexp() function). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72949 (Typo in opcache error message).', + 'raw' => 'Fixed bug #72949 (Typo in opcache error message). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72590 (Opcache restart with kill_all_lockers does not work).', + 'raw' => 'Fixed bug #72590 (Opcache restart with kill_all_lockers does not work). (Keyur)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error).', + 'raw' => 'Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error). (Laruence)', + ), + 10 => + array ( + 'message' => 'Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER).', + 'raw' => 'Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache).', + 'raw' => 'Fixed bug #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache). (Yussuf Khalil)', + ), + 12 => + array ( + 'message' => 'Fixed bug #71127 (Define in auto_prepend_file is overwrite).', + 'raw' => 'Fixed bug #71127 (Define in auto_prepend_file is overwrite). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73478 (openssl_pkey_new() generates wrong pub/priv keys with Diffie Hellman).', + 'raw' => 'Fixed bug #73478 (openssl_pkey_new() generates wrong pub/priv keys with Diffie Hellman). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73276 (crash in openssl_random_pseudo_bytes function).', + 'raw' => 'Fixed bug #73276 (crash in openssl_random_pseudo_bytes function). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73072 (Invalid path SNI_server_certs causes segfault).', + 'raw' => 'Fixed bug #73072 (Invalid path SNI_server_certs causes segfault). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72360 (ext/openssl build failure with OpenSSL 1.1.0).', + 'raw' => 'Fixed bug #72360 (ext/openssl build failure with OpenSSL 1.1.0). (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Bumped a minimal version to 1.0.1.', + 'raw' => 'Bumped a minimal version to 1.0.1. (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Dropped support for SSL2.', + 'raw' => 'Dropped support for SSL2. (Remi)', + ), + 6 => + array ( + 'message' => 'Implemented FR #61204 (Add elliptic curve support for OpenSSL).', + 'raw' => 'Implemented FR #61204 (Add elliptic curve support for OpenSSL). (Dominic Luechinger)', + ), + 7 => + array ( + 'message' => 'Implemented FR #67304 (Added AEAD support [CCM and GCM modes] to openssl_encrypt and openssl_decrypt).', + 'raw' => 'Implemented FR #67304 (Added AEAD support [CCM and GCM modes] to openssl_encrypt and openssl_decrypt). (Jakub Zelenka)', + ), + 8 => + array ( + 'message' => 'Implemented error storing to the global queue and cleaning up the OpenSSL error queue (resolves bugs #68276 and #69882).', + 'raw' => 'Implemented error storing to the global queue and cleaning up the OpenSSL error queue (resolves bugs #68276 and #69882). (Jakub Zelenka)', + ), + 9 => + array ( + 'message' => 'Implemented asynchronous signal handling without TICKS.', + 'raw' => 'Implemented asynchronous signal handling without TICKS. (Dmitry)', + ), + 10 => + array ( + 'message' => 'Added pcntl_signal_get_handler() that returns the current signal handler for a particular signal. Addresses FR #72409.', + 'raw' => 'Added pcntl_signal_get_handler() that returns the current signal handler for a particular signal. Addresses FR #72409. (David Walker)', + ), + 11 => + array ( + 'message' => 'Add signinfo to pcntl_signal() handler args', + 'raw' => 'Add signinfo to pcntl_signal() handler args (Bishop Bettini, David Walker)', + ), + 12 => + array ( + 'message' => 'Fixed bug #73072 (Invalid path SNI_server_certs causes segfault).', + 'raw' => 'Fixed bug #73072 (Invalid path SNI_server_certs causes segfault). (Jakub Zelenka)', + ), + 13 => + array ( + 'message' => 'Fixed bug #73276 (crash in openssl_random_pseudo_bytes function).', + 'raw' => 'Fixed bug #73276 (crash in openssl_random_pseudo_bytes function). (Stas)', + ), + 14 => + array ( + 'message' => 'Fixed bug #73275 (crash in openssl_encrypt function).', + 'raw' => 'Fixed bug #73275 (crash in openssl_encrypt function). (Stas)', + ), + 15 => + array ( + 'message' => 'Fixed bug #72140 (segfault after calling ERR_free_strings()).', + 'raw' => 'Fixed bug #72140 (segfault after calling ERR_free_strings()). (Jakub Zelenka)', + ), + 16 => + array ( + 'message' => 'Fixed bug #72165 (Null pointer dereference - openssl_csr_new).', + 'raw' => 'Fixed bug #72165 (Null pointer dereference - openssl_csr_new). (Anatol)', + ), + 17 => + array ( + 'message' => 'Fixed bug #71475 (openssl_seal() uninitialized memory usage).', + 'raw' => 'Fixed bug #71475 (openssl_seal() uninitialized memory usage). (Stas)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73483 (Segmentation fault on pcre_replace_callback).', + 'raw' => 'Fixed bug #73483 (Segmentation fault on pcre_replace_callback). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73612 (preg_*() may leak memory).', + 'raw' => 'Fixed bug #73612 (preg_*() may leak memory). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73392 (A use-after-free in zend allocator management).', + 'raw' => 'Fixed bug #73392 (A use-after-free in zend allocator management). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73121 (Bundled PCRE doesn\'t compile because JIT isn\'t supported on s390).', + 'raw' => 'Fixed bug #73121 (Bundled PCRE doesn\'t compile because JIT isn\'t supported on s390). (Anatol)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72688 (preg_match missing group names in matches).', + 'raw' => 'Fixed bug #72688 (preg_match missing group names in matches). (cmb)', + ), + 5 => + array ( + 'message' => 'Downgraded to PCRE 8.38.', + 'raw' => 'Downgraded to PCRE 8.38. (Anatol)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72476 (Memleak in jit_stack).', + 'raw' => 'Fixed bug #72476 (Memleak in jit_stack). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72463 (mail fails with invalid argument).', + 'raw' => 'Fixed bug #72463 (mail fails with invalid argument). (Anatol)', + ), + 8 => + array ( + 'message' => 'Upgraded to PCRE 8.39.', + 'raw' => 'Upgraded to PCRE 8.39. (Anatol)', + ), + 9 => + array ( + 'message' => 'Fixed bug #73121 (Bundled PCRE doesn\'t compile because JIT isn\'t supported on s390).', + 'raw' => 'Fixed bug #73121 (Bundled PCRE doesn\'t compile because JIT isn\'t supported on s390). (Anatol)', + ), + 10 => + array ( + 'message' => 'Fixed bug #73174 (heap overflow in php_pcre_replace_impl).', + 'raw' => 'Fixed bug #73174 (heap overflow in php_pcre_replace_impl). (Stas)', + ), + 11 => + array ( + 'message' => 'Fixed bug #72688 (preg_match missing group names in matches).', + 'raw' => 'Fixed bug #72688 (preg_match missing group names in matches). (cmb)', + ), + 12 => + array ( + 'message' => 'Fixed bug #72476 (Memleak in jit_stack).', + 'raw' => 'Fixed bug #72476 (Memleak in jit_stack). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #72463 (mail fails with invalid argument).', + 'raw' => 'Fixed bug #72463 (mail fails with invalid argument). (Anatol)', + ), + 14 => + array ( + 'message' => 'Fixed bug #72143 (preg_replace uses int instead of size_t).', + 'raw' => 'Fixed bug #72143 (preg_replace uses int instead of size_t). (Joe)', + ), + 15 => + array ( + 'message' => 'Fixed bug #71659 (segmentation fault in pcre running twig tests).', + 'raw' => 'Fixed bug #71659 (segmentation fault in pcre running twig tests). (nish dot aravamudan at canonical dot com)', + ), + 16 => + array ( + 'message' => 'Fixed bug #71537 (PCRE segfault from Opcache).', + 'raw' => 'Fixed bug #71537 (PCRE segfault from Opcache). (Laruence)', + ), + 17 => + array ( + 'message' => 'Upgraded pcrelib to 8.38.', + 'raw' => 'Upgraded pcrelib to 8.38. (CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394)', + ), + 18 => + array ( + 'message' => 'Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not already set).', + 'raw' => 'Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not already set). (Laruence)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72788 (Invalid memory access when using persistent PDO connection).', + 'raw' => 'Fixed bug #72788 (Invalid memory access when using persistent PDO connection). (Keyur)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72791 (Memory leak in PDO persistent connection handling).', + 'raw' => 'Fixed bug #72791 (Memory leak in PDO persistent connection handling). (Keyur)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false).', + 'raw' => 'Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72788 (Invalid memory access when using persistent PDO connection).', + 'raw' => 'Fixed bug #72788 (Invalid memory access when using persistent PDO connection). (Keyur)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72791 (Memory leak in PDO persistent connection handling).', + 'raw' => 'Fixed bug #72791 (Memory leak in PDO persistent connection handling). (Keyur)', + ), + 5 => + array ( + 'message' => 'Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false).', + 'raw' => 'Fixed bug #60665 (call to empty() on NULL result using PDO::FETCH_LAZY returns false). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #52098 (Own PDOStatement implementation ignore __call()).', + 'raw' => 'Fixed bug #52098 (Own PDOStatement implementation ignore __call()). (Daniel kalaspuffar, Julien)', + ), + 7 => + array ( + 'message' => 'Fixed bug #71447 (Quotes inside comments not properly handled).', + 'raw' => 'Fixed bug #71447 (Quotes inside comments not properly handled). (Matteo)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72414 (Never quote values as raw binary data).', + 'raw' => 'Fixed bug #72414 (Never quote values as raw binary data). (Adam Baratz)', + ), + 1 => + array ( + 'message' => 'Allow \\PDO::setAttribute() to set query timeouts.', + 'raw' => 'Allow \\PDO::setAttribute() to set query timeouts. (Adam Baratz)', + ), + 2 => + array ( + 'message' => 'Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions.', + 'raw' => 'Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions. (Adam Baratz)', + ), + 3 => + array ( + 'message' => 'Add common PDO test suite.', + 'raw' => 'Add common PDO test suite. (Adam Baratz)', + ), + 4 => + array ( + 'message' => 'Free error and message strings when cleaning up PDO instances.', + 'raw' => 'Free error and message strings when cleaning up PDO instances. (Adam Baratz)', + ), + 5 => + array ( + 'message' => 'Fixed bug #67130 (\\PDOStatement::nextRowset() should succeed when all rows in current rowset haven\'t been fetched).', + 'raw' => 'Fixed bug #67130 (\\PDOStatement::nextRowset() should succeed when all rows in current rowset haven\'t been fetched). (Peter LeBrun)', + ), + 6 => + array ( + 'message' => 'Ignore potentially misleading dberr values.', + 'raw' => 'Ignore potentially misleading dberr values. (Chris Kings-Lynne)', + ), + 7 => + array ( + 'message' => 'Implemented stringify \'uniqueidentifier\' fields.', + 'raw' => 'Implemented stringify \'uniqueidentifier\' fields. (Alexander Zhuravlev, Adam Baratz)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72414 (Never quote values as raw binary data).', + 'raw' => 'Fixed bug #72414 (Never quote values as raw binary data). (Adam Baratz)', + ), + 9 => + array ( + 'message' => 'Allow \\PDO::setAttribute() to set query timeouts.', + 'raw' => 'Allow \\PDO::setAttribute() to set query timeouts. (Adam Baratz)', + ), + 10 => + array ( + 'message' => 'Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions.', + 'raw' => 'Handle SQLDECIMAL/SQLNUMERIC types, which are used by later TDS versions. (Adam Baratz)', + ), + 11 => + array ( + 'message' => 'Add common PDO test suite.', + 'raw' => 'Add common PDO test suite. (Adam Baratz)', + ), + 12 => + array ( + 'message' => 'Free error and message strings when cleaning up PDO instances.', + 'raw' => 'Free error and message strings when cleaning up PDO instances. (Adam Baratz)', + ), + 13 => + array ( + 'message' => 'Fixed bug #67130 (\\PDOStatement::nextRowset() should succeed when all rows in current rowset haven\'t been fetched).', + 'raw' => 'Fixed bug #67130 (\\PDOStatement::nextRowset() should succeed when all rows in current rowset haven\'t been fetched). (Peter LeBrun)', + ), + 14 => + array ( + 'message' => 'Ignore potentially misleading dberr values.', + 'raw' => 'Ignore potentially misleading dberr values. (Chris Kings-Lynne)', + ), + 15 => + array ( + 'message' => 'Implemented stringify \'uniqueidentifier\' fields.', + 'raw' => 'Implemented stringify \'uniqueidentifier\' fields. (Alexander Zhuravlev, Adam Baratz)', + ), + 16 => + array ( + 'message' => 'Fixed bug #71943 (dblib_handle_quoter needs to allocate an extra byte).', + 'raw' => 'Fixed bug #71943 (dblib_handle_quoter needs to allocate an extra byte). (Adam Baratz)', + ), + 17 => + array ( + 'message' => 'Add DBLIB-specific attributes for controlling timeouts.', + 'raw' => 'Add DBLIB-specific attributes for controlling timeouts. (Adam Baratz)', + ), + 18 => + array ( + 'message' => 'Fixed bug #54648 (PDO::MSSQL forces format of datetime fields).', + 'raw' => 'Fixed bug #54648 (PDO::MSSQL forces format of datetime fields). (steven dot lambeth at gmx dot de, Anatol)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73087, #61183, #71494 (Memory corruption in bindParam).', + 'raw' => 'Fixed bug #73087, #61183, #71494 (Memory corruption in bindParam). (Dorin Marcoci)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60052 (Integer returned as a 64bit integer on X86_64).', + 'raw' => 'Fixed bug #60052 (Integer returned as a 64bit integer on X86_64). (Mariuz)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70313 (PDO statement fails to throw exception).', + 'raw' => 'Fixed bug #70313 (PDO statement fails to throw exception). (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72570 (Segmentation fault when binding parameters on a query without placeholders).', + 'raw' => 'Fixed bug #72570 (Segmentation fault when binding parameters on a query without placeholders). (Matteo)', + ), + 2 => + array ( + 'message' => 'Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence).', + 'raw' => 'Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence). (Pablo Santiago Sánchez, Matteo)', + ), + 3 => + array ( + 'message' => 'Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence).', + 'raw' => 'Implemented FR #72633 (Postgres PDO lastInsertId() should work without specifying a sequence). (Pablo Santiago Sánchez, Matteo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72759 (Regression in pgo_pgsql).', + 'raw' => 'Fixed bug #72759 (Regression in pgo_pgsql). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70313 (PDO statement fails to throw exception).', + 'raw' => 'Fixed bug #70313 (PDO statement fails to throw exception). (Matteo)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72570 (Segmentation fault when binding parameters on a query without placeholders).', + 'raw' => 'Fixed bug #72570 (Segmentation fault when binding parameters on a query without placeholders). (Matteo)', + ), + 7 => + array ( + 'message' => 'Fixed bug #71573 (Segfault (core dumped) if paramno beyond bound).', + 'raw' => 'Fixed bug #71573 (Segfault (core dumped) if paramno beyond bound). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72294 (Segmentation fault/invalid pointer in connection with pgsql_stmt_dtor).', + 'raw' => 'Fixed bug #72294 (Segmentation fault/invalid pointer in connection with pgsql_stmt_dtor). (Anatol)', + ), + 9 => + array ( + 'message' => 'Fixed bug #62498 (pdo_pgsql inefficient when getColumnMeta() is used).', + 'raw' => 'Fixed bug #62498 (pdo_pgsql inefficient when getColumnMeta() is used). (Joseph Bylund)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile).', + 'raw' => 'Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile).', + 'raw' => 'Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile).', + 'raw' => 'Fixed bug #72928 (Out of bound when verify signature of zip phar in phar_parse_zipfile). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile).', + 'raw' => 'Fixed bug #73035 (Out of bound when verify signature of tar phar in phar_parse_tarfile). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72321 (invalid free in phar_extract_file()).', + 'raw' => 'Fixed bug #72321 (invalid free in phar_extract_file()). (hji at dyntopia dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71625 (Crash in php7.dll with bad phar filename).', + 'raw' => 'Fixed bug #71625 (Crash in php7.dll with bad phar filename). (Anatol)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71317 (PharData fails to open specific file).', + 'raw' => 'Fixed bug #71317 (PharData fails to open specific file). (Jos Elstgeest)', + ), + 7 => + array ( + 'message' => 'Fixed bug #71860 (Invalid memory write in phar on filename with \\0 in name). (CVE-2016-4072)', + 'raw' => 'Fixed bug #71860 (Invalid memory write in phar on filename with \\0 in name). (CVE-2016-4072) (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342)', + 'raw' => 'Fixed bug #71354 (Heap corruption in tar/zip/phar parser). (CVE-2016-4342) (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). (CVE-2016-4343)', + 'raw' => 'Fixed bug #71331 (Uninitialized pointer in phar_make_dirstream()). (CVE-2016-4343) (Stas)', + ), + 10 => + array ( + 'message' => 'Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()).', + 'raw' => 'Fixed bug #71391 (NULL Pointer Dereference in phar_tar_setupmetadata()). (Stas)', + ), + 11 => + array ( + 'message' => 'Fixed bug #71488 (Stack overflow when decompressing tar archives). (CVE-2016-2554)', + 'raw' => 'Fixed bug #71488 (Stack overflow when decompressing tar archives). (CVE-2016-2554) (Stas)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Added generator command for inspection of currently alive generators.', + 'raw' => 'Added generator command for inspection of currently alive generators. (Bob)', + ), + 1 => + array ( + 'message' => 'Properly allow for stdin input from a file.', + 'raw' => 'Properly allow for stdin input from a file. (Bob)', + ), + 2 => + array ( + 'message' => 'Add -s command line option / stdin command for reading script from stdin.', + 'raw' => 'Add -s command line option / stdin command for reading script from stdin. (Bob)', + ), + 3 => + array ( + 'message' => 'Ignore non-executable opcodes in line mode of phpdbg_end_oplog().', + 'raw' => 'Ignore non-executable opcodes in line mode of phpdbg_end_oplog(). (Bob)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70776 (Simple SIGINT does not have any effect with -rr).', + 'raw' => 'Fixed bug #70776 (Simple SIGINT does not have any effect with -rr). (Bob)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71234 (INI files are loaded even invoked as -n --version).', + 'raw' => 'Fixed bug #71234 (INI files are loaded even invoked as -n --version). (Bob)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72996 (phpdbg_prompt.c undefined reference to DL_LOAD).', + 'raw' => 'Fixed bug #72996 (phpdbg_prompt.c undefined reference to DL_LOAD). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed next command not stopping when leaving function.', + 'raw' => 'Fixed next command not stopping when leaving function. (Bob)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72284 (phpdbg fatal errors with coverage).', + 'raw' => 'Fixed bug #72284 (phpdbg fatal errors with coverage). (Bob)', + ), + 9 => + array ( + 'message' => 'Fixed crash when advancing (except step) inside an internal function.', + 'raw' => 'Fixed crash when advancing (except step) inside an internal function. (Bob)', + ), + 10 => + array ( + 'message' => 'Fixed inherited functions from unspecified files being included in phpdbg_get_executable().', + 'raw' => 'Fixed inherited functions from unspecified files being included in phpdbg_get_executable(). (Bob)', + ), + ), + 'postgres' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()).', + 'raw' => 'Fixed bug #73498 (Incorrect SQL generated for pg_copy_to()). (Craig Duncan)', + ), + 1 => + array ( + 'message' => 'Implemented FR #31021 (pg_last_notice() is needed to get all notice messages).', + 'raw' => 'Implemented FR #31021 (pg_last_notice() is needed to get all notice messages). (Yasuo)', + ), + 2 => + array ( + 'message' => 'Implemented FR #48532 (Allow pg_fetch_all() to index numerically).', + 'raw' => 'Implemented FR #48532 (Allow pg_fetch_all() to index numerically). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72195 (pg_pconnect/pg_connect cause use-after-free).', + 'raw' => 'Fixed bug #72195 (pg_pconnect/pg_connect cause use-after-free). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72197 (pg_lo_create arbitrary read).', + 'raw' => 'Fixed bug #72197 (pg_lo_create arbitrary read). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72028 (pg_query_params(): NULL converts to empty string).', + 'raw' => 'Fixed bug #72028 (pg_query_params(): NULL converts to empty string). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71062 (pg_convert() doesn\'t accept ISO 8601 for datatype timestamp).', + 'raw' => 'Fixed bug #71062 (pg_convert() doesn\'t accept ISO 8601 for datatype timestamp). (denver at timothy dot io)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72151 (mysqli_fetch_object changed behaviour).', + 'raw' => 'Fixed bug #72151 (mysqli_fetch_object changed behaviour). (Anatol)', + ), + 8 => + array ( + 'message' => 'Fixed bug #71820 (pg_fetch_object binds parameters before call constructor).', + 'raw' => 'Fixed bug #71820 (pg_fetch_object binds parameters before call constructor). (Anatol)', + ), + 9 => + array ( + 'message' => 'Fixed bug #71998 (Function pg_insert does not insert when column type = inet).', + 'raw' => 'Fixed bug #71998 (Function pg_insert does not insert when column type = inet). (Anatol)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72538 (readline_redisplay crashes php).', + 'raw' => 'Fixed bug #72538 (readline_redisplay crashes php). (Laruence)', + ), + 1 => + array ( + 'message' => 'Undo backwards compatiblity break in ReflectionType->__toString() and deprecate via documentation instead.', + 'raw' => 'Undo backwards compatiblity break in ReflectionType->__toString() and deprecate via documentation instead. (Nikita)', + ), + 2 => + array ( + 'message' => 'Reverted prepending \\ for class names.', + 'raw' => 'Reverted prepending \\ for class names. (Trowski)', + ), + 3 => + array ( + 'message' => 'Implemented request #38992 (invoke() and invokeArgs() static method calls should match). .', + 'raw' => 'Implemented request #38992 (invoke() and invokeArgs() static method calls should match). (cmb).', + ), + 4 => + array ( + 'message' => 'Add ReflectionNamedType::getName(). This method should be used instead of ReflectionType::__toString()', + 'raw' => 'Add ReflectionNamedType::getName(). This method should be used instead of ReflectionType::__toString()', + ), + 5 => + array ( + 'message' => 'Prepend \\ for class names and ? for nullable types returned from ReflectionType::__toString().', + 'raw' => 'Prepend \\ for class names and ? for nullable types returned from ReflectionType::__toString(). (Trowski)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72661 (ReflectionType::__toString crashes with iterable).', + 'raw' => 'Fixed bug #72661 (ReflectionType::__toString crashes with iterable). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72222 (ReflectionClass::export doesn\'t handle array constants).', + 'raw' => 'Fixed bug #72222 (ReflectionClass::export doesn\'t handle array constants). (Nikita Nefedov)', + ), + 8 => + array ( + 'message' => 'Failure to retrieve a reflection object or retrieve an object property will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Failure to retrieve a reflection object or retrieve an object property will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 9 => + array ( + 'message' => 'Fix #72209 (ReflectionProperty::getValue() doesn\'t fail if object doesn\'t match type).', + 'raw' => 'Fix #72209 (ReflectionProperty::getValue() doesn\'t fail if object doesn\'t match type). (Joe)', + ), + 10 => + array ( + 'message' => 'Fixed bug #72538 (readline_redisplay crashes php).', + 'raw' => 'Fixed bug #72538 (readline_redisplay crashes php). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #71094 (readline_completion_function corrupts static array on second TAB).', + 'raw' => 'Fixed bug #71094 (readline_completion_function corrupts static array on second TAB). (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73273 (session_unset() empties values from all variables in which is $_session stored).', + 'raw' => 'Fixed bug #73273 (session_unset() empties values from all variables in which is $_session stored). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73100 (session_destroy null dereference in ps_files_path_create).', + 'raw' => 'Fixed bug #73100 (session_destroy null dereference in ps_files_path_create). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68015 (Session does not report invalid uid for files save handler).', + 'raw' => 'Fixed bug #68015 (Session does not report invalid uid for files save handler). (Yasuo)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72940 (SID always return "name=ID", even if session cookie exist).', + 'raw' => 'Fixed bug #72940 (SID always return "name=ID", even if session cookie exist). (Yasuo)', + ), + 4 => + array ( + 'message' => 'Implemented session_gc() https://wiki.php.net/rfc/session-create-id', + 'raw' => 'Implemented session_gc() (Yasuo) https://wiki.php.net/rfc/session-create-id', + ), + 5 => + array ( + 'message' => 'Implemented session_create_id() https://wiki.php.net/rfc/session-gc', + 'raw' => 'Implemented session_create_id() (Yasuo) https://wiki.php.net/rfc/session-gc', + ), + 6 => + array ( + 'message' => 'Implemented RFC: Session ID without hashing. https://wiki.php.net/rfc/session-id-without-hashing', + 'raw' => 'Implemented RFC: Session ID without hashing. (Yasuo) https://wiki.php.net/rfc/session-id-without-hashing', + ), + 7 => + array ( + 'message' => 'Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow).', + 'raw' => 'Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow). (Laruence)', + ), + 8 => + array ( + 'message' => 'Custom session handlers that do not return strings for session IDs will now throw an instance of Error instead of resulting in a fatal error when a function is called that must generate a session ID.', + 'raw' => 'Custom session handlers that do not return strings for session IDs will now throw an instance of Error instead of resulting in a fatal error when a function is called that must generate a session ID. (Aaron Piotrowski)', + ), + 9 => + array ( + 'message' => 'An invalid setting for session.hash_function will throw an instance of Error instead of resulting in a fatal error when a session ID is created.', + 'raw' => 'An invalid setting for session.hash_function will throw an instance of Error instead of resulting in a fatal error when a session ID is created. (Aaron Piotrowski)', + ), + 10 => + array ( + 'message' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization).', + 'raw' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization). (Stas)', + ), + 11 => + array ( + 'message' => 'Improved fix for bug #68063 (Empty session IDs do still start sessions).', + 'raw' => 'Improved fix for bug #68063 (Empty session IDs do still start sessions). (Yasuo)', + ), + 12 => + array ( + 'message' => 'Fixed bug #71038 (session_start() returns TRUE on failure). Session save handlers must return \'string\' always for successful read. i.e. Non-existing session read must return empty string. PHP 7.0 is made not to tolerate buggy return value.', + 'raw' => 'Fixed bug #71038 (session_start() returns TRUE on failure). Session save handlers must return \'string\' always for successful read. i.e. Non-existing session read must return empty string. PHP 7.0 is made not to tolerate buggy return value. (Yasuo)', + ), + 13 => + array ( + 'message' => 'Fixed bug #71394 (session_regenerate_id() must close opened session on errors).', + 'raw' => 'Fixed bug #71394 (session_regenerate_id() must close opened session on errors). (Yasuo)', + ), + 14 => + array ( + 'message' => 'Fixed bug #73273 (session_unset() empties values from all variables in which is $_session stored).', + 'raw' => 'Fixed bug #73273 (session_unset() empties values from all variables in which is $_session stored). (Nikita)', + ), + 15 => + array ( + 'message' => 'Fixed bug #68015 (Session does not report invalid uid for files save handler).', + 'raw' => 'Fixed bug #68015 (Session does not report invalid uid for files save handler). (Yasuo)', + ), + 16 => + array ( + 'message' => 'Fixed bug #73100 (session_destroy null dereference in ps_files_path_create).', + 'raw' => 'Fixed bug #73100 (session_destroy null dereference in ps_files_path_create). (cmb)', + ), + 17 => + array ( + 'message' => 'Fixed bug #72724 (PHP7: session-uploadprogress kills httpd).', + 'raw' => 'Fixed bug #72724 (PHP7: session-uploadprogress kills httpd). (Nikita)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72940 (SID always return "name=ID", even if session cookie exist).', + 'raw' => 'Fixed bug #72940 (SID always return "name=ID", even if session cookie exist). (Yasuo)', + ), + 19 => + array ( + 'message' => 'Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow).', + 'raw' => 'Fixed bug #72531 (ps_files_cleanup_dir Buffer overflow). (Laruence)', + ), + 20 => + array ( + 'message' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization).', + 'raw' => 'Fixed bug #72562 (Use After Free in unserialize() with Unexpected Session Deserialization). (Stas)', + ), + 21 => + array ( + 'message' => 'Fixed bug #71972 (Cyclic references causing session_start(): Failed to decode session object).', + 'raw' => 'Fixed bug #71972 (Cyclic references causing session_start(): Failed to decode session object). (Laruence)', + ), + 22 => + array ( + 'message' => 'Fixed bug #71683 (Null pointer dereference in zend_hash_str_find_bucket).', + 'raw' => 'Fixed bug #71683 (Null pointer dereference in zend_hash_str_find_bucket). (Yasuo)', + ), + 23 => + array ( + 'message' => 'Fixed bug #71122 (Session GC may not remove obsolete session data).', + 'raw' => 'Fixed bug #71122 (Session GC may not remove obsolete session data). (Yasuo)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()).', + 'raw' => 'Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72971 (SimpleXML isset/unset do not respect namespace).', + 'raw' => 'Fixed bug #72971 (SimpleXML isset/unset do not respect namespace). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72957 (Null coalescing operator doesn\'t behave as expected with SimpleXMLElement).', + 'raw' => 'Fixed bug #72957 (Null coalescing operator doesn\'t behave as expected with SimpleXMLElement). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72588 (Using global var doesn\'t work while accessing SimpleXML element).', + 'raw' => 'Fixed bug #72588 (Using global var doesn\'t work while accessing SimpleXML element). (Laruence)', + ), + 4 => + array ( + 'message' => 'Creating an unnamed or duplicate attribute will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Creating an unnamed or duplicate attribute will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()).', + 'raw' => 'Fixed bug #73293 (NULL pointer dereference in SimpleXMLElement::asXML()). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72971 (SimpleXML isset/unset do not respect namespace).', + 'raw' => 'Fixed bug #72971 (SimpleXML isset/unset do not respect namespace). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72957 (Null coalescing operator doesn\'t behave as expected with SimpleXMLElement).', + 'raw' => 'Fixed bug #72957 (Null coalescing operator doesn\'t behave as expected with SimpleXMLElement). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72588 (Using global var doesn\'t work while accessing SimpleXML element).', + 'raw' => 'Fixed bug #72588 (Using global var doesn\'t work while accessing SimpleXML element). (Laruence)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation).', + 'raw' => 'Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation). (djodjo at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()).', + 'raw' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation).', + 'raw' => 'Fixed bug #72708 (php_snmp_parse_oid integer overflow in memory allocation). (djodjo at gmail dot com)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()).', + 'raw' => 'Fixed bug #72479 (Use After Free Vulnerability in SNMP with GC and unserialize()). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #71704 (php_snmp_error() Format String Vulnerability). (CVE-2016-4071)', + 'raw' => 'Fixed bug #71704 (php_snmp_error() Format String Vulnerability). (CVE-2016-4071) (andrew at jmpesp dot org)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73538 (SoapClient::__setSoapHeaders doesn\'t overwrite SOAP headers).', + 'raw' => 'Fixed bug #73538 (SoapClient::__setSoapHeaders doesn\'t overwrite SOAP headers). (duncan3dc)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73452 (Segfault (Regression for #69152)).', + 'raw' => 'Fixed bug #73452 (Segfault (Regression for #69152)). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73037 (SoapServer reports Bad Request when gzipped).', + 'raw' => 'Fixed bug #73037 (SoapServer reports Bad Request when gzipped). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73237 (Nested object in "any" element overwrites other fields).', + 'raw' => 'Fixed bug #73237 (Nested object in "any" element overwrites other fields). (Keith Smiley)', + ), + 4 => + array ( + 'message' => 'Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient)', + 'raw' => 'Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient) (Keith Smiley)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71711 (Soap Server Member variables reference bug).', + 'raw' => 'Fixed bug #71711 (Soap Server Member variables reference bug). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71996 (Using references in arrays doesn\'t work like expected).', + 'raw' => 'Fixed bug #71996 (Using references in arrays doesn\'t work like expected). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73037 (SoapServer reports Bad Request when gzipped).', + 'raw' => 'Fixed bug #73037 (SoapServer reports Bad Request when gzipped). (Anatol)', + ), + 8 => + array ( + 'message' => 'Fixed bug #73237 (Nested object in "any" element overwrites other fields).', + 'raw' => 'Fixed bug #73237 (Nested object in "any" element overwrites other fields). (Keith Smiley)', + ), + 9 => + array ( + 'message' => 'Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient)', + 'raw' => 'Fixed bug #69137 (Peer verification fails when using a proxy with SoapClient) (Keith Smiley)', + ), + 10 => + array ( + 'message' => 'Fixed bug #71711 (Soap Server Member variables reference bug).', + 'raw' => 'Fixed bug #71711 (Soap Server Member variables reference bug). (Nikita)', + ), + 11 => + array ( + 'message' => 'Fixed bug #71996 (Using references in arrays doesn\'t work like expected).', + 'raw' => 'Fixed bug #71996 (Using references in arrays doesn\'t work like expected). (Nikita)', + ), + 12 => + array ( + 'message' => 'Fixed bug #71986 (Nested foreach assign-by-reference creates broken variables).', + 'raw' => 'Fixed bug #71986 (Nested foreach assign-by-reference creates broken variables). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #71610 (Type Confusion Vulnerability - SOAP / make_http_soap_request()). (CVE-2016-3185)', + 'raw' => 'Fixed bug #71610 (Type Confusion Vulnerability - SOAP / make_http_soap_request()). (CVE-2016-3185) (Stas)', + ), + 14 => + array ( + 'message' => 'Fixed bug #70979 (crash with bad soap request).', + 'raw' => 'Fixed bug #70979 (crash with bad soap request). (Anatol)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73423 (Reproducible crash with GDB backtrace).', + 'raw' => 'Fixed bug #73423 (Reproducible crash with GDB backtrace). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72888 (Segfault on clone on splFileObject).', + 'raw' => 'Fixed bug #72888 (Segfault on clone on splFileObject). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73029 (Missing type check when unserializing SplArray).', + 'raw' => 'Fixed bug #73029 (Missing type check when unserializing SplArray). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character).', + 'raw' => 'Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72684 (AppendIterator segfault with closed generator).', + 'raw' => 'Fixed bug #72684 (AppendIterator segfault with closed generator). (Pierrick)', + ), + 5 => + array ( + 'message' => 'Attempting to clone an SplDirectory object will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Attempting to clone an SplDirectory object will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 6 => + array ( + 'message' => 'Calling ArrayIterator::append() when iterating over an object will throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Calling ArrayIterator::append() when iterating over an object will throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 7 => + array ( + 'message' => 'Fixed bug #55701 (GlobIterator throws LogicException).', + 'raw' => 'Fixed bug #55701 (GlobIterator throws LogicException). (Valentin VĂLCIU)', + ), + 8 => + array ( + 'message' => 'Fixed bug #73257, #73258 (SplObjectStorage unserialize allows use of non-object as key).', + 'raw' => 'Fixed bug #73257, #73258 (SplObjectStorage unserialize allows use of non-object as key). (Stas)', + ), + 9 => + array ( + 'message' => 'Fixed bug #73029 (Missing type check when unserializing SplArray).', + 'raw' => 'Fixed bug #73029 (Missing type check when unserializing SplArray). (Stas)', + ), + 10 => + array ( + 'message' => 'Fixed bug #55701 (GlobIterator throws LogicException).', + 'raw' => 'Fixed bug #55701 (GlobIterator throws LogicException). (Valentin VĂLCIU)', + ), + 11 => + array ( + 'message' => 'Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character).', + 'raw' => 'Fixed bug #72646 (SplFileObject::getCsvControl does not return the escape character). (cmb)', + ), + 12 => + array ( + 'message' => 'Fixed bug #72684 (AppendIterator segfault with closed generator).', + 'raw' => 'Fixed bug #72684 (AppendIterator segfault with closed generator). (Pierrick)', + ), + 13 => + array ( + 'message' => 'Fixed bug #72051 (The reference in CallbackFilterIterator doesn\'t work as expected).', + 'raw' => 'Fixed bug #72051 (The reference in CallbackFilterIterator doesn\'t work as expected). (Laruence)', + ), + 14 => + array ( + 'message' => 'Fixed bug #71838 (Deserializing serialized SPLObjectStorage-Object can\'t access properties in PHP).', + 'raw' => 'Fixed bug #71838 (Deserializing serialized SPLObjectStorage-Object can\'t access properties in PHP). (Nikita)', + ), + 15 => + array ( + 'message' => 'Fixed bug #71735 (Double-free in SplDoublyLinkedList::offsetSet).', + 'raw' => 'Fixed bug #71735 (Double-free in SplDoublyLinkedList::offsetSet). (Stas)', + ), + 16 => + array ( + 'message' => 'Fixed bug #67582 (Cloned SplObjectStorage with overwritten getHash fails offsetExists()).', + 'raw' => 'Fixed bug #67582 (Cloned SplObjectStorage with overwritten getHash fails offsetExists()). (Nikita)', + ), + 17 => + array ( + 'message' => 'Fixed bug #52339 (SPL autoloader breaks class_exists()).', + 'raw' => 'Fixed bug #52339 (SPL autoloader breaks class_exists()). (Nikita)', + ), + 18 => + array ( + 'message' => 'Fixed bug #71617 (private properties lost when unserializing ArrayObject).', + 'raw' => 'Fixed bug #71617 (private properties lost when unserializing ArrayObject). (Nikita)', + ), + 19 => + array ( + 'message' => 'Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading).', + 'raw' => 'Fixed bug #71204 (segfault if clean spl_autoload_funcs while autoloading). (Laruence)', + ), + 20 => + array ( + 'message' => 'Fixed bug #71202 (Autoload function registered by another not activated immediately).', + 'raw' => 'Fixed bug #71202 (Autoload function registered by another not activated immediately). (Laruence)', + ), + 21 => + array ( + 'message' => 'Fixed bug #71311 (Use-after-free vulnerability in SPL(ArrayObject, unserialize)).', + 'raw' => 'Fixed bug #71311 (Use-after-free vulnerability in SPL(ArrayObject, unserialize)). (Sean Heelan)', + ), + 22 => + array ( + 'message' => 'Fixed bug #71313 (Use-after-free vulnerability in SPL(SplObjectStorage, unserialize)).', + 'raw' => 'Fixed bug #71313 (Use-after-free vulnerability in SPL(SplObjectStorage, unserialize)). (Sean Heelan)', + ), + 23 => + array ( + 'message' => 'Fixed bug #71077 (ReflectionMethod for ArrayObject constructor returns wrong number of parameters).', + 'raw' => 'Fixed bug #71077 (ReflectionMethod for ArrayObject constructor returns wrong number of parameters). (Laruence)', + ), + 24 => + array ( + 'message' => 'Fixed bug #71153 (Performance Degradation in ArrayIterator with large arrays).', + 'raw' => 'Fixed bug #71153 (Performance Degradation in ArrayIterator with large arrays). (Nikita)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Update to SQLite 3.15.1.', + 'raw' => 'Update to SQLite 3.15.1. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73530 (Unsetting result set may reset other result set).', + 'raw' => 'Fixed bug #73530 (Unsetting result set may reset other result set). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73333 (2147483647 is fetched as string).', + 'raw' => 'Fixed bug #73333 (2147483647 is fetched as string). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72668 (Spurious warning when exception is thrown in user defined function).', + 'raw' => 'Fixed bug #72668 (Spurious warning when exception is thrown in user defined function). (Laruence)', + ), + 4 => + array ( + 'message' => 'Implemented FR #72653 (SQLite should allow opening with empty filename).', + 'raw' => 'Implemented FR #72653 (SQLite should allow opening with empty filename). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70628 (Clearing bindings on an SQLite3 statement doesn\'t work).', + 'raw' => 'Fixed bug #70628 (Clearing bindings on an SQLite3 statement doesn\'t work). (cmb)', + ), + 6 => + array ( + 'message' => 'Implemented FR #71159 (Upgraded bundled SQLite lib to 3.9.2).', + 'raw' => 'Implemented FR #71159 (Upgraded bundled SQLite lib to 3.9.2). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73333 (2147483647 is fetched as string).', + 'raw' => 'Fixed bug #73333 (2147483647 is fetched as string). (cmb)', + ), + 8 => + array ( + 'message' => 'Updated bundled SQLite3 to 3.14.2.', + 'raw' => 'Updated bundled SQLite3 to 3.14.2. (cmb)', + ), + 9 => + array ( + 'message' => 'Downgraded bundled SQLite to 3.8.10.2. ;', + 'raw' => 'Downgraded bundled SQLite to 3.8.10.2. (Anatol);', + ), + 10 => + array ( + 'message' => 'Fixed bug #72668 (Spurious warning when exception is thrown in user defined function).', + 'raw' => 'Fixed bug #72668 (Spurious warning when exception is thrown in user defined function). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash).', + 'raw' => 'Fixed bug #72571 (SQLite3::bindValue, SQLite3::bindParam crash). (Laruence)', + ), + 12 => + array ( + 'message' => 'Implemented FR #72653 (SQLite should allow opening with empty filename).', + 'raw' => 'Implemented FR #72653 (SQLite should allow opening with empty filename). (cmb)', + ), + 13 => + array ( + 'message' => 'Updated to SQLite3 3.13.0.', + 'raw' => 'Updated to SQLite3 3.13.0. (cmb)', + ), + 14 => + array ( + 'message' => 'Fixed bug #68849 (bindValue is not using the right data type).', + 'raw' => 'Fixed bug #68849 (bindValue is not using the right data type). (Anatol)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue).', + 'raw' => 'Fixed bug #73297 (HTTP stream wrapper should ignore HTTP 100 Continue). (rowan dot collins at gmail dot com)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73303 (Scope not inherited by eval in assert()).', + 'raw' => 'Fixed bug #73303 (Scope not inherited by eval in assert()). (nikic)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73192 (parse_url return wrong hostname).', + 'raw' => 'Fixed bug #73192 (parse_url return wrong hostname). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail).', + 'raw' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail).', + 'raw' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72920 (Accessing a private constant using constant() creates an exception AND warning).', + 'raw' => 'Fixed bug #72920 (Accessing a private constant using constant() creates an exception AND warning). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign).', + 'raw' => 'Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory).', + 'raw' => 'Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #55451 (substr_compare NULL length interpreted as 0).', + 'raw' => 'Fixed bug #55451 (substr_compare NULL length interpreted as 0). (Lauri Kenttä)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72278 (getimagesize returning FALSE on valid jpg).', + 'raw' => 'Fixed bug #72278 (getimagesize returning FALSE on valid jpg). (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug #61967 (unset array item in array_walk_recursive cause inconsistent array).', + 'raw' => 'Fixed bug #61967 (unset array item in array_walk_recursive cause inconsistent array). (Nikita)', + ), + 11 => + array ( + 'message' => 'Fixed bug #62607 (array_walk_recursive move internal pointer).', + 'raw' => 'Fixed bug #62607 (array_walk_recursive move internal pointer). (Nikita)', + ), + 12 => + array ( + 'message' => 'Fixed bug #69068 (Exchanging array during array_walk -> memory errors).', + 'raw' => 'Fixed bug #69068 (Exchanging array during array_walk -> memory errors). (Nikita)', + ), + 13 => + array ( + 'message' => 'Fixed bug #70713 (Use After Free Vulnerability in array_walk()/ array_walk_recursive()).', + 'raw' => 'Fixed bug #70713 (Use After Free Vulnerability in array_walk()/ array_walk_recursive()). (Nikita)', + ), + 14 => + array ( + 'message' => 'Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing).', + 'raw' => 'Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing). (Laruence)', + ), + 15 => + array ( + 'message' => 'Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars).', + 'raw' => 'Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars). (cmb)', + ), + 16 => + array ( + 'message' => 'Implemented RFC: More precise float values.', + 'raw' => 'Implemented RFC: More precise float values. (Jakub Zelenka, Yasuo)', + ), + 17 => + array ( + 'message' => 'array_multisort now uses zend_sort instead zend_qsort.', + 'raw' => 'array_multisort now uses zend_sort instead zend_qsort. (Laruence)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72505 (readfile() mangles files larger than 2G).', + 'raw' => 'Fixed bug #72505 (readfile() mangles files larger than 2G). (Cschneid)', + ), + 19 => + array ( + 'message' => 'assert() will throw a ParseError when evaluating a string given as the first argument if the PHP code is invalid instead of resulting in a catchable fatal error.', + 'raw' => 'assert() will throw a ParseError when evaluating a string given as the first argument if the PHP code is invalid instead of resulting in a catchable fatal error. (Aaron Piotrowski)', + ), + 20 => + array ( + 'message' => 'Calling forward_static_call() outside of a class scope will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Calling forward_static_call() outside of a class scope will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 21 => + array ( + 'message' => 'Added is_iterable() function.', + 'raw' => 'Added is_iterable() function. (Aaron Piotrowski)', + ), + 22 => + array ( + 'message' => 'Fixed bug #72306 (Heap overflow through proc_open and $env parameter).', + 'raw' => 'Fixed bug #72306 (Heap overflow through proc_open and $env parameter). (Laruence)', + ), + 23 => + array ( + 'message' => 'Fixed bug #71100 (long2ip() doesn\'t accept integers in strict mode).', + 'raw' => 'Fixed bug #71100 (long2ip() doesn\'t accept integers in strict mode). (Laruence)', + ), + 24 => + array ( + 'message' => 'Implemented FR #55716 (Add an option to pass a custom stream context to get_headers()).', + 'raw' => 'Implemented FR #55716 (Add an option to pass a custom stream context to get_headers()). (Ferenc)', + ), + 25 => + array ( + 'message' => 'Additional validation for parse_url() for login/pass components). (Ilia)', + 'raw' => 'Additional validation for parse_url() for login/pass components). (Ilia) (Julien)', + ), + 26 => + array ( + 'message' => 'Implemented FR #69359 (Provide a way to fetch the current environment variables).', + 'raw' => 'Implemented FR #69359 (Provide a way to fetch the current environment variables). (Ferenc)', + ), + 27 => + array ( + 'message' => 'unpack() function accepts an additional optional argument $offset.', + 'raw' => 'unpack() function accepts an additional optional argument $offset. (Dmitry)', + ), + 28 => + array ( + 'message' => 'Implemented #51879 stream context socket option tcp_nodelay', + 'raw' => 'Implemented #51879 stream context socket option tcp_nodelay (Joe)', + ), + 29 => + array ( + 'message' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail).', + 'raw' => 'Fixed bug #73203 (passing additional_parameters causes mail to fail). (cmb)', + ), + 30 => + array ( + 'message' => 'Fixed bug #71241 (array_replace_recursive sometimes mutates its parameters).', + 'raw' => 'Fixed bug #71241 (array_replace_recursive sometimes mutates its parameters). (adsr)', + ), + 31 => + array ( + 'message' => 'Fixed bug #55451 (substr_compare NULL length interpreted as 0).', + 'raw' => 'Fixed bug #55451 (substr_compare NULL length interpreted as 0). (Lauri Kenttä)', + ), + 32 => + array ( + 'message' => 'Fixed bug #72278 (getimagesize returning FALSE on valid jpg).', + 'raw' => 'Fixed bug #72278 (getimagesize returning FALSE on valid jpg). (cmb)', + ), + 33 => + array ( + 'message' => 'Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign).', + 'raw' => 'Fixed bug #65550 (get_browser() incorrectly parses entries with "+" sign). (cmb)', + ), + 34 => + array ( + 'message' => 'Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing).', + 'raw' => 'Fixed bug #72622 (array_walk + array_replace_recursive create references from nothing). (Laruence)', + ), + 35 => + array ( + 'message' => 'Fixed bug #72152 (base64_decode $strict fails to detect null byte).', + 'raw' => 'Fixed bug #72152 (base64_decode $strict fails to detect null byte). (Lauri Kenttä)', + ), + 36 => + array ( + 'message' => 'Fixed bug #72263 (base64_decode skips a character after padding in strict mode).', + 'raw' => 'Fixed bug #72263 (base64_decode skips a character after padding in strict mode). (Lauri Kenttä)', + ), + 37 => + array ( + 'message' => 'Fixed bug #72264 (base64_decode $strict fails with whitespace between padding).', + 'raw' => 'Fixed bug #72264 (base64_decode $strict fails with whitespace between padding). (Lauri Kenttä)', + ), + 38 => + array ( + 'message' => 'Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars).', + 'raw' => 'Fixed bug #72330 (CSV fields incorrectly split if escape char followed by UTF chars). (cmb)', + ), + 39 => + array ( + 'message' => 'Fixed bug #72505 (readfile() mangles files larger than 2G).', + 'raw' => 'Fixed bug #72505 (readfile() mangles files larger than 2G). (Cschneid)', + ), + 40 => + array ( + 'message' => 'Fixed bug #72306 (Heap overflow through proc_open and $env parameter).', + 'raw' => 'Fixed bug #72306 (Heap overflow through proc_open and $env parameter). (Laruence)', + ), + 41 => + array ( + 'message' => 'Fixed bug #72369 (array_merge() produces references in PHP7).', + 'raw' => 'Fixed bug #72369 (array_merge() produces references in PHP7). (Dmitry)', + ), + 42 => + array ( + 'message' => 'Fixed bug #72300 (ignore_user_abort(false) has no effect).', + 'raw' => 'Fixed bug #72300 (ignore_user_abort(false) has no effect). (Laruence)', + ), + 43 => + array ( + 'message' => 'Fixed bug #72229 (Wrong reference when serialize/unserialize an object).', + 'raw' => 'Fixed bug #72229 (Wrong reference when serialize/unserialize an object). (Laruence)', + ), + 44 => + array ( + 'message' => 'Fixed bug #72193 (dns_get_record returns array containing elements of type \'unknown\').', + 'raw' => 'Fixed bug #72193 (dns_get_record returns array containing elements of type \'unknown\'). (Laruence)', + ), + 45 => + array ( + 'message' => 'Fixed bug #72017 (range() with float step produces unexpected result).', + 'raw' => 'Fixed bug #72017 (range() with float step produces unexpected result). (Thomas Punt)', + ), + 46 => + array ( + 'message' => 'Fixed bug #72075 (Referencing socket resources breaks stream_select).', + 'raw' => 'Fixed bug #72075 (Referencing socket resources breaks stream_select). (Laruence)', + ), + 47 => + array ( + 'message' => 'Fixed bug #72031 (array_column() against an array of objects discards all values matching null).', + 'raw' => 'Fixed bug #72031 (array_column() against an array of objects discards all values matching null). (Nikita)', + ), + 48 => + array ( + 'message' => 'Fixed bug #71995 (Returning the same var twice from __sleep() produces broken serialized data).', + 'raw' => 'Fixed bug #71995 (Returning the same var twice from __sleep() produces broken serialized data). (Laruence)', + ), + 49 => + array ( + 'message' => 'Fixed bug #71940 (Unserialize crushes on restore object reference).', + 'raw' => 'Fixed bug #71940 (Unserialize crushes on restore object reference). (Laruence)', + ), + 50 => + array ( + 'message' => 'Fixed bug #71969 (str_replace returns an incorrect resulting array after a foreach by reference).', + 'raw' => 'Fixed bug #71969 (str_replace returns an incorrect resulting array after a foreach by reference). (Laruence)', + ), + 51 => + array ( + 'message' => 'Fixed bug #71891 (header_register_callback() and register_shutdown_function()).', + 'raw' => 'Fixed bug #71891 (header_register_callback() and register_shutdown_function()). (Laruence)', + ), + 52 => + array ( + 'message' => 'Fixed bug #71884 (Null pointer deref (segfault) in stream_context_get_default).', + 'raw' => 'Fixed bug #71884 (Null pointer deref (segfault) in stream_context_get_default). (Laruence)', + ), + 53 => + array ( + 'message' => 'Fixed bug #71840 (Unserialize accepts wrongly data).', + 'raw' => 'Fixed bug #71840 (Unserialize accepts wrongly data). (Ryat, Laruence)', + ), + 54 => + array ( + 'message' => 'Fixed bug #71837 (Wrong arrays behaviour).', + 'raw' => 'Fixed bug #71837 (Wrong arrays behaviour). (Laruence)', + ), + 55 => + array ( + 'message' => 'Fixed bug #71827 (substr_replace bug, string length).', + 'raw' => 'Fixed bug #71827 (substr_replace bug, string length). (krakjoe)', + ), + 56 => + array ( + 'message' => 'Fixed bug #67512 (php_crypt() crashes if crypt_r() does not exist or _REENTRANT is not defined).', + 'raw' => 'Fixed bug #67512 (php_crypt() crashes if crypt_r() does not exist or _REENTRANT is not defined). (Nikita)', + ), + 57 => + array ( + 'message' => 'Fixed bug #72116 (array_fill optimization breaks implementation).', + 'raw' => 'Fixed bug #72116 (array_fill optimization breaks implementation). (Bob)', + ), + 58 => + array ( + 'message' => 'Fixed bug #71660 (array_column behaves incorrectly after foreach by reference).', + 'raw' => 'Fixed bug #71660 (array_column behaves incorrectly after foreach by reference). (Laruence)', + ), + 59 => + array ( + 'message' => 'Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070)', + 'raw' => 'Fixed bug #71798 (Integer Overflow in php_raw_url_encode). (CVE-2016-4070) (taoguangchen at icloud dot com, Stas)', + ), + 60 => + array ( + 'message' => 'Fixed bug #71603 (compact() maintains references in php7).', + 'raw' => 'Fixed bug #71603 (compact() maintains references in php7). (Laruence)', + ), + 61 => + array ( + 'message' => 'Fixed bug #70720 (strip_tags improper php code parsing).', + 'raw' => 'Fixed bug #70720 (strip_tags improper php code parsing). (Julien)', + ), + 62 => + array ( + 'message' => 'Fixed bug #71287 (Error message contains hexadecimal instead of decimal number).', + 'raw' => 'Fixed bug #71287 (Error message contains hexadecimal instead of decimal number). (Laruence)', + ), + 63 => + array ( + 'message' => 'Fixed bug #71264 (file_put_contents() returns unexpected value when filesystem runs full).', + 'raw' => 'Fixed bug #71264 (file_put_contents() returns unexpected value when filesystem runs full). (Laruence)', + ), + 64 => + array ( + 'message' => 'Fixed bug #71245 (file_get_contents() ignores "header" context option if it\'s a reference).', + 'raw' => 'Fixed bug #71245 (file_get_contents() ignores "header" context option if it\'s a reference). (Laruence)', + ), + 65 => + array ( + 'message' => 'Fixed bug #71220 (Null pointer deref (segfault) in compact via ob_start).', + 'raw' => 'Fixed bug #71220 (Null pointer deref (segfault) in compact via ob_start). (hugh at allthethings dot co dot nz)', + ), + 66 => + array ( + 'message' => 'Fixed bug #71190 (substr_replace converts integers in original $search array to strings).', + 'raw' => 'Fixed bug #71190 (substr_replace converts integers in original $search array to strings). (Laruence)', + ), + 67 => + array ( + 'message' => 'Fixed bug #71188 (str_replace converts integers in original $search array to strings).', + 'raw' => 'Fixed bug #71188 (str_replace converts integers in original $search array to strings). (Laruence)', + ), + 68 => + array ( + 'message' => 'Fixed bug #71132, #71197 (range() segfaults).', + 'raw' => 'Fixed bug #71132, #71197 (range() segfaults). (Thomas Punt)', + ), + 69 => + array ( + 'message' => 'Fixed bug #71270 (Heap BufferOver Flow in escapeshell functions). (CVE-2016-1904)', + 'raw' => 'Fixed bug #71270 (Heap BufferOver Flow in escapeshell functions). (CVE-2016-1904) (emmanuel dot law at gmail dot com)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73586 (php_user_filter::$stream is not set to the stream the filter is working on).', + 'raw' => 'Fixed bug #73586 (php_user_filter::$stream is not set to the stream the filter is working on). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72853 (stream_set_blocking doesn\'t work).', + 'raw' => 'Fixed bug #72853 (stream_set_blocking doesn\'t work). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72743 (Out-of-bound read in php_stream_filter_create).', + 'raw' => 'Fixed bug #72743 (Out-of-bound read in php_stream_filter_create). (Loianhtuan)', + ), + 3 => + array ( + 'message' => 'Implemented FR #27814 (Multiple small packets send for HTTP request).', + 'raw' => 'Implemented FR #27814 (Multiple small packets send for HTTP request). (vhuk)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5).', + 'raw' => 'Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5). (vhuk)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72810 (Missing SKIP_ONLINE_TESTS checks).', + 'raw' => 'Fixed bug #72810 (Missing SKIP_ONLINE_TESTS checks). (vhuk)', + ), + 6 => + array ( + 'message' => 'Fixed bug #41021 (Problems with the ftps wrapper).', + 'raw' => 'Fixed bug #41021 (Problems with the ftps wrapper). (vhuk)', + ), + 7 => + array ( + 'message' => 'Fixed bug #54431 (opendir() does not work with ftps:// wrapper).', + 'raw' => 'Fixed bug #54431 (opendir() does not work with ftps:// wrapper). (vhuk)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories).', + 'raw' => 'Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories). (vhuk)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack).', + 'raw' => 'Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack). (Stas)', + ), + 10 => + array ( + 'message' => 'Fixed bug #72534 (stream_socket_get_name crashes).', + 'raw' => 'Fixed bug #72534 (stream_socket_get_name crashes). (Anatol)', + ), + 11 => + array ( + 'message' => 'Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault).', + 'raw' => 'Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault). (Laruence)', + ), + 12 => + array ( + 'message' => 'Fixed bug #72853 (stream_set_blocking doesn\'t work).', + 'raw' => 'Fixed bug #72853 (stream_set_blocking doesn\'t work). (Laruence)', + ), + 13 => + array ( + 'message' => 'Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5).', + 'raw' => 'Fixed bug #72764 (ftps:// opendir wrapper data channel encryption fails with IIS FTP 7.5, 8.5). (vhuk)', + ), + 14 => + array ( + 'message' => 'Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory).', + 'raw' => 'Fixed bug #71882 (Negative ftruncate() on php://memory exhausts memory). (cmb)', + ), + 15 => + array ( + 'message' => 'Fixed bug #41021 (Problems with the ftps wrapper).', + 'raw' => 'Fixed bug #41021 (Problems with the ftps wrapper). (vhuk)', + ), + 16 => + array ( + 'message' => 'Fixed bug #54431 (opendir() does not work with ftps:// wrapper).', + 'raw' => 'Fixed bug #54431 (opendir() does not work with ftps:// wrapper). (vhuk)', + ), + 17 => + array ( + 'message' => 'Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories).', + 'raw' => 'Fixed bug #72667 (opendir() with ftp:// attempts to open data stream for non-existent directories). (vhuk)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack).', + 'raw' => 'Fixed bug #72771 (ftps:// wrapper is vulnerable to protocol downgrade attack). (Stas)', + ), + 19 => + array ( + 'message' => 'Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault).', + 'raw' => 'Fixed bug #72439 (Stream socket with remote address leads to a segmentation fault). (Laruence)', + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72858 (shm_attach null dereference).', + 'raw' => 'Fixed bug #72858 (shm_attach null dereference). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72858 (shm_attach null dereference).', + 'raw' => 'Fixed bug #72858 (shm_attach null dereference). (Anatol)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Implemented support for libtidy 5.0.0 and above.', + 'raw' => 'Implemented support for libtidy 5.0.0 and above. (Michael Orlitzky, Anatol)', + ), + 1 => + array ( + 'message' => 'Creating a tidyNode manually will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'Creating a tidyNode manually will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow).', + 'raw' => 'Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()).', + 'raw' => 'Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()). (Taoguang Chen)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72749 (wddx_deserialize allows illegal memory access)', + 'raw' => 'Fixed bug #72749 (wddx_deserialize allows illegal memory access) (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72750 (wddx_deserialize null dereference).', + 'raw' => 'Fixed bug #72750 (wddx_deserialize null dereference). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72790 (wddx_deserialize null dereference with invalid xml).', + 'raw' => 'Fixed bug #72790 (wddx_deserialize null dereference with invalid xml). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element).', + 'raw' => 'Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72860 (wddx_deserialize use-after-free).', + 'raw' => 'Fixed bug #72860 (wddx_deserialize use-after-free). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element).', + 'raw' => 'Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed bug #72564 (boolean always deserialized as "true")', + 'raw' => 'Fixed bug #72564 (boolean always deserialized as "true") (Remi)', + ), + 9 => + array ( + 'message' => 'A circular reference when serializing will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'A circular reference when serializing will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 10 => + array ( + 'message' => 'Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow).', + 'raw' => 'Fixed bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow). (Stas)', + ), + 11 => + array ( + 'message' => 'Fixed bug #72860 (wddx_deserialize use-after-free).', + 'raw' => 'Fixed bug #72860 (wddx_deserialize use-after-free). (Stas)', + ), + 12 => + array ( + 'message' => 'Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element).', + 'raw' => 'Fixed bug #73065 (Out-Of-Bounds Read in php_wddx_push_element). (Stas)', + ), + 13 => + array ( + 'message' => 'Fixed bug #72564 (boolean always deserialized as "true")', + 'raw' => 'Fixed bug #72564 (boolean always deserialized as "true") (Remi)', + ), + 14 => + array ( + 'message' => 'Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()).', + 'raw' => 'Fixed bug #72142 (WDDX Packet Injection Vulnerability in wddx_serialize_value()). (Taoguang Chen)', + ), + 15 => + array ( + 'message' => 'Fixed bug #72749 (wddx_deserialize allows illegal memory access)', + 'raw' => 'Fixed bug #72749 (wddx_deserialize allows illegal memory access) (Stas)', + ), + 16 => + array ( + 'message' => 'Fixed bug #72750 (wddx_deserialize null dereference).', + 'raw' => 'Fixed bug #72750 (wddx_deserialize null dereference). (Stas)', + ), + 17 => + array ( + 'message' => 'Fixed bug #72790 (wddx_deserialize null dereference with invalid xml).', + 'raw' => 'Fixed bug #72790 (wddx_deserialize null dereference with invalid xml). (Stas)', + ), + 18 => + array ( + 'message' => 'Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element).', + 'raw' => 'Fixed bug #72799 (wddx_deserialize null dereference in php_wddx_pop_element). (Stas)', + ), + 19 => + array ( + 'message' => 'Fixed bug #72340 (Double Free Courruption in wddx_deserialize). (CVE-2016-5772)', + 'raw' => 'Fixed bug #72340 (Double Free Courruption in wddx_deserialize). (CVE-2016-5772) (Stas)', + ), + 20 => + array ( + 'message' => 'Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization).', + 'raw' => 'Fixed bug #71335 (Type Confusion in WDDX Packet Deserialization). (Stas)', + ), + 21 => + array ( + 'message' => 'Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization).', + 'raw' => 'Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization). (taoguangchen at icloud dot com)', + ), + 22 => + array ( + 'message' => 'Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability).', + 'raw' => 'Fixed bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability). (taoguangchen at icloud dot com)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72135 (malformed XML causes fault)', + 'raw' => 'Fixed bug #72135 (malformed XML causes fault) (edgarsandi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72714 (_xml_startElementHandler() segmentation fault).', + 'raw' => 'Fixed bug #72714 (_xml_startElementHandler() segmentation fault). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72085 (SEGV on unknown address zif_xml_parse).', + 'raw' => 'Fixed bug #72085 (SEGV on unknown address zif_xml_parse). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72085 (SEGV on unknown address zif_xml_parse).', + 'raw' => 'Fixed bug #72085 (SEGV on unknown address zif_xml_parse). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72714 (_xml_startElementHandler() segmentation fault).', + 'raw' => 'Fixed bug #72714 (_xml_startElementHandler() segmentation fault). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72206 (xml_parser_create/xml_parser_free leaks mem).', + 'raw' => 'Fixed bug #72206 (xml_parser_create/xml_parser_free leaks mem). (Joe)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72099 (xml_parse_into_struct segmentation fault).', + 'raw' => 'Fixed bug #72099 (xml_parse_into_struct segmentation fault). (Stas)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing array elements).', + 'raw' => 'Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing array elements). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c).', + 'raw' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c). (Stas)', + ), + 2 => + array ( + 'message' => 'A circular reference when serializing will now throw an instance of Error instead of resulting in a fatal error.', + 'raw' => 'A circular reference when serializing will now throw an instance of Error instead of resulting in a fatal error. (Aaron Piotrowski)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing array elements).', + 'raw' => 'Fixed bug #72647 (xmlrpc_encode() unexpected output after referencing array elements). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c).', + 'raw' => 'Fixed bug #72606 (heap-buffer-overflow (write) simplestring_addn simplestring.c). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72155 (use-after-free caused by get_zval_xmlrpc_type).', + 'raw' => 'Fixed bug #72155 (use-after-free caused by get_zval_xmlrpc_type). (Joe, Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71501 (xmlrpc_encode_request ignores encoding option).', + 'raw' => 'Fixed bug #71501 (xmlrpc_encode_request ignores encoding option). (Hieu Le)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker).', + 'raw' => 'Fixed bug #70728 (Type Confusion Vulnerability in PHP_to_XMLRPC_worker). (Julien)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68302 (impossible to compile php with zip support).', + 'raw' => 'Fixed bug #68302 (impossible to compile php with zip support). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd).', + 'raw' => 'Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener).', + 'raw' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener). (Stas)', + ), + 3 => + array ( + 'message' => 'ZipArchive::addGlob() will throw an instance of Error instead of resulting in a fatal error if glob support is not available.', + 'raw' => 'ZipArchive::addGlob() will throw an instance of Error instead of resulting in a fatal error if glob support is not available. (Aaron Piotrowski)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70752 (Depacking with wrong password leaves 0 length files).', + 'raw' => 'Fixed bug #70752 (Depacking with wrong password leaves 0 length files). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #68302 (impossible to compile php with zip support).', + 'raw' => 'Fixed bug #68302 (impossible to compile php with zip support). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd).', + 'raw' => 'Fixed bug #72660 (NULL Pointer dereference in zend_virtual_cwd). (Laruence)', + ), + 7 => + array ( + 'message' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener).', + 'raw' => 'Fixed bug #72520 (Stack-based buffer overflow vulnerability in php_stream_zip_opener). (Stas)', + ), + 8 => + array ( + 'message' => 'Fixed ug #72258 (ZipArchive converts filenames to unrecoverable form).', + 'raw' => 'Fixed ug #72258 (ZipArchive converts filenames to unrecoverable form). (Anatol)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5773)', + 'raw' => 'Fixed bug #72434 (ZipArchive class Use After Free Vulnerability in PHP\'s GC algorithm and unserialize). (CVE-2016-5773) (Dmitry)', + ), + 10 => + array ( + 'message' => 'Fixed bug #71923 (integer overflow in ZipArchive::getFrom*). (CVE-2016-3078)', + 'raw' => 'Fixed bug #71923 (integer overflow in ZipArchive::getFrom*). (CVE-2016-3078) (Stas)', + ), + 11 => + array ( + 'message' => 'Update bundled libzip to 1.1.2.', + 'raw' => 'Update bundled libzip to 1.1.2. (Remi, Anatol)', + ), + 12 => + array ( + 'message' => 'Fixed bug #71561 (NULL pointer dereference in Zip::ExtractTo).', + 'raw' => 'Fixed bug #71561 (NULL pointer dereference in Zip::ExtractTo). (Laruence)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72846 (getConstant for a array constant with constant values returns NULL/NFC/UKNOWN).', + 'raw' => 'Fixed bug #72846 (getConstant for a array constant with constant values returns NULL/NFC/UKNOWN). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72222 (ReflectionClass::export doesn\'t handle array constants).', + 'raw' => 'Fixed bug #72222 (ReflectionClass::export doesn\'t handle array constants). (Nikita Nefedov)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72174 (ReflectionProperty#getValue() causes __isset call).', + 'raw' => 'Fixed bug #72174 (ReflectionProperty#getValue() causes __isset call). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER).', + 'raw' => 'Fixed bug #71709 (curl_setopt segfault with empty CURLOPT_HTTPHEADER). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71929 (CURLINFO_CERTINFO data parsing error).', + 'raw' => 'Fixed bug #71929 (CURLINFO_CERTINFO data parsing error). (Pierrick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72674 (Heap overflow in curl_escape).', + 'raw' => 'Fixed bug #72674 (Heap overflow in curl_escape). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #72541 (size_t overflow lead to heap corruption).', + 'raw' => 'Fixed bug #72541 (size_t overflow lead to heap corruption). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #68658 (Define CURLE_SSL_CACERT_BADFILE).', + 'raw' => 'Fixed bug #68658 (Define CURLE_SSL_CACERT_BADFILE). (Pierrick)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71831 (CURLOPT_NOPROXY applied as long instead of string).', + 'raw' => 'Fixed bug #71831 (CURLOPT_NOPROXY applied as long instead of string). (Michael Sierks)', + ), + 6 => + array ( + 'message' => 'Fixed bug #71694 (Support constant CURLM_ADDED_ALREADY).', + 'raw' => 'Fixed bug #71694 (Support constant CURLM_ADDED_ALREADY). (mpyw)', + ), + 7 => + array ( + 'message' => 'Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_exec).', + 'raw' => 'Fixed bug #71523 (Copied handle with new option CURLOPT_HTTPHEADER crashes while curl_multi_exec). (Laruence)', + ), + 8 => + array ( + 'message' => 'Fixed memory leak in curl_getinfo().', + 'raw' => 'Fixed memory leak in curl_getinfo(). (Leigh)', + ), + 9 => + array ( + 'message' => 'Fixed bug #71227 (Can\'t compile php_curl statically).', + 'raw' => 'Fixed bug #71227 (Can\'t compile php_curl statically). (Anatol)', + ), + 10 => + array ( + 'message' => 'Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with reference to CURLFile).', + 'raw' => 'Fixed bug #71225 (curl_setopt() fails to set CURLOPT_POSTFIELDS with reference to CURLFile). (Laruence)', + ), + 11 => + array ( + 'message' => 'Fixed bug #71144 (Sementation fault when using cURL with ZTS).', + 'raw' => 'Fixed bug #71144 (Sementation fault when using cURL with ZTS). (Michael Maroszek, Laruence)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72484 (SCRIPT_FILENAME shows wrong path if the user specify router.php).', + 'raw' => 'Fixed bug #72484 (SCRIPT_FILENAME shows wrong path if the user specify router.php). (Laruence)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71600 (oci_fetch_all segfaults when selecting more than eight columns).', + 'raw' => 'Fixed bug #71600 (oci_fetch_all segfaults when selecting more than eight columns). (Tian Yang)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72154 (pcntl_wait/pcntl_waitpid array internal structure overwrite).', + 'raw' => 'Fixed bug #72154 (pcntl_wait/pcntl_waitpid array internal structure overwrite). (Laruence)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL).', + 'raw' => 'Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL). (esminis at esminis dot lt)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added socket_export_stream() function for getting a stream compatible resource from a socket resource.', + 'raw' => 'Added socket_export_stream() function for getting a stream compatible resource from a socket resource. (Chris Wright, Bob)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file). (CVE-2015-8865)', + 'raw' => 'Fixed bug #71527 (Buffer over-write in finfo_open with malformed magic file). (CVE-2015-8865) (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71434 (finfo throws notice for specific python file).', + 'raw' => 'Fixed bug #71434 (finfo throws notice for specific python file). (Laruence)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71536 (Access Violation crashes php-cgi.exe).', + 'raw' => 'Fixed bug #71536 (Access Violation crashes php-cgi.exe). (Anatol)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/7.2/changelist.inc b/include/releases/7.2/changelist.inc new file mode 100644 index 0000000000..3d72e42e85 --- /dev/null +++ b/include/releases/7.2/changelist.inc @@ -0,0 +1,4130 @@ + + array ( + 'date' => '01 Oct 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79699 (PHP parses encoded cookie names so malicious `__Host-` cookies can be sent). (CVE-2020-7070)', + 'raw' => 'Fixed bug #79699 (PHP parses encoded cookie names so malicious `__Host-` cookies can be sent). (CVE-2020-7070) (Stas)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79601 (Wrong ciphertext/tag in AES-CCM encryption for a 12 bytes IV). (CVE-2020-7069)', + 'raw' => 'Fixed bug #79601 (Wrong ciphertext/tag in AES-CCM encryption for a 12 bytes IV). (CVE-2020-7069) (Jakub Zelenka)', + ), + ), + ), + ), + '7.2.33' => + array ( + 'date' => '06 Aug 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79877 (getimagesize function silently truncates after a null byte)', + 'raw' => 'Fixed bug #79877 (getimagesize function silently truncates after a null byte) (cmb)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79797 (Use of freed hash key in the phar_parse_zipfile function). (CVE-2020-7068)', + 'raw' => 'Fixed bug #79797 (Use of freed hash key in the phar_parse_zipfile function). (CVE-2020-7068) (cmb)', + ), + ), + ), + ), + '7.2.32' => + array ( + 'date' => '09 Jul 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'No source changes to this release. Vesion number added for reproduction of Windows builds.', + 'raw' => 'No source changes to this release. Vesion number added for reproduction of Windows builds. (cmb)', + ), + ), + ), + ), + '7.2.31' => + array ( + 'date' => '14 May 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78875 (Long filenames cause OOM and temp files are not cleaned). (CVE-2019-11048)', + 'raw' => 'Fixed bug #78875 (Long filenames cause OOM and temp files are not cleaned). (CVE-2019-11048) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78876 (Long variables in multipart/form-data cause OOM and temp files are not cleaned). (CVE-2019-11048)', + 'raw' => 'Fixed bug #78876 (Long variables in multipart/form-data cause OOM and temp files are not cleaned). (CVE-2019-11048) (cmb)', + ), + ), + ), + ), + '7.2.30' => + array ( + 'date' => '16 Apr 2020', + 'modules' => + array ( + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended).', + 'raw' => 'Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended). (dinosaur)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79330 (shell_exec() silently truncates after a null byte).', + 'raw' => 'Fixed bug #79330 (shell_exec() silently truncates after a null byte). (stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79465 (OOB Read in urldecode()).', + 'raw' => 'Fixed bug #79465 (OOB Read in urldecode()). (stas)', + ), + ), + ), + ), + '7.2.29' => + array ( + 'date' => '19 Mar 2020', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79282 (Use-of-uninitialized-value in exif). (CVE-2020-7064)', + 'raw' => 'Fixed bug #79282 (Use-of-uninitialized-value in exif). (CVE-2020-7064) (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79329 (get_headers() silently truncates after a null byte) (CVE-2020-7066).', + 'raw' => 'Fixed bug #79329 (get_headers() silently truncates after a null byte) (CVE-2020-7066). (cmb)', + ), + ), + ), + ), + '7.2.28' => + array ( + 'date' => '20 Feb 2020', + 'modules' => + array ( + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77569: (Write Access Violation in DomImplementation).', + 'raw' => 'Fixed bug #77569: (Write Access Violation in DomImplementation). (Nikita, cmb)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79082 (Files added to tar with Phar::buildFromIterator have all-access permissions). (CVE-2020-7063)', + 'raw' => 'Fixed bug #79082 (Files added to tar with Phar::buildFromIterator have all-access permissions). (CVE-2020-7063) (stas)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79221 (Null Pointer Dereference in PHP Session Upload Progress). (CVE-2020-7062)', + 'raw' => 'Fixed bug #79221 (Null Pointer Dereference in PHP Session Upload Progress). (CVE-2020-7062) (stas)', + ), + ), + ), + ), + '7.2.27' => + array ( + 'date' => '23 Jan 2020', + 'modules' => + array ( + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`). (CVE-2020-7060)', + 'raw' => 'Fixed bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`). (CVE-2020-7060) (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79091 (heap use-after-free in session_create_id()).', + 'raw' => 'Fixed bug #79091 (heap use-after-free in session_create_id()). (cmb, Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059).', + 'raw' => 'Fixed bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059). (cmb)', + ), + ), + ), + ), + '7.2.26' => + array ( + 'date' => '18 Dec 2019', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78878 (Buffer underflow in bc_shift_addsub). (CVE-2019-11046).', + 'raw' => 'Fixed bug #78878 (Buffer underflow in bc_shift_addsub). (CVE-2019-11046). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78862 (link() silently truncates after a null byte on Windows). (CVE-2019-11044).', + 'raw' => 'Fixed bug #78862 (link() silently truncates after a null byte on Windows). (CVE-2019-11044). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78863 (DirectoryIterator class silently truncates after a null byte). (CVE-2019-11045).', + 'raw' => 'Fixed bug #78863 (DirectoryIterator class silently truncates after a null byte). (CVE-2019-11045). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78793 (Use-after-free in exif parsing under memory sanitizer). (CVE-2019-11050).', + 'raw' => 'Fixed bug #78793 (Use-after-free in exif parsing under memory sanitizer). (CVE-2019-11050). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78910 (Heap-buffer-overflow READ in exif). (CVE-2019-11047).', + 'raw' => 'Fixed bug #78910 (Heap-buffer-overflow READ in exif). (CVE-2019-11047). (Nikita)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78849 (GD build broken with -D SIGNED_COMPARE_SLOW).', + 'raw' => 'Fixed bug #78849 (GD build broken with -D SIGNED_COMPARE_SLOW). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78804 (Segmentation fault in Locale::filterMatches).', + 'raw' => 'Fixed bug #78804 (Segmentation fault in Locale::filterMatches). (Stas)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed $x = (bool)$x; with opcache (should emit undeclared variable notice).', + 'raw' => 'Fixed $x = (bool)$x; with opcache (should emit undeclared variable notice). (Tyson Andre)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78759 (array_search in $GLOBALS).', + 'raw' => 'Fixed bug #78759 (array_search in $GLOBALS). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78833 (Integer overflow in pack causes out-of-bound access).', + 'raw' => 'Fixed bug #78833 (Integer overflow in pack causes out-of-bound access). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78814 (strip_tags allows / in tag name => whitelist bypass).', + 'raw' => 'Fixed bug #78814 (strip_tags allows / in tag name => whitelist bypass). (cmb)', + ), + ), + ), + ), + '7.2.25' => + array ( + 'date' => '21 Nov 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78656 (Parse errors classified as highest log-level).', + 'raw' => 'Fixed bug #78656 (Parse errors classified as highest log-level). (Erik Lundin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78752 (Segfault if GC triggered while generator stack frame is being destroyed).', + 'raw' => 'Fixed bug #78752 (Segfault if GC triggered while generator stack frame is being destroyed). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78689 (Closure::fromCallable() doesn\'t handle [Closure, \'__invoke\']).', + 'raw' => 'Fixed bug #78689 (Closure::fromCallable() doesn\'t handle [Closure, \'__invoke\']). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78694 (Appending to a variant array causes segfault).', + 'raw' => 'Fixed bug #78694 (Appending to a variant array causes segfault). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70153 (\\DateInterval incorrectly unserialized).', + 'raw' => 'Fixed bug #70153 (\\DateInterval incorrectly unserialized). (Maksim Iakunin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78751 (Serialising DatePeriod converts DateTimeImmutable).', + 'raw' => 'Fixed bug #78751 (Serialising DatePeriod converts DateTimeImmutable). (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78642 (Wrong libiconv version displayed). .', + 'raw' => 'Fixed bug #78642 (Wrong libiconv version displayed). (gedas at martynas, cmb).', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters).', + 'raw' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters). (mhagstrand)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78747 (OpCache corrupts custom extension result).', + 'raw' => 'Fixed bug #78747 (OpCache corrupts custom extension result). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78775 (TLS issues from HTTP request affecting other encrypted connections).', + 'raw' => 'Fixed bug #78775 (TLS issues from HTTP request affecting other encrypted connections). (Nikita)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78697 (ReflectionClass::ImplementsInterface - inaccurate error message with traits).', + 'raw' => 'Fixed bug #78697 (ReflectionClass::ImplementsInterface - inaccurate error message with traits). (villfa)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78665 (Multicasting may leak memory).', + 'raw' => 'Fixed bug #78665 (Multicasting may leak memory). (cmb)', + ), + ), + ), + ), + '7.2.24' => + array ( + 'date' => '24 Oct 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78535 (auto_detect_line_endings value not parsed as bool).', + 'raw' => 'Fixed bug #78535 (auto_detect_line_endings value not parsed as bool). (bugreportuser)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78620 (Out of memory error).', + 'raw' => 'Fixed bug #78620 (Out of memory error). (cmb, Nikita)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78442 (\'Illegal component\' on exif_read_data since PHP7)', + 'raw' => 'Fixed bug #78442 (\'Illegal component\' on exif_read_data since PHP7) (Kalle)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043)', + 'raw' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043) (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78579 (mb_decode_numericentity: args number inconsistency).', + 'raw' => 'Fixed bug #78579 (mb_decode_numericentity: args number inconsistency). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78609 (mb_check_encoding() no longer supports stringable objects).', + 'raw' => 'Fixed bug #78609 (mb_check_encoding() no longer supports stringable objects). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used).', + 'raw' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used). (fabiomsouto)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78623 (Regression caused by "SP call yields additional empty result set").', + 'raw' => 'Fixed bug #78623 (Regression caused by "SP call yields additional empty result set"). (cmb)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78624 (session_gc return value for user defined session handlers).', + 'raw' => 'Fixed bug #78624 (session_gc return value for user defined session handlers). (bshaffer)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76342 (file_get_contents waits twice specified timeout).', + 'raw' => 'Fixed bug #76342 (file_get_contents waits twice specified timeout). (Thomas Calvet)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78612 (strtr leaks memory when integer keys are used and the subject string shorter).', + 'raw' => 'Fixed bug #78612 (strtr leaks memory when integer keys are used and the subject string shorter). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter).', + 'raw' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter). (kkopachev)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78641 (addGlob can modify given remove_path value).', + 'raw' => 'Fixed bug #78641 (addGlob can modify given remove_path value). (cmb)', + ), + ), + ), + ), + '7.2.23' => + array ( + 'date' => '26 Sep 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78220 (Can\'t access OneDrive folder).', + 'raw' => 'Fixed bug #78220 (Can\'t access OneDrive folder). (cmb, ab)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78412 (Generator incorrectly reports non-releasable $this as GC child).', + 'raw' => 'Fixed bug #78412 (Generator incorrectly reports non-releasable $this as GC child). (Nikita)', + ), + ), + 'fastcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78469 (FastCGI on_accept hook is not called when using named pipes on Windows).', + 'raw' => 'Fixed bug #78469 (FastCGI on_accept hook is not called when using named pipes on Windows). (Sergei Turchanov)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed connect_attr issues and added the _server_host connection attribute.', + 'raw' => 'Fixed connect_attr issues and added the _server_host connection attribute. (Qianqian Bu)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78473 (odbc_close() closes arbitrary resources).', + 'raw' => 'Fixed bug #78473 (odbc_close() closes arbitrary resources). (cmb)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41997 (SP call yields additional empty result set).', + 'raw' => 'Fixed bug #41997 (SP call yields additional empty result set). (cmb)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78510 (Partially uninitialized buffer returned by sodium_crypto_generichash_init()).', + 'raw' => 'Fixed bug #78510 (Partially uninitialized buffer returned by sodium_crypto_generichash_init()). (Frank Denis, cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72884 (SplObject isCloneable() returns true but errs on clone).', + 'raw' => 'Fixed bug #72884 (SplObject isCloneable() returns true but errs on clone). (Chu Zhaowei)', + ), + ), + ), + ), + '7.2.22' => + array ( + 'date' => '29 Aug 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78363 (Buffer overflow in zendparse).', + 'raw' => 'Fixed bug #78363 (Buffer overflow in zendparse). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78379 (Cast to object confuses GC, causes crash).', + 'raw' => 'Fixed bug #78379 (Cast to object confuses GC, causes crash). (Dmitry)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77946 (Bad cURL resources returned by curl_multi_info_read()).', + 'raw' => 'Fixed bug #77946 (Bad cURL resources returned by curl_multi_info_read()). (Abyr Valg)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast).', + 'raw' => 'Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast). (Nikita)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78342 (Bus error in configure test for iconv //IGNORE).', + 'raw' => 'Fixed bug #78342 (Bus error in configure test for iconv //IGNORE). (Rainer Jung)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown).', + 'raw' => 'Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown). (George Wang)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78179 (MariaDB server version incorrectly detected).', + 'raw' => 'Fixed bug #78179 (MariaDB server version incorrectly detected). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77191 (Assertion failure in dce_live_ranges() when silencing is used).', + 'raw' => 'Fixed bug #77191 (Assertion failure in dce_live_ranges() when silencing is used). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream) with invalid length).', + 'raw' => 'Fixed bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream) with invalid length). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78282 (atime and mtime mismatch).', + 'raw' => 'Fixed bug #78282 (atime and mtime mismatch). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer).', + 'raw' => 'Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer). (Albert Casademont)', + ), + ), + ), + ), + '7.2.21' => + array ( + 'date' => '01 Aug 2019', + 'modules' => + array ( + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69044 (discrepency between time and microtime).', + 'raw' => 'Fixed bug #69044 (discrepency between time and microtime). (krakjoe)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042)', + 'raw' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041)', + 'raw' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041) (Stas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78183 (finfo_file shows wrong mime-type for .tga file).', + 'raw' => 'Fixed bug #78183 (finfo_file shows wrong mime-type for .tga file). (Joshua Westerheide)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77124 (FTP with SSL memory leak).', + 'raw' => 'Fixed bug #77124 (FTP with SSL memory leak). (Nikita)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78279 (libxml_disable_entity_loader settings is shared between requests (cgi-fcgi)).', + 'raw' => 'Fixed bug #78279 (libxml_disable_entity_loader settings is shared between requests (cgi-fcgi)). (Nikita)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated to LiteSpeed SAPI V7.4.3 (increased response header count limit from 100 to 1000, added crash handler to cleanly shutdown PHP request, added CloudLinux mod_lsapi mode).', + 'raw' => 'Updated to LiteSpeed SAPI V7.4.3 (increased response header count limit from 100 to 1000, added crash handler to cleanly shutdown PHP request, added CloudLinux mod_lsapi mode). (George Wang)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76058 (After "POST data can\'t be buffered", using php://input makes huge tmp files).', + 'raw' => 'Fixed bug #76058 (After "POST data can\'t be buffered", using php://input makes huge tmp files). (George Wang)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78231 (Segmentation fault upon stream_socket_accept of exported socket-to-stream).', + 'raw' => 'Fixed bug #78231 (Segmentation fault upon stream_socket_accept of exported socket-to-stream). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78189 (file cache strips last character of uname hash).', + 'raw' => 'Fixed bug #78189 (file cache strips last character of uname hash). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM).', + 'raw' => 'Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78291 (opcache_get_configuration doesn\'t list all directives).', + 'raw' => 'Fixed bug #78291 (opcache_get_configuration doesn\'t list all directives). (Andrew Collington)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN).', + 'raw' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN). (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78297 (Include unexistent file memory leak).', + 'raw' => 'Fixed bug #78297 (Include unexistent file memory leak). (Nikita)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78192 (SegFault when reuse statement after schema has changed).', + 'raw' => 'Fixed bug #78192 (SegFault when reuse statement after schema has changed). (Vincent Quatrevieux)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Upgraded to SQLite 3.28.0.', + 'raw' => 'Upgraded to SQLite 3.28.0. (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit).', + 'raw' => 'Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78269 (password_hash uses weak options for argon2).', + 'raw' => 'Fixed bug #78269 (password_hash uses weak options for argon2). (Remi)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78173 (XML-RPC mutates immutable objects during encoding).', + 'raw' => 'Fixed bug #78173 (XML-RPC mutates immutable objects during encoding). (Asher Baker)', + ), + ), + ), + ), + '7.2.20' => + array ( + 'date' => '04 Jul 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76980 (Interface gets skipped if autoloader throws an exception).', + 'raw' => 'Fixed bug #76980 (Interface gets skipped if autoloader throws an exception). (Nikita)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78025 (segfault when accessing properties of DOMDocumentType).', + 'raw' => 'Fixed bug #78025 (segfault when accessing properties of DOMDocumentType). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77956 (When mysqli.allow_local_infile = Off, use a meaningful error message).', + 'raw' => 'Fixed bug #77956 (When mysqli.allow_local_infile = Off, use a meaningful error message). (Sjon Hortensius)', + ), + 1 => + array ( + 'message' => 'Fixed bug #38546 (bindParam incorrect processing of bool types).', + 'raw' => 'Fixed bug #38546 (bindParam incorrect processing of bool types). (camporter)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78106 (Path resolution fails if opcache disabled during request).', + 'raw' => 'Fixed bug #78106 (Path resolution fails if opcache disabled during request). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78185 (File cache no longer works).', + 'raw' => 'Fixed bug #78185 (File cache no longer works). (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78079 (openssl_encrypt_ccm.phpt fails with OpenSSL 1.1.1c).', + 'raw' => 'Fixed bug #78079 (openssl_encrypt_ccm.phpt fails with OpenSSL 1.1.1c). (Jakub Zelenka)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78038 (Socket_select fails when resource array contains references).', + 'raw' => 'Fixed bug #78038 (Socket_select fails when resource array contains references). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77135 (Extract with EXTR_SKIP should skip $this).', + 'raw' => 'Fixed bug #77135 (Extract with EXTR_SKIP should skip $this). (Craig Duncan, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug ##77937 (preg_match failed).', + 'raw' => 'Fixed bug ##77937 (preg_match failed). (cmb, Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76345 (zip.h not found).', + 'raw' => 'Fixed bug #76345 (zip.h not found). (Michael Maroszek)', + ), + ), + ), + ), + '7.2.19' => + array ( + 'date' => '30 May 2019', + 'modules' => + array ( + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77909 (DatePeriod::__construct() with invalid recurrence count value).', + 'raw' => 'Fixed bug #77909 (DatePeriod::__construct() with invalid recurrence count value). (Ignace Nyamagana Butera)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). (CVE-2019-11040)', + 'raw' => 'Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). (CVE-2019-11040) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77934 (php-fpm kill -USR2 not working).', + 'raw' => 'Fixed bug #77934 (php-fpm kill -USR2 not working). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77921 (static.php.net doesn\'t work anymore).', + 'raw' => 'Fixed bug #77921 (static.php.net doesn\'t work anymore). (Peter Kokot)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77943 (imageantialias($image, false); does not work).', + 'raw' => 'Fixed bug #77943 (imageantialias($image, false); does not work). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). (CVE-2019-11038)', + 'raw' => 'Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). (CVE-2019-11038) (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow). (CVE-2019-11039).', + 'raw' => 'Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow). (CVE-2019-11039). (maris dot adam)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77843 (Use after free with json serializer).', + 'raw' => 'Fixed bug #77843 (Use after free with json serializer). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed possible crashes, because of inconsistent PCRE cache and opcache SHM reset.', + 'raw' => 'Fixed possible crashes, because of inconsistent PCRE cache and opcache SHM reset. (Alexey Kalinin, Dmitry)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77944 (Wrong meta pdo_type for bigint on LLP64).', + 'raw' => 'Fixed bug #77944 (Wrong meta pdo_type for bigint on LLP64). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75186 (Inconsistent reflection of Closure:::__invoke()).', + 'raw' => 'Fixed bug #75186 (Inconsistent reflection of Closure:::__invoke()). (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77911 (Wrong warning for session.sid_bits_per_character).', + 'raw' => 'Fixed bug #77911 (Wrong warning for session.sid_bits_per_character). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77024 (SplFileObject::__toString() may return array).', + 'raw' => 'Fixed bug #77024 (SplFileObject::__toString() may return array). (Craig Duncan)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77967 (Bypassing open_basedir restrictions via file uris).', + 'raw' => 'Fixed bug #77967 (Bypassing open_basedir restrictions via file uris). (Stas)', + ), + ), + ), + ), + '7.2.18' => + array ( + 'date' => '02 May 2019', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77794 (Incorrect Date header format in built-in server).', + 'raw' => 'Fixed bug #77794 (Incorrect Date header format in built-in server). (kelunik)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). (CVE-2019-11036)', + 'raw' => 'Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). (CVE-2019-11036) (Stas)', + ), + ), + 'interbase' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72175 (Impossibility of creating multiple connections to Interbase with php 7.x).', + 'raw' => 'Fixed bug #72175 (Impossibility of creating multiple connections to Interbase with php 7.x). (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77895 (IntlDateFormatter::create fails in strict mode if $locale = null).', + 'raw' => 'Fixed bug #77895 (IntlDateFormatter::create fails in strict mode if $locale = null). (Nikita)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'LiteSpeed SAPI 7.3.1, better process management, new API function litespeed_finish_request().', + 'raw' => 'LiteSpeed SAPI 7.3.1, better process management, new API function litespeed_finish_request(). (George Wang)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77821 (Potential heap corruption in TSendMail()).', + 'raw' => 'Fixed bug #77821 (Potential heap corruption in TSendMail()). (cmb)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77827 (preg_match does not ignore \\r in regex flags).', + 'raw' => 'Fixed bug #77827 (preg_match does not ignore \\r in regex flags). (requinix, cmb)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects).', + 'raw' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects). (camporter)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76801 (too many open files).', + 'raw' => 'Fixed bug #76801 (too many open files). (alekitto)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).', + 'raw' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints). (krakjoe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77805 (phpdbg build fails when readline is shared).', + 'raw' => 'Fixed bug #77805 (phpdbg build fails when readline is shared). (krakjoe)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77772 (ReflectionClass::getMethods(null) doesn\'t work).', + 'raw' => 'Fixed bug #77772 (ReflectionClass::getMethods(null) doesn\'t work). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77882 (Different behavior: always calls destructor).', + 'raw' => 'Fixed bug #77882 (Different behavior: always calls destructor). (Nikita)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77945 (Segmentation fault when constructing SoapClient with WSDL_CACHE_BOTH).', + 'raw' => 'Fixed bug #77945 (Segmentation fault when constructing SoapClient with WSDL_CACHE_BOTH). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77680 (recursive mkdir on ftp stream wrapper is incorrect).', + 'raw' => 'Fixed bug #77680 (recursive mkdir on ftp stream wrapper is incorrect). (Vlad Temian)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77844 (Crash due to null pointer in parse_ini_string with INI_SCANNER_TYPED).', + 'raw' => 'Fixed bug #77844 (Crash due to null pointer in parse_ini_string with INI_SCANNER_TYPED). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77853 (Inconsistent substr_compare behaviour with empty haystack).', + 'raw' => 'Fixed bug #77853 (Inconsistent substr_compare behaviour with empty haystack). (Nikita)', + ), + ), + ), + ), + '7.2.17' => + array ( + 'date' => '04 Apr 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77738 (Nullptr deref in zend_compile_expr).', + 'raw' => 'Fixed bug #77738 (Nullptr deref in zend_compile_expr). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77660 (Segmentation fault on break 2147483648).', + 'raw' => 'Fixed bug #77660 (Segmentation fault on break 2147483648). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77652 (Anonymous classes can lose their interface information).', + 'raw' => 'Fixed bug #77652 (Anonymous classes can lose their interface information). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77676 (Unable to run tests when building shared extension on AIX).', + 'raw' => 'Fixed bug #77676 (Unable to run tests when building shared extension on AIX). (Kevin Adler)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization).', + 'raw' => 'Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77578 (Crash when php unload).', + 'raw' => 'Fixed bug #77578 (Crash when php unload). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50020 (DateInterval:createDateFromString() silently fails).', + 'raw' => 'Fixed bug #50020 (DateInterval:createDateFromString() silently fails). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75113 (Added DatePeriod::getRecurrences() method).', + 'raw' => 'Fixed bug #75113 (Added DatePeriod::getRecurrences() method). (Ignace Nyamagana Butera)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034)', + 'raw' => 'Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). (CVE-2019-11035)', + 'raw' => 'Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). (CVE-2019-11035) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP).', + 'raw' => 'Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP). (Kevin Adler)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag).', + 'raw' => 'Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77597 (mysqli_fetch_field hangs scripts).', + 'raw' => 'Fixed bug #77597 (mysqli_fetch_field hangs scripts). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77691 (Opcache passes wrong value for inline array push assignments).', + 'raw' => 'Fixed bug #77691 (Opcache passes wrong value for inline array push assignments). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors).', + 'raw' => 'Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors). (Nikita)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases).', + 'raw' => 'Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases). (Miriam Lauter)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77646 (sign_detached() strings not terminated).', + 'raw' => 'Fixed bug #77646 (sign_detached() strings not terminated). (Frank)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Added sqlite3.defensive INI directive.', + 'raw' => 'Added sqlite3.defensive INI directive. (BohwaZ)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper).', + 'raw' => 'Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77669 (Crash in extract() when overwriting extracted array).', + 'raw' => 'Fixed bug #77669 (Crash in extract() when overwriting extracted array). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN).', + 'raw' => 'Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77765 (FTP stream wrapper should set the directory as executable).', + 'raw' => 'Fixed bug #77765 (FTP stream wrapper should set the directory as executable). (Vlad Temian)', + ), + ), + ), + ), + '7.2.16' => + array ( + 'date' => '07 Mar 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77589 (Core dump using parse_ini_string with numeric sections).', + 'raw' => 'Fixed bug #77589 (Core dump using parse_ini_string with numeric sections). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77630 (rename() across the device may allow unwanted access during processing).', + 'raw' => 'Fixed bug #77630 (rename() across the device may allow unwanted access during processing). (Stas)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77621 (Already defined constants are not properly reported).', + 'raw' => 'Fixed bug #77621 (Already defined constants are not properly reported). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77540 (Invalid Read on exif_process_SOFn).', + 'raw' => 'Fixed bug #77540 (Invalid Read on exif_process_SOFn). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER.', + 'raw' => 'Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER. (Cameron Porter)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).', + 'raw' => 'Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename). (bishop)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51068 (DirectoryIterator glob:// don\'t support current path relative queries).', + 'raw' => 'Fixed bug #51068 (DirectoryIterator glob:// don\'t support current path relative queries). (Ahmed Abdou)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77431 (openFile() silently truncates after a null byte).', + 'raw' => 'Fixed bug #77431 (openFile() silently truncates after a null byte). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions).', + 'raw' => 'Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions). (John Stevenson)', + ), + 1 => + array ( + 'message' => 'Disabled LOCAL INFILE by default, can be enabled using php.ini directive mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql.', + 'raw' => 'Disabled LOCAL INFILE by default, can be enabled using php.ini directive mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql. (Darek Slusarczyk)', + ), + ), + ), + ), + '7.2.15' => + array ( + 'date' => '07 Feb 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77339 (__callStatic may get incorrect arguments).', + 'raw' => 'Fixed bug #77339 (__callStatic may get incorrect arguments). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77494 (Disabling class causes segfault on member access).', + 'raw' => 'Fixed bug #77494 (Disabling class causes segfault on member access). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77530 (PHP crashes when parsing `(2)::class`).', + 'raw' => 'Fixed bug #77530 (PHP crashes when parsing `(2)::class`). (Ekin)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76675 (Segfault with H2 server push).', + 'raw' => 'Fixed bug #76675 (Segfault with H2 server push). (Pedro Magalhães)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73281 (imagescale(…, IMG_BILINEAR_FIXED) can cause black border).', + 'raw' => 'Fixed bug #73281 (imagescale(…, IMG_BILINEAR_FIXED) can cause black border). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73614 (gdImageFilledArc() doesn\'t properly draw pies).', + 'raw' => 'Fixed bug #73614 (gdImageFilledArc() doesn\'t properly draw pies). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77272 (imagescale() may return image resource on failure).', + 'raw' => 'Fixed bug #77272 (imagescale() may return image resource on failure). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77391 (1bpp BMPs may fail to be loaded).', + 'raw' => 'Fixed bug #77391 (1bpp BMPs may fail to be loaded). (Romain Déoux, cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77479 (imagewbmp() segfaults with very large images).', + 'raw' => 'Fixed bug #77479 (imagewbmp() segfaults with very large images). (cmb)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77440 (ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dll).', + 'raw' => 'Fixed bug #77440 (ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dll). (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77454 (mb_scrub() silently truncates after a null byte).', + 'raw' => 'Fixed bug #77454 (mb_scrub() silently truncates after a null byte). (64796c6e69 at gmail dot com)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75684 (In mysqlnd_ext_plugin.h the plugin methods family has no external visibility).', + 'raw' => 'Fixed bug #75684 (In mysqlnd_ext_plugin.h the plugin methods family has no external visibility). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77361 (configure fails on 64-bit AIX when opcache enabled).', + 'raw' => 'Fixed bug #77361 (configure fails on 64-bit AIX when opcache enabled). (Kevin Adler)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77390 (feof might hang on TLS streams in case of fragmented TLS records).', + 'raw' => 'Fixed bug #77390 (feof might hang on TLS streams in case of fragmented TLS records). (Abyl Valg, Jakub Zelenka)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77273 (array_walk_recursive corrupts value types leading to PDO failure).', + 'raw' => 'Fixed bug #77273 (array_walk_recursive corrupts value types leading to PDO failure). (Nikita)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr).', + 'raw' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr). (kabel)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76839 (socket_recvfrom may return an invalid \'from\' address on MacOS).', + 'raw' => 'Fixed bug #76839 (socket_recvfrom may return an invalid \'from\' address on MacOS). (Michael Meyer)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77395 (segfault about array_multisort).', + 'raw' => 'Fixed bug #77395 (segfault about array_multisort). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77439 (parse_str segfaults when inserting item into existing array).', + 'raw' => 'Fixed bug #77439 (parse_str segfaults when inserting item into existing array). (Nikita)', + ), + ), + ), + ), + '7.2.14' => + array ( + 'date' => '10 Jan 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77369 (memcpy with negative length via crafted DNS response).', + 'raw' => 'Fixed bug #77369 (memcpy with negative length via crafted DNS response). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71041 (zend_signal_startup() needs ZEND_API).', + 'raw' => 'Fixed bug #71041 (zend_signal_startup() needs ZEND_API). (Valentin V. Bartenev)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76046 (PHP generates "FE_FREE" opcode on the wrong line).', + 'raw' => 'Fixed bug #76046 (PHP generates "FE_FREE" opcode on the wrong line). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77177 (Serializing or unserializing COM objects crashes).', + 'raw' => 'Fixed bug #77177 (Serializing or unserializing COM objects crashes). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77097 (DateTime::diff gives wrong diff when the actual diff is less than 1 second).', + 'raw' => 'Fixed bug #77097 (DateTime::diff gives wrong diff when the actual diff is less than 1 second). (Derick)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77184 (Unsigned rational numbers are written out as signed rationals).', + 'raw' => 'Fixed bug #77184 (Unsigned rational numbers are written out as signed rationals). (Colin Basnett)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free).', + 'raw' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap).', + 'raw' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77195 (Incorrect error handling of imagecreatefromjpeg()).', + 'raw' => 'Fixed bug #77195 (Incorrect error handling of imagecreatefromjpeg()). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77198 (auto cropping has insufficient precision).', + 'raw' => 'Fixed bug #77198 (auto cropping has insufficient precision). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77200 (imagecropauto(…, GD_CROP_SIDES) crops left but not right).', + 'raw' => 'Fixed bug #77200 (imagecropauto(…, GD_CROP_SIDES) crops left but not right). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77020 (null pointer dereference in imap_mail).', + 'raw' => 'Fixed bug #77020 (null pointer dereference in imap_mail). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token).', + 'raw' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node).', + 'raw' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at).', + 'raw' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string).', + 'raw' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77385 (buffer overflow in fetch_token).', + 'raw' => 'Fixed bug #77385 (buffer overflow in fetch_token). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode).', + 'raw' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code).', + 'raw' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). (Stas)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working).', + 'raw' => 'Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working). (KoenigsKind)', + ), + 1 => + array ( + 'message' => 'Added oci_set_call_timeout() for call timeouts.', + 'raw' => 'Added oci_set_call_timeout() for call timeouts.', + ), + 2 => + array ( + 'message' => 'Added oci_set_db_operation() for the DBOP end-to-end-tracing attribute.', + 'raw' => 'Added oci_set_db_operation() for the DBOP end-to-end-tracing attribute.', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77215 (CFG assertion failure on multiple finalizing switch frees in one block).', + 'raw' => 'Fixed bug #77215 (CFG assertion failure on multiple finalizing switch frees in one block). (Nikita)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Handle invalid index passed to PDOStatement::fetchColumn() as error.', + 'raw' => 'Handle invalid index passed to PDOStatement::fetchColumn() as error. (Sergei Morozov)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext).', + 'raw' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). (Stas)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77136 (Unsupported IPV6_RECVPKTINFO constants on macOS).', + 'raw' => 'Fixed bug #77136 (Unsupported IPV6_RECVPKTINFO constants on macOS). (Mizunashi Mana)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77051 (Issue with re-binding on SQLite3).', + 'raw' => 'Fixed bug #77051 (Issue with re-binding on SQLite3). (BohwaZ)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()).', + 'raw' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code).', + 'raw' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). (Stas)', + ), + ), + ), + ), + '7.2.13' => + array ( + 'date' => '06 Dec 2018', + 'modules' => + array ( + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77151 (ftp_close(): SSL_read on shutdown).', + 'raw' => 'Fixed bug #77151 (ftp_close(): SSL_read on shutdown). (Remi)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77111 (php-win.exe corrupts unicode symbols from cli parameters).', + 'raw' => 'Fixed bug #77111 (php-win.exe corrupts unicode symbols from cli parameters). (Anatol)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77095 (slowness regression in 7.2/7.3 (compared to 7.1)).', + 'raw' => 'Fixed bug #77095 (slowness regression in 7.2/7.3 (compared to 7.1)). (Anatol)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR).', + 'raw' => 'Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter).', + 'raw' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter). (Stas)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77079 (odbc_fetch_object has incorrect type signature).', + 'raw' => 'Fixed bug #77079 (odbc_fetch_object has incorrect type signature). (Jon Allen)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77058 (Type inference in opcache causes side effects).', + 'raw' => 'Fixed bug #77058 (Type inference in opcache causes side effects). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77092 (array_diff_key() - segmentation fault).', + 'raw' => 'Fixed bug #77092 (array_diff_key() - segmentation fault). (Nikita)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77047 (pg_convert has a broken regex for the \'TIME WITHOUT TIMEZONE\' data type).', + 'raw' => 'Fixed bug #77047 (pg_convert has a broken regex for the \'TIME WITHOUT TIMEZONE\' data type). (Andy Gajetzki)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50675 (SoapClient can\'t handle object references correctly).', + 'raw' => 'Fixed bug #50675 (SoapClient can\'t handle object references correctly). (Cameron Porter)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault).', + 'raw' => 'Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77141 (Signedness issue in SOAP when precision=-1).', + 'raw' => 'Fixed bug #77141 (Signedness issue in SOAP when precision=-1). (cmb)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67619 (Validate length on socket_write).', + 'raw' => 'Fixed bug #67619 (Validate length on socket_write). (thiagooak)', + ), + ), + ), + ), + '7.2.12' => + array ( + 'date' => '08 Nov 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76846 (Segfault in shutdown function after memory limit error).', + 'raw' => 'Fixed bug #76846 (Segfault in shutdown function after memory limit error). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76946 (Cyclic reference in generator not detected).', + 'raw' => 'Fixed bug #76946 (Cyclic reference in generator not detected). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77035 (The phpize and ./configure create redundant .deps file).', + 'raw' => 'Fixed bug #77035 (The phpize and ./configure create redundant .deps file). (Peter Kokot)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77041 (buildconf should output error messages to stderr)', + 'raw' => 'Fixed bug #77041 (buildconf should output error messages to stderr) (Mizunashi Mana)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Upgraded timelib to 2017.08.', + 'raw' => 'Upgraded timelib to 2017.08. (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" and "y").', + 'raw' => 'Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" and "y"). (Adam Saponara)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77007 (fractions in `diff()` are not correctly normalized).', + 'raw' => 'Fixed bug #77007 (fractions in `diff()` are not correctly normalized). (Derick)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed #76948 (Failed shutdown/reboot or end session in Windows).', + 'raw' => 'Fixed #76948 (Failed shutdown/reboot or end session in Windows). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76954 (apache_response_headers removes last character from header name).', + 'raw' => 'Fixed bug #76954 (apache_response_headers removes last character from header name). (stodorovic)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown).', + 'raw' => 'Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown). (Manuel Mausz)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH).', + 'raw' => 'Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH). (anthrax at unixuser dot org)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76936 (Objects cannot access their private attributes while handling reflection errors).', + 'raw' => 'Fixed bug #76936 (Objects cannot access their private attributes while handling reflection errors). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66430 (ReflectionFunction::invoke does not invoke closure with object scope).', + 'raw' => 'Fixed bug #66430 (ReflectionFunction::invoke does not invoke closure with object scope). (Nikita)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Some base64 outputs were truncated; this is not the case any more.', + 'raw' => 'Some base64 outputs were truncated; this is not the case any more. (jedisct1)', + ), + 1 => + array ( + 'message' => 'block sizes >= 256 bytes are now supposed by sodium_pad() even when an old version of libsodium has been installed.', + 'raw' => 'block sizes >= 256 bytes are now supposed by sodium_pad() even when an old version of libsodium has been installed. (jedisct1)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77008 (sodium_pad() could read (but not return nor write) uninitialized memory when trying to pad an empty input).', + 'raw' => 'Fixed bug #77008 (sodium_pad() could read (but not return nor write) uninitialized memory when trying to pad an empty input). (jedisct1)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76965 (INI_SCANNER_RAW doesn\'t strip trailing whitespace).', + 'raw' => 'Fixed bug #76965 (INI_SCANNER_RAW doesn\'t strip trailing whitespace). (Pierrick)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77027 (tidy::getOptDoc() not available on Windows).', + 'raw' => 'Fixed bug #77027 (tidy::getOptDoc() not available on Windows). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #30875 (xml_parse_into_struct() does not resolve entities).', + 'raw' => 'Fixed bug #30875 (xml_parse_into_struct() does not resolve entities). (cmb)', + ), + 1 => + array ( + 'message' => 'Add support for getting SKIP_TAGSTART and SKIP_WHITE options.', + 'raw' => 'Add support for getting SKIP_TAGSTART and SKIP_WHITE options. (cmb)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75282 (xmlrpc_encode_request() crashes).', + 'raw' => 'Fixed bug #75282 (xmlrpc_encode_request() crashes). (cmb)', + ), + ), + ), + ), + '7.2.11' => + array ( + 'date' => '11 Oct 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76800 (foreach inconsistent if array modified during loop).', + 'raw' => 'Fixed bug #76800 (foreach inconsistent if array modified during loop). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory).', + 'raw' => 'Fixed bug #76901 (method_exists on SPL iterator passthrough method corrupts memory). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected).', + 'raw' => 'Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected). (Pierrick)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be).', + 'raw' => 'Fixed bug #66828 (iconv_mime_encode Q-encoding longer than it should be). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS).', + 'raw' => 'Fixed bug #76832 (ZendOPcache.MemoryBase periodically deleted by the OS). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76796 (Compile-time evaluation of disabled function in opcache causes segfault).', + 'raw' => 'Fixed bug #76796 (Compile-time evaluation of disabled function in opcache causes segfault). (Nikita)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75696 (posix_getgrnam fails to print details of group).', + 'raw' => 'Fixed bug #75696 (posix_getgrnam fails to print details of group). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod).', + 'raw' => 'Fixed bug #74454 (Wrong exception being thrown when using ReflectionMethod). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection).', + 'raw' => 'Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open data connection). (Ville Hukkamäki)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client).', + 'raw' => 'Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client). (Ville Hukkamäki)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75533 (array_reduce is slow when $carry is large array).', + 'raw' => 'Fixed bug #75533 (array_reduce is slow when $carry is large array). (Manabu Matsui)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76886 (Can\'t build xmlrpc with expat).', + 'raw' => 'Fixed bug #76886 (Can\'t build xmlrpc with expat). (Thomas Petazzoni, cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed).', + 'raw' => 'Fixed bug #75273 (php_zlib_inflate_filter() may not update bytes_consumed). (Martin Burke, cmb)', + ), + ), + ), + ), + '7.2.10' => + array ( + 'date' => '13 Sep 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76754 (parent private constant in extends class memory leak).', + 'raw' => 'Fixed bug #76754 (parent private constant in extends class memory leak). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72443 (Generate enabled extension).', + 'raw' => 'Fixed bug #72443 (Generate enabled extension). (petk)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75797 (Memory leak when using class_alias() in non-debug mode).', + 'raw' => 'Fixed bug #75797 (Memory leak when using class_alias() in non-debug mode). (Massimiliano Braglia)', + ), + ), + 'apache2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76582 (Apache bucket brigade sometimes becomes invalid).', + 'raw' => 'Fixed bug #76582 (Apache bucket brigade sometimes becomes invalid). (stas)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed arginfo for bzcompress.', + 'raw' => 'Fixed arginfo for bzcompress. (Tyson Andre)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76517 (incorrect restoring of LDFLAGS).', + 'raw' => 'Fixed bug #76517 (incorrect restoring of LDFLAGS). (sji)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68180 (iconv_mime_decode can return extra characters in a header).', + 'raw' => 'Fixed bug #68180 (iconv_mime_decode can return extra characters in a header). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers).', + 'raw' => 'Fixed bug #63839 (iconv_mime_decode_headers function is skipping headers). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #60494 (iconv_mime_decode does ignore special characters).', + 'raw' => 'Fixed bug #60494 (iconv_mime_decode does ignore special characters). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #55146 (iconv_mime_decode_headers() skips some headers).', + 'raw' => 'Fixed bug #55146 (iconv_mime_decode_headers() skips some headers). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 11+ named placeholders).', + 'raw' => 'Fixed bug #74484 (MessageFormatter::formatMessage memory corruption with 11+ named placeholders). (Anatol)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader callback undefined).', + 'raw' => 'Fixed bug #76777 ("public id" parameter of libxml_set_external_entity_loader callback undefined). (Ville Hukkamäki)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76704 (mb_detect_order return value varies based on argument type).', + 'raw' => 'Fixed bug #76704 (mb_detect_order return value varies based on argument type). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file).', + 'raw' => 'Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76705 (unusable ssl => peer_fingerprint in stream_context_create()).', + 'raw' => 'Fixed bug #76705 (unusable ssl => peer_fingerprint in stream_context_create()). (Jakub Zelenka)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76595 (phpdbg man page contains outdated information).', + 'raw' => 'Fixed bug #76595 (phpdbg man page contains outdated information). (Kevin Abel)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()).', + 'raw' => 'Fixed bug #68825 (Exception in DirectoryIterator::getLinkTarget()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0).', + 'raw' => 'Fixed bug #68175 (RegexIterator pregFlags are NULL instead of 0). (Tim Siebels)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76778 (array_reduce leaks memory if callback throws exception).', + 'raw' => 'Fixed bug #76778 (array_reduce leaks memory if callback throws exception). (cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure option).', + 'raw' => 'Fixed bug #65988 (Zlib version check fails when an include/zlib/ style dir is passed to the --with-zlib configure option). (Jay Bonci)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76709 (Minimal required zlib library is 1.2.0.4).', + 'raw' => 'Fixed bug #76709 (Minimal required zlib library is 1.2.0.4). (petk)', + ), + ), + ), + ), + '7.2.9' => + array ( + 'date' => '16 Aug 2018', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52974 (jewish.c: compile error under Windows with GBK charset).', + 'raw' => 'Fixed bug #52974 (jewish.c: compile error under Windows with GBK charset). (cmb)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76366 (References in sub-array for filtering breaks the filter).', + 'raw' => 'Fixed bug #76366 (References in sub-array for filtering breaks the filter). (ZiHang Gao)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76488 (Memory leak when fetching a BLOB field).', + 'raw' => 'Fixed bug #76488 (Memory leak when fetching a BLOB field). (Simonov Denis)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75402 (Possible Memory Leak using PDO::CURSOR_SCROLL option).', + 'raw' => 'Fixed bug #75402 (Possible Memory Leak using PDO::CURSOR_SCROLL option). (Anatol)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn\'t juggle).', + 'raw' => 'Fixed #76665 (SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn\'t juggle). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73817 (Incorrect entries in get_html_translation_table).', + 'raw' => 'Fixed bug #73817 (Incorrect entries in get_html_translation_table). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68553 (array_column: null values in $index_key become incrementing keys in result).', + 'raw' => 'Fixed bug #68553 (array_column: null values in $index_key become incrementing keys in result). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76643 (Segmentation fault when using `output_add_rewrite_var`).', + 'raw' => 'Fixed bug #76643 (Segmentation fault when using `output_add_rewrite_var`). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76524 (ZipArchive memory leak (OVERWRITE flag and empty archive)).', + 'raw' => 'Fixed bug #76524 (ZipArchive memory leak (OVERWRITE flag and empty archive)). (Timur Ibragimov)', + ), + ), + ), + ), + '7.2.8' => + array ( + 'date' => '19 Jul 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76534 (PHP hangs on \'illegal string offset on string references with an error handler).', + 'raw' => 'Fixed bug #76534 (PHP hangs on \'illegal string offset on string references with an error handler). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76520 (Object creation leaks memory when executed over HTTP).', + 'raw' => 'Fixed bug #76520 (Object creation leaks memory when executed over HTTP). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize properly).', + 'raw' => 'Fixed bug #76502 (Chain of mixed exceptions and errors does not serialize properly). (Nikita)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76462 (Undefined property: DateInterval::$f).', + 'raw' => 'Fixed bug #76462 (Undefined property: DateInterval::$f). (Anatol)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76409 (heap use after free in _php_stream_free).', + 'raw' => 'Fixed bug #76409 (heap use after free in _php_stream_free). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76423 (Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c).', + 'raw' => 'Fixed bug #76423 (Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76557 (heap-buffer-overflow (READ of size 48) while reading exif data).', + 'raw' => 'Fixed bug #76557 (heap-buffer-overflow (READ of size 48) while reading exif data). (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to non-blocking).', + 'raw' => 'Fixed bug #73342 (Vulnerability in php-fpm by changing stdin to non-blocking). (Nikita)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74670 (Integer Underflow when unserializing GMP and possible other classes).', + 'raw' => 'Fixed bug #74670 (Integer Underflow when unserializing GMP and possible other classes). (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong type).', + 'raw' => 'Fixed bug #76556 (get_debug_info handler for BreakIterator shows wrong type). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76532 (Integer overflow and excessive memory usage in mb_strimwidth).', + 'raw' => 'Fixed bug #76532 (Integer overflow and excessive memory usage in mb_strimwidth). (MarcusSchwarz)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76477 (Opcache causes empty return value).', + 'raw' => 'Fixed bug #76477 (Opcache causes empty return value). (Nikita, Laruence)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76548 (pg_fetch_result did not fetch the next row).', + 'raw' => 'Fixed bug #76548 (pg_fetch_result did not fetch the next row). (Anatol)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix arginfo wrt. optional/required parameters.', + 'raw' => 'Fix arginfo wrt. optional/required parameters. (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler).', + 'raw' => 'Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with inherited classes).', + 'raw' => 'Fixed bug #75231 (ReflectionProperty#getValue() incorrectly works with inherited classes). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys).', + 'raw' => 'Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71848 (getimagesize with $imageinfo returns false).', + 'raw' => 'Fixed bug #71848 (getimagesize with $imageinfo returns false). (cmb)', + ), + ), + 'win32' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76459 (windows linkinfo lacks openbasedir check).', + 'raw' => 'Fixed bug #76459 (windows linkinfo lacks openbasedir check). (Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76461 (OPSYS_Z_CPM defined instead of OPSYS_CPM).', + 'raw' => 'Fixed bug #76461 (OPSYS_Z_CPM defined instead of OPSYS_CPM). (Dennis Birkholz, Remi)', + ), + ), + ), + ), + '7.2.7' => + array ( + 'date' => '07 Jun 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76337 (segfault when opcache enabled + extension use zend_register_class_alias).', + 'raw' => 'Fixed bug #76337 (segfault when opcache enabled + extension use zend_register_class_alias). (xKhorasan)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76333 (PHP built-in server does not find files if root path contains special characters).', + 'raw' => 'Fixed bug #76333 (PHP built-in server does not find files if root path contains special characters). (Anatol)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76296 (openssl_pkey_get_public does not respect open_basedir).', + 'raw' => 'Fixed bug #76296 (openssl_pkey_get_public does not respect open_basedir). (Erik Lax, Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76174 (openssl extension fails to build with LibreSSL 2.7).', + 'raw' => 'Fixed bug #76174 (openssl extension fails to build with LibreSSL 2.7). (Jakub Zelenka)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76367 (NoRewindIterator segfault 11).', + 'raw' => 'Fixed bug #76367 (NoRewindIterator segfault 11). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76410 (SIGV in zend_mm_alloc_small).', + 'raw' => 'Fixed bug #76410 (SIGV in zend_mm_alloc_small). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76335 ("link(): Bad file descriptor" with non-ASCII path).', + 'raw' => 'Fixed bug #76335 ("link(): Bad file descriptor" with non-ASCII path). (Anatol)', + ), + ), + ), + ), + '7.2.6' => + array ( + 'date' => '24 May 2018', + 'modules' => + array ( + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76164 (exif_read_data zend_mm_heap corrupted).', + 'raw' => 'Fixed bug #76164 (exif_read_data zend_mm_heap corrupted). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76075 --with-fpm-acl wrongly tries to find libacl on FreeBSD.', + 'raw' => 'Fixed bug #76075 --with-fpm-acl wrongly tries to find libacl on FreeBSD. (mgorny)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74385 (Locale::parseLocale() broken with some arguments).', + 'raw' => 'Fixed bug #74385 (Locale::parseLocale() broken with some arguments). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).', + 'raw' => 'Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76275 (Assertion failure in file cache when unserializing empty try_catch_array).', + 'raw' => 'Fixed bug #76275 (Assertion failure in file cache when unserializing empty try_catch_array). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors).', + 'raw' => 'Fixed bug #76281 (Opcache causes incorrect "undefined variable" errors). (Nikita)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed arginfo of array_replace(_recursive) and array_merge(_recursive).', + 'raw' => 'Fixed arginfo of array_replace(_recursive) and array_merge(_recursive). (carusogabriel)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start with "#").', + 'raw' => 'Fixed bug #74892 (Url Rewriting (trans_sid) not working on urls that start with "#"). (Andrew Nester)', + ), + ), + ), + ), + '7.2.5' => + array ( + 'date' => '26 Apr 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75722 (Convert valgrind detection to configure option).', + 'raw' => 'Fixed bug #75722 (Convert valgrind detection to configure option). (Michael Heimpold)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76131 (mismatch arginfo for date_create).', + 'raw' => 'Fixed bug #76131 (mismatch arginfo for date_create). (carusogabriel)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76130 (Heap Buffer Overflow (READ: 1786) in exif_iif_add_value).', + 'raw' => 'Fixed bug #76130 (Heap Buffer Overflow (READ: 1786) in exif_iif_add_value). (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68440 (ERROR: failed to reload: execvp() failed: Argument list too long).', + 'raw' => 'Fixed bug #68440 (ERROR: failed to reload: execvp() failed: Argument list too long). (Jacob Hipps)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect write to getenv result in FPM reload.', + 'raw' => 'Fixed incorrect write to getenv result in FPM reload. (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52070 (imagedashedline() - dashed line sometimes is not visible).', + 'raw' => 'Fixed bug #52070 (imagedashedline() - dashed line sometimes is not visible). (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76249 (stream filter convert.iconv leads to infinite loop on invalid sequence).', + 'raw' => 'Fixed bug #76249 (stream filter convert.iconv leads to infinite loop on invalid sequence). (Stas)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76153 (Intl compilation fails with icu4c 61.1).', + 'raw' => 'Fixed bug #76153 (Intl compilation fails with icu4c 61.1). (Anatol)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76248 (Malicious LDAP-Server Response causes Crash).', + 'raw' => 'Fixed bug #76248 (Malicious LDAP-Server Response causes Crash). (Stas)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75944 (Wrong cp1251 detection).', + 'raw' => 'Fixed bug #75944 (Wrong cp1251 detection). (dmk001)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1).', + 'raw' => 'Fixed bug #76113 (mbstring does not build with Oniguruma 6.8.1). (chrullrich, cmb)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76088 (ODBC functions are not available by default on Windows).', + 'raw' => 'Fixed bug #76088 (ODBC functions are not available by default on Windows). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76094 (Access violation when using opcache).', + 'raw' => 'Fixed bug #76094 (Access violation when using opcache). (Laruence)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76129 (fix for CVE-2018-5712 may not be complete).', + 'raw' => 'Fixed bug #76129 (fix for CVE-2018-5712 may not be complete). (Stas)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite).', + 'raw' => 'Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite). (Laruence)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76131 (mismatch arginfo for splarray constructor).', + 'raw' => 'Fixed bug #76131 (mismatch arginfo for splarray constructor). (carusogabriel)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74139 (mail.add_x_header default inconsistent with docs).', + 'raw' => 'Fixed bug #74139 (mail.add_x_header default inconsistent with docs). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75996 (incorrect url in header for mt_rand).', + 'raw' => 'Fixed bug #75996 (incorrect url in header for mt_rand). (tatarbj)', + ), + ), + ), + ), + '7.2.4' => + array ( + 'date' => '29 Mar 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76025 (Segfault while throwing exception in error_handler).', + 'raw' => 'Fixed bug #76025 (Segfault while throwing exception in error_handler). (Dmitry, Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76044 (\'date: illegal option -- -\' in ./configure on FreeBSD).', + 'raw' => 'Fixed bug #76044 (\'date: illegal option -- -\' in ./configure on FreeBSD). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls).', + 'raw' => 'Fixed bug #75605 (Dumpable FPM child processes allow bypassing opcache access controls). (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed ftp_pasv arginfo.', + 'raw' => 'Fixed ftp_pasv arginfo. (carusogabriel)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73957 (signed integer conversion in imagescale()).', + 'raw' => 'Fixed bug #73957 (signed integer conversion in imagescale()). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76041 (null pointer access crashed php).', + 'raw' => 'Fixed bug #76041 (null pointer access crashed php). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed imagesetinterpolation arginfo.', + 'raw' => 'Fixed imagesetinterpolation arginfo. (Gabriel Caruso)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75867 (Freeing uninitialized pointer).', + 'raw' => 'Fixed bug #75867 (Freeing uninitialized pointer). (Philip Prindeville)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62545 (wrong unicode mapping in some charsets).', + 'raw' => 'Fixed bug #62545 (wrong unicode mapping in some charsets). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75969 (Assertion failure in live range DCE due to block pass misoptimization).', + 'raw' => 'Fixed bug #75969 (Assertion failure in live range DCE due to block pass misoptimization). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed openssl_* arginfos.', + 'raw' => 'Fixed openssl_* arginfos. (carusogabriel)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)).', + 'raw' => 'Fixed bug #75873 (pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)). (Sam Ding)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76085 (Segmentation fault in buildFromIterator when directory name contains a \\n).', + 'raw' => 'Fixed bug #76085 (Segmentation fault in buildFromIterator when directory name contains a \\n). (Laruence)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75961 (Strange references behavior).', + 'raw' => 'Fixed bug #75961 (Strange references behavior). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed some arginfos.', + 'raw' => 'Fixed some arginfos. (carusogabriel)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76068 (parse_ini_string fails to parse "[foo]\\nbar=1|>baz" with segfault).', + 'raw' => 'Fixed bug #76068 (parse_ini_string fails to parse "[foo]\\nbar=1|>baz" with segfault). (Anatol)', + ), + ), + ), + ), + '7.2.3' => + array ( + 'date' => '01 Mar 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75864 ("stream_isatty" returns wrong value on s390x).', + 'raw' => 'Fixed bug #75864 ("stream_isatty" returns wrong value on s390x). (Sam Ding)', + ), + ), + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75882 (a simple way for segfaults in threadsafe php just with configuration).', + 'raw' => 'Fixed bug #75882 (a simple way for segfaults in threadsafe php just with configuration). (Anatol)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75857 (Timezone gets truncated when formatted).', + 'raw' => 'Fixed bug #75857 (Timezone gets truncated when formatted). (carusogabriel)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null`).', + 'raw' => 'Fixed bug #75928 (Argument 2 for `DateTimeZone::listIdentifiers()` should accept `null`). (Pedro Lacerda)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it).', + 'raw' => 'Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). (jhdxr)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros).', + 'raw' => 'Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke)', + ), + ), + 'libxml2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75871 (use pkg-config where available).', + 'raw' => 'Fixed bug #75871 (use pkg-config where available). (pmmaga)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75838 (Memory leak in pg_escape_bytea()).', + 'raw' => 'Fixed bug #75838 (Memory leak in pg_escape_bytea()). (ard_1 at mail dot ru)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54289 (Phar::extractTo() does not accept specific directories to be extracted).', + 'raw' => 'Fixed bug #54289 (Phar::extractTo() does not accept specific directories to be extracted). (bishop)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65414 (deal with leading slash while adding files correctly).', + 'raw' => 'Fixed bug #65414 (deal with leading slash while adding files correctly). (bishopb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #65414 (deal with leading slash when adding files correctly).', + 'raw' => 'Fixed bug #65414 (deal with leading slash when adding files correctly). (bishopb)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73725 (Unable to retrieve value of varchar(max) type).', + 'raw' => 'Fixed bug #73725 (Unable to retrieve value of varchar(max) type). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75729 (opcache segfault when installing Bitrix).', + 'raw' => 'Fixed bug #75729 (opcache segfault when installing Bitrix). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75893 (file_get_contents $http_response_header variable bugged with opcache).', + 'raw' => 'Fixed bug #75893 (file_get_contents $http_response_header variable bugged with opcache). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75938 (Modulus value not stored in variable).', + 'raw' => 'Fixed bug #75938 (Modulus value not stored in variable). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74519 (strange behavior of AppendIterator).', + 'raw' => 'Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75916 (DNS_CAA record results contain garbage).', + 'raw' => 'Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike, Philip Sharp)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75981 (Prevent reading beyond buffer start in http wrapper).', + 'raw' => 'Fixed bug #75981 (Prevent reading beyond buffer start in http wrapper). (Stas)', + ), + ), + ), + ), + '7.2.2' => + array ( + 'date' => '01 Feb 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75742 (potential memleak in internal classes\'s static members).', + 'raw' => 'Fixed bug #75742 (potential memleak in internal classes\'s static members). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75679 (Path 260 character problem).', + 'raw' => 'Fixed bug #75679 (Path 260 character problem). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75614 (Some non-portable == in shell scripts).', + 'raw' => 'Fixed bug #75614 (Some non-portable == in shell scripts). (jdolecek)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75786 (segfault when using spread operator on generator passed by reference).', + 'raw' => 'Fixed bug #75786 (segfault when using spread operator on generator passed by reference). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75799 (arg of get_defined_functions is optional).', + 'raw' => 'Fixed bug #75799 (arg of get_defined_functions is optional). (carusogabriel)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75396 (Exit inside generator finally results in fatal error).', + 'raw' => 'Fixed bug #75396 (Exit inside generator finally results in fatal error). (Nikita)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75794 (getenv() crashes on Windows 7.2.1 when second parameter is false).', + 'raw' => 'Fixed bug #75794 (getenv() crashes on Windows 7.2.1 when second parameter is false). (Anatol)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75774 (imap_append HeapCorruction).', + 'raw' => 'Fixed bug #75774 (imap_append HeapCorruction). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75720 (File cache not populated after SHM runs full).', + 'raw' => 'Fixed bug #75720 (File cache not populated after SHM runs full). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75687 (var 8 (TMP) has array key type but not value type).', + 'raw' => 'Fixed bug #75687 (var 8 (TMP) has array key type but not value type). (Nikita, Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75698 (Using @ crashes php7.2-fpm).', + 'raw' => 'Fixed bug #75698 (Using @ crashes php7.2-fpm). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash).', + 'raw' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash). (Dmitry)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75616 (PDO extension doesn\'t allow to be built shared on Darwin).', + 'raw' => 'Fixed bug #75616 (PDO extension doesn\'t allow to be built shared on Darwin). (jdolecek)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75615 (PDO Mysql module can\'t be built as module).', + 'raw' => 'Fixed bug #75615 (PDO Mysql module can\'t be built as module). (jdolecek)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75671 (pg_version() crashes when called on a connection to cockroach).', + 'raw' => 'Fixed bug #75671 (pg_version() crashes when called on a connection to cockroach). (magicaltux at gmail dot com)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75775 (readline_read_history segfaults with empty file).', + 'raw' => 'Fixed bug #75775 (readline_read_history segfaults with empty file). (Anatol)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75735 ([embed SAPI] Segmentation fault in sapi_register_post_entry).', + 'raw' => 'Fixed bug #75735 ([embed SAPI] Segmentation fault in sapi_register_post_entry). (Laruence)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used).', + 'raw' => 'Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used). (Anton Artamonov)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75502 (Segmentation fault in zend_string_release).', + 'raw' => 'Fixed bug #75502 (Segmentation fault in zend_string_release). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75717 (RecursiveArrayIterator does not traverse arrays by reference).', + 'raw' => 'Fixed bug #75717 (RecursiveArrayIterator does not traverse arrays by reference). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75242 (RecursiveArrayIterator doesn\'t have constants from parent class).', + 'raw' => 'Fixed bug #75242 (RecursiveArrayIterator doesn\'t have constants from parent class). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73209 (RecursiveArrayIterator does not iterate object properties).', + 'raw' => 'Fixed bug #73209 (RecursiveArrayIterator does not iterate object properties). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75781 (substr_count incorrect result).', + 'raw' => 'Fixed bug #75781 (substr_count incorrect result). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75653 (array_values don\'t work on empty array).', + 'raw' => 'Fixed bug #75653 (array_values don\'t work on empty array). (Nikita)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Display headers (buildtime) and library (runtime) versions in phpinfo (with libzip >= 1.3.1).', + 'raw' => 'Display headers (buildtime) and library (runtime) versions in phpinfo (with libzip >= 1.3.1). (Remi)', + ), + ), + ), + ), + '7.2.1' => + array ( + 'date' => '04 Jan 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26).', + 'raw' => 'Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75384 (PHP seems incompatible with OneDrive files on demand).', + 'raw' => 'Fixed bug #75384 (PHP seems incompatible with OneDrive files on demand). (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75525 (Access Violation in vcruntime140.dll).', + 'raw' => 'Fixed bug #75525 (Access Violation in vcruntime140.dll). (Anatol)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74862 (Unable to clone instance when private __clone defined).', + 'raw' => 'Fixed bug #74862 (Unable to clone instance when private __clone defined). (Daniel Ciochiu)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75074 (php-process crash when is_file() is used with strings longer 260 chars).', + 'raw' => 'Fixed bug #75074 (php-process crash when is_file() is used with strings longer 260 chars). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69727 (Remove timestamps from build to make it reproducible).', + 'raw' => 'Fixed bug #69727 (Remove timestamps from build to make it reproducible). (jelle van der Waa)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73830 (Directory does not exist).', + 'raw' => 'Fixed bug #73830 (Directory does not exist). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between requests).', + 'raw' => 'Fixed bug #64938 (libxml_disable_entity_loader setting is shared between requests). (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx).', + 'raw' => 'Fixed bug #75571 (Potential infinite loop in gdImageCreateFromGifCtx). (Christoph)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75608 ("Narrowing occurred during type inference" error).', + 'raw' => 'Fixed bug #75608 ("Narrowing occurred during type inference" error). (Laruence, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash).', + 'raw' => 'Fixed bug #75579 (Interned strings buffer overflow may cause crash). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75570 ("Narrowing occurred during type inference" error).', + 'raw' => 'Fixed bug #75570 ("Narrowing occurred during type inference" error). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75681 (Warning: Narrowing occurred during type inference, specific case).', + 'raw' => 'Fixed bug #75681 (Warning: Narrowing occurred during type inference, specific case). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75556 (Invalid opcode 138/1/1).', + 'raw' => 'Fixed bug #75556 (Invalid opcode 138/1/1). (Laruence)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74183 (preg_last_error not returning error code after error).', + 'raw' => 'Fixed bug #74183 (preg_last_error not returning error code after error). (Andrew Nester)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74782 (remove file name from output to avoid XSS).', + 'raw' => 'Fixed bug #74782 (remove file name from output to avoid XSS). (stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75511 (fread not free unused buffer).', + 'raw' => 'Fixed bug #75511 (fread not free unused buffer). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75514 (mt_rand returns value outside [$min,$max]+ on 32-bit)', + 'raw' => 'Fixed bug #75514 (mt_rand returns value outside [$min,$max]+ on 32-bit) (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75535 (Inappropriately parsing HTTP response leads to PHP segment fault).', + 'raw' => 'Fixed bug #75535 (Inappropriately parsing HTTP response leads to PHP segment fault). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing).', + 'raw' => 'Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing). (sarciszewski)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73124 (php_ini_scanned_files() not reporting correctly).', + 'raw' => 'Fixed bug #73124 (php_ini_scanned_files() not reporting correctly). (John Stevenson)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75574 (putenv does not work properly if parameter contains non-ASCII unicode character).', + 'raw' => 'Fixed bug #75574 (putenv does not work properly if parameter contains non-ASCII unicode character). (Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75540 (Segfault with libzip 1.3.1).', + 'raw' => 'Fixed bug #75540 (Segfault with libzip 1.3.1). (Remi)', + ), + ), + ), + ), + '7.2.0' => + array ( + 'date' => '30 Nov 2017', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #46564 (bcmod truncates fractionals).', + 'raw' => 'Fixed bug #46564 (bcmod truncates fractionals). (liborm85)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74849 (Process is started as interactive shell in PhpStorm).', + 'raw' => 'Fixed bug #74849 (Process is started as interactive shell in PhpStorm). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74979 (Interactive shell opening instead of script execution with -f flag).', + 'raw' => 'Fixed bug #74979 (Interactive shell opening instead of script execution with -f flag). (Anatol)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60471 (Random "Invalid request (unexpected EOF)" using a router script).', + 'raw' => 'Fixed bug #60471 (Random "Invalid request (unexpected EOF)" using a router script). (SammyK)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Added ZEND_COUNT, ZEND_GET_CLASS, ZEND_GET_CALLED_CLASS, ZEND_GET_TYPE, ZEND_FUNC_NUM_ARGS, ZEND_FUNC_GET_ARGS instructions, to implement corresponding builtin functions.', + 'raw' => 'Added ZEND_COUNT, ZEND_GET_CLASS, ZEND_GET_CALLED_CLASS, ZEND_GET_TYPE, ZEND_FUNC_NUM_ARGS, ZEND_FUNC_GET_ARGS instructions, to implement corresponding builtin functions. (Dmitry)', + ), + 1 => + array ( + 'message' => '"Countable" interface is moved from SPL to Core.', + 'raw' => '"Countable" interface is moved from SPL to Core. (Dmitry)', + ), + 2 => + array ( + 'message' => 'Added ZEND_IN_ARRAY instruction, implementing optimized in_array() builtin function, through hash lookup in flipped array.', + 'raw' => 'Added ZEND_IN_ARRAY instruction, implementing optimized in_array() builtin function, through hash lookup in flipped array. (Dmitry)', + ), + 3 => + array ( + 'message' => 'Removed IS_TYPE_IMMUTABLE (it\'s the same as COPYABLE & !REFCOUNTED).', + 'raw' => 'Removed IS_TYPE_IMMUTABLE (it\'s the same as COPYABLE & !REFCOUNTED). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Removed the sql.safe_mode directive.', + 'raw' => 'Removed the sql.safe_mode directive. (Kalle)', + ), + 5 => + array ( + 'message' => 'Removed support for Netware.', + 'raw' => 'Removed support for Netware. (Kalle)', + ), + 6 => + array ( + 'message' => 'Renamed ReflectionClass::isIterateable() to ReflectionClass::isIterable() (alias original name for BC).', + 'raw' => 'Renamed ReflectionClass::isIterateable() to ReflectionClass::isIterable() (alias original name for BC). (Sara)', + ), + 7 => + array ( + 'message' => 'Fixed bug #54535 (WSA cleanup executes before MSHUTDOWN).', + 'raw' => 'Fixed bug #54535 (WSA cleanup executes before MSHUTDOWN). (Kalle)', + ), + 8 => + array ( + 'message' => 'Implemented FR #69791 (Disallow mail header injections by extra headers)', + 'raw' => 'Implemented FR #69791 (Disallow mail header injections by extra headers) (Yasuo)', + ), + 9 => + array ( + 'message' => 'Implemented FR #49806 (proc_nice() for Windows).', + 'raw' => 'Implemented FR #49806 (proc_nice() for Windows). (Kalle)', + ), + 10 => + array ( + 'message' => 'Fix pthreads detection when cross-compiling', + 'raw' => 'Fix pthreads detection when cross-compiling (ffontaine)', + ), + 11 => + array ( + 'message' => 'Fixed memory leaks caused by exceptions thrown from destructors. .', + 'raw' => 'Fixed memory leaks caused by exceptions thrown from destructors. (Bob, Dmitry).', + ), + 12 => + array ( + 'message' => 'Fixed bug #73215 (uniqid() should use better random source).', + 'raw' => 'Fixed bug #73215 (uniqid() should use better random source). (Yasuo)', + ), + 13 => + array ( + 'message' => 'Implemented FR #72768 (Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe).', + 'raw' => 'Implemented FR #72768 (Add ENABLE_VIRTUAL_TERMINAL_PROCESSING flag for php.exe). (Michele Locati)', + ), + 14 => + array ( + 'message' => 'Implemented "Convert numeric keys in object/array casts" RFC, fixes bugs #53838, #61655, #66173, #70925, #72254, etc.', + 'raw' => 'Implemented "Convert numeric keys in object/array casts" RFC, fixes bugs #53838, #61655, #66173, #70925, #72254, etc. (Andrea)', + ), + 15 => + array ( + 'message' => 'Implemented "Deprecate and Remove Bareword (Unquoted) Strings" RFC.', + 'raw' => 'Implemented "Deprecate and Remove Bareword (Unquoted) Strings" RFC. (Rowan Collins)', + ), + 16 => + array ( + 'message' => 'Raised minimum supported Windows versions to Windows 7/Server 2008 R2.', + 'raw' => 'Raised minimum supported Windows versions to Windows 7/Server 2008 R2. (Anatol)', + ), + 17 => + array ( + 'message' => 'Implemented minor optimization in array_keys/array_values().', + 'raw' => 'Implemented minor optimization in array_keys/array_values(). (Sara)', + ), + 18 => + array ( + 'message' => 'Added PHP_OS_FAMILY constant to determine on which OS we are.', + 'raw' => 'Added PHP_OS_FAMILY constant to determine on which OS we are. (Jan Altensen)', + ), + 19 => + array ( + 'message' => 'Fixed bug #73987 (Method compatibility check looks to original definition and not parent).', + 'raw' => 'Fixed bug #73987 (Method compatibility check looks to original definition and not parent). (pmmaga)', + ), + 20 => + array ( + 'message' => 'Fixed bug #73991 (JSON_OBJECT_AS_ARRAY not respected).', + 'raw' => 'Fixed bug #73991 (JSON_OBJECT_AS_ARRAY not respected). (Sara)', + ), + 21 => + array ( + 'message' => 'Fixed bug #74053 (Corrupted class entries on shutdown when a destructor spawns another object).', + 'raw' => 'Fixed bug #74053 (Corrupted class entries on shutdown when a destructor spawns another object). (jim at commercebyte dot com)', + ), + 22 => + array ( + 'message' => 'Fixed bug #73971 (Filename got limited to MAX_PATH on Win32 when scan directory).', + 'raw' => 'Fixed bug #73971 (Filename got limited to MAX_PATH on Win32 when scan directory). (Anatol)', + ), + 23 => + array ( + 'message' => 'Fixed bug #72359, bug #72451, bug #73706, bug #71115 and others related to interned strings handling in TS builds.', + 'raw' => 'Fixed bug #72359, bug #72451, bug #73706, bug #71115 and others related to interned strings handling in TS builds. (Anatol, Dmitry)', + ), + 24 => + array ( + 'message' => 'Implemented "Trailing Commas In List Syntax" RFC for group use lists only.', + 'raw' => 'Implemented "Trailing Commas In List Syntax" RFC for group use lists only. (Sammy Kaye Powers)', + ), + 25 => + array ( + 'message' => 'Fixed bug #74269 (It\'s possible to override trait property with different loosely-equal value).', + 'raw' => 'Fixed bug #74269 (It\'s possible to override trait property with different loosely-equal value). (pmmaga)', + ), + 26 => + array ( + 'message' => 'Fixed bug #61970 (Restraining __construct() access level in subclass gives a fatal error).', + 'raw' => 'Fixed bug #61970 (Restraining __construct() access level in subclass gives a fatal error). (pmmaga)', + ), + 27 => + array ( + 'message' => 'Fixed bug #63384 (Cannot override an abstract method with an abstract method).', + 'raw' => 'Fixed bug #63384 (Cannot override an abstract method with an abstract method). (pmmaga, wes)', + ), + 28 => + array ( + 'message' => 'Fixed bug #74607 (Traits enforce different inheritance rules).', + 'raw' => 'Fixed bug #74607 (Traits enforce different inheritance rules). (pmmaga)', + ), + 29 => + array ( + 'message' => 'Fixed misparsing of abstract unix domain socket names.', + 'raw' => 'Fixed misparsing of abstract unix domain socket names. (Sara)', + ), + 30 => + array ( + 'message' => 'Change PHP_OS_FAMILY value from "OSX" to "Darwin".', + 'raw' => 'Change PHP_OS_FAMILY value from "OSX" to "Darwin". (Sebastian, Kalle)', + ), + 31 => + array ( + 'message' => 'Allow loading PHP/Zend extensions by name in ini files (extension=).', + 'raw' => 'Allow loading PHP/Zend extensions by name in ini files (extension=). (francois at tekwire dot net)', + ), + 32 => + array ( + 'message' => 'Added object type annotation.', + 'raw' => 'Added object type annotation. (brzuchal)', + ), + 33 => + array ( + 'message' => 'Fixed bug #74815 (crash with a combination of INI entries at startup).', + 'raw' => 'Fixed bug #74815 (crash with a combination of INI entries at startup). (Anatol)', + ), + 34 => + array ( + 'message' => 'Fixed bug #74836 (isset on zero-prefixed numeric indexes in array broken).', + 'raw' => 'Fixed bug #74836 (isset on zero-prefixed numeric indexes in array broken). (Dmitry)', + ), + 35 => + array ( + 'message' => 'Added new VM instuctions ISSET_ISEMPTY_CV and UNSET_CV. Previously they were implemented as ISSET_ISEMPTY_VAR and UNSET_VAR variants with ZEND_QUICK_SET flag.', + 'raw' => 'Added new VM instuctions ISSET_ISEMPTY_CV and UNSET_CV. Previously they were implemented as ISSET_ISEMPTY_VAR and UNSET_VAR variants with ZEND_QUICK_SET flag. (Nikita, Dmitry)', + ), + 36 => + array ( + 'message' => 'Fixed bug #49649 (unserialize() doesn\'t handle changes in property visibility).', + 'raw' => 'Fixed bug #49649 (unserialize() doesn\'t handle changes in property visibility). (pmmaga)', + ), + 37 => + array ( + 'message' => 'Fixed #74866 (extension_dir = "./ext" now use current directory for base).', + 'raw' => 'Fixed #74866 (extension_dir = "./ext" now use current directory for base). (Francois Laupretre)', + ), + 38 => + array ( + 'message' => 'Implemented FR #74963 (Improved error message on fetching property of non-object).', + 'raw' => 'Implemented FR #74963 (Improved error message on fetching property of non-object). (Laruence)', + ), + 39 => + array ( + 'message' => 'Fixed Bug #75142 (buildcheck.sh check for autoconf version needs to be updated for v2.64).', + 'raw' => 'Fixed Bug #75142 (buildcheck.sh check for autoconf version needs to be updated for v2.64). (zizzy at zizzy dot net, Remi)', + ), + 40 => + array ( + 'message' => 'Fixed bug #74878 (Data race in ZTS builds).', + 'raw' => 'Fixed bug #74878 (Data race in ZTS builds). (Nikita, Dmitry)', + ), + 41 => + array ( + 'message' => 'Fixed bug #75515 ("stream_copy_to_stream" doesn\'t stream anymore).', + 'raw' => 'Fixed bug #75515 ("stream_copy_to_stream" doesn\'t stream anymore). (Sara)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75093 (OpenSSL support not detected).', + 'raw' => 'Fixed bug #75093 (OpenSSL support not detected). (Remi)', + ), + 1 => + array ( + 'message' => 'Better fix for #74125 (use pkg-config instead of curl-config).', + 'raw' => 'Better fix for #74125 (use pkg-config instead of curl-config). (Remi)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55407 (Impossible to prototype DateTime::createFromFormat).', + 'raw' => 'Fixed bug #55407 (Impossible to prototype DateTime::createFromFormat). (kelunik)', + ), + 1 => + array ( + 'message' => 'Implemented FR #71520 (Adding the DateTime constants to the DateTimeInterface interface).', + 'raw' => 'Implemented FR #71520 (Adding the DateTime constants to the DateTimeInterface interface). (Majkl578)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75149 (redefinition of typedefs ttinfo and t1info).', + 'raw' => 'Fixed bug #75149 (redefinition of typedefs ttinfo and t1info). (Remi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75222 (DateInterval microseconds property always 0).', + 'raw' => 'Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72885 (flatfile: dba_fetch() fails to read replaced entry).', + 'raw' => 'Fixed bug #72885 (flatfile: dba_fetch() fails to read replaced entry). (Anatol)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Implement #74837 (Implement Countable for DomNodeList and DOMNamedNodeMap).', + 'raw' => 'Implement #74837 (Implement Countable for DomNodeList and DOMNamedNodeMap). (Andreas Treichel)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Added support for vendor specific tags for the following formats: Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh & Epson.', + 'raw' => 'Added support for vendor specific tags for the following formats: Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh & Epson. (Kalle)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72682 (exif_read_data() fails to read all data for some images).', + 'raw' => 'Fixed bug #72682 (exif_read_data() fails to read all data for some images). (Kalle)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71534 (Type confusion in exif_read_data() leading to heap overflow in debug mode).', + 'raw' => 'Fixed bug #71534 (Type confusion in exif_read_data() leading to heap overflow in debug mode). (hlt99 at blinkenshell dot org, Kalle)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68547 (Exif Header component value check error).', + 'raw' => 'Fixed bug #68547 (Exif Header component value check error). (sjh21a at gmail dot com, Kalle)', + ), + 4 => + array ( + 'message' => 'Fixed bug #66443 (Corrupt EXIF header: maximum directory nesting level reached for some cameras).', + 'raw' => 'Fixed bug #66443 (Corrupt EXIF header: maximum directory nesting level reached for some cameras). (Kalle)', + ), + 5 => + array ( + 'message' => 'Fixed Redhat bug #1362571 (PHP not returning full results for exif_read_data function).', + 'raw' => 'Fixed Redhat bug #1362571 (PHP not returning full results for exif_read_data function). (Kalle)', + ), + 6 => + array ( + 'message' => 'Implemented #65187 (exif_read_data/thumbnail: add support for stream resource).', + 'raw' => 'Implemented #65187 (exif_read_data/thumbnail: add support for stream resource). (Kalle)', + ), + 7 => + array ( + 'message' => 'Deprecated the read_exif_data() alias.', + 'raw' => 'Deprecated the read_exif_data() alias. (Kalle)', + ), + 8 => + array ( + 'message' => 'Fixed bug #74428 (exif_read_data(): "Illegal IFD size" warning occurs with correct exif format).', + 'raw' => 'Fixed bug #74428 (exif_read_data(): "Illegal IFD size" warning occurs with correct exif format). (bradpiccho at gmail dot com, Kalle)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72819 (EXIF thumbnails not read anymore).', + 'raw' => 'Fixed bug #72819 (EXIF thumbnails not read anymore). (Kalle)', + ), + 10 => + array ( + 'message' => 'Fixed bug #62523 (php crashes with segfault when exif_read_data called).', + 'raw' => 'Fixed bug #62523 (php crashes with segfault when exif_read_data called). (Kalle)', + ), + 11 => + array ( + 'message' => 'Fixed bug #50660 (exif_read_data(): Illegal IFD offset (works fine with other exif readers).', + 'raw' => 'Fixed bug #50660 (exif_read_data(): Illegal IFD offset (works fine with other exif readers). (skinny dot bravo at gmail dot com, Kalle)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled libmagic to 5.31.', + 'raw' => 'Upgrade bundled libmagic to 5.31. (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Configuration to limit fpm slow log trace callers.', + 'raw' => 'Configuration to limit fpm slow log trace callers. (Sannis)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75212 (php_value acts like php_admin_value).', + 'raw' => 'Fixed bug #75212 (php_value acts like php_admin_value). (Remi)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Implement MLSD for structured listing of directories.', + 'raw' => 'Implement MLSD for structured listing of directories. (blar)', + ), + 1 => + array ( + 'message' => 'Added ftp_append() function.', + 'raw' => 'Added ftp_append() function. (blar)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Implemented imageresolution as getter and setter', + 'raw' => 'Implemented imageresolution as getter and setter (Christoph)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74744 (gd.h: stdarg.h include missing for va_list use in gdErrorMethod).', + 'raw' => 'Fixed bug #74744 (gd.h: stdarg.h include missing for va_list use in gdErrorMethod). (rainer dot jung at kippdata dot de, cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75111 (Memory disclosure or DoS via crafted .bmp image).', + 'raw' => 'Fixed bug #75111 (Memory disclosure or DoS via crafted .bmp image). (cmb)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70896 (gmp_fact() silently ignores non-integer input).', + 'raw' => 'Fixed bug #70896 (gmp_fact() silently ignores non-integer input). (Sara)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Changed HashContext from resource to object.', + 'raw' => 'Changed HashContext from resource to object. (Rouven Weßling, Sara)', + ), + 1 => + array ( + 'message' => 'Disallowed usage of non-cryptographic hash functions with HMAC and PBKDF2.', + 'raw' => 'Disallowed usage of non-cryptographic hash functions with HMAC and PBKDF2. (Andrey Andreev, Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed Bug #75284 (sha3 is not supported on bigendian machine).', + 'raw' => 'Fixed Bug #75284 (sha3 is not supported on bigendian machine). (Remi)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72324 (imap_mailboxmsginfo() return wrong size).', + 'raw' => 'Fixed bug #72324 (imap_mailboxmsginfo() return wrong size). (ronaldpoon at udomain dot com dot hk, Kalle)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63790 (test using Spoofchecker which may be unavailable).', + 'raw' => 'Fixed bug #63790 (test using Spoofchecker which may be unavailable). (Sara)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75378 ([REGRESSION] IntlDateFormatter::parse() does not change $position argument).', + 'raw' => 'Fixed bug #75378 ([REGRESSION] IntlDateFormatter::parse() does not change $position argument). (Laruence)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Add JSON_INVALID_UTF8_IGNORE and JSON_INVALID_UTF8_SUBSTITUTE options for json_encode and json_decode to ignore or replace invalid UTF-8 byte sequences - it addresses request #65082.', + 'raw' => 'Add JSON_INVALID_UTF8_IGNORE and JSON_INVALID_UTF8_SUBSTITUTE options for json_encode and json_decode to ignore or replace invalid UTF-8 byte sequences - it addresses request #65082. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75185 (Buffer overflow in json_decode() with JSON_INVALID_UTF8_IGNORE or JSON_INVALID).', + 'raw' => 'Fixed bug #75185 (Buffer overflow in json_decode() with JSON_INVALID_UTF8_IGNORE or JSON_INVALID). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68567 (JSON_PARTIAL_OUTPUT_ON_ERROR can result in JSON with null key).', + 'raw' => 'Fixed bug #68567 (JSON_PARTIAL_OUTPUT_ON_ERROR can result in JSON with null key). (Jakub Zelenka)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #69445', + 'raw' => 'Implemented FR #69445 (Support for LDAP EXOP operations)', + ), + 1 => + array ( + 'message' => 'Fixed support for LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS in ldap_get_option', + 'raw' => 'Fixed support for LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS in ldap_get_option', + ), + 2 => + array ( + 'message' => 'Fixed passing an empty array to ldap_set_option for client or server controls.', + 'raw' => 'Fixed passing an empty array to ldap_set_option for client or server controls.', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Implemented request #66024 (mb_chr() and mb_ord()).', + 'raw' => 'Implemented request #66024 (mb_chr() and mb_ord()). (Masakielastic, Yasuo)', + ), + 1 => + array ( + 'message' => 'Implemented request #65081 (mb_scrub()).', + 'raw' => 'Implemented request #65081 (mb_scrub()). (Masakielastic, Yasuo)', + ), + 2 => + array ( + 'message' => 'Implemented request #69086 (enhancement for mb_convert_encoding() that handles multibyte replacement char nicely).', + 'raw' => 'Implemented request #69086 (enhancement for mb_convert_encoding() that handles multibyte replacement char nicely). (Masakielastic, Yasuo)', + ), + 3 => + array ( + 'message' => 'Added array input support to mb_convert_encoding().', + 'raw' => 'Added array input support to mb_convert_encoding(). (Yasuo)', + ), + 4 => + array ( + 'message' => 'Added array input support to mb_check_encoding().', + 'raw' => 'Added array input support to mb_check_encoding(). (Yasuo)', + ), + 5 => + array ( + 'message' => 'Fixed bug #69079 (enhancement for mb_substitute_character).', + 'raw' => 'Fixed bug #69079 (enhancement for mb_substitute_character). (masakielastic)', + ), + 6 => + array ( + 'message' => 'Update to oniguruma version 6.3.0.', + 'raw' => 'Update to oniguruma version 6.3.0. (Remi)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69267 (mb_strtolower fails on titlecase characters).', + 'raw' => 'Fixed bug #69267 (mb_strtolower fails on titlecase characters). (Nikita)', + ), + ), + 'mcrypt' => + array ( + 0 => + array ( + 'message' => 'The deprecated mcrypt extension has been moved to PECL.', + 'raw' => 'The deprecated mcrypt extension has been moved to PECL. (leigh)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added global optimisation passes based on data flow analysis using Single Static Assignment (SSA) form: Sparse Conditional Constant Propagation (SCCP), Dead Code Elimination (DCE), and removal of unused local variables', + 'raw' => 'Added global optimisation passes based on data flow analysis using Single Static Assignment (SSA) form: Sparse Conditional Constant Propagation (SCCP), Dead Code Elimination (DCE), and removal of unused local variables (Nikita, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed incorect constant conditional jump elimination.', + 'raw' => 'Fixed incorect constant conditional jump elimination. (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75230 (Invalid opcode 49/1/8 using opcache).', + 'raw' => 'Fixed bug #75230 (Invalid opcode 49/1/8 using opcache). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug (assertion fails with extended info generated).', + 'raw' => 'Fixed bug (assertion fails with extended info generated). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug (Phi sources removel).', + 'raw' => 'Fixed bug (Phi sources removel). (Laruence)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75370 (Webserver hangs on valid PHP text).', + 'raw' => 'Fixed bug #75370 (Webserver hangs on valid PHP text). (Laruence)', + ), + 6 => + array ( + 'message' => 'Fixed bug #75357 (segfault loading WordPress wp-admin).', + 'raw' => 'Fixed bug #75357 (segfault loading WordPress wp-admin). (Laruence)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Use TLS_ANY for default ssl:// and tls:// negotiation.', + 'raw' => 'Use TLS_ANY for default ssl:// and tls:// negotiation. (kelunik)', + ), + 1 => + array ( + 'message' => 'Fix leak in openssl_spki_new().', + 'raw' => 'Fix leak in openssl_spki_new(). (jelle at vdwaa dot nl)', + ), + 2 => + array ( + 'message' => 'Added openssl_pkcs7_read() and pk7 parameter to openssl_pkcs7_verify().', + 'raw' => 'Added openssl_pkcs7_read() and pk7 parameter to openssl_pkcs7_verify(). (jelle at vdwaa dot nl)', + ), + 3 => + array ( + 'message' => 'Add ssl security_level stream option to support OpenSSL security levels. .', + 'raw' => 'Add ssl security_level stream option to support OpenSSL security levels. (Jakub Zelenka).', + ), + 4 => + array ( + 'message' => 'Allow setting SNI cert and private key in separate files.', + 'raw' => 'Allow setting SNI cert and private key in separate files. (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74903 (openssl_pkcs7_encrypt() uses different EOL than before).', + 'raw' => 'Fixed bug #74903 (openssl_pkcs7_encrypt() uses different EOL than before). (Anatol)', + ), + 6 => + array ( + 'message' => 'Automatically load OpenSSL configuration file.', + 'raw' => 'Automatically load OpenSSL configuration file. (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Added support for PCRE JIT fast path API.', + 'raw' => 'Added support for PCRE JIT fast path API. (dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #61780 (Inconsistent PCRE captures in match results).', + 'raw' => 'Fixed bug #61780 (Inconsistent PCRE captures in match results). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of preg_match()).', + 'raw' => 'Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of preg_match()). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after first input string).', + 'raw' => 'Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after first input string). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #75223 (PCRE JIT broken in 7.2).', + 'raw' => 'Fixed bug #75223 (PCRE JIT broken in 7.2). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75285 (Broken build when system libpcre don\'t have jit support).', + 'raw' => 'Fixed bug #75285 (Broken build when system libpcre don\'t have jit support). (Remi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74196 (phar does not correctly handle names containing dots).', + 'raw' => 'Fixed bug #74196 (phar does not correctly handle names containing dots). (mhagstrand)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Add "Sent SQL" to debug dump for emulated prepares.', + 'raw' => 'Add "Sent SQL" to debug dump for emulated prepares. (Adam Baratz)', + ), + 1 => + array ( + 'message' => 'Add parameter types for national character set strings.', + 'raw' => 'Add parameter types for national character set strings. (Adam Baratz)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73234 (Emulated statements let value dictate parameter type).', + 'raw' => 'Fixed bug #73234 (Emulated statements let value dictate parameter type). (Adam Baratz)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73396 (bigint columns are returned as strings).', + 'raw' => 'Fixed bug #73396 (bigint columns are returned as strings). (Adam Baratz)', + ), + 2 => + array ( + 'message' => 'Expose DB-Library version as \\PDO::DBLIB_ATTR_VERSION attribute on \\PDO instance.', + 'raw' => 'Expose DB-Library version as \\PDO::DBLIB_ATTR_VERSION attribute on \\PDO instance. (Adam Baratz)', + ), + 3 => + array ( + 'message' => 'Add test coverage for bug #72969.', + 'raw' => 'Add test coverage for bug #72969. (Jeff Farr)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #74537 (Align --with-pdo-oci configure option with --with-oci8 syntax).', + 'raw' => 'Fixed Bug #74537 (Align --with-pdo-oci configure option with --with-oci8 syntax). (Tianfang Yang)', + ), + 1 => + array ( + 'message' => 'Switch to sqlite3_prepare_v2() and sqlite3_close_v2() functions', + 'raw' => 'Switch to sqlite3_prepare_v2() and sqlite3_close_v2() functions (rasmus)', + ), + 2 => + array ( + 'message' => 'Added extended_value to opcode dump output.', + 'raw' => 'Added extended_value to opcode dump output. (Sara)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73461 (Prohibit session save handler recursion).', + 'raw' => 'Fixed bug #73461 (Prohibit session save handler recursion). (Yasuo)', + ), + 1 => + array ( + 'message' => 'PR #2233 Removed register_globals related code and "!" can be used as $_SESSION key name.', + 'raw' => 'PR #2233 Removed register_globals related code and "!" can be used as $_SESSION key name. (Yasuo)', + ), + 2 => + array ( + 'message' => 'Improved bug #73100 fix. \'user\' save handler can only be set by session_set_save_handler()', + 'raw' => 'Improved bug #73100 fix. \'user\' save handler can only be set by session_set_save_handler()', + ), + 3 => + array ( + 'message' => 'Fixed bug #74514 (5 session functions incorrectly warn when calling in read-only/getter mode).', + 'raw' => 'Fixed bug #74514 (5 session functions incorrectly warn when calling in read-only/getter mode). (Yasuo)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74936 (session_cache_expire/cache_limiter/save_path() trigger a warning in read mode).', + 'raw' => 'Fixed bug #74936 (session_cache_expire/cache_limiter/save_path() trigger a warning in read mode). (morozov)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74941 (session fails to start after having headers sent).', + 'raw' => 'Fixed bug #74941 (session fails to start after having headers sent). (morozov)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'New cryptographic extension', + 'raw' => 'New cryptographic extension', + ), + 1 => + array ( + 'message' => 'Added missing bindings for libsodium > 1.0.13.', + 'raw' => 'Added missing bindings for libsodium > 1.0.13. (Frank)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71412 (Incorrect arginfo for ArrayIterator::__construct).', + 'raw' => 'Fixed bug #71412 (Incorrect arginfo for ArrayIterator::__construct). (tysonandre775 at hotmail dot com)', + ), + 1 => + array ( + 'message' => 'Added spl_object_id().', + 'raw' => 'Added spl_object_id(). (Tyson Andre)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Implement writing to blobs.', + 'raw' => 'Implement writing to blobs. (bohwaz at github dot com)', + ), + 1 => + array ( + 'message' => 'Update to Sqlite 3.20.1.', + 'raw' => 'Update to Sqlite 3.20.1. (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69442 (closing of fd incorrect when PTS enabled).', + 'raw' => 'Fixed bug #69442 (closing of fd incorrect when PTS enabled). (jaytaph)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74300 (unserialize accepts two plus/minus signs for float number exponent part).', + 'raw' => 'Fixed bug #74300 (unserialize accepts two plus/minus signs for float number exponent part). (xKerman)', + ), + 2 => + array ( + 'message' => 'Compatibility with libargon2 versions 20161029 and 20160821.', + 'raw' => 'Compatibility with libargon2 versions 20161029 and 20160821. (charlesportwoodii at erianna dot com)', + ), + 3 => + array ( + 'message' => 'Fixed Bug #74737 (mysqli_get_client_info reflection info).', + 'raw' => 'Fixed Bug #74737 (mysqli_get_client_info reflection info). (mhagstrand at gmail dot com)', + ), + 4 => + array ( + 'message' => 'Add support for extension name as argument to dl().', + 'raw' => 'Add support for extension name as argument to dl(). (francois at tekwire dot net)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74851 (uniqid() without more_entropy performs badly).', + 'raw' => 'Fixed bug #74851 (uniqid() without more_entropy performs badly). (Emmanuel Dreyfus)', + ), + 6 => + array ( + 'message' => 'Fixed bug #74103 (heap-use-after-free when unserializing invalid array size).', + 'raw' => 'Fixed bug #74103 (heap-use-after-free when unserializing invalid array size). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization).', + 'raw' => 'Fixed bug #75054 (A Denial of Service Vulnerability was found when performing deserialization). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #75170 (mt_rand() bias on 64-bit machines).', + 'raw' => 'Fixed bug #75170 (mt_rand() bias on 64-bit machines). (Nikita)', + ), + 9 => + array ( + 'message' => 'Fixed bug #75221 (Argon2i always throws NUL at the end).', + 'raw' => 'Fixed bug #75221 (Argon2i always throws NUL at the end). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Default ssl/single_dh_use and ssl/honor_cipher_order to true.', + 'raw' => 'Default ssl/single_dh_use and ssl/honor_cipher_order to true. (kelunik)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Moved utf8_encode() and utf8_decode() to the Standard extension.', + 'raw' => 'Moved utf8_encode() and utf8_decode() to the Standard extension. (Andrea)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Use Zend MM for allocation in bundled libxmlrpc', + 'raw' => 'Use Zend MM for allocation in bundled libxmlrpc (Joe)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Add support for encrypted archives.', + 'raw' => 'Add support for encrypted archives. (Remi)', + ), + 1 => + array ( + 'message' => 'Use of bundled libzip is deprecated, --with-libzip option is recommended.', + 'raw' => 'Use of bundled libzip is deprecated, --with-libzip option is recommended. (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed Bug #73803 (Reflection of ZipArchive does not show public properties).', + 'raw' => 'Fixed Bug #73803 (Reflection of ZipArchive does not show public properties). (Remi)', + ), + 3 => + array ( + 'message' => 'ZipArchive implements countable, added ZipArchive::count() method.', + 'raw' => 'ZipArchive implements countable, added ZipArchive::count() method. (Remi)', + ), + 4 => + array ( + 'message' => 'Fix segfault in php_stream_context_get_option call.', + 'raw' => 'Fix segfault in php_stream_context_get_option call. (Remi)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75143 (new method setEncryptionName() seems not to exist in ZipArchive).', + 'raw' => 'Fixed bug #75143 (new method setEncryptionName() seems not to exist in ZipArchive). (Anatol)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Expose inflate_get_status() and inflate_get_read_len() functions.', + 'raw' => 'Expose inflate_get_status() and inflate_get_read_len() functions. (Matthew Trescott)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/7.3/changelist.inc b/include/releases/7.3/changelist.inc new file mode 100644 index 0000000000..22f374713e --- /dev/null +++ b/include/releases/7.3/changelist.inc @@ -0,0 +1,4448 @@ + + array ( + 'date' => '18 Nov 2021', + 'modules' => + array ( + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fix #79971: special character is breaking the path in xml function. (CVE-2021-21707)', + 'raw' => 'Fix #79971: special character is breaking the path in xml function. (CVE-2021-21707) (cmb)', + ), + ), + ), + ), + '7.3.32' => + array ( + 'date' => '28 Oct 2021', + 'modules' => + array ( + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation). (CVE-2021-21703)', + 'raw' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation). (CVE-2021-21703) (Jakub Zelenka)', + ), + ), + ), + ), + '7.3.31' => + array ( + 'date' => '23 Sep 2021', + 'modules' => + array ( + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination). (CVE-2021-21706)', + 'raw' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination). (CVE-2021-21706) (cmb)', + ), + ), + ), + ), + '7.3.30' => + array ( + 'date' => '26 Aug 2021', + 'modules' => + array ( + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81211: Symlinks are followed when creating PHAR archive', + 'raw' => 'Fixed bug #81211: Symlinks are followed when creating PHAR archive (cmb)', + ), + ), + ), + ), + '7.3.29' => + array ( + 'date' => '01 Jul 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81122: SSRF bypass in FILTER_VALIDATE_URL. (CVE-2021-21705)', + 'raw' => 'Fixed bug #81122: SSRF bypass in FILTER_VALIDATE_URL. (CVE-2021-21705) (cmb)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76448: Stack buffer overflow in firebird_info_cb. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76448: Stack buffer overflow in firebird_info_cb. (CVE-2021-21704) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76449: SIGSEGV in firebird_handle_doer. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76449: SIGSEGV in firebird_handle_doer. (CVE-2021-21704) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76450: SIGSEGV in firebird_stmt_execute. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76450: SIGSEGV in firebird_stmt_execute. (CVE-2021-21704) (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76452: Crash while parsing blob data in firebird_fetch_blob. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76452: Crash while parsing blob data in firebird_fetch_blob. (CVE-2021-21704) (cmb)', + ), + ), + ), + ), + '7.3.28' => + array ( + 'date' => '29 Apr 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed ./makedist wrt. to GH move.', + 'raw' => 'Fixed ./makedist wrt. to GH move. (cmb, Remi)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80710 (imap_mail_compose() header injection).', + 'raw' => 'Fixed bug #80710 (imap_mail_compose() header injection). (cmb, Stas)', + ), + ), + ), + ), + '7.3.27' => + array ( + 'date' => '04 Feb 2021', + 'modules' => + array ( + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80672 (Null Dereference in SoapClient). (CVE-2021-21702)', + 'raw' => 'Fixed bug #80672 (Null Dereference in SoapClient). (CVE-2021-21702) (cmb, Stas)', + ), + ), + ), + ), + '7.3.26' => + array ( + 'date' => '07 Jan 2021', + 'modules' => + array ( + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77423 (FILTER_VALIDATE_URL accepts URLs with invalid userinfo). (CVE-2020-7071)', + 'raw' => 'Fixed bug #77423 (FILTER_VALIDATE_URL accepts URLs with invalid userinfo). (CVE-2020-7071) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80457 (stream_get_contents() fails with maxlength=-1 or default).', + 'raw' => 'Fixed bug #80457 (stream_get_contents() fails with maxlength=-1 or default). (bruno dot premont at restena dot lu)', + ), + ), + ), + ), + '7.3.25' => + array ( + 'date' => '26 Nov 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date).', + 'raw' => 'Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors).', + 'raw' => 'Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors). (cmb)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62474 (com_event_sink crashes on certain arguments).', + 'raw' => 'Fixed bug #62474 (com_event_sink crashes on certain arguments). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80268 (loadHTML() truncates at NUL bytes).', + 'raw' => 'Fixed bug #80268 (loadHTML() truncates at NUL bytes). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64076 (imap_sort() does not return FALSE on failure).', + 'raw' => 'Fixed bug #64076 (imap_sort() does not return FALSE on failure). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76618 (segfault on imap_reopen).', + 'raw' => 'Fixed bug #76618 (segfault on imap_reopen). (girgias)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80239 (imap_rfc822_write_address() leaks memory).', + 'raw' => 'Fixed bug #80239 (imap_rfc822_write_address() leaks memory). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed minor regression caused by fixing bug #80220.', + 'raw' => 'Fixed minor regression caused by fixing bug #80220. (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822).', + 'raw' => 'Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80310 (ext-intl with icu4c 68.1: use of undeclared identifier \'TRUE\').', + 'raw' => 'Fixed bug #80310 (ext-intl with icu4c 68.1: use of undeclared identifier \'TRUE\'). (Alexander M. Turek)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44618 (Fetching may rely on uninitialized data).', + 'raw' => 'Fixed bug #44618 (Fetching may rely on uninitialized data). (cmb)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70461 (disable md5 code when it is not supported in net-snmp).', + 'raw' => 'Fixed bug #70461 (disable md5 code when it is not supported in net-snmp). (Alexander Bergmann, cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80266 (parse_url silently drops port number 0).', + 'raw' => 'Fixed bug #80266 (parse_url silently drops port number 0). (cmb, Nikita)', + ), + ), + ), + ), + '7.3.24' => + array ( + 'date' => '29 Oct 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79423 (copy command is limited to size of file it can copy).', + 'raw' => 'Fixed bug #79423 (copy command is limited to size of file it can copy). (cmb)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80185 (jdtounix() fails after 2037).', + 'raw' => 'Fixed bug #80185 (jdtounix() fails after 2037). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies).', + 'raw' => 'Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80215 (imap_mail_compose() may modify by-val parameters).', + 'raw' => 'Fixed bug #80215 (imap_mail_compose() may modify by-val parameters). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80220 (imap_mail_compose() may leak memory).', + 'raw' => 'Fixed bug #80220 (imap_mail_compose() may leak memory). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies).', + 'raw' => 'Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80216 (imap_mail_compose() does not validate types/encodings).', + 'raw' => 'Fixed bug #80216 (imap_mail_compose() does not validate types/encodings). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80226 (imap_sort() leaks sortpgm memory).', + 'raw' => 'Fixed bug #80226 (imap_sort() leaks sortpgm memory). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80115 (mysqlnd.debug doesn\'t recognize absolute paths with slashes).', + 'raw' => 'Fixed bug #80115 (mysqlnd.debug doesn\'t recognize absolute paths with slashes). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80107 (mysqli_query() fails for ~16 MB long query when compression is enabled).', + 'raw' => 'Fixed bug #80107 (mysqli_query() fails for ~16 MB long query when compression is enabled). (Nikita)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78470 (odbc_specialcolumns() no longer accepts $nullable).', + 'raw' => 'Fixed bug #78470 (odbc_specialcolumns() no longer accepts $nullable). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80147 (BINARY strings may not be properly zero-terminated).', + 'raw' => 'Fixed bug #80147 (BINARY strings may not be properly zero-terminated). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80150 (Failure to fetch error message).', + 'raw' => 'Fixed bug #80150 (Failure to fetch error message). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80152 (odbc_execute() moves internal pointer of $params).', + 'raw' => 'Fixed bug #80152 (odbc_execute() moves internal pointer of $params). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #46050 (odbc_next_result corrupts prepared resource).', + 'raw' => 'Fixed bug #46050 (odbc_next_result corrupts prepared resource). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80083 (Optimizer pass 6 removes variables used for ibm_db2 data binding).', + 'raw' => 'Fixed bug #80083 (Optimizer pass 6 removes variables used for ibm_db2 data binding). (Nikita)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67465 (NULL Pointer dereference in odbc_handle_preparer).', + 'raw' => 'Fixed bug #67465 (NULL Pointer dereference in odbc_handle_preparer). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80114 (parse_url does not accept URLs with port 0).', + 'raw' => 'Fixed bug #80114 (parse_url does not accept URLs with port 0). (cmb, twosee)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76943 (Inconsistent stream_wrapper_restore() errors).', + 'raw' => 'Fixed bug #76943 (Inconsistent stream_wrapper_restore() errors). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76735 (Incorrect message in fopen on invalid mode).', + 'raw' => 'Fixed bug #76735 (Incorrect message in fopen on invalid mode). (cmb)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77040 (tidyNode::isHtml() is completely broken).', + 'raw' => 'Fixed bug #77040 (tidyNode::isHtml() is completely broken). (cmb)', + ), + ), + ), + ), + '7.3.23' => + array ( + 'date' => '01 Oct 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80048 (Bug #69100 has not been fixed for Windows).', + 'raw' => 'Fixed bug #80048 (Bug #69100 has not been fixed for Windows). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80049 (Memleak when coercing integers to string via variadic argument).', + 'raw' => 'Fixed bug #80049 (Memleak when coercing integers to string via variadic argument). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79699 (PHP parses encoded cookie names so malicious `__Host-` cookies can be sent). (CVE-2020-7070)', + 'raw' => 'Fixed bug #79699 (PHP parses encoded cookie names so malicious `__Host-` cookies can be sent). (CVE-2020-7070) (Stas)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing).', + 'raw' => 'Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing). (Andy Postnikov)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64130 (COM obj parameters passed by reference are not updated).', + 'raw' => 'Fixed bug #64130 (COM obj parameters passed by reference are not updated). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80002 (calc free space for new interned string is wrong).', + 'raw' => 'Fixed bug #80002 (calc free space for new interned string is wrong). (t-matsuno)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79825 (opcache.file_cache causes SIGSEGV when custom opcode handlers changed).', + 'raw' => 'Fixed bug #79825 (opcache.file_cache causes SIGSEGV when custom opcode handlers changed). (SammyK)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79601 (Wrong ciphertext/tag in AES-CCM encryption for a 12 bytes IV). (CVE-2020-7069)', + 'raw' => 'Fixed bug #79601 (Wrong ciphertext/tag in AES-CCM encryption for a 12 bytes IV). (CVE-2020-7069) (Jakub Zelenka)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80027 (Terrible performance using $query->fetch on queries with many bind parameters).', + 'raw' => 'Fixed bug #80027 (Terrible performance using $query->fetch on queries with many bind parameters). (Matteo)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked").', + 'raw' => 'Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked"). (Matteo)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79986 (str_ireplace bug with diacritics characters).', + 'raw' => 'Fixed bug #79986 (str_ireplace bug with diacritics characters). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80077 (getmxrr test bug).', + 'raw' => 'Fixed bug #80077 (getmxrr test bug). (Rainer Jung)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72941 (Modifying bucket->data by-ref has no effect any longer).', + 'raw' => 'Fixed bug #72941 (Modifying bucket->data by-ref has no effect any longer). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80067 (Omitting the port in bindto setting errors).', + 'raw' => 'Fixed bug #80067 (Omitting the port in bindto setting errors). (cmb)', + ), + ), + ), + ), + '7.3.22' => + array ( + 'date' => '03 Sep 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79884 (PHP_CONFIG_FILE_PATH is meaningless).', + 'raw' => 'Fixed bug #79884 (PHP_CONFIG_FILE_PATH is meaningless). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77932 (File extensions are case-sensitive).', + 'raw' => 'Fixed bug #77932 (File extensions are case-sensitive). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79806 (realpath() erroneously resolves link to link).', + 'raw' => 'Fixed bug #79806 (realpath() erroneously resolves link to link). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79895 (PHP_CHECK_GCC_ARG does not allow flags with equal sign).', + 'raw' => 'Fixed bug #79895 (PHP_CHECK_GCC_ARG does not allow flags with equal sign). (Santiago M. Mola)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79919 (Stack use-after-scope in define()).', + 'raw' => 'Fixed bug #79919 (Stack use-after-scope in define()). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79934 (CRLF-only line in heredoc causes parsing error).', + 'raw' => 'Fixed bug #79934 (CRLF-only line in heredoc causes parsing error). (Pieter van den Ham)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48585 (com_load_typelib holds reference, fails on second call).', + 'raw' => 'Fixed bug #48585 (com_load_typelib holds reference, fails on second call). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75785 (Many errors from exif_read_data).', + 'raw' => 'Fixed bug #75785 (Many errors from exif_read_data). (Níckolas Daniel da Silva)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70574 (Tests fail due to relying on Linux fallback behavior for gettext()).', + 'raw' => 'Fixed bug #70574 (Tests fail due to relying on Linux fallback behavior for gettext()). (Florian Engelhardt)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks.', + 'raw' => 'Fixed memory leaks. (ptomulik)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73060 (php failed with error after temp folder cleaned up).', + 'raw' => 'Fixed bug #73060 (php failed with error after temp folder cleaned up). (cmb)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64705 (errorInfo property of PDOException is null when PDO::__construct() fails).', + 'raw' => 'Fixed bug #64705 (errorInfo property of PDOException is null when PDO::__construct() fails). (Ahmed Abdou)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79930 (array_merge_recursive() crashes when called with array with single reference).', + 'raw' => 'Fixed bug #79930 (array_merge_recursive() crashes when called with array with single reference). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79944 (getmxrr always returns true on Alpine linux).', + 'raw' => 'Fixed bug #79944 (getmxrr always returns true on Alpine linux). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79951 (Memory leak in str_replace of empty string).', + 'raw' => 'Fixed bug #79951 (Memory leak in str_replace of empty string). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79922 (Crash after multiple calls to xml_parser_free()).', + 'raw' => 'Fixed bug #79922 (Crash after multiple calls to xml_parser_free()). (cmb)', + ), + ), + ), + ), + '7.3.21' => + array ( + 'date' => '06 Aug 2020', + 'modules' => + array ( + 'apache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79030 (Upgrade apache2handler\'s php_apache_sapi_get_request_time to return usec).', + 'raw' => 'Fixed bug #79030 (Upgrade apache2handler\'s php_apache_sapi_get_request_time to return usec). (Herbert256)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79877 (getimagesize function silently truncates after a null byte)', + 'raw' => 'Fixed bug #79877 (getimagesize function silently truncates after a null byte) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79778 (Assertion failure if dumping closure with unresolved static variable).', + 'raw' => 'Fixed bug #79778 (Assertion failure if dumping closure with unresolved static variable). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79792 (HT iterators not removed if empty array is destroyed).', + 'raw' => 'Fixed bug #79792 (HT iterators not removed if empty array is destroyed). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63208 (BSTR to PHP string conversion not binary safe).', + 'raw' => 'Fixed bug #63208 (BSTR to PHP string conversion not binary safe). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63527 (DCOM does not work with Username, Password parameter).', + 'raw' => 'Fixed bug #63527 (DCOM does not work with Username, Password parameter). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79741 (curl_setopt CURLOPT_POSTFIELDS asserts on object with declared properties).', + 'raw' => 'Fixed bug #79741 (curl_setopt CURLOPT_POSTFIELDS asserts on object with declared properties). (Nikita)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79756 (finfo_file crash (FILEINFO_MIME)).', + 'raw' => 'Fixed bug #79756 (finfo_file crash (FILEINFO_MIME)). (cmb)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55857 (ftp_size on large files).', + 'raw' => 'Fixed bug #55857 (ftp_size on large files). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79787 (mb_strimwidth does not trim string).', + 'raw' => 'Fixed bug #79787 (mb_strimwidth does not trim string). (XXiang)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79797 (Use of freed hash key in the phar_parse_zipfile function). (CVE-2020-7068)', + 'raw' => 'Fixed bug #79797 (Use of freed hash key in the phar_parse_zipfile function). (CVE-2020-7068) (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70362 (Can\'t copy() large \'data://\' with open_basedir).', + 'raw' => 'Fixed bug #70362 (Can\'t copy() large \'data://\' with open_basedir). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79817 (str_replace() does not handle INDIRECT elements).', + 'raw' => 'Fixed bug #79817 (str_replace() does not handle INDIRECT elements). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78008 (dns_check_record() always return true on Alpine).', + 'raw' => 'Fixed bug #78008 (dns_check_record() always return true on Alpine). (Andy Postnikov)', + ), + ), + ), + ), + '7.3.20' => + array ( + 'date' => '09 Jul 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79650 (php-win.exe 100% cpu lockup).', + 'raw' => 'Fixed bug #79650 (php-win.exe 100% cpu lockup). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79668 (get_defined_functions(true) may miss functions).', + 'raw' => 'Fixed bug #79668 (get_defined_functions(true) may miss functions). (cmb, Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed possibly unsupported timercmp() usage.', + 'raw' => 'Fixed possibly unsupported timercmp() usage. (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79687 (Sony picture - PHP Warning - Make, Model, MakerNotes).', + 'raw' => 'Fixed bug #79687 (Sony picture - PHP Warning - Make, Model, MakerNotes). (cmb)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73527 (Invalid memory access in php_filter_strip).', + 'raw' => 'Fixed bug #73527 (Invalid memory access in php_filter_strip). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79676 (imagescale adds black border with IMG_BICUBIC).', + 'raw' => 'Fixed bug #79676 (imagescale adds black border with IMG_BICUBIC). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62890 (default_socket_timeout=-1 causes connection to timeout).', + 'raw' => 'Fixed bug #62890 (default_socket_timeout=-1 causes connection to timeout). (cmb)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79664 (PDOStatement::getColumnMeta fails on empty result set).', + 'raw' => 'Fixed bug #79664 (PDOStatement::getColumnMeta fails on empty result set). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79710 (Reproducible segfault in error_handler during GC involved an SplFileObject).', + 'raw' => 'Fixed bug #79710 (Reproducible segfault in error_handler during GC involved an SplFileObject). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74267 (segfault with streams and invalid data).', + 'raw' => 'Fixed bug #74267 (segfault with streams and invalid data). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79579 (ZTS build of PHP 7.3.17 doesn\'t handle ERANGE for posix_getgrgid and others).', + 'raw' => 'Fixed bug #79579 (ZTS build of PHP 7.3.17 doesn\'t handle ERANGE for posix_getgrgid and others). (Böszörményi Zoltán)', + ), + ), + ), + ), + '7.3.19' => + array ( + 'date' => '11 Jun 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79566 (Private SHM is not private on Windows).', + 'raw' => 'Fixed bug #79566 (Private SHM is not private on Windows). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79489 (.user.ini does not inherit).', + 'raw' => 'Fixed bug #79489 (.user.ini does not inherit). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79615 (Wrong GIF header written in GD GIFEncode).', + 'raw' => 'Fixed bug #79615 (Wrong GIF header written in GD GIFEncode). (sageptr, cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79596 (MySQL FLOAT truncates to int some locales).', + 'raw' => 'Fixed bug #79596 (MySQL FLOAT truncates to int some locales). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79535 (PHP crashes with specific opcache.optimization_level).', + 'raw' => 'Fixed bug #79535 (PHP crashes with specific opcache.optimization_level). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79588 (Boolean opcache settings ignore on/off values).', + 'raw' => 'Fixed bug #79588 (Boolean opcache settings ignore on/off values). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79561 (dns_get_record() fails with DNS_ALL).', + 'raw' => 'Fixed bug #79561 (dns_get_record() fails with DNS_ALL). (cmb)', + ), + ), + ), + ), + '7.3.18' => + array ( + 'date' => '14 May 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78875 (Long filenames cause OOM and temp files are not cleaned). (CVE-2019-11048)', + 'raw' => 'Fixed bug #78875 (Long filenames cause OOM and temp files are not cleaned). (CVE-2019-11048) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78876 (Long variables in multipart/form-data cause OOM and temp files are not cleaned). (CVE-2019-11048)', + 'raw' => 'Fixed bug #78876 (Long variables in multipart/form-data cause OOM and temp files are not cleaned). (CVE-2019-11048) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79434 (PHP 7.3 and PHP-7.4 crash with NULL-pointer dereference on !CS constant).', + 'raw' => 'Fixed bug #79434 (PHP 7.3 and PHP-7.4 crash with NULL-pointer dereference on !CS constant). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79477 (casting object into array creates references).', + 'raw' => 'Fixed bug #79477 (casting object into array creates references). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79470 (PHP incompatible with 3rd party file system on demand).', + 'raw' => 'Fixed bug #79470 (PHP incompatible with 3rd party file system on demand). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78784 (Unable to interact with files inside a VFS for Git repository).', + 'raw' => 'Fixed bug #78784 (Unable to interact with files inside a VFS for Git repository). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78221 (DOMNode::normalize() doesn\'t remove empty text nodes).', + 'raw' => 'Fixed bug #78221 (DOMNode::normalize() doesn\'t remove empty text nodes). (cmb)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79491 (Search for .user.ini extends up to root dir).', + 'raw' => 'Fixed bug #79491 (Search for .user.ini extends up to root dir). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79441 (Segfault in mb_chr() if internal encoding is unsupported).', + 'raw' => 'Fixed bug #79441 (Segfault in mb_chr() if internal encoding is unsupported). (Girgias)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79497 (stream_socket_client() throws an unknown error sometimes with <1s timeout).', + 'raw' => 'Fixed bug #79497 (stream_socket_client() throws an unknown error sometimes with <1s timeout). (Joe Cai)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix bug #79503 (Memory leak on duplicate metadata).', + 'raw' => 'Fix bug #79503 (Memory leak on duplicate metadata). (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4).', + 'raw' => 'Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended).', + 'raw' => 'Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended). (dinosaur)', + ), + ), + ), + ), + '7.3.17' => + array ( + 'date' => '16 Apr 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79364 (When copy empty array, next key is unspecified).', + 'raw' => 'Fixed bug #79364 (When copy empty array, next key is unspecified). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78210 (Invalid pointer address).', + 'raw' => 'Fixed bug #78210 (Invalid pointer address). (cmb, Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79199 (curl_copy_handle() memory leak).', + 'raw' => 'Fixed bug #79199 (curl_copy_handle() memory leak). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79396 (DateTime hour incorrect during DST jump forward).', + 'raw' => 'Fixed bug #79396 (DateTime hour incorrect during DST jump forward). (Nate Brunette)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79200 (Some iconv functions cut Windows-1258).', + 'raw' => 'Fixed bug #79200 (Some iconv functions cut Windows-1258). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).', + 'raw' => 'Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script). (Dmitry)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79413 (session_create_id() fails for active sessions).', + 'raw' => 'Fixed bug #79413 (session_create_id() fails for active sessions). (cmb)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79427 (Integer Overflow in shmop_open()).', + 'raw' => 'Fixed bug #79427 (Integer Overflow in shmop_open()). (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61597 (SXE properties may lack attributes and content).', + 'raw' => 'Fixed bug #61597 (SXE properties may lack attributes and content). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75673 (SplStack::unserialize() behavior).', + 'raw' => 'Fixed bug #75673 (SplStack::unserialize() behavior). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79393 (Null coalescing operator failing with SplFixedArray).', + 'raw' => 'Fixed bug #79393 (Null coalescing operator failing with SplFixedArray). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79330 (shell_exec() silently truncates after a null byte).', + 'raw' => 'Fixed bug #79330 (shell_exec() silently truncates after a null byte). (stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79465 (OOB Read in urldecode()). (CVE-2020-7067)', + 'raw' => 'Fixed bug #79465 (OOB Read in urldecode()). (CVE-2020-7067) (stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79410 (system() swallows last chunk if it is exactly 4095 bytes without newline).', + 'raw' => 'Fixed bug #79410 (system() swallows last chunk if it is exactly 4095 bytes without newline). (Christian Schneider)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #79296 (ZipArchive::open fails on empty file).', + 'raw' => 'Fixed Bug #79296 (ZipArchive::open fails on empty file). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79424 (php_zip_glob uses gl_pathc after call to globfree).', + 'raw' => 'Fixed bug #79424 (php_zip_glob uses gl_pathc after call to globfree). (Max Rees)', + ), + ), + ), + ), + '7.3.16' => + array ( + 'date' => '19 Mar 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63206 (restore_error_handler does not restore previous errors mask).', + 'raw' => 'Fixed bug #63206 (restore_error_handler does not restore previous errors mask). (Mark Plomer)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66322 (COMPersistHelper::SaveToFile can save to wrong location).', + 'raw' => 'Fixed bug #66322 (COMPersistHelper::SaveToFile can save to wrong location). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79242 (COM error constants don\'t match com_exception codes on x86).', + 'raw' => 'Fixed bug #79242 (COM error constants don\'t match com_exception codes on x86). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79248 (Traversing empty VT_ARRAY throws com_exception).', + 'raw' => 'Fixed bug #79248 (Traversing empty VT_ARRAY throws com_exception). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79299 (com_print_typeinfo prints duplicate variables).', + 'raw' => 'Fixed bug #79299 (com_print_typeinfo prints duplicate variables). (Litiano Moura)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79332 (php_istreams are never freed).', + 'raw' => 'Fixed bug #79332 (php_istreams are never freed). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79333 (com_print_typeinfo() leaks memory).', + 'raw' => 'Fixed bug #79333 (com_print_typeinfo() leaks memory). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77569: (Write Access Violation in DomImplementation).', + 'raw' => 'Fixed bug #77569: (Write Access Violation in DomImplementation). (Nikita, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79271 (DOMDocumentType::$childNodes is NULL).', + 'raw' => 'Fixed bug #79271 (DOMDocumentType::$childNodes is NULL). (cmb)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79311 (enchant_dict_suggest() fails on big endian architecture).', + 'raw' => 'Fixed bug #79311 (enchant_dict_suggest() fails on big endian architecture). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79282 (Use-of-uninitialized-value in exif). (CVE-2020-7064)', + 'raw' => 'Fixed bug #79282 (Use-of-uninitialized-value in exif). (CVE-2020-7064) (Nikita)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79371 (mb_strtolower (UTF-32LE): stack-buffer-overflow at php_unicode_tolower_full). (CVE-2020-7065)', + 'raw' => 'Fixed bug #79371 (mb_strtolower (UTF-32LE): stack-buffer-overflow at php_unicode_tolower_full). (CVE-2020-7065) (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64032 (mysqli reports different client_version).', + 'raw' => 'Fixed bug #64032 (mysqli reports different client_version). (cmb)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79188 (Memory corruption in preg_replace/preg_replace_callback and unicode).', + 'raw' => 'Fixed bug #79188 (Memory corruption in preg_replace/preg_replace_callback and unicode). (Nikita)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79038 (PDOStatement::nextRowset() leaks column values).', + 'raw' => 'Fixed bug #79038 (PDOStatement::nextRowset() leaks column values). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79062 (Property with heredoc default value returns false for getDocComment).', + 'raw' => 'Fixed bug #79062 (Property with heredoc default value returns false for getDocComment). (Nikita)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79294 (::columnType() may fail after SQLite3Stmt::reset()).', + 'raw' => 'Fixed bug #79294 (::columnType() may fail after SQLite3Stmt::reset()). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79329 (get_headers() silently truncates after a null byte). (CVE-2020-7066)', + 'raw' => 'Fixed bug #79329 (get_headers() silently truncates after a null byte). (CVE-2020-7066) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79254 (getenv() w/o arguments not showing changes).', + 'raw' => 'Fixed bug #79254 (getenv() w/o arguments not showing changes). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79265 (Improper injection of Host header when using fopen for http requests).', + 'raw' => 'Fixed bug #79265 (Improper injection of Host header when using fopen for http requests). (Miguel Xavier Penha Neto)', + ), + ), + ), + ), + '7.3.15' => + array ( + 'date' => '20 Feb 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71876 (Memory corruption htmlspecialchars(): charset `*\' not supported).', + 'raw' => 'Fixed bug #71876 (Memory corruption htmlspecialchars(): charset `*\' not supported). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79146 (cscript can fail to run on some systems).', + 'raw' => 'Fixed bug #79146 (cscript can fail to run on some systems). (clarodeus)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78323 (Code 0 is returned on invalid options).', + 'raw' => 'Fixed bug #78323 (Code 0 is returned on invalid options). (Ivan Mikheykin)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76047 (Use-after-free when accessing already destructed backtrace arguments).', + 'raw' => 'Fixed bug #76047 (Use-after-free when accessing already destructed backtrace arguments). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79078 (Hypothetical use-after-free in curl_multi_add_handle()).', + 'raw' => 'Fixed bug #79078 (Hypothetical use-after-free in curl_multi_add_handle()). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79212 (NumberFormatter::format() may detect wrong type).', + 'raw' => 'Fixed bug #79212 (NumberFormatter::format() may detect wrong type). (cmb)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79191 (Error in SoapClient ctor disables DOMDocument::save()).', + 'raw' => 'Fixed bug #79191 (Error in SoapClient ctor disables DOMDocument::save()). (Nikita, cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79154 (mb_convert_encoding() can modify $from_encoding).', + 'raw' => 'Fixed bug #79154 (mb_convert_encoding() can modify $from_encoding). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79084 (mysqlnd may fetch wrong column indexes with MYSQLI_BOTH).', + 'raw' => 'Fixed bug #79084 (mysqlnd may fetch wrong column indexes with MYSQLI_BOTH). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79145 (openssl memory leak).', + 'raw' => 'Fixed bug #79145 (openssl memory leak). (cmb, Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79082 (Files added to tar with Phar::buildFromIterator have all-access permissions). (CVE-2020-7063)', + 'raw' => 'Fixed bug #79082 (Files added to tar with Phar::buildFromIterator have all-access permissions). (CVE-2020-7063) (stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79171 (heap-buffer-overflow in phar_extract_file). (CVE-2020-7061)', + 'raw' => 'Fixed bug #79171 (heap-buffer-overflow in phar_extract_file). (CVE-2020-7061) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76584 (PharFileInfo::decompress not working).', + 'raw' => 'Fixed bug #76584 (PharFileInfo::decompress not working). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79115 (ReflectionClass::isCloneable call reflected class __destruct).', + 'raw' => 'Fixed bug #79115 (ReflectionClass::isCloneable call reflected class __destruct). (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79221 (Null Pointer Dereference in PHP Session Upload Progress). (CVE-2020-7062)', + 'raw' => 'Fixed bug #79221 (Null Pointer Dereference in PHP Session Upload Progress). (CVE-2020-7062) (stas)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79151 (heap use after free caused by spl_dllist_it_helper_move_forward).', + 'raw' => 'Fixed bug #79151 (heap use after free caused by spl_dllist_it_helper_move_forward). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78902 (Memory leak when using stream_filter_append).', + 'raw' => 'Fixed bug #78902 (Memory leak when using stream_filter_append). (liudaixiao)', + ), + ), + 'testing' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78090 (bug45161.phpt takes forever to finish).', + 'raw' => 'Fixed bug #78090 (bug45161.phpt takes forever to finish). (cmb)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70078 (XSL callbacks with nodes as parameter leak memory).', + 'raw' => 'Fixed bug #70078 (XSL callbacks with nodes as parameter leak memory). (cmb)', + ), + ), + ), + ), + '7.3.14' => + array ( + 'date' => '23 Jan 2020', + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78999 (Cycle leak when using function result as temporary).', + 'raw' => 'Fixed bug #78999 (Cycle leak when using function result as temporary). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79033 (Curl timeout error with specific url and post).', + 'raw' => 'Fixed bug #79033 (Curl timeout error with specific url and post). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79015 (undefined-behavior in php_date.c).', + 'raw' => 'Fixed bug #79015 (undefined-behavior in php_date.c). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached).', + 'raw' => 'Fixed bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached). (cmb)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74170 (locale information change after mime_content_type).', + 'raw' => 'Fixed bug #74170 (locale information change after mime_content_type). (Sergei Turchanov)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78923 (Artifacts when convoluting image with transparency).', + 'raw' => 'Fixed bug #78923 (Artifacts when convoluting image with transparency). (wilson chen)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79067 (gdTransformAffineCopy() may use unitialized values).', + 'raw' => 'Fixed bug #79067 (gdTransformAffineCopy() may use unitialized values). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79068 (gdTransformAffineCopy() changes interpolation method).', + 'raw' => 'Fixed bug #79068 (gdTransformAffineCopy() changes interpolation method). (cmb)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79029 (Use After Free\'s in XMLReader / XMLWriter).', + 'raw' => 'Fixed bug #79029 (Use After Free\'s in XMLReader / XMLWriter). (Laruence)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`). (CVE-2020-7060)', + 'raw' => 'Fixed bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`). (CVE-2020-7060) (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79040 (Warning Opcode handlers are unusable due to ASLR).', + 'raw' => 'Fixed bug #79040 (Warning Opcode handlers are unusable due to ASLR). (cmb)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78402 (Converting null to string in error message is bad DX).', + 'raw' => 'Fixed bug #78402 (Converting null to string in error message is bad DX). (SATŌ Kentarō)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h).', + 'raw' => 'Fixed bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h). (SATŌ Kentarō)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78980 (pgsqlGetNotify() overlooks dead connection).', + 'raw' => 'Fixed bug #78980 (pgsqlGetNotify() overlooks dead connection). (SATŌ Kentarō)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78982 (pdo_pgsql returns dead persistent connection).', + 'raw' => 'Fixed bug #78982 (pdo_pgsql returns dead persistent connection). (SATŌ Kentarō)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79091 (heap use-after-free in session_create_id()).', + 'raw' => 'Fixed bug #79091 (heap use-after-free in session_create_id()). (cmb, Nikita)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78538 (shmop memory leak).', + 'raw' => 'Fixed bug #78538 (shmop memory leak). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059).', + 'raw' => 'Fixed bug #79099 (OOB read in php_strip_tags_ex). (CVE-2020-7059). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54298 (Using empty additional_headers adding extraneous CRLF).', + 'raw' => 'Fixed bug #54298 (Using empty additional_headers adding extraneous CRLF). (cmb)', + ), + ), + ), + ), + '7.3.13' => + array ( + 'date' => '18 Dec 2019', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78878 (Buffer underflow in bc_shift_addsub). (CVE-2019-11046).', + 'raw' => 'Fixed bug #78878 (Buffer underflow in bc_shift_addsub). (CVE-2019-11046). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78862 (link() silently truncates after a null byte on Windows). (CVE-2019-11044).', + 'raw' => 'Fixed bug #78862 (link() silently truncates after a null byte on Windows). (CVE-2019-11044). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78863 (DirectoryIterator class silently truncates after a null byte). (CVE-2019-11045).', + 'raw' => 'Fixed bug #78863 (DirectoryIterator class silently truncates after a null byte). (CVE-2019-11045). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78943 (mail() may release string with refcount==1 twice). (CVE-2019-11049).', + 'raw' => 'Fixed bug #78943 (mail() may release string with refcount==1 twice). (CVE-2019-11049). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78787 (Segfault with trait overriding inherited private shadow property).', + 'raw' => 'Fixed bug #78787 (Segfault with trait overriding inherited private shadow property). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78868 (Calling __autoload() with incorrect EG(fake_scope) value).', + 'raw' => 'Fixed bug #78868 (Calling __autoload() with incorrect EG(fake_scope) value). (Antony Dovgal, Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78296 (is_file fails to detect file).', + 'raw' => 'Fixed bug #78296 (is_file fails to detect file). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78793 (Use-after-free in exif parsing under memory sanitizer). (CVE-2019-11050).', + 'raw' => 'Fixed bug #78793 (Use-after-free in exif parsing under memory sanitizer). (CVE-2019-11050). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78910 (Heap-buffer-overflow READ in exif). (CVE-2019-11047).', + 'raw' => 'Fixed bug #78910 (Heap-buffer-overflow READ in exif). (CVE-2019-11047). (Nikita)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78849 (GD build broken with -D SIGNED_COMPARE_SLOW).', + 'raw' => 'Fixed bug #78849 (GD build broken with -D SIGNED_COMPARE_SLOW). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Upgraded bundled Oniguruma to 6.9.4.', + 'raw' => 'Upgraded bundled Oniguruma to 6.9.4. (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed potential ASLR related invalid opline handler issues.', + 'raw' => 'Fixed potential ASLR related invalid opline handler issues. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed $x = (bool)$x; with opcache (should emit undeclared variable notice).', + 'raw' => 'Fixed $x = (bool)$x; with opcache (should emit undeclared variable notice). (Tyson Andre)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78853 (preg_match() may return integer > 1).', + 'raw' => 'Fixed bug #78853 (preg_match() may return integer > 1). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78759 (array_search in $GLOBALS).', + 'raw' => 'Fixed bug #78759 (array_search in $GLOBALS). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77638 (var_export\'ing certain class instances segfaults).', + 'raw' => 'Fixed bug #77638 (var_export\'ing certain class instances segfaults). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78840 (imploding $GLOBALS crashes).', + 'raw' => 'Fixed bug #78840 (imploding $GLOBALS crashes). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78833 (Integer overflow in pack causes out-of-bound access).', + 'raw' => 'Fixed bug #78833 (Integer overflow in pack causes out-of-bound access). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78814 (strip_tags allows / in tag name => whitelist bypass).', + 'raw' => 'Fixed bug #78814 (strip_tags allows / in tag name => whitelist bypass). (cmb)', + ), + ), + ), + ), + '7.3.12' => + array ( + 'date' => '21 Nov 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78658 (Memory corruption using Closure::bindTo).', + 'raw' => 'Fixed bug #78658 (Memory corruption using Closure::bindTo). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78656 (Parse errors classified as highest log-level).', + 'raw' => 'Fixed bug #78656 (Parse errors classified as highest log-level). (Erik Lundin)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78752 (Segfault if GC triggered while generator stack frame is being destroyed).', + 'raw' => 'Fixed bug #78752 (Segfault if GC triggered while generator stack frame is being destroyed). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78689 (Closure::fromCallable() doesn\'t handle [Closure, \'__invoke\']).', + 'raw' => 'Fixed bug #78689 (Closure::fromCallable() doesn\'t handle [Closure, \'__invoke\']). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78694 (Appending to a variant array causes segfault).', + 'raw' => 'Fixed bug #78694 (Appending to a variant array causes segfault). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70153 (\\DateInterval incorrectly unserialized).', + 'raw' => 'Fixed bug #70153 (\\DateInterval incorrectly unserialized). (Maksim Iakunin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78751 (Serialising DatePeriod converts DateTimeImmutable).', + 'raw' => 'Fixed bug #78751 (Serialising DatePeriod converts DateTimeImmutable). (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78642 (Wrong libiconv version displayed). .', + 'raw' => 'Fixed bug #78642 (Wrong libiconv version displayed). (gedas at martynas, cmb).', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters).', + 'raw' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters). (mhagstrand)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78747 (OpCache corrupts custom extension result).', + 'raw' => 'Fixed bug #78747 (OpCache corrupts custom extension result). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78775 (TLS issues from HTTP request affecting other encrypted connections).', + 'raw' => 'Fixed bug #78775 (TLS issues from HTTP request affecting other encrypted connections). (Nikita)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78697 (ReflectionClass::ImplementsInterface - inaccurate error message with traits).', + 'raw' => 'Fixed bug #78697 (ReflectionClass::ImplementsInterface - inaccurate error message with traits). (villfa)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78665 (Multicasting may leak memory).', + 'raw' => 'Fixed bug #78665 (Multicasting may leak memory). (cmb)', + ), + ), + ), + ), + '7.3.11' => + array ( + 'date' => '24 Oct 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78535 (auto_detect_line_endings value not parsed as bool).', + 'raw' => 'Fixed bug #78535 (auto_detect_line_endings value not parsed as bool). (bugreportuser)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78620 (Out of memory error).', + 'raw' => 'Fixed bug #78620 (Out of memory error). (cmb, Nikita)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78442 (\'Illegal component\' on exif_read_data since PHP7)', + 'raw' => 'Fixed bug #78442 (\'Illegal component\' on exif_read_data since PHP7) (Kalle)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043)', + 'raw' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78413 (request_terminate_timeout does not take effect after fastcgi_finish_request).', + 'raw' => 'Fixed bug #78413 (request_terminate_timeout does not take effect after fastcgi_finish_request). (Sergei Turchanov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78633 (Heap buffer overflow (read) in mb_eregi).', + 'raw' => 'Fixed bug #78633 (Heap buffer overflow (read) in mb_eregi). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78579 (mb_decode_numericentity: args number inconsistency).', + 'raw' => 'Fixed bug #78579 (mb_decode_numericentity: args number inconsistency). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78609 (mb_check_encoding() no longer supports stringable objects).', + 'raw' => 'Fixed bug #78609 (mb_check_encoding() no longer supports stringable objects). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used).', + 'raw' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used). (fabiomsouto)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78525 (Memory leak in pdo when reusing native prepared statements).', + 'raw' => 'Fixed bug #78525 (Memory leak in pdo when reusing native prepared statements). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78272 (calling preg_match() before pcntl_fork() will freeze child process).', + 'raw' => 'Fixed bug #78272 (calling preg_match() before pcntl_fork() will freeze child process). (Nikita)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78623 (Regression caused by "SP call yields additional empty result set").', + 'raw' => 'Fixed bug #78623 (Regression caused by "SP call yields additional empty result set"). (cmb)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78624 (session_gc return value for user defined session handlers).', + 'raw' => 'Fixed bug #78624 (session_gc return value for user defined session handlers). (bshaffer)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76342 (file_get_contents waits twice specified timeout).', + 'raw' => 'Fixed bug #76342 (file_get_contents waits twice specified timeout). (Thomas Calvet)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78612 (strtr leaks memory when integer keys are used and the subject string shorter).', + 'raw' => 'Fixed bug #78612 (strtr leaks memory when integer keys are used and the subject string shorter). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter).', + 'raw' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter). (kkopachev)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78641 (addGlob can modify given remove_path value).', + 'raw' => 'Fixed bug #78641 (addGlob can modify given remove_path value). (cmb)', + ), + ), + ), + ), + '7.3.10' => + array ( + 'date' => '26 Sep 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78220 (Can\'t access OneDrive folder).', + 'raw' => 'Fixed bug #78220 (Can\'t access OneDrive folder). (cmb, ab)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77922 (Double release of doc comment on inherited shadow property).', + 'raw' => 'Fixed bug #77922 (Double release of doc comment on inherited shadow property). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78441 (Parse error due to heredoc identifier followed by digit).', + 'raw' => 'Fixed bug #78441 (Parse error due to heredoc identifier followed by digit). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77812 (Interactive mode does not support PHP 7.3-style heredoc).', + 'raw' => 'Fixed bug #77812 (Interactive mode does not support PHP 7.3-style heredoc). (cmb, Nikita)', + ), + ), + 'fastcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78469 (FastCGI on_accept hook is not called when using named pipes on Windows).', + 'raw' => 'Fixed bug #78469 (FastCGI on_accept hook is not called when using named pipes on Windows). (Sergei Turchanov)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78334 (fpm log prefix message includes wrong stdout/stderr notation).', + 'raw' => 'Fixed bug #78334 (fpm log prefix message includes wrong stdout/stderr notation). (Tsuyoshi Sadakata)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Ensure IDNA2003 rules are used with idn_to_ascii() and idn_to_utf8() when requested.', + 'raw' => 'Ensure IDNA2003 rules are used with idn_to_ascii() and idn_to_utf8() when requested. (Sara)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78559 (Heap buffer overflow in mb_eregi).', + 'raw' => 'Fixed bug #78559 (Heap buffer overflow in mb_eregi). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed connect_attr issues and added the _server_host connection attribute.', + 'raw' => 'Fixed connect_attr issues and added the _server_host connection attribute. (Qianqian Bu)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78473 (odbc_close() closes arbitrary resources).', + 'raw' => 'Fixed bug #78473 (odbc_close() closes arbitrary resources). (cmb)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41997 (SP call yields additional empty result set).', + 'raw' => 'Fixed bug #41997 (SP call yields additional empty result set). (cmb)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78510 (Partially uninitialized buffer returned by sodium_crypto_generichash_init()).', + 'raw' => 'Fixed bug #78510 (Partially uninitialized buffer returned by sodium_crypto_generichash_init()). (Frank Denis, cmb)', + ), + ), + ), + ), + '7.3.9' => + array ( + 'date' => '29 Aug 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78363 (Buffer overflow in zendparse).', + 'raw' => 'Fixed bug #78363 (Buffer overflow in zendparse). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78379 (Cast to object confuses GC, causes crash).', + 'raw' => 'Fixed bug #78379 (Cast to object confuses GC, causes crash). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78412 (Generator incorrectly reports non-releasable $this as GC child).', + 'raw' => 'Fixed bug #78412 (Generator incorrectly reports non-releasable $this as GC child). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77946 (Bad cURL resources returned by curl_multi_info_read()).', + 'raw' => 'Fixed bug #77946 (Bad cURL resources returned by curl_multi_info_read()). (Abyr Valg)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast).', + 'raw' => 'Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast). (Nikita)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77185 (Use-after-free in FPM master event handling).', + 'raw' => 'Fixed bug #77185 (Use-after-free in FPM master event handling). (Maksim Nikulin)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78342 (Bus error in configure test for iconv //IGNORE).', + 'raw' => 'Fixed bug #78342 (Bus error in configure test for iconv //IGNORE). (Rainer Jung)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown).', + 'raw' => 'Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown). (George Wang)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78380 (Oniguruma 6.9.3 fixes CVEs). (CVE-2019-13224)', + 'raw' => 'Fixed bug #78380 (Oniguruma 6.9.3 fixes CVEs). (CVE-2019-13224) (Stas)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78179 (MariaDB server version incorrectly detected).', + 'raw' => 'Fixed bug #78179 (MariaDB server version incorrectly detected). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78213 (Empty row pocket).', + 'raw' => 'Fixed bug #78213 (Empty row pocket). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77191 (Assertion failure in dce_live_ranges() when silencing is used).', + 'raw' => 'Fixed bug #77191 (Assertion failure in dce_live_ranges() when silencing is used). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream) with invalid length).', + 'raw' => 'Fixed bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream) with invalid length). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78282 (atime and mtime mismatch).', + 'raw' => 'Fixed bug #78282 (atime and mtime mismatch). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer).', + 'raw' => 'Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer). (Albert Casademont)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78346 (strip_tags no longer handling nested php tags).', + 'raw' => 'Fixed bug #78346 (strip_tags no longer handling nested php tags). (cmb)', + ), + ), + ), + ), + '7.3.8' => + array ( + 'date' => '01 Aug 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added syslog.filter=raw option.', + 'raw' => 'Added syslog.filter=raw option. (Erik Lundin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78212 (Segfault in built-in webserver).', + 'raw' => 'Fixed bug #78212 (Segfault in built-in webserver). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69044 (discrepency between time and microtime).', + 'raw' => 'Fixed bug #69044 (discrepency between time and microtime). (krakjoe)', + ), + 1 => + array ( + 'message' => 'Updated timelib to 2018.02.', + 'raw' => 'Updated timelib to 2018.02. (Derick)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042)', + 'raw' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041)', + 'raw' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041) (Stas)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78039 (FTP with SSL memory leak).', + 'raw' => 'Fixed bug #78039 (FTP with SSL memory leak). (Nikita)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78279 (libxml_disable_entity_loader settings is shared between requests (cgi-fcgi)).', + 'raw' => 'Fixed bug #78279 (libxml_disable_entity_loader settings is shared between requests (cgi-fcgi)). (Nikita)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated to LiteSpeed SAPI V7.4.3 (increased response header count limit from 100 to 1000, added crash handler to cleanly shutdown PHP request, added CloudLinux mod_lsapi mode).', + 'raw' => 'Updated to LiteSpeed SAPI V7.4.3 (increased response header count limit from 100 to 1000, added crash handler to cleanly shutdown PHP request, added CloudLinux mod_lsapi mode). (George Wang)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76058 (After "POST data can\'t be buffered", using php://input makes huge tmp files).', + 'raw' => 'Fixed bug #76058 (After "POST data can\'t be buffered", using php://input makes huge tmp files). (George Wang)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78231 (Segmentation fault upon stream_socket_accept of exported socket-to-stream).', + 'raw' => 'Fixed bug #78231 (Segmentation fault upon stream_socket_accept of exported socket-to-stream). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78189 (file cache strips last character of uname hash).', + 'raw' => 'Fixed bug #78189 (file cache strips last character of uname hash). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM).', + 'raw' => 'Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78271 (Invalid result of if-else).', + 'raw' => 'Fixed bug #78271 (Invalid result of if-else). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78291 (opcache_get_configuration doesn\'t list all directives).', + 'raw' => 'Fixed bug #78291 (opcache_get_configuration doesn\'t list all directives). (Andrew Collington)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78341 (Failure to detect smart branch in DFA pass).', + 'raw' => 'Fixed bug #78341 (Failure to detect smart branch in DFA pass). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78197 (PCRE2 version check in configure fails for "##.##-xxx" version strings).', + 'raw' => 'Fixed bug #78197 (PCRE2 version check in configure fails for "##.##-xxx" version strings). (pgnet, Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78338 (Array cross-border reading in PCRE).', + 'raw' => 'Fixed bug #78338 (Array cross-border reading in PCRE). (cmb)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78192 (SegFault when reuse statement after schema has changed).', + 'raw' => 'Fixed bug #78192 (SegFault when reuse statement after schema has changed). (Vincent Quatrevieux)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN).', + 'raw' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN). (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78297 (Include unexistent file memory leak).', + 'raw' => 'Fixed bug #78297 (Include unexistent file memory leak). (Nikita)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Upgraded to SQLite 3.28.0.', + 'raw' => 'Upgraded to SQLite 3.28.0. (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit).', + 'raw' => 'Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78269 (password_hash uses weak options for argon2).', + 'raw' => 'Fixed bug #78269 (password_hash uses weak options for argon2). (Remi)', + ), + ), + ), + ), + '7.3.7' => + array ( + 'date' => '04 Jul 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76980 (Interface gets skipped if autoloader throws an exception).', + 'raw' => 'Fixed bug #76980 (Interface gets skipped if autoloader throws an exception). (Nikita)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78025 (segfault when accessing properties of DOMDocumentType).', + 'raw' => 'Fixed bug #78025 (segfault when accessing properties of DOMDocumentType). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77956 (When mysqli.allow_local_infile = Off, use a meaningful error message).', + 'raw' => 'Fixed bug #77956 (When mysqli.allow_local_infile = Off, use a meaningful error message). (Sjon Hortensius)', + ), + 1 => + array ( + 'message' => 'Fixed bug #38546 (bindParam incorrect processing of bool types).', + 'raw' => 'Fixed bug #38546 (bindParam incorrect processing of bool types). (camporter)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77955 (Random segmentation fault in mysqlnd from php-fpm).', + 'raw' => 'Fixed bug #77955 (Random segmentation fault in mysqlnd from php-fpm). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78015 (Incorrect evaluation of expressions involving partials arrays in SCCP).', + 'raw' => 'Fixed bug #78015 (Incorrect evaluation of expressions involving partials arrays in SCCP). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78106 (Path resolution fails if opcache disabled during request).', + 'raw' => 'Fixed bug #78106 (Path resolution fails if opcache disabled during request). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78079 (openssl_encrypt_ccm.phpt fails with OpenSSL 1.1.1c).', + 'raw' => 'Fixed bug #78079 (openssl_encrypt_ccm.phpt fails with OpenSSL 1.1.1c). (Jakub Zelenka)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78050 (SegFault phpdbg + opcache on include file twice).', + 'raw' => 'Fixed bug #78050 (SegFault phpdbg + opcache on include file twice). (Nikita)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78038 (Socket_select fails when resource array contains references).', + 'raw' => 'Fixed bug #78038 (Socket_select fails when resource array contains references). (Nikita)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78114 (segfault when calling sodium_* functions from eval).', + 'raw' => 'Fixed bug #78114 (segfault when calling sodium_* functions from eval). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77135 (Extract with EXTR_SKIP should skip $this).', + 'raw' => 'Fixed bug #77135 (Extract with EXTR_SKIP should skip $this). (Craig Duncan, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77937 (preg_match failed).', + 'raw' => 'Fixed bug #77937 (preg_match failed). (cmb, Anatol)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76345 (zip.h not found).', + 'raw' => 'Fixed bug #76345 (zip.h not found). (Michael Maroszek)', + ), + ), + ), + ), + '7.3.6' => + array ( + 'date' => '30 May 2019', + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #72189 (Add missing CURL_VERSION_* constants).', + 'raw' => 'Implemented FR #72189 (Add missing CURL_VERSION_* constants). (Javier Spagnoletti)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77909 (DatePeriod::__construct() with invalid recurrence count value).', + 'raw' => 'Fixed bug #77909 (DatePeriod::__construct() with invalid recurrence count value). (Ignace Nyamagana Butera)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). (CVE-2019-11040)', + 'raw' => 'Fixed bug #77988 (heap-buffer-overflow on php_jpg_get16). (CVE-2019-11040) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77934 (php-fpm kill -USR2 not working).', + 'raw' => 'Fixed bug #77934 (php-fpm kill -USR2 not working). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77921 (static.php.net doesn\'t work anymore).', + 'raw' => 'Fixed bug #77921 (static.php.net doesn\'t work anymore). (Peter Kokot)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77943 (imageantialias($image, false); does not work).', + 'raw' => 'Fixed bug #77943 (imageantialias($image, false); does not work). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). (CVE-2019-11038)', + 'raw' => 'Fixed bug #77973 (Uninitialized read in gdImageCreateFromXbm). (CVE-2019-11038) (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow). (CVE-2019-11039).', + 'raw' => 'Fixed bug #78069 (Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow). (CVE-2019-11039). (maris dot adam)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77843 (Use after free with json serializer).', + 'raw' => 'Fixed bug #77843 (Use after free with json serializer). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed possible crashes, because of inconsistent PCRE cache and opcache SHM reset.', + 'raw' => 'Fixed possible crashes, because of inconsistent PCRE cache and opcache SHM reset. (Alexey Kalinin, Dmitry)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77944 (Wrong meta pdo_type for bigint on LLP64).', + 'raw' => 'Fixed bug #77944 (Wrong meta pdo_type for bigint on LLP64). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75186 (Inconsistent reflection of Closure:::__invoke()).', + 'raw' => 'Fixed bug #75186 (Inconsistent reflection of Closure:::__invoke()). (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77911 (Wrong warning for session.sid_bits_per_character).', + 'raw' => 'Fixed bug #77911 (Wrong warning for session.sid_bits_per_character). (cmb)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77945 (Segmentation fault when constructing SoapClient with WSDL_CACHE_BOTH).', + 'raw' => 'Fixed bug #77945 (Segmentation fault when constructing SoapClient with WSDL_CACHE_BOTH). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77024 (SplFileObject::__toString() may return array).', + 'raw' => 'Fixed bug #77024 (SplFileObject::__toString() may return array). (Craig Duncan)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77967 (Bypassing open_basedir restrictions via file uris).', + 'raw' => 'Fixed bug #77967 (Bypassing open_basedir restrictions via file uris). (Stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77931 (Warning for array_map mentions wrong type).', + 'raw' => 'Fixed bug #77931 (Warning for array_map mentions wrong type). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78003 (strip_tags output change since PHP 7.3).', + 'raw' => 'Fixed bug #78003 (strip_tags output change since PHP 7.3). (cmb)', + ), + ), + ), + ), + '7.3.5' => + array ( + 'date' => '02 May 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77903 (ArrayIterator stops iterating after offsetSet call).', + 'raw' => 'Fixed bug #77903 (ArrayIterator stops iterating after offsetSet call). (Nikita)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77794 (Incorrect Date header format in built-in server).', + 'raw' => 'Fixed bug #77794 (Incorrect Date header format in built-in server). (kelunik)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). (CVE-2019-11036)', + 'raw' => 'Fixed bug #77950 (Heap-buffer-overflow in _estrndup via exif_process_IFD_TAG). (CVE-2019-11036) (Stas)', + ), + ), + 'interbase' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72175 (Impossibility of creating multiple connections to Interbase with php 7.x).', + 'raw' => 'Fixed bug #72175 (Impossibility of creating multiple connections to Interbase with php 7.x). (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77895 (IntlDateFormatter::create fails in strict mode if $locale = null).', + 'raw' => 'Fixed bug #77895 (IntlDateFormatter::create fails in strict mode if $locale = null). (Nikita)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77869 (Core dump when using server controls)', + 'raw' => 'Fixed bug #77869 (Core dump when using server controls) (mcmic)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77821 (Potential heap corruption in TSendMail()).', + 'raw' => 'Fixed bug #77821 (Potential heap corruption in TSendMail()). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #72777 (Implement regex stack limits for mbregex functions).', + 'raw' => 'Implemented FR #72777 (Implement regex stack limits for mbregex functions). (Yasuo Ohgaki, Stas)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77773 (Unbuffered queries leak memory - MySQLi / mysqlnd).', + 'raw' => 'Fixed bug #77773 (Unbuffered queries leak memory - MySQLi / mysqlnd). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77827 (preg_match does not ignore \\r in regex flags).', + 'raw' => 'Fixed bug #77827 (preg_match does not ignore \\r in regex flags). (requinix, cmb)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects).', + 'raw' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects). (camporter)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76801 (too many open files).', + 'raw' => 'Fixed bug #76801 (too many open files). (alekitto)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).', + 'raw' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints). (krakjoe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77805 (phpdbg build fails when readline is shared).', + 'raw' => 'Fixed bug #77805 (phpdbg build fails when readline is shared). (krakjoe)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77772 (ReflectionClass::getMethods(null) doesn\'t work).', + 'raw' => 'Fixed bug #77772 (ReflectionClass::getMethods(null) doesn\'t work). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77882 (Different behavior: always calls destructor).', + 'raw' => 'Fixed bug #77882 (Different behavior: always calls destructor). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77793 (Segmentation fault in extract() when overwriting reference with itself).', + 'raw' => 'Fixed bug #77793 (Segmentation fault in extract() when overwriting reference with itself). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77844 (Crash due to null pointer in parse_ini_string with INI_SCANNER_TYPED).', + 'raw' => 'Fixed bug #77844 (Crash due to null pointer in parse_ini_string with INI_SCANNER_TYPED). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77853 (Inconsistent substr_compare behaviour with empty haystack).', + 'raw' => 'Fixed bug #77853 (Inconsistent substr_compare behaviour with empty haystack). (Nikita)', + ), + ), + ), + ), + '7.3.4' => + array ( + 'date' => '04 Apr 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77738 (Nullptr deref in zend_compile_expr).', + 'raw' => 'Fixed bug #77738 (Nullptr deref in zend_compile_expr). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77660 (Segmentation fault on break 2147483648).', + 'raw' => 'Fixed bug #77660 (Segmentation fault on break 2147483648). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77652 (Anonymous classes can lose their interface information).', + 'raw' => 'Fixed bug #77652 (Anonymous classes can lose their interface information). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77345 (Stack Overflow caused by circular reference in garbage collection).', + 'raw' => 'Fixed bug #77345 (Stack Overflow caused by circular reference in garbage collection). (Alexandru Patranescu, Nikita, Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #76956 (Wrong value for \'syslog.filter\' documented in php.ini).', + 'raw' => 'Fixed bug #76956 (Wrong value for \'syslog.filter\' documented in php.ini). (cmb)', + ), + ), + 'apache2handler' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77648 (BOM in sapi/apache2handler/php_functions.c).', + 'raw' => 'Fixed bug #77648 (BOM in sapi/apache2handler/php_functions.c). (cmb)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization).', + 'raw' => 'Fixed bug #77742 (bcpow() implementation related to gcc compiler optimization). (Nikita)', + ), + ), + 'cli server' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77722 (Incorrect IP set to $_SERVER[\'REMOTE_ADDR\'] on the localhost).', + 'raw' => 'Fixed bug #77722 (Incorrect IP set to $_SERVER[\'REMOTE_ADDR\'] on the localhost). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77578 (Crash when php unload).', + 'raw' => 'Fixed bug #77578 (Crash when php unload). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034)', + 'raw' => 'Fixed bug #77753 (Heap-buffer-overflow in php_ifd_get32s). (CVE-2019-11034) (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). (CVE-2019-11035)', + 'raw' => 'Fixed bug #77831 (Heap-buffer-overflow in exif_iif_add_value). (CVE-2019-11035) (Stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP).', + 'raw' => 'Fixed bug #77677 (FPM fails to build on AIX due to missing WCOREDUMP). (Kevin Adler)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag).', + 'raw' => 'Fixed bug #77700 (Writing truecolor images as GIF ignores interlace flag). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77597 (mysqli_fetch_field hangs scripts).', + 'raw' => 'Fixed bug #77597 (mysqli_fetch_field hangs scripts). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors).', + 'raw' => 'Fixed bug #77743 (Incorrect pi node insertion for jmpznz with identical successors). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76127 (preg_split does not raise an error on invalid UTF-8).', + 'raw' => 'Fixed bug #76127 (preg_split does not raise an error on invalid UTF-8). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77697 (Crash on Big_Endian platform).', + 'raw' => 'Fixed bug #77697 (Crash on Big_Endian platform). (Laruence)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases).', + 'raw' => 'Fixed bug #77767 (phpdbg break cmd aliases listed in help do not match actual aliases). (Miriam Lauter)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77646 (sign_detached() strings not terminated).', + 'raw' => 'Fixed bug #77646 (sign_detached() strings not terminated). (Frank)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Added sqlite3.defensive INI directive.', + 'raw' => 'Added sqlite3.defensive INI directive. (BohwaZ)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper).', + 'raw' => 'Fixed bug #77664 (Segmentation fault when using undefined constant in custom wrapper). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77669 (Crash in extract() when overwriting extracted array).', + 'raw' => 'Fixed bug #77669 (Crash in extract() when overwriting extracted array). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN).', + 'raw' => 'Fixed bug #76717 (var_export() does not create a parsable value for PHP_INT_MIN). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77765 (FTP stream wrapper should set the directory as executable).', + 'raw' => 'Fixed bug #77765 (FTP stream wrapper should set the directory as executable). (Vlad Temian)', + ), + ), + ), + ), + '7.3.3' => + array ( + 'date' => '07 Mar 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77589 (Core dump using parse_ini_string with numeric sections).', + 'raw' => 'Fixed bug #77589 (Core dump using parse_ini_string with numeric sections). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77329 (Buffer Overflow via overly long Error Messages).', + 'raw' => 'Fixed bug #77329 (Buffer Overflow via overly long Error Messages). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77494 (Disabling class causes segfault on member access).', + 'raw' => 'Fixed bug #77494 (Disabling class causes segfault on member access). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77498 (Custom extension Segmentation fault when declare static property).', + 'raw' => 'Fixed bug #77498 (Custom extension Segmentation fault when declare static property). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77530 (PHP crashes when parsing `(2)::class`).', + 'raw' => 'Fixed bug #77530 (PHP crashes when parsing `(2)::class`). (Ekin)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77546 (iptcembed broken function).', + 'raw' => 'Fixed bug #77546 (iptcembed broken function). (gdegoulet)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77630 (rename() across the device may allow unwanted access during processing).', + 'raw' => 'Fixed bug #77630 (rename() across the device may allow unwanted access during processing). (Stas)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77621 (Already defined constants are not properly reported).', + 'raw' => 'Fixed bug #77621 (Already defined constants are not properly reported). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77626 (Persistence confusion in php_com_import_typelib()).', + 'raw' => 'Fixed bug #77626 (Persistence confusion in php_com_import_typelib()). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF).', + 'raw' => 'Fixed bug #77509 (Uninitialized read in exif_process_IFD_in_TIFF). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77540 (Invalid Read on exif_process_SOFn).', + 'raw' => 'Fixed bug #77540 (Invalid Read on exif_process_SOFn). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #77563 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE).', + 'raw' => 'Fixed bug #77659 (Uninitialized read in exif_process_IFD_in_MAKERNOTE). (Stas)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77514 (mb_ereg_replace() with trailing backslash adds null byte).', + 'raw' => 'Fixed bug #77514 (mb_ereg_replace() with trailing backslash adds null byte). (Nikita)', + ), + 1 => + array ( + 'message' => 'Disabled LOCAL INFILE by default, can be enabled using php.ini directive mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql.', + 'raw' => 'Disabled LOCAL INFILE by default, can be enabled using php.ini directive mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql. (Darek Slusarczyk)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77390 (feof might hang on TLS streams in case of fragmented TLS records).', + 'raw' => 'Fixed bug #77390 (feof might hang on TLS streams in case of fragmented TLS records). (Abyl Valg, Jakub Zelenka)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER.', + 'raw' => 'Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER. (Cameron Porter)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename).', + 'raw' => 'Fixed bug #77396 (Null Pointer Dereference in phar_create_or_parse_filename). (bishop)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow).', + 'raw' => 'Fixed bug #77586 (phar_tar_writeheaders_int() buffer overflow). (bishop)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr).', + 'raw' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr). (kabel)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51068 (DirectoryIterator glob:// don\'t support current path relative queries).', + 'raw' => 'Fixed bug #51068 (DirectoryIterator glob:// don\'t support current path relative queries). (Ahmed Abdou)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77431 (openFile() silently truncates after a null byte).', + 'raw' => 'Fixed bug #77431 (openFile() silently truncates after a null byte). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions).', + 'raw' => 'Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions). (John Stevenson)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77612 (setcookie() sets incorrect SameSite header if all of its options filled).', + 'raw' => 'Fixed bug #77612 (setcookie() sets incorrect SameSite header if all of its options filled). (Nikita)', + ), + ), + ), + ), + '7.3.2' => + array ( + 'date' => '07 Feb 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77369 (memcpy with negative length via crafted DNS response).', + 'raw' => 'Fixed bug #77369 (memcpy with negative length via crafted DNS response). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77387 (Recursion detection broken when printing GLOBALS).', + 'raw' => 'Fixed bug #77387 (Recursion detection broken when printing GLOBALS). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77376 ("undefined function" message no longer includes namespace).', + 'raw' => 'Fixed bug #77376 ("undefined function" message no longer includes namespace). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77357 (base64_encode / base64_decode doest not work on nested VM).', + 'raw' => 'Fixed bug #77357 (base64_encode / base64_decode doest not work on nested VM). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77339 (__callStatic may get incorrect arguments).', + 'raw' => 'Fixed bug #77339 (__callStatic may get incorrect arguments). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77317 (__DIR__, __FILE__, realpath() reveal physical path for subst virtual drive).', + 'raw' => 'Fixed bug #77317 (__DIR__, __FILE__, realpath() reveal physical path for subst virtual drive). (Anatol)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77263 (Segfault when using 2 RecursiveFilterIterator).', + 'raw' => 'Fixed bug #77263 (Segfault when using 2 RecursiveFilterIterator). (Dmitry)', + ), + 7 => + array ( + 'message' => 'Fixed bug #77447 (PHP 7.3 built with ASAN crashes in zend_cpu_supports_avx2).', + 'raw' => 'Fixed bug #77447 (PHP 7.3 built with ASAN crashes in zend_cpu_supports_avx2). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #77484 (Zend engine crashes when calling realpath in invalid working dir).', + 'raw' => 'Fixed bug #77484 (Zend engine crashes when calling realpath in invalid working dir). (Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76675 (Segfault with H2 server push).', + 'raw' => 'Fixed bug #76675 (Segfault with H2 server push). (Pedro Magalhães)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77346 (webm files incorrectly detected as application/octet-stream).', + 'raw' => 'Fixed bug #77346 (webm files incorrectly detected as application/octet-stream). (Anatol)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77430 (php-fpm crashes with Main process exited, code=dumped, status=11/SEGV).', + 'raw' => 'Fixed bug #77430 (php-fpm crashes with Main process exited, code=dumped, status=11/SEGV). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73281 (imagescale(…, IMG_BILINEAR_FIXED) can cause black border).', + 'raw' => 'Fixed bug #73281 (imagescale(…, IMG_BILINEAR_FIXED) can cause black border). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73614 (gdImageFilledArc() doesn\'t properly draw pies).', + 'raw' => 'Fixed bug #73614 (gdImageFilledArc() doesn\'t properly draw pies). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77272 (imagescale() may return image resource on failure).', + 'raw' => 'Fixed bug #77272 (imagescale() may return image resource on failure). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77391 (1bpp BMPs may fail to be loaded).', + 'raw' => 'Fixed bug #77391 (1bpp BMPs may fail to be loaded). (Romain Déoux, cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77479 (imagewbmp() segfaults with very large images).', + 'raw' => 'Fixed bug #77479 (imagewbmp() segfaults with very large images). (cmb)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77440 (ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dll).', + 'raw' => 'Fixed bug #77440 (ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dll). (Anatol)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77428 (mb_ereg_replace() doesn\'t replace a substitution variable).', + 'raw' => 'Fixed bug #77428 (mb_ereg_replace() doesn\'t replace a substitution variable). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77454 (mb_scrub() silently truncates after a null byte).', + 'raw' => 'Fixed bug #77454 (mb_scrub() silently truncates after a null byte). (64796c6e69 at gmail dot com)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77308 (Unbuffered queries memory leak).', + 'raw' => 'Fixed bug #77308 (Unbuffered queries memory leak). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75684 (In mysqlnd_ext_plugin.h the plugin methods family has no external visibility).', + 'raw' => 'Fixed bug #75684 (In mysqlnd_ext_plugin.h the plugin methods family has no external visibility). (Anatol)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77266 (Assertion failed in dce_live_ranges).', + 'raw' => 'Fixed bug #77266 (Assertion failed in dce_live_ranges). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77257 (value of variable assigned in a switch() construct gets lost).', + 'raw' => 'Fixed bug #77257 (value of variable assigned in a switch() construct gets lost). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77434 (php-fpm workers are segfaulting in zend_gc_addre).', + 'raw' => 'Fixed bug #77434 (php-fpm workers are segfaulting in zend_gc_addre). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77361 (configure fails on 64-bit AIX when opcache enabled).', + 'raw' => 'Fixed bug #77361 (configure fails on 64-bit AIX when opcache enabled). (Kevin Adler)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77287 (Opcache literal compaction is incompatible with EXT opcodes).', + 'raw' => 'Fixed bug #77287 (Opcache literal compaction is incompatible with EXT opcodes). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77338 (get_browser with empty string).', + 'raw' => 'Fixed bug #77338 (get_browser with empty string). (Nikita)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77273 (array_walk_recursive corrupts value types leading to PDO failure).', + 'raw' => 'Fixed bug #77273 (array_walk_recursive corrupts value types leading to PDO failure). (Nikita)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77289 (PDO MySQL segfaults with persistent connection).', + 'raw' => 'Fixed bug #77289 (PDO MySQL segfaults with persistent connection). (Lauri Kenttä)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77410 (Segmentation Fault when executing method with an empty parameter).', + 'raw' => 'Fixed bug #77410 (Segmentation Fault when executing method with an empty parameter). (Nikita)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76839 (socket_recvfrom may return an invalid \'from\' address on MacOS).', + 'raw' => 'Fixed bug #76839 (socket_recvfrom may return an invalid \'from\' address on MacOS). (Michael Meyer)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77298 (segfault occurs when add property to unserialized empty ArrayObject).', + 'raw' => 'Fixed bug #77298 (segfault occurs when add property to unserialized empty ArrayObject). (jhdxr)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77395 (segfault about array_multisort).', + 'raw' => 'Fixed bug #77395 (segfault about array_multisort). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77439 (parse_str segfaults when inserting item into existing array).', + 'raw' => 'Fixed bug #77439 (parse_str segfaults when inserting item into existing array). (Nikita)', + ), + ), + ), + ), + '7.3.1' => + array ( + 'date' => '10 Jan 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76654 (Build failure on Mac OS X on 32-bit Intel).', + 'raw' => 'Fixed bug #76654 (Build failure on Mac OS X on 32-bit Intel). (Ryandesign)', + ), + 1 => + array ( + 'message' => 'Fixed bug #71041 (zend_signal_startup() needs ZEND_API).', + 'raw' => 'Fixed bug #71041 (zend_signal_startup() needs ZEND_API). (Valentin V. Bartenev)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76046 (PHP generates "FE_FREE" opcode on the wrong line).', + 'raw' => 'Fixed bug #76046 (PHP generates "FE_FREE" opcode on the wrong line). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77291 (magic methods inherited from a trait may be ignored).', + 'raw' => 'Fixed bug #77291 (magic methods inherited from a trait may be ignored). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77264 (curl_getinfo returning microseconds, not seconds).', + 'raw' => 'Fixed bug #77264 (curl_getinfo returning microseconds, not seconds). (Pierrick)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77177 (Serializing or unserializing COM objects crashes).', + 'raw' => 'Fixed bug #77177 (Serializing or unserializing COM objects crashes). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77184 (Unsigned rational numbers are written out as signed rationals).', + 'raw' => 'Fixed bug #77184 (Unsigned rational numbers are written out as signed rationals). (Colin Basnett)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77195 (Incorrect error handling of imagecreatefromjpeg()).', + 'raw' => 'Fixed bug #77195 (Incorrect error handling of imagecreatefromjpeg()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77198 (auto cropping has insufficient precision).', + 'raw' => 'Fixed bug #77198 (auto cropping has insufficient precision). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77200 (imagecropauto(…, GD_CROP_SIDES) crops left but not right).', + 'raw' => 'Fixed bug #77200 (imagecropauto(…, GD_CROP_SIDES) crops left but not right). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free).', + 'raw' => 'Fixed bug #77269 (efree() on uninitialized Heap data in imagescale leads to use-after-free). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap).', + 'raw' => 'Fixed bug #77270 (imagecolormatch Out Of Bounds Write on Heap). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77367 (Negative size parameter in mb_split).', + 'raw' => 'Fixed bug #77367 (Negative size parameter in mb_split). (Stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token).', + 'raw' => 'Fixed bug #77370 (Buffer overflow on mb regex functions - fetch_token). (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node).', + 'raw' => 'Fixed bug #77371 (heap buffer overflow in mb regex functions - compile_string_node). (Stas)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at).', + 'raw' => 'Fixed bug #77381 (heap buffer overflow in multibyte match_at). (Stas)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string).', + 'raw' => 'Fixed bug #77382 (heap buffer overflow due to incorrect length in expand_case_fold_string). (Stas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77385 (buffer overflow in fetch_token).', + 'raw' => 'Fixed bug #77385 (buffer overflow in fetch_token). (Stas)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode).', + 'raw' => 'Fixed bug #77394 (Buffer overflow in multibyte case folding - unicode). (Stas)', + ), + 7 => + array ( + 'message' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code).', + 'raw' => 'Fixed bug #77418 (Heap overflow in utf32be_mbc_to_code). (Stas)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working).', + 'raw' => 'Fixed bug #76804 (oci_pconnect with OCI_CRED_EXT not working). (KoenigsKind)', + ), + 1 => + array ( + 'message' => 'Added oci_set_call_timeout() for call timeouts.', + 'raw' => 'Added oci_set_call_timeout() for call timeouts.', + ), + 2 => + array ( + 'message' => 'Added oci_set_db_operation() for the DBOP end-to-end-tracing attribute.', + 'raw' => 'Added oci_set_db_operation() for the DBOP end-to-end-tracing attribute.', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77215 (CFG assertion failure on multiple finalizing switch frees in one block).', + 'raw' => 'Fixed bug #77215 (CFG assertion failure on multiple finalizing switch frees in one block). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77275 (OPcache optimization problem for ArrayAccess->offsetGet).', + 'raw' => 'Fixed bug #77275 (OPcache optimization problem for ArrayAccess->offsetGet). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77193 (Infinite loop in preg_replace_callback).', + 'raw' => 'Fixed bug #77193 (Infinite loop in preg_replace_callback). (Anatol)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Handle invalid index passed to PDOStatement::fetchColumn() as error.', + 'raw' => 'Handle invalid index passed to PDOStatement::fetchColumn() as error. (Sergei Morozov)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext).', + 'raw' => 'Fixed bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext). (Stas)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77088 (Segfault when using SoapClient with null options).', + 'raw' => 'Fixed bug #77088 (Segfault when using SoapClient with null options). (Laruence)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77136 (Unsupported IPV6_RECVPKTINFO constants on macOS).', + 'raw' => 'Fixed bug #77136 (Unsupported IPV6_RECVPKTINFO constants on macOS). (Mizunashi Mana)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77297 (SodiumException segfaults on PHP 7.3).', + 'raw' => 'Fixed bug #77297 (SodiumException segfaults on PHP 7.3). (Nikita, Scott)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77359 (spl_autoload causes segfault).', + 'raw' => 'Fixed bug #77359 (spl_autoload causes segfault). (Lauri Kenttä)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77360 (class_uses causes segfault).', + 'raw' => 'Fixed bug #77360 (class_uses causes segfault). (Lauri Kenttä)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77051 (Issue with re-binding on SQLite3).', + 'raw' => 'Fixed bug #77051 (Issue with re-binding on SQLite3). (BohwaZ)', + ), + ), + 'xmlrpc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()).', + 'raw' => 'Fixed bug #77242 (heap out of bounds read in xmlrpc_decode()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code).', + 'raw' => 'Fixed bug #77380 (Global out of bounds read in xmlrpc base64 code). (Stas)', + ), + ), + ), + ), + '7.3.0' => + array ( + 'date' => '06 Dec 2018', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Improved PHP GC.', + 'raw' => 'Improved PHP GC. (Dmitry, Nikita)', + ), + 1 => + array ( + 'message' => 'Redesigned the old ext_skel program written in PHP, run: \'php ext_skel.php\' for all options. This means there are no dependencies, thus making it work on Windows out of the box.', + 'raw' => 'Redesigned the old ext_skel program written in PHP, run: \'php ext_skel.php\' for all options. This means there are no dependencies, thus making it work on Windows out of the box. (Kalle)', + ), + 2 => + array ( + 'message' => 'Removed support for BeOS.', + 'raw' => 'Removed support for BeOS. (Kalle)', + ), + 3 => + array ( + 'message' => 'Add PHP_VERSION to phpinfo() .', + 'raw' => 'Add PHP_VERSION to phpinfo() <title/>. (github/MattJeevas)', + ), + 4 => + array ( + 'message' => 'Add net_get_interfaces().', + 'raw' => 'Add net_get_interfaces(). (Sara, Joe, Anatol)', + ), + 5 => + array ( + 'message' => 'Added gc_status().', + 'raw' => 'Added gc_status(). (Benjamin Eberlei)', + ), + 6 => + array ( + 'message' => 'Implemented flexible heredoc and nowdoc syntax, per RFC https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes.', + 'raw' => 'Implemented flexible heredoc and nowdoc syntax, per RFC https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes. (Thomas Punt)', + ), + 7 => + array ( + 'message' => 'Added support for references in list() and array destructuring, per RFC https://wiki.php.net/rfc/list_reference_assignment.', + 'raw' => 'Added support for references in list() and array destructuring, per RFC https://wiki.php.net/rfc/list_reference_assignment. (David Walker)', + ), + 8 => + array ( + 'message' => 'Improved effectiveness of ZEND_SECURE_ZERO for NetBSD and systems without native similar feature.', + 'raw' => 'Improved effectiveness of ZEND_SECURE_ZERO for NetBSD and systems without native similar feature. (devnexen)', + ), + 9 => + array ( + 'message' => 'Added syslog.facility and syslog.ident INI entries for customizing syslog logging.', + 'raw' => 'Added syslog.facility and syslog.ident INI entries for customizing syslog logging. (Philip Prindeville)', + ), + 10 => + array ( + 'message' => 'Fixed bug #75683 (Memory leak in zend_register_functions() in ZTS mode).', + 'raw' => 'Fixed bug #75683 (Memory leak in zend_register_functions() in ZTS mode). (Dmitry)', + ), + 11 => + array ( + 'message' => 'Fixed bug #75031 (support append mode in temp/memory streams).', + 'raw' => 'Fixed bug #75031 (support append mode in temp/memory streams). (adsr)', + ), + 12 => + array ( + 'message' => 'Fixed bug #74860 (Uncaught exceptions not being formatted properly when error_log set to "syslog").', + 'raw' => 'Fixed bug #74860 (Uncaught exceptions not being formatted properly when error_log set to "syslog"). (Philip Prindeville)', + ), + 13 => + array ( + 'message' => 'Fixed bug #75220 (Segfault when calling is_callable on parent).', + 'raw' => 'Fixed bug #75220 (Segfault when calling is_callable on parent). (andrewnester)', + ), + 14 => + array ( + 'message' => 'Fixed bug #69954 (broken links and unused config items in distributed ini files).', + 'raw' => 'Fixed bug #69954 (broken links and unused config items in distributed ini files). (petk)', + ), + 15 => + array ( + 'message' => 'Fixed bug #74922 (Composed class has fatal error with duplicate, equal const properties).', + 'raw' => 'Fixed bug #74922 (Composed class has fatal error with duplicate, equal const properties). (pmmaga)', + ), + 16 => + array ( + 'message' => 'Fixed bug #63911 (identical trait methods raise errors during composition).', + 'raw' => 'Fixed bug #63911 (identical trait methods raise errors during composition). (pmmaga)', + ), + 17 => + array ( + 'message' => 'Fixed bug #75677 (Clang ignores fastcall calling convention on variadic function).', + 'raw' => 'Fixed bug #75677 (Clang ignores fastcall calling convention on variadic function). (Li-Wen Hsu)', + ), + 18 => + array ( + 'message' => 'Fixed bug #54043 (Remove inconsitency of internal exceptions and user defined exceptions).', + 'raw' => 'Fixed bug #54043 (Remove inconsitency of internal exceptions and user defined exceptions). (Nikita)', + ), + 19 => + array ( + 'message' => 'Fixed bug #53033 (Mathematical operations convert objects to integers).', + 'raw' => 'Fixed bug #53033 (Mathematical operations convert objects to integers). (Nikita)', + ), + 20 => + array ( + 'message' => 'Fixed bug #73108 (Internal class cast handler uses integer instead of float).', + 'raw' => 'Fixed bug #73108 (Internal class cast handler uses integer instead of float). (Nikita)', + ), + 21 => + array ( + 'message' => 'Fixed bug #75765 (Fatal error instead of Error exception when base class is not found).', + 'raw' => 'Fixed bug #75765 (Fatal error instead of Error exception when base class is not found). (Timur Ibragimov)', + ), + 22 => + array ( + 'message' => 'Fixed bug #76198 (Wording: "iterable" is not a scalar type).', + 'raw' => 'Fixed bug #76198 (Wording: "iterable" is not a scalar type). (Levi Morrison)', + ), + 23 => + array ( + 'message' => 'Fixed bug #76137 (config.guess/config.sub do not recognize RISC-V).', + 'raw' => 'Fixed bug #76137 (config.guess/config.sub do not recognize RISC-V). (cmb)', + ), + 24 => + array ( + 'message' => 'Fixed bug #76427 (Segfault in zend_objects_store_put).', + 'raw' => 'Fixed bug #76427 (Segfault in zend_objects_store_put). (Laruence)', + ), + 25 => + array ( + 'message' => 'Fixed bug #76422 (ftruncate fails on files > 2GB).', + 'raw' => 'Fixed bug #76422 (ftruncate fails on files > 2GB). (Anatol)', + ), + 26 => + array ( + 'message' => 'Fixed bug #76509 (Inherited static properties can be desynchronized from their parent by ref).', + 'raw' => 'Fixed bug #76509 (Inherited static properties can be desynchronized from their parent by ref). (Nikita)', + ), + 27 => + array ( + 'message' => 'Fixed bug #76439 (Changed behaviour in unclosed HereDoc).', + 'raw' => 'Fixed bug #76439 (Changed behaviour in unclosed HereDoc). (Nikita, tpunt)', + ), + 28 => + array ( + 'message' => 'Fixed bug #63217 (Constant numeric strings become integers when used as ArrayAccess offset).', + 'raw' => 'Fixed bug #63217 (Constant numeric strings become integers when used as ArrayAccess offset). (Rudi Theunissen, Dmitry)', + ), + 29 => + array ( + 'message' => 'Fixed bug #33502 (Some nullary functions don\'t check the number of arguments).', + 'raw' => 'Fixed bug #33502 (Some nullary functions don\'t check the number of arguments). (cmb)', + ), + 30 => + array ( + 'message' => 'Fixed bug #76392 (Error relocating sapi/cli/php: unsupported relocation type 37).', + 'raw' => 'Fixed bug #76392 (Error relocating sapi/cli/php: unsupported relocation type 37). (Peter Kokot)', + ), + 31 => + array ( + 'message' => 'The declaration and use of case-insensitive constants has been deprecated.', + 'raw' => 'The declaration and use of case-insensitive constants has been deprecated. (Nikita)', + ), + 32 => + array ( + 'message' => 'Added syslog.filter INI entry for syslog filtering.', + 'raw' => 'Added syslog.filter INI entry for syslog filtering. (Philip Prindeville)', + ), + 33 => + array ( + 'message' => 'Fixed bug #76667 (Segfault with divide-assign op and __get + __set).', + 'raw' => 'Fixed bug #76667 (Segfault with divide-assign op and __get + __set). (Laruence)', + ), + 34 => + array ( + 'message' => 'Fixed bug #76030 (RE2C_FLAGS rarely honoured)', + 'raw' => 'Fixed bug #76030 (RE2C_FLAGS rarely honoured) (Cristian Rodríguez)', + ), + 35 => + array ( + 'message' => 'Fixed broken zend_read_static_property', + 'raw' => 'Fixed broken zend_read_static_property (Laruence)', + ), + 36 => + array ( + 'message' => 'Fixed bug #76773 (Traits used on the parent are ignored for child classes).', + 'raw' => 'Fixed bug #76773 (Traits used on the parent are ignored for child classes). (daverandom)', + ), + 37 => + array ( + 'message' => 'Fixed bug #76767 (‘asm’ operand has impossible constraints in zend_operators.h).', + 'raw' => 'Fixed bug #76767 (‘asm’ operand has impossible constraints in zend_operators.h). (ondrej)', + ), + 38 => + array ( + 'message' => 'Fixed bug #76752 (Crash in ZEND_COALESCE_SPEC_TMP_HANDLER - assertion in _get_zval_ptr_tmp failed).', + 'raw' => 'Fixed bug #76752 (Crash in ZEND_COALESCE_SPEC_TMP_HANDLER - assertion in _get_zval_ptr_tmp failed). (Laruence)', + ), + 39 => + array ( + 'message' => 'Fixed bug #76820 (Z_COPYABLE invalid definition).', + 'raw' => 'Fixed bug #76820 (Z_COPYABLE invalid definition). (mvdwerve, cmb)', + ), + 40 => + array ( + 'message' => 'Fixed bug #76510 (file_exists() stopped working for phar://).', + 'raw' => 'Fixed bug #76510 (file_exists() stopped working for phar://). (cmb)', + ), + 41 => + array ( + 'message' => 'Fixed bug #76869 (Incorrect bypassing protected method accessibilty check).', + 'raw' => 'Fixed bug #76869 (Incorrect bypassing protected method accessibilty check). (Dmitry)', + ), + 42 => + array ( + 'message' => 'Fixed bug #72635 (Undefined class used by class constant in constexpr generates fatal error).', + 'raw' => 'Fixed bug #72635 (Undefined class used by class constant in constexpr generates fatal error). (Nikita)', + ), + 43 => + array ( + 'message' => 'Fixed bug #76947 (file_put_contents() blocks the directory of the file (__DIR__)).', + 'raw' => 'Fixed bug #76947 (file_put_contents() blocks the directory of the file (__DIR__)). (Anatol)', + ), + 44 => + array ( + 'message' => 'Fixed bug #76979 (define() error message does not mention resources as valid values).', + 'raw' => 'Fixed bug #76979 (define() error message does not mention resources as valid values). (Michael Moravec)', + ), + 45 => + array ( + 'message' => 'Fixed bug #76825 (Undefined symbols ___cpuid_count).', + 'raw' => 'Fixed bug #76825 (Undefined symbols ___cpuid_count). (Laruence, cmb)', + ), + 46 => + array ( + 'message' => 'Fixed bug #77110 (undefined symbol zend_string_equal_val in C++ build).', + 'raw' => 'Fixed bug #77110 (undefined symbol zend_string_equal_val in C++ build). (Remi)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #67855 (No way to get current scale in use).', + 'raw' => 'Implemented FR #67855 (No way to get current scale in use). (Chris Wright, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66364 (BCMath bcmul ignores scale parameter).', + 'raw' => 'Fixed bug #66364 (BCMath bcmul ignores scale parameter). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75164 (split_bc_num() is pointless).', + 'raw' => 'Fixed bug #75164 (split_bc_num() is pointless). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75169 (BCMath errors/warnings bypass PHP\'s error handling).', + 'raw' => 'Fixed bug #75169 (BCMath errors/warnings bypass PHP\'s error handling). (cmb)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44217 (Output after stdout/stderr closed cause immediate exit with status 0).', + 'raw' => 'Fixed bug #44217 (Output after stdout/stderr closed cause immediate exit with status 0). (Robert Lu)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77111 (php-win.exe corrupts unicode symbols from cli parameters).', + 'raw' => 'Fixed bug #77111 (php-win.exe corrupts unicode symbols from cli parameters). (Anatol)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Expose curl constants from curl 7.50 to 7.61.', + 'raw' => 'Expose curl constants from curl 7.50 to 7.61. (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74125 (Fixed finding CURL on systems with multiarch support).', + 'raw' => 'Fixed bug #74125 (Fixed finding CURL on systems with multiarch support). (cebe)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #74668: Add DateTime::createFromImmutable() method.', + 'raw' => 'Implemented FR #74668: Add DateTime::createFromImmutable() method. (majkl578, Rican7)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75222 (DateInterval microseconds property always 0).', + 'raw' => 'Fixed bug #75222 (DateInterval microseconds property always 0). (jhdxr)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it).', + 'raw' => 'Fixed bug #68406 (calling var_dump on a DateTimeZone object modifies it). (jhdxr)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76131 (mismatch arginfo for date_create).', + 'raw' => 'Fixed bug #76131 (mismatch arginfo for date_create). (carusogabriel)', + ), + 4 => + array ( + 'message' => 'Updated timelib to 2018.01RC1 to address several bugs:', + 'raw' => 'Updated timelib to 2018.01RC1 to address several bugs:', + ), + 5 => + array ( + 'message' => 'Fixed bug #75577 (DateTime::createFromFormat does not accept \'v\' format specifier).', + 'raw' => 'Fixed bug #75577 (DateTime::createFromFormat does not accept \'v\' format specifier). (Derick)', + ), + 6 => + array ( + 'message' => 'Fixed bug #75642 (Wrap around behaviour for microseconds is not working).', + 'raw' => 'Fixed bug #75642 (Wrap around behaviour for microseconds is not working). (Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75264 (compiler warnings emitted).', + 'raw' => 'Fixed bug #75264 (compiler warnings emitted). (petk)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76285 (DOMDocument::formatOutput attribute sometimes ignored).', + 'raw' => 'Fixed bug #76285 (DOMDocument::formatOutput attribute sometimes ignored). (Andrew Nester, Laruence, Anatol)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77095 (slowness regression in 7.2/7.3 (compared to 7.1)).', + 'raw' => 'Fixed bug #77095 (slowness regression in 7.2/7.3 (compared to 7.1)). (Anatol)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Added the \'add_slashes\' sanitization mode (FILTER_SANITIZE_ADD_SLASHES).', + 'raw' => 'Added the \'add_slashes\' sanitization mode (FILTER_SANITIZE_ADD_SLASHES). (Kalle)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Added fpm_get_status function.', + 'raw' => 'Added fpm_get_status function. (Till Backhaus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62596 (getallheaders() missing with PHP-FPM).', + 'raw' => 'Fixed bug #62596 (getallheaders() missing with PHP-FPM). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69031 (Long messages into stdout/stderr are truncated incorrectly) - added new log related FPM configuration options: log_limit, log_buffering and decorate_workers_output.', + 'raw' => 'Fixed bug #69031 (Long messages into stdout/stderr are truncated incorrectly) - added new log related FPM configuration options: log_limit, log_buffering and decorate_workers_output. (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77151 (ftp_close(): SSL_read on shutdown).', + 'raw' => 'Fixed bug #77151 (ftp_close(): SSL_read on shutdown). (Remi)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Added support for WebP in imagecreatefromstring().', + 'raw' => 'Added support for WebP in imagecreatefromstring(). (Andreas Treichel, cmb)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Export internal structures and accessor helpers for GMP object.', + 'raw' => 'Export internal structures and accessor helpers for GMP object. (Sara)', + ), + 1 => + array ( + 'message' => 'Added gmp_binomial(n, k).', + 'raw' => 'Added gmp_binomial(n, k). (Nikita)', + ), + 2 => + array ( + 'message' => 'Added gmp_lcm(a, b).', + 'raw' => 'Added gmp_lcm(a, b). (Nikita)', + ), + 3 => + array ( + 'message' => 'Added gmp_perfect_power(a).', + 'raw' => 'Added gmp_perfect_power(a). (Nikita)', + ), + 4 => + array ( + 'message' => 'Added gmp_kronecker(a, b).', + 'raw' => 'Added gmp_kronecker(a, b). (Nikita)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53891 (iconv_mime_encode() fails to Q-encode UTF-8 string).', + 'raw' => 'Fixed bug #53891 (iconv_mime_encode() fails to Q-encode UTF-8 string). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR).', + 'raw' => 'Fixed bug #77147 (Fixing 60494 ignored ICONV_MIME_DECODE_CONTINUE_ON_ERROR). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77020 (null pointer dereference in imap_mail).', + 'raw' => 'Fixed bug #77020 (null pointer dereference in imap_mail). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter).', + 'raw' => 'Fixed bug #77153 (imap_open allows to run arbitrary shell commands via mailbox parameter). (Stas)', + ), + ), + 'interbase' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75453 (Incorrect reflection for ibase_[p]connect).', + 'raw' => 'Fixed bug #75453 (Incorrect reflection for ibase_[p]connect). (villfa)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76443 (php+php_interbase.dll crash on module_shutdown).', + 'raw' => 'Fixed bug #76443 (php+php_interbase.dll crash on module_shutdown). (Kalle)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination).', + 'raw' => 'Fixed bug #75317 (UConverter::setDestinationEncoding changes source instead of destination). (andrewnester)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76829 (Incorrect validation of domain on idn_to_utf8() function).', + 'raw' => 'Fixed bug #76829 (Incorrect validation of domain on idn_to_utf8() function). (Anatol)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Added JSON_THROW_ON_ERROR flag.', + 'raw' => 'Added JSON_THROW_ON_ERROR flag. (Andrea)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Added ldap_exop_refresh helper for EXOP REFRESH operation with dds overlay.', + 'raw' => 'Added ldap_exop_refresh helper for EXOP REFRESH operation with dds overlay. (Come)', + ), + 1 => + array ( + 'message' => 'Added full support for sending and parsing ldap controls.', + 'raw' => 'Added full support for sending and parsing ldap controls. (Come)', + ), + 2 => + array ( + 'message' => 'Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros).', + 'raw' => 'Fixed bug #49876 (Fix LDAP path lookup on 64-bit distros). (dzuelke)', + ), + ), + 'libxml2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75871 (use pkg-config where available).', + 'raw' => 'Fixed bug #75871 (use pkg-config where available). (pmmaga)', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75248 (Binary directory doesn\'t get created when building only litespeed SAPI).', + 'raw' => 'Fixed bug #75248 (Binary directory doesn\'t get created when building only litespeed SAPI). (petk)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75251 (Missing program prefix and suffix).', + 'raw' => 'Fixed bug #75251 (Missing program prefix and suffix). (petk)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Updated to Oniguruma 6.9.0.', + 'raw' => 'Updated to Oniguruma 6.9.0. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65544 (mb title case conversion-first word in quotation isn\'t capitalized).', + 'raw' => 'Fixed bug #65544 (mb title case conversion-first word in quotation isn\'t capitalized). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71298 (MB_CASE_TITLE misbehaves with curled apostrophe/quote).', + 'raw' => 'Fixed bug #71298 (MB_CASE_TITLE misbehaves with curled apostrophe/quote). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73528 (Crash in zif_mb_send_mail).', + 'raw' => 'Fixed bug #73528 (Crash in zif_mb_send_mail). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74929 (mbstring functions version 7.1.1 are slow compared to 5.3 on Windows).', + 'raw' => 'Fixed bug #74929 (mbstring functions version 7.1.1 are slow compared to 5.3 on Windows). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #76319 (mb_strtolower with invalid UTF-8 causes segmentation fault).', + 'raw' => 'Fixed bug #76319 (mb_strtolower with invalid UTF-8 causes segmentation fault). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #76574 (use of undeclared identifiers INT_MAX and LONG_MAX).', + 'raw' => 'Fixed bug #76574 (use of undeclared identifiers INT_MAX and LONG_MAX). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #76594 (Bus Error due to unaligned access in zend_ini.c OnUpdateLong).', + 'raw' => 'Fixed bug #76594 (Bus Error due to unaligned access in zend_ini.c OnUpdateLong). (cmb, Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #76706 (mbstring.http_output_conv_mimetypes is ignored).', + 'raw' => 'Fixed bug #76706 (mbstring.http_output_conv_mimetypes is ignored). (cmb)', + ), + 9 => + array ( + 'message' => 'Fixed bug #76958 (Broken UTF7-IMAP conversion).', + 'raw' => 'Fixed bug #76958 (Broken UTF7-IMAP conversion). (Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #77025 (mb_strpos throws Unknown encoding or conversion error).', + 'raw' => 'Fixed bug #77025 (mb_strpos throws Unknown encoding or conversion error). (Nikita)', + ), + 11 => + array ( + 'message' => 'Fixed bug #77165 (mb_check_encoding crashes when argument given an empty array).', + 'raw' => 'Fixed bug #77165 (mb_check_encoding crashes when argument given an empty array). (Nikita)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76386 (Prepared Statement formatter truncates fractional seconds from date/time column).', + 'raw' => 'Fixed bug #76386 (Prepared Statement formatter truncates fractional seconds from date/time column). (Victor Csiky)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Removed support for ODBCRouter.', + 'raw' => 'Removed support for ODBCRouter. (Kalle)', + ), + 1 => + array ( + 'message' => 'Removed support for Birdstep.', + 'raw' => 'Removed support for Birdstep. (Kalle)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77079 (odbc_fetch_object has incorrect type signature).', + 'raw' => 'Fixed bug #77079 (odbc_fetch_object has incorrect type signature). (Jon Allen)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76466 (Loop variable confusion).', + 'raw' => 'Fixed bug #76466 (Loop variable confusion). (Dmitry, Laruence, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76463 (var has array key type but not value type).', + 'raw' => 'Fixed bug #76463 (var has array key type but not value type). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)).', + 'raw' => 'Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)). (Nikita, Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76711 (OPcache enabled triggers false-positive "Illegal string offset").', + 'raw' => 'Fixed bug #76711 (OPcache enabled triggers false-positive "Illegal string offset"). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77058 (Type inference in opcache causes side effects).', + 'raw' => 'Fixed bug #77058 (Type inference in opcache causes side effects). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77092 (array_diff_key() - segmentation fault).', + 'raw' => 'Fixed bug #77092 (array_diff_key() - segmentation fault). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added openssl_pkey_derive function.', + 'raw' => 'Added openssl_pkey_derive function. (Jim Zubov)', + ), + 1 => + array ( + 'message' => 'Add min_proto_version and max_proto_version ssl stream options as well as related constants for possible TLS protocol values.', + 'raw' => 'Add min_proto_version and max_proto_version ssl stream options as well as related constants for possible TLS protocol values. (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Implemented https://wiki.php.net/rfc/pcre2-migration.', + 'raw' => 'Implemented https://wiki.php.net/rfc/pcre2-migration. (Anatol, Dmitry)', + ), + 1 => + array ( + 'message' => 'Upgrade PCRE2 to 10.32.', + 'raw' => 'Upgrade PCRE2 to 10.32. (Anatol)', + ), + 2 => + array ( + 'message' => 'Fixed bug #75355 (preg_quote() does not quote # control character).', + 'raw' => 'Fixed bug #75355 (preg_quote() does not quote # control character). (Michael Moravec)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76512 (\\w no longer includes unicode characters).', + 'raw' => 'Fixed bug #76512 (\\w no longer includes unicode characters). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #76514 (Regression in preg_match makes it fail with PREG_JIT_STACKLIMIT_ERROR).', + 'raw' => 'Fixed bug #76514 (Regression in preg_match makes it fail with PREG_JIT_STACKLIMIT_ERROR). (Anatol)', + ), + 5 => + array ( + 'message' => 'Fixed bug #76909 (preg_match difference between 7.3 and < 7.3).', + 'raw' => 'Fixed bug #76909 (preg_match difference between 7.3 and < 7.3). (Anatol)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #69592 (allow 0-column rowsets to be skipped automatically).', + 'raw' => 'Implemented FR #69592 (allow 0-column rowsets to be skipped automatically). (fandrieu)', + ), + 1 => + array ( + 'message' => 'Expose TDS version as \\PDO::DBLIB_ATTR_TDS_VERSION attribute on \\PDO instance.', + 'raw' => 'Expose TDS version as \\PDO::DBLIB_ATTR_TDS_VERSION attribute on \\PDO instance. (fandrieu)', + ), + 2 => + array ( + 'message' => 'Treat DATETIME2 columns like DATETIME.', + 'raw' => 'Treat DATETIME2 columns like DATETIME. (fandrieu)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74243 (allow locales.conf to drive datetime format).', + 'raw' => 'Fixed bug #74243 (allow locales.conf to drive datetime format). (fandrieu)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74462 (PDO_Firebird returns only NULLs for results with boolean for FIREBIRD >= 3.0).', + 'raw' => 'Fixed bug #74462 (PDO_Firebird returns only NULLs for results with boolean for FIREBIRD >= 3.0). (Dorin Marcoci)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up).', + 'raw' => 'Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up). (Ingmar Runge)', + ), + 1 => + array ( + 'message' => 'Add support for additional open flags', + 'raw' => 'Add support for additional open flags', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added new error constants for pg_result_error(): PGSQL_DIAG_SCHEMA_NAME, PGSQL_DIAG_TABLE_NAME, PGSQL_DIAG_COLUMN_NAME, PGSQL_DIAG_DATATYPE_NAME, PGSQL_DIAG_CONSTRAINT_NAME and PGSQL_DIAG_SEVERITY_NONLOCALIZED.', + 'raw' => 'Added new error constants for pg_result_error(): PGSQL_DIAG_SCHEMA_NAME, PGSQL_DIAG_TABLE_NAME, PGSQL_DIAG_COLUMN_NAME, PGSQL_DIAG_DATATYPE_NAME, PGSQL_DIAG_CONSTRAINT_NAME and PGSQL_DIAG_SEVERITY_NONLOCALIZED. (Kalle)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77047 (pg_convert has a broken regex for the \'TIME WITHOUT TIMEZONE\' data type).', + 'raw' => 'Fixed bug #77047 (pg_convert has a broken regex for the \'TIME WITHOUT TIMEZONE\' data type). (Andy Gajetzki)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74991 (include_path has a 4096 char limit in some cases).', + 'raw' => 'Fixed bug #74991 (include_path has a 4096 char limit in some cases). (bwbroersma)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65414 (deal with leading slash when adding files correctly).', + 'raw' => 'Fixed bug #65414 (deal with leading slash when adding files correctly). (bishopb)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Added completion_append_character and completion_suppress_append options to readline_info() if linked against libreadline.', + 'raw' => 'Added completion_append_character and completion_suppress_append options to readline_info() if linked against libreadline. (krageon)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74941 (session fails to start after having headers sent).', + 'raw' => 'Fixed bug #74941 (session fails to start after having headers sent). (morozov)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54973 (SimpleXML casts integers wrong).', + 'raw' => 'Fixed bug #54973 (SimpleXML casts integers wrong). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76712 (Assignment of empty string creates extraneous text node).', + 'raw' => 'Fixed bug #76712 (Assignment of empty string creates extraneous text node). (cmb)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67619 (Validate length on socket_write).', + 'raw' => 'Fixed bug #67619 (Validate length on socket_write). (thiagooak)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders).', + 'raw' => 'Fixed bug #75464 (Wrong reflection on SoapClient::__setSoapHeaders). (villfa)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used).', + 'raw' => 'Fixed bug #70469 (SoapClient generates E_ERROR even if exceptions=1 is used). (Anton Artamonov)', + ), + 2 => + array ( + 'message' => 'Fixed bug #50675 (SoapClient can\'t handle object references correctly).', + 'raw' => 'Fixed bug #50675 (SoapClient can\'t handle object references correctly). (Cameron Porter)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault).', + 'raw' => 'Fixed bug #76348 (WSDL_CACHE_MEMORY causes Segmentation fault). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77141 (Signedness issue in SOAP when precision=-1).', + 'raw' => 'Fixed bug #77141 (Signedness issue in SOAP when precision=-1). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74977 (Appending AppendIterator leads to segfault).', + 'raw' => 'Fixed bug #74977 (Appending AppendIterator leads to segfault). (Andrew Nester)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop).', + 'raw' => 'Fixed bug #75173 (incorrect behavior of AppendIterator::append in foreach loop). (jhdxr)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74372 (autoloading file with syntax error uses next autoloader, may hide parse error).', + 'raw' => 'Fixed bug #74372 (autoloading file with syntax error uses next autoloader, may hide parse error). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75878 (RecursiveTreeIterator::setPostfix has wrong signature).', + 'raw' => 'Fixed bug #75878 (RecursiveTreeIterator::setPostfix has wrong signature). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #74519 (strange behavior of AppendIterator).', + 'raw' => 'Fixed bug #74519 (strange behavior of AppendIterator). (jhdxr)', + ), + 5 => + array ( + 'message' => 'Fixed bug #76131 (mismatch arginfo for splarray constructor).', + 'raw' => 'Fixed bug #76131 (mismatch arginfo for splarray constructor). (carusogabriel)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Updated bundled libsqlite to 3.24.0.', + 'raw' => 'Updated bundled libsqlite to 3.24.0. (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Added is_countable() function.', + 'raw' => 'Added is_countable() function. (Gabriel Caruso)', + ), + 1 => + array ( + 'message' => 'Added support for the SameSite cookie directive, including an alternative signature for setcookie(), setrawcookie() and session_set_cookie_params().', + 'raw' => 'Added support for the SameSite cookie directive, including an alternative signature for setcookie(), setrawcookie() and session_set_cookie_params(). (Frederik Bosch, pmmaga)', + ), + 2 => + array ( + 'message' => 'Remove superfluous warnings from inet_ntop()/inet_pton().', + 'raw' => 'Remove superfluous warnings from inet_ntop()/inet_pton(). (daverandom)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75916 (DNS_CAA record results contain garbage).', + 'raw' => 'Fixed bug #75916 (DNS_CAA record results contain garbage). (Mike, Philip Sharp)', + ), + 4 => + array ( + 'message' => 'Fixed unserialize(), to disable creation of unsupported data structures through manually crafted strings.', + 'raw' => 'Fixed unserialize(), to disable creation of unsupported data structures through manually crafted strings. (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing).', + 'raw' => 'Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator that getrandom() is missing). (sarciszewski)', + ), + 6 => + array ( + 'message' => 'Fixed bug #74719 (fopen() should accept NULL as context).', + 'raw' => 'Fixed bug #74719 (fopen() should accept NULL as context). (Alexander Holman)', + ), + 7 => + array ( + 'message' => 'Fixed bug #69948 (path/domain are not sanitized in setcookie).', + 'raw' => 'Fixed bug #69948 (path/domain are not sanitized in setcookie). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #75996 (incorrect url in header for mt_rand).', + 'raw' => 'Fixed bug #75996 (incorrect url in header for mt_rand). (tatarbj)', + ), + 9 => + array ( + 'message' => 'Added hrtime() function, to get high resolution time.', + 'raw' => 'Added hrtime() function, to get high resolution time. (welting)', + ), + 10 => + array ( + 'message' => 'Fixed bug #48016 (stdClass::__setState is not defined although var_export() uses it).', + 'raw' => 'Fixed bug #48016 (stdClass::__setState is not defined although var_export() uses it). (Andrea)', + ), + 11 => + array ( + 'message' => 'Fixed bug #76136 (stream_socket_get_name should enclose IPv6 in brackets).', + 'raw' => 'Fixed bug #76136 (stream_socket_get_name should enclose IPv6 in brackets). (seliver)', + ), + 12 => + array ( + 'message' => 'Fixed bug #76688 (Disallow excessive parameters after options array).', + 'raw' => 'Fixed bug #76688 (Disallow excessive parameters after options array). (pmmaga)', + ), + 13 => + array ( + 'message' => 'Fixed bug #76713 (Segmentation fault caused by property corruption).', + 'raw' => 'Fixed bug #76713 (Segmentation fault caused by property corruption). (Laruence)', + ), + 14 => + array ( + 'message' => 'Fixed bug #76755 (setcookie does not accept "double" type for expire time).', + 'raw' => 'Fixed bug #76755 (setcookie does not accept "double" type for expire time). (Laruence)', + ), + 15 => + array ( + 'message' => 'Fixed bug #76674 (improve array_* failure messages exposing what was passed instead of an array).', + 'raw' => 'Fixed bug #76674 (improve array_* failure messages exposing what was passed instead of an array). (carusogabriel)', + ), + 16 => + array ( + 'message' => 'Fixed bug #76803 (ftruncate changes file pointer).', + 'raw' => 'Fixed bug #76803 (ftruncate changes file pointer). (Anatol)', + ), + 17 => + array ( + 'message' => 'Fixed bug #76818 (Memory corruption and segfault).', + 'raw' => 'Fixed bug #76818 (Memory corruption and segfault). (Remi)', + ), + 18 => + array ( + 'message' => 'Fixed bug #77081 (ftruncate() changes seek pointer in c mode).', + 'raw' => 'Fixed bug #77081 (ftruncate() changes seek pointer in c mode). (cmb, Anatol)', + ), + ), + 'testing' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #62055 (Make run-tests.php support --CGI-- sections).', + 'raw' => 'Implemented FR #62055 (Make run-tests.php support --CGI-- sections). (cmb)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Support using tidyp instead of tidy.', + 'raw' => 'Support using tidyp instead of tidy. (devnexen)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74707 (Tidy has incorrect ReflectionFunction param counts for functions taking tidy).', + 'raw' => 'Fixed bug #74707 (Tidy has incorrect ReflectionFunction param counts for functions taking tidy). (Gabriel Caruso)', + ), + 2 => + array ( + 'message' => 'Fixed arginfo for tidy::__construct().', + 'raw' => 'Fixed arginfo for tidy::__construct(). (Tyson Andre)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76437 (token_get_all with TOKEN_PARSE flag fails to recognise close tag).', + 'raw' => 'Fixed bug #76437 (token_get_all with TOKEN_PARSE flag fails to recognise close tag). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75218 (Change remaining uncatchable fatal errors for parsing into ParseError).', + 'raw' => 'Fixed bug #75218 (Change remaining uncatchable fatal errors for parsing into ParseError). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76538 (token_get_all with TOKEN_PARSE flag fails to recognise close tag with newline).', + 'raw' => 'Fixed bug #76538 (token_get_all with TOKEN_PARSE flag fails to recognise close tag with newline). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76991 (Incorrect tokenization of multiple invalid flexible heredoc strings).', + 'raw' => 'Fixed bug #76991 (Incorrect tokenization of multiple invalid flexible heredoc strings). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71592 (External entity processing never fails).', + 'raw' => 'Fixed bug #71592 (External entity processing never fails). (cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Added zlib/level context option for compress.zlib wrapper.', + 'raw' => 'Added zlib/level context option for compress.zlib wrapper. (Sara)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/7.4/changelist.inc b/include/releases/7.4/changelist.inc new file mode 100644 index 0000000000..92b07b4bf3 --- /dev/null +++ b/include/releases/7.4/changelist.inc @@ -0,0 +1,4504 @@ +<?php return array ( + '7.4.33' => + array ( + 'date' => '03 Nov 2022', + 'modules' => + array ( + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)', + 'raw' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) (cmb)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)', + 'raw' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454) (nicky at mouha dot be)', + ), + ), + ), + ), + '7.4.32' => + array ( + 'date' => '29 Sep 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628).', + 'raw' => 'Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81727: Don\'t mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629).', + 'raw' => 'Fixed bug #81727: Don\'t mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629). (Derick)', + ), + ), + ), + ), + '7.4.30' => + array ( + 'date' => '09 Jun 2022', + 'modules' => + array ( + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626)', + 'raw' => 'Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626) (c dot fol at ambionics dot io)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625)', + 'raw' => 'Fixed bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625) (cmb)', + ), + ), + ), + ), + '7.4.29' => + array ( + 'date' => '14 Apr 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'No source changes to this release. Version number added for reproduction of Windows builds.', + 'raw' => 'No source changes to this release. Version number added for reproduction of Windows builds.', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Updated to latest IANA timezone database (2022a).', + 'raw' => 'Updated to latest IANA timezone database (2022a). (Derick)', + ), + ), + ), + ), + '7.4.28' => + array ( + 'date' => '17 Feb 2022', + 'modules' => + array ( + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fix #81708: UAF due to php_filter_float() failing for ints (CVE-2021-21708)', + 'raw' => 'Fix #81708: UAF due to php_filter_float() failing for ints (CVE-2021-21708) (stas)', + ), + ), + ), + ), + '7.4.27' => + array ( + 'date' => '16 Dec 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81626 (Error on use static:: in __сallStatic() wrapped to Closure::fromCallable()).', + 'raw' => 'Fixed bug #81626 (Error on use static:: in __сallStatic() wrapped to Closure::fromCallable()). (Nikita)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81513 (Future possibility for heap overflow in FPM zlog).', + 'raw' => 'Fixed bug #81513 (Future possibility for heap overflow in FPM zlog). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71316 (libpng warning from imagecreatefromstring).', + 'raw' => 'Fixed bug #71316 (libpng warning from imagecreatefromstring). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75725 (./configure: detecting RAND_egd).', + 'raw' => 'Fixed bug #75725 (./configure: detecting RAND_egd). (Dilyan Palauzov)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74604 (Out of bounds in php_pcre_replace_impl).', + 'raw' => 'Fixed bug #74604 (Out of bounds in php_pcre_replace_impl). (cmb, Dmitry)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81618 (dns_get_record fails on FreeBSD for missing type).', + 'raw' => 'Fixed bug #81618 (dns_get_record fails on FreeBSD for missing type). (fsbruva)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate).', + 'raw' => 'Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate). (cmb)', + ), + ), + ), + ), + '7.4.26' => + array ( + 'date' => '18 Nov 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81518 (Header injection via default_mimetype / default_charset).', + 'raw' => 'Fixed bug #81518 (Header injection via default_mimetype / default_charset). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).', + 'raw' => 'Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81588 (TokyoCabinet driver leaks memory).', + 'raw' => 'Fixed bug #81588 (TokyoCabinet driver leaks memory). (girgias)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76167 (mbstring may use pointer from some previous request).', + 'raw' => 'Fixed bug #76167 (mbstring may use pointer from some previous request). (cmb, cataphract)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81494 (Stopped unbuffered query does not throw error).', + 'raw' => 'Fixed bug #81494 (Stopped unbuffered query does not throw error). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81424 (PCRE2 10.35 JIT performance regression).', + 'raw' => 'Fixed bug #81424 (PCRE2 10.35 JIT performance regression). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #54340 (Memory corruption with user_filter).', + 'raw' => 'Fixed bug #54340 (Memory corruption with user_filter). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79971 (special character is breaking the path in xml function). (CVE-2021-21707)', + 'raw' => 'Fixed bug #79971 (special character is breaking the path in xml function). (CVE-2021-21707) (cmb)', + ), + ), + ), + ), + '7.4.25' => + array ( + 'date' => '21 Oct 2021', + 'modules' => + array ( + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID).', + 'raw' => 'Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID). (Viktor Volkov)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined).', + 'raw' => 'Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined). (Dmitry)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78987 (High memory usage during encoding detection).', + 'raw' => 'Fixed bug #78987 (High memory usage during encoding detection). (Anatol)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).', + 'raw' => 'Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing). (cmb, Nikita)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703).', + 'raw' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703). (Jakub Zelenka)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free).', + 'raw' => 'Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free). (cmb, Nikita, Tyson Andre)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper).', + 'raw' => 'Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).', + 'raw' => 'Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace). (Aliaksandr Bystry, cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81490 (ZipArchive::extractTo() may leak memory).', + 'raw' => 'Fixed bug #81490 (ZipArchive::extractTo() may leak memory). (cmb, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77978 (Dirname ending in colon unzips to wrong dir).', + 'raw' => 'Fixed bug #77978 (Dirname ending in colon unzips to wrong dir). (cmb)', + ), + ), + ), + ), + '7.4.24' => + array ( + 'date' => '23 Sep 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81302 (Stream position after stream filter removed).', + 'raw' => 'Fixed bug #81302 (Stream position after stream filter removed). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81346 (Non-seekable streams don\'t update position after write).', + 'raw' => 'Fixed bug #81346 (Non-seekable streams don\'t update position after write). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73122 (Integer Overflow when concatenating strings).', + 'raw' => 'Fixed bug #73122 (Integer Overflow when concatenating strings). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53580 (During resize gdImageCopyResampled cause colors change).', + 'raw' => 'Fixed bug #53580 (During resize gdImageCopyResampled cause colors change). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81353 (segfault with preloading and statically bound closure).', + 'raw' => 'Fixed bug #81353 (segfault with preloading and statically bound closure). (Nikita)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81407 (shmop_open won\'t attach and causes php to crash).', + 'raw' => 'Fixed bug #81407 (shmop_open won\'t attach and causes php to crash). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71542 (disk_total_space does not work with relative paths).', + 'raw' => 'Fixed bug #71542 (disk_total_space does not work with relative paths). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81400 (Unterminated string in dns_get_record() results).', + 'raw' => 'Fixed bug #81400 (Unterminated string in dns_get_record() results). (cmb)', + ), + ), + 'sysvmsg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78819 (Heap Overflow in msg_send).', + 'raw' => 'Fixed bug #78819 (Heap Overflow in msg_send). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81351 (xml_parse may fail, but has no error code).', + 'raw' => 'Fixed bug #81351 (xml_parse may fail, but has no error code). (cmb, Nikita)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination). (CVE-2021-21706)', + 'raw' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination). (CVE-2021-21706) (cmb)', + ), + ), + ), + ), + '7.4.23' => + array ( + 'date' => '26 Aug 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72595 (php_output_handler_append illegal write access).', + 'raw' => 'Fixed bug #72595 (php_output_handler_append illegal write access). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66719 (Weird behaviour when using get_called_class() with call_user_func()).', + 'raw' => 'Fixed bug #66719 (Weird behaviour when using get_called_class() with call_user_func()). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header).', + 'raw' => 'Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header). (cmb)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78238 (BCMath returns "-0").', + 'raw' => 'Fixed bug #78238 (BCMath returns "-0"). (cmb)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80849 (HTTP Status header truncation).', + 'raw' => 'Fixed bug #80849 (HTTP Status header truncation). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51498 (imagefilledellipse does not work for large circles).', + 'raw' => 'Fixed bug #51498 (imagefilledellipse does not work for large circles). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()).', + 'raw' => 'Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()). (cmb, johannes)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81327 (Error build openssl extension on php 7.4.22).', + 'raw' => 'Fixed bug #81327 (Error build openssl extension on php 7.4.22). (cmb)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81252 (PDO_ODBC doesn\'t account for SQL_NO_TOTAL).', + 'raw' => 'Fixed bug #81252 (PDO_ODBC doesn\'t account for SQL_NO_TOTAL). (cmb)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81283 (shmop can\'t read beyond 2147483647 bytes).', + 'raw' => 'Fixed bug #81283 (shmop can\'t read beyond 2147483647 bytes). (cmb, Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72146 (Integer overflow on substr_replace).', + 'raw' => 'Fixed bug #72146 (Integer overflow on substr_replace). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81265 (getimagesize returns 0 for 256px ICO images).', + 'raw' => 'Fixed bug #81265 (getimagesize returns 0 for 256px ICO images). (George Dietrich)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74960 (Heap buffer overflow via str_repeat).', + 'raw' => 'Fixed bug #74960 (Heap buffer overflow via str_repeat). (cmb, Dmitry)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81294 (Segfault when removing a filter).', + 'raw' => 'Fixed bug #81294 (Segfault when removing a filter). (cmb)', + ), + ), + ), + ), + '7.4.22' => + array ( + 'date' => '29 Jul 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files).', + 'raw' => 'Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files). (cmb, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81163 (incorrect handling of indirect vars in __sleep).', + 'raw' => 'Fixed bug #81163 (incorrect handling of indirect vars in __sleep). (krakjoe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80728 (PHP built-in web server resets timeout when it can kill the process).', + 'raw' => 'Fixed bug #80728 (PHP built-in web server resets timeout when it can kill the process). (Calvin Buckley)', + ), + 3 => + array ( + 'message' => 'Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER[\'request_uri\']).', + 'raw' => 'Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER[\'request_uri\']). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80173 (Using return value of zend_assign_to_variable() is not safe).', + 'raw' => 'Fixed bug #80173 (Using return value of zend_assign_to_variable() is not safe). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73226 (--r[fcez] always return zero exit code).', + 'raw' => 'Fixed bug #73226 (--r[fcez] always return zero exit code). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option).', + 'raw' => 'Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone).', + 'raw' => 'Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74264 (grapheme_strrpos() broken for negative offsets).', + 'raw' => 'Fixed bug #74264 (grapheme_strrpos() broken for negative offsets). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52093 (openssl_csr_sign truncates $serial).', + 'raw' => 'Fixed bug #52093 (openssl_csr_sign truncates $serial). (cmb)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81101 (PCRE2 10.37 shows unexpected result).', + 'raw' => 'Fixed bug #81101 (PCRE2 10.37 shows unexpected result). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81243 (Too much memory is allocated for preg_replace()).', + 'raw' => 'Fixed bug #81243 (Too much memory is allocated for preg_replace()). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81223 (flock() only locks first byte of file).', + 'raw' => 'Fixed bug #81223 (flock() only locks first byte of file). (cmb)', + ), + ), + ), + ), + '7.4.21' => + array ( + 'date' => '01 Jul 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76359 (open_basedir bypass through adding "..").', + 'raw' => 'Fixed bug #76359 (open_basedir bypass through adding ".."). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81068 (Double free in realpath_cache_clean()).', + 'raw' => 'Fixed bug #81068 (Double free in realpath_cache_clean()). (Dimitry Andric)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81070 (Integer underflow in memory limit comparison).', + 'raw' => 'Fixed bug #81070 (Integer underflow in memory limit comparison). (Peter van Dommelen)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81090 (Typed property performance degradation with .= operator).', + 'raw' => 'Fixed bug #81090 (Typed property performance degradation with .= operator). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81122: SSRF bypass in FILTER_VALIDATE_URL. (CVE-2021-21705)', + 'raw' => 'Fixed bug #81122: SSRF bypass in FILTER_VALIDATE_URL. (CVE-2021-21705) (cmb)', + ), + ), + 'bzip2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81092 (fflush before stream_filter_remove corrupts stream).', + 'raw' => 'Fixed bug #81092 (fflush before stream_filter_remove corrupts stream). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76694 (native Windows cert verification uses CN as sever name).', + 'raw' => 'Fixed bug #76694 (native Windows cert verification uses CN as sever name). (cmb)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76448: Stack buffer overflow in firebird_info_cb. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76448: Stack buffer overflow in firebird_info_cb. (CVE-2021-21704) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76449: SIGSEGV in firebird_handle_doer. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76449: SIGSEGV in firebird_handle_doer. (CVE-2021-21704) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76450: SIGSEGV in firebird_stmt_execute. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76450: SIGSEGV in firebird_stmt_execute. (CVE-2021-21704) (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76452: Crash while parsing blob data in firebird_fetch_blob. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76452: Crash while parsing blob data in firebird_fetch_blob. (CVE-2021-21704) (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81048 (phpinfo(INFO_VARIABLES) "Array to string conversion").', + 'raw' => 'Fixed bug #81048 (phpinfo(INFO_VARIABLES) "Array to string conversion"). (cmb)', + ), + ), + ), + ), + '7.4.20' => + array ( + 'date' => '03 Jun 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80929 (Method name corruption related to repeated calls to call_user_func_array).', + 'raw' => 'Fixed bug #80929 (Method name corruption related to repeated calls to call_user_func_array). (twosee)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80960 (opendir() warning wrong info when failed on Windows).', + 'raw' => 'Fixed bug #80960 (opendir() warning wrong info when failed on Windows). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67792 (HTTP Authorization schemes are treated as case-sensitive).', + 'raw' => 'Fixed bug #67792 (HTTP Authorization schemes are treated as case-sensitive). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80972 (Memory exhaustion on invalid string offset).', + 'raw' => 'Fixed bug #80972 (Memory exhaustion on invalid string offset). (girgias)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65800 (Events port mechanism).', + 'raw' => 'Fixed bug #65800 (Events port mechanism). (psumbera)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80901 (Info leak in ftp extension).', + 'raw' => 'Fixed bug #80901 (Info leak in ftp extension). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79100 (Wrong FTP error messages).', + 'raw' => 'Fixed bug #79100 (Wrong FTP error messages). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81032 (GD install is affected by external libgd installation).', + 'raw' => 'Fixed bug #81032 (GD install is affected by external libgd installation). (Flavio Heleno, cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81011 (mb_convert_encoding removes references from arrays).', + 'raw' => 'Fixed bug #81011 (mb_convert_encoding removes references from arrays). (cmb)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80460 (ODBC doesn\'t account for SQL_NO_TOTAL indicator).', + 'raw' => 'Fixed bug #80460 (ODBC doesn\'t account for SQL_NO_TOTAL indicator). (cmb)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81037 (PDO discards error message text from prepared statement).', + 'raw' => 'Fixed bug #81037 (PDO discards error message text from prepared statement). (Kamil Tekiela)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44643 (bound parameters ignore explicit type definitions).', + 'raw' => 'Fixed bug #44643 (bound parameters ignore explicit type definitions). (cmb)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed php_pgsql_fd_cast() wrt. php_stream_can_cast().', + 'raw' => 'Fixed php_pgsql_fd_cast() wrt. php_stream_can_cast(). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80933 (SplFileObject::DROP_NEW_LINE is broken for NUL and CR).', + 'raw' => 'Fixed bug #80933 (SplFileObject::DROP_NEW_LINE is broken for NUL and CR). (cmb, Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80900 (switch statement behavior inside function).', + 'raw' => 'Fixed bug #80900 (switch statement behavior inside function). (twosee)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81015 (Opcache optimization assumes wrong part of ternary operator in if-condition).', + 'raw' => 'Fixed bug #81015 (Opcache optimization assumes wrong part of ternary operator in if-condition). (Nikita)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73246 (XMLReader: encoding length not checked).', + 'raw' => 'Fixed bug #73246 (XMLReader: encoding length not checked). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80863 (ZipArchive::extractTo() ignores references).', + 'raw' => 'Fixed bug #80863 (ZipArchive::extractTo() ignores references). (cmb)', + ), + ), + ), + ), + '7.4.19' => + array ( + 'date' => '06 May 2021', + 'modules' => + array ( + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Reverted bug fix for #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR).', + 'raw' => 'Reverted bug fix for #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR). (Matteo)', + ), + ), + ), + ), + '7.4.18' => + array ( + 'date' => '29 Apr 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80781 (Error handler that throws ErrorException infinite loop).', + 'raw' => 'Fixed bug #80781 (Error handler that throws ErrorException infinite loop). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75776 (Flushing streams with compression filter is broken).', + 'raw' => 'Fixed bug #75776 (Flushing streams with compression filter is broken). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80817 (dba_popen() may cause segfault during RSHUTDOWN).', + 'raw' => 'Fixed bug #80817 (dba_popen() may cause segfault during RSHUTDOWN). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66783 (UAF when appending DOMDocument to element).', + 'raw' => 'Fixed bug #66783 (UAF when appending DOMDocument to element). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80024 (Duplication of info about inherited socket after pool removing).', + 'raw' => 'Fixed bug #80024 (Duplication of info about inherited socket after pool removing). (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80880 (SSL_read on shutdown, ftp/proc_open).', + 'raw' => 'Fixed bug #80880 (SSL_read on shutdown, ftp/proc_open). (cmb, Jakub Zelenka)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80710 (imap_mail_compose() header injection).', + 'raw' => 'Fixed bug #80710 (imap_mail_compose() header injection). (cmb, Stas)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80763 (msgfmt_format() does not accept DateTime references).', + 'raw' => 'Fixed bug #80763 (msgfmt_format() does not accept DateTime references). (cmb)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51903 (simplexml_load_file() doesn\'t use HTTP headers).', + 'raw' => 'Fixed bug #51903 (simplexml_load_file() doesn\'t use HTTP headers). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73533 (Invalid memory access in php_libxml_xmlCheckUTF8).', + 'raw' => 'Fixed bug #73533 (Invalid memory access in php_libxml_xmlCheckUTF8). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80713 (SegFault when disabling ATTR_EMULATE_PREPARES and MySQL 8.0).', + 'raw' => 'Fixed bug #80713 (SegFault when disabling ATTR_EMULATE_PREPARES and MySQL 8.0). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80837 (Calling stmt_store_result after fetch doesn\'t throw an error).', + 'raw' => 'Fixed bug #80837 (Calling stmt_store_result after fetch doesn\'t throw an error). (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80805 (create simple class and get error in opcache.so).', + 'raw' => 'Fixed bug #80805 (create simple class and get error in opcache.so). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80950 (Variables become null in if statements).', + 'raw' => 'Fixed bug #80950 (Variables become null in if statements). (Nikita)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79812 (Potential integer overflow in pcntl_exec()).', + 'raw' => 'Fixed bug #79812 (Potential integer overflow in pcntl_exec()). (cmb)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80866 (preg_split ignores limit flag when pattern with \\K has 0-width fullstring match).', + 'raw' => 'Fixed bug #80866 (preg_split ignores limit flag when pattern with \\K has 0-width fullstring match). (Kamil Tekiela)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80783 (PDO ODBC truncates BLOB records at every 256th byte).', + 'raw' => 'Fixed bug #80783 (PDO ODBC truncates BLOB records at every 256th byte). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR).', + 'raw' => 'Fixed bug #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR). (Matteo)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80757 (Exit code is 0 when could not open file).', + 'raw' => 'Fixed bug #80757 (Exit code is 0 when could not open file). (Felipe)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80774 (session_name() problem with backslash).', + 'raw' => 'Fixed bug #80774 (session_name() problem with backslash). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80889 (Cannot set save handler when save_handler is invalid).', + 'raw' => 'Fixed bug #80889 (Cannot set save handler when save_handler is invalid). (cmb)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69668 (SOAP special XML characters in namespace URIs not encoded).', + 'raw' => 'Fixed bug #69668 (SOAP special XML characters in namespace URIs not encoded). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78719 (http wrapper silently ignores long Location headers).', + 'raw' => 'Fixed bug #78719 (http wrapper silently ignores long Location headers). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80771 (phpinfo(INFO_CREDITS) displays nothing in CLI).', + 'raw' => 'Fixed bug #80771 (phpinfo(INFO_CREDITS) displays nothing in CLI). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80838 (HTTP wrapper waits for HTTP 1 response after HTTP 101).', + 'raw' => 'Fixed bug #80838 (HTTP wrapper waits for HTTP 1 response after HTTP 101). (manuelm)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80915 (Taking a reference to $_SERVER hides its values from phpinfo()).', + 'raw' => 'Fixed bug #80915 (Taking a reference to $_SERVER hides its values from phpinfo()). (Rowan Tommins)', + ), + ), + ), + ), + '7.4.16' => + array ( + 'date' => '04 Mar 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed #80706 (mail(): Headers after Bcc headers may be ignored).', + 'raw' => 'Fixed #80706 (mail(): Headers after Bcc headers may be ignored). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78680 (mysqlnd\'s mysql_clear_password does not transmit null-terminated password).', + 'raw' => 'Fixed bug #78680 (mysqlnd\'s mysql_clear_password does not transmit null-terminated password). (Daniel Black)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74779 (x() and y() truncating floats to integers).', + 'raw' => 'Fixed bug #74779 (x() and y() truncating floats to integers). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80682 (opcache doesn\'t honour pcre.jit option).', + 'raw' => 'Fixed bug #80682 (opcache doesn\'t honour pcre.jit option). (Remi)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80747 (Providing RSA key size < 512 generates key that crash PHP).', + 'raw' => 'Fixed bug #80747 (Providing RSA key size < 512 generates key that crash PHP). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75850 (Unclear error message wrt. __halt_compiler() w/o semicolon)', + 'raw' => 'Fixed bug #75850 (Unclear error message wrt. __halt_compiler() w/o semicolon) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70091 (Phar does not mark UTF-8 filenames in ZIP archives).', + 'raw' => 'Fixed bug #70091 (Phar does not mark UTF-8 filenames in ZIP archives). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53467 (Phar cannot compress large archives).', + 'raw' => 'Fixed bug #53467 (Phar cannot compress large archives). (cmb, lserni)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug#80719 (Iterating after failed ArrayObject::setIteratorClass() causes Segmentation fault).', + 'raw' => 'Fixed bug#80719 (Iterating after failed ArrayObject::setIteratorClass() causes Segmentation fault). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80654 (file_get_contents() maxlen fails above (2**31)-1 bytes).', + 'raw' => 'Fixed bug #80654 (file_get_contents() maxlen fails above (2**31)-1 bytes). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80648 (Fix for bug 79296 should be based on runtime version).', + 'raw' => 'Fixed bug #80648 (Fix for bug 79296 should be based on runtime version). (cmb, Remi)', + ), + ), + ), + ), + '7.4.15' => + array ( + 'date' => '04 Feb 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80523 (bogus parse error on >4GB source code).', + 'raw' => 'Fixed bug #80523 (bogus parse error on >4GB source code). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80384 (filter buffers entire read until file closed).', + 'raw' => 'Fixed bug #80384 (filter buffers entire read until file closed). (Adam Seitz, cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80595 (Resetting POSTFIELDS to empty array breaks request).', + 'raw' => 'Fixed bug #80595 (Resetting POSTFIELDS to empty array breaks request). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80376 (last day of the month causes runway cpu usage.', + 'raw' => 'Fixed bug #80376 (last day of the month causes runway cpu usage. (Derick)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to interpret bit columns).', + 'raw' => 'Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to interpret bit columns). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64638 (Fetching resultsets from stored procedure with cursor fails).', + 'raw' => 'Fixed bug #64638 (Fetching resultsets from stored procedure with cursor fails). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72862 (segfault using prepared statements on stored procedures that use a cursor).', + 'raw' => 'Fixed bug #72862 (segfault using prepared statements on stored procedures that use a cursor). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77935 (Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor).', + 'raw' => 'Fixed bug #77935 (Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77565 (Incorrect locator detection in ZIP-based phars).', + 'raw' => 'Fixed bug #77565 (Incorrect locator detection in ZIP-based phars). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69279 (Compressed ZIP Phar extractTo() creates garbage files).', + 'raw' => 'Fixed bug #69279 (Compressed ZIP Phar extractTo() creates garbage files). (cmb)', + ), + ), + ), + ), + '7.4.14' => + array ( + 'date' => '07 Jan 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74558 (Can\'t rebind closure returned by Closure::fromCallable()).', + 'raw' => 'Fixed bug #74558 (Can\'t rebind closure returned by Closure::fromCallable()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80345 (PHPIZE configuration has outdated PHP_RELEASE_VERSION).', + 'raw' => 'Fixed bug #80345 (PHPIZE configuration has outdated PHP_RELEASE_VERSION). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72964 (White space not unfolded for CC/Bcc headers).', + 'raw' => 'Fixed bug #72964 (White space not unfolded for CC/Bcc headers). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80362 (Running dtrace scripts can cause php to crash).', + 'raw' => 'Fixed bug #80362 (Running dtrace scripts can cause php to crash). (al at coralnet dot name)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80393 (Build of PHP extension fails due to configuration gap with libtool).', + 'raw' => 'Fixed bug #80393 (Build of PHP extension fails due to configuration gap with libtool). (kir dot morozov at gmail dot com)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80402 (configure filtering out -lpthread).', + 'raw' => 'Fixed bug #80402 (configure filtering out -lpthread). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #77069 (stream filter loses final block of data).', + 'raw' => 'Fixed bug #77069 (stream filter loses final block of data). (cmb)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77961 (finfo_open crafted magic parsing SIGABRT).', + 'raw' => 'Fixed bug #77961 (finfo_open crafted magic parsing SIGABRT). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69625 (FPM returns 200 status on request without SCRIPT_FILENAME env).', + 'raw' => 'Fixed bug #69625 (FPM returns 200 status on request without SCRIPT_FILENAME env). (Jakub Zelenka)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80425 (MessageFormatAdapter::getArgTypeList redefined).', + 'raw' => 'Fixed bug #80425 (MessageFormatAdapter::getArgTypeList redefined). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80368 (OpenSSL extension fails to build against LibreSSL due to lack of OCB support).', + 'raw' => 'Fixed bug #80368 (OpenSSL extension fails to build against LibreSSL due to lack of OCB support). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73809 (Phar Zip parse crash - mmap fail).', + 'raw' => 'Fixed bug #73809 (Phar Zip parse crash - mmap fail). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75102 (`PharData` says invalid checksum for valid tar).', + 'raw' => 'Fixed bug #75102 (`PharData` says invalid checksum for valid tar). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77322 (PharData::addEmptyDir(\'/\') Possible integer overflow).', + 'raw' => 'Fixed bug #77322 (PharData::addEmptyDir(\'/\') Possible integer overflow). (cmb)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80458 (PDOStatement::fetchAll() throws for upsert queries).', + 'raw' => 'Fixed bug #80458 (PDOStatement::fetchAll() throws for upsert queries). (Kamil Tekiela)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63185 (nextRowset() ignores MySQL errors with native prepared statements).', + 'raw' => 'Fixed bug #63185 (nextRowset() ignores MySQL errors with native prepared statements). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78152 (PDO::exec() - Bad error handling with multiple commands).', + 'raw' => 'Fixed bug #78152 (PDO::exec() - Bad error handling with multiple commands). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #70066 (Unexpected "Cannot execute queries while other unbuffered queries").', + 'raw' => 'Fixed bug #70066 (Unexpected "Cannot execute queries while other unbuffered queries"). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #71145 (Multiple statements in init command triggers unbuffered query error).', + 'raw' => 'Fixed bug #71145 (Multiple statements in init command triggers unbuffered query error). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #76815 (PDOStatement cannot be GCed/closeCursor-ed when a PROCEDURE resultset SIGNAL).', + 'raw' => 'Fixed bug #76815 (PDOStatement cannot be GCed/closeCursor-ed when a PROCEDURE resultset SIGNAL). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77423 (FILTER_VALIDATE_URL accepts URLs with invalid userinfo). (CVE-2020-7071)', + 'raw' => 'Fixed bug #77423 (FILTER_VALIDATE_URL accepts URLs with invalid userinfo). (CVE-2020-7071) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80366 (Return Value of zend_fstat() not Checked).', + 'raw' => 'Fixed bug #80366 (Return Value of zend_fstat() not Checked). (sagpant, cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80411 (References to null-serialized object break serialize()).', + 'raw' => 'Fixed bug #80411 (References to null-serialized object break serialize()). (Nikita)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77594 (ob_tidyhandler is never reset).', + 'raw' => 'Fixed bug #77594 (ob_tidyhandler is never reset). (cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed #48725 (Support for flushing in zlib stream).', + 'raw' => 'Fixed #48725 (Support for flushing in zlib stream). (cmb)', + ), + ), + ), + ), + '7.4.13' => + array ( + 'date' => '26 Nov 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date).', + 'raw' => 'Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors).', + 'raw' => 'Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors). (cmb)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62474 (com_event_sink crashes on certain arguments).', + 'raw' => 'Fixed bug #62474 (com_event_sink crashes on certain arguments). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80268 (loadHTML() truncates at NUL bytes).', + 'raw' => 'Fixed bug #80268 (loadHTML() truncates at NUL bytes). (cmb)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79177 (FFI doesn\'t handle well PHP exceptions within callback).', + 'raw' => 'Fixed bug #79177 (FFI doesn\'t handle well PHP exceptions within callback). (cmb, Dmitry, Nikita)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64076 (imap_sort() does not return FALSE on failure).', + 'raw' => 'Fixed bug #64076 (imap_sort() does not return FALSE on failure). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76618 (segfault on imap_reopen).', + 'raw' => 'Fixed bug #76618 (segfault on imap_reopen). (girgias)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80239 (imap_rfc822_write_address() leaks memory).', + 'raw' => 'Fixed bug #80239 (imap_rfc822_write_address() leaks memory). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed minor regression caused by fixing bug #80220.', + 'raw' => 'Fixed minor regression caused by fixing bug #80220. (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822).', + 'raw' => 'Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79375 (mysqli_store_result does not report error from lock wait timeout).', + 'raw' => 'Fixed bug #79375 (mysqli_store_result does not report error from lock wait timeout). (Kamil Tekiela, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76525 (mysqli::commit does not throw if MYSQLI_REPORT_ERROR enabled and mysqlnd used).', + 'raw' => 'Fixed bug #76525 (mysqli::commit does not throw if MYSQLI_REPORT_ERROR enabled and mysqlnd used). (Kamil Tekiela)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72413 (mysqlnd segfault (fetch_row second parameter typemismatch)).', + 'raw' => 'Fixed bug #72413 (mysqlnd segfault (fetch_row second parameter typemismatch)). (Kamil Tekiela)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44618 (Fetching may rely on uninitialized data).', + 'raw' => 'Fixed bug #44618 (Fetching may rely on uninitialized data). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79643 (PHP with Opcache crashes when a file with specific name is included).', + 'raw' => 'Fixed bug #79643 (PHP with Opcache crashes when a file with specific name is included). (twosee)', + ), + 1 => + array ( + 'message' => 'Fixed run-time binding of preloaded dynamically declared function.', + 'raw' => 'Fixed run-time binding of preloaded dynamically declared function. (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79983 (openssl_encrypt / openssl_decrypt fail with OCB mode).', + 'raw' => 'Fixed bug #79983 (openssl_encrypt / openssl_decrypt fail with OCB mode). (Nikita)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66528 (No PDOException or errorCode if database becomes unavailable before PDO::commit).', + 'raw' => 'Fixed bug #66528 (No PDOException or errorCode if database becomes unavailable before PDO::commit). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65825 (PDOStatement::fetch() does not throw exception on broken server connection).', + 'raw' => 'Fixed bug #65825 (PDOStatement::fetch() does not throw exception on broken server connection). (Nikita)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70461 (disable md5 code when it is not supported in net-snmp).', + 'raw' => 'Fixed bug #70461 (disable md5 code when it is not supported in net-snmp). (Alexander Bergmann, cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80266 (parse_url silently drops port number 0).', + 'raw' => 'Fixed bug #80266 (parse_url silently drops port number 0). (cmb, Nikita)', + ), + ), + ), + ), + '7.4.12' => + array ( + 'date' => '29 Oct 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80061 (Copying large files may have suboptimal performance).', + 'raw' => 'Fixed bug #80061 (Copying large files may have suboptimal performance). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79423 (copy command is limited to size of file it can copy).', + 'raw' => 'Fixed bug #79423 (copy command is limited to size of file it can copy). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80126 (Covariant return types failing compilation).', + 'raw' => 'Fixed bug #80126 (Covariant return types failing compilation). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80186 (Segfault when iterating over FFI object).', + 'raw' => 'Fixed bug #80186 (Segfault when iterating over FFI object). (Nikita)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80185 (jdtounix() fails after 2037).', + 'raw' => 'Fixed bug #80185 (jdtounix() fails after 2037). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies).', + 'raw' => 'Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80215 (imap_mail_compose() may modify by-val parameters).', + 'raw' => 'Fixed bug #80215 (imap_mail_compose() may modify by-val parameters). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80220 (imap_mail_compose() may leak memory).', + 'raw' => 'Fixed bug #80220 (imap_mail_compose() may leak memory). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies).', + 'raw' => 'Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80216 (imap_mail_compose() does not validate types/encodings).', + 'raw' => 'Fixed bug #80216 (imap_mail_compose() does not validate types/encodings). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80226 (imap_sort() leaks sortpgm memory).', + 'raw' => 'Fixed bug #80226 (imap_sort() leaks sortpgm memory). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80115 (mysqlnd.debug doesn\'t recognize absolute paths with slashes).', + 'raw' => 'Fixed bug #80115 (mysqlnd.debug doesn\'t recognize absolute paths with slashes). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80107 (mysqli_query() fails for ~16 MB long query when compression is enabled).', + 'raw' => 'Fixed bug #80107 (mysqli_query() fails for ~16 MB long query when compression is enabled). (Nikita)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78470 (odbc_specialcolumns() no longer accepts $nullable).', + 'raw' => 'Fixed bug #78470 (odbc_specialcolumns() no longer accepts $nullable). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80147 (BINARY strings may not be properly zero-terminated).', + 'raw' => 'Fixed bug #80147 (BINARY strings may not be properly zero-terminated). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80150 (Failure to fetch error message).', + 'raw' => 'Fixed bug #80150 (Failure to fetch error message). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80152 (odbc_execute() moves internal pointer of $params).', + 'raw' => 'Fixed bug #80152 (odbc_execute() moves internal pointer of $params). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #46050 (odbc_next_result corrupts prepared resource).', + 'raw' => 'Fixed bug #46050 (odbc_next_result corrupts prepared resource). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80083 (Optimizer pass 6 removes variables used for ibm_db2 data binding).', + 'raw' => 'Fixed bug #80083 (Optimizer pass 6 removes variables used for ibm_db2 data binding). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80194 (Assertion failure during block assembly of unreachable free with leading nop).', + 'raw' => 'Fixed bug #80194 (Assertion failure during block assembly of unreachable free with leading nop). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Updated to PCRE 10.35.', + 'raw' => 'Updated to PCRE 10.35. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80118 (Erroneous whitespace match with JIT only).', + 'raw' => 'Fixed bug #80118 (Erroneous whitespace match with JIT only). (cmb)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67465 (NULL Pointer dereference in odbc_handle_preparer).', + 'raw' => 'Fixed bug #67465 (NULL Pointer dereference in odbc_handle_preparer). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80114 (parse_url does not accept URLs with port 0).', + 'raw' => 'Fixed bug #80114 (parse_url does not accept URLs with port 0). (cmb, twosee)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76943 (Inconsistent stream_wrapper_restore() errors).', + 'raw' => 'Fixed bug #76943 (Inconsistent stream_wrapper_restore() errors). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76735 (Incorrect message in fopen on invalid mode).', + 'raw' => 'Fixed bug #76735 (Incorrect message in fopen on invalid mode). (cmb)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77040 (tidyNode::isHtml() is completely broken).', + 'raw' => 'Fixed bug #77040 (tidyNode::isHtml() is completely broken). (cmb)', + ), + ), + ), + ), + '7.4.11' => + array ( + 'date' => '01 Oct 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79979 (passing value to by-ref param via CUFA crashes).', + 'raw' => 'Fixed bug #79979 (passing value to by-ref param via CUFA crashes). (cmb, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80037 (Typed property must not be accessed before initialization when __get() declared).', + 'raw' => 'Fixed bug #80037 (Typed property must not be accessed before initialization when __get() declared). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80048 (Bug #69100 has not been fixed for Windows).', + 'raw' => 'Fixed bug #80048 (Bug #69100 has not been fixed for Windows). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80049 (Memleak when coercing integers to string via variadic argument).', + 'raw' => 'Fixed bug #80049 (Memleak when coercing integers to string via variadic argument). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79699 (PHP parses encoded cookie names so malicious `__Host-` cookies can be sent). (CVE-2020-7070)', + 'raw' => 'Fixed bug #79699 (PHP parses encoded cookie names so malicious `__Host-` cookies can be sent). (CVE-2020-7070) (Stas)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing).', + 'raw' => 'Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing). (Andy Postnikov)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64130 (COM obj parameters passed by reference are not updated).', + 'raw' => 'Fixed bug #64130 (COM obj parameters passed by reference are not updated). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80002 (calc free space for new interned string is wrong).', + 'raw' => 'Fixed bug #80002 (calc free space for new interned string is wrong). (t-matsuno)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80046 (FREE for SWITCH_STRING optimized away).', + 'raw' => 'Fixed bug #80046 (FREE for SWITCH_STRING optimized away). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79825 (opcache.file_cache causes SIGSEGV when custom opcode handlers changed).', + 'raw' => 'Fixed bug #79825 (opcache.file_cache causes SIGSEGV when custom opcode handlers changed). (SammyK)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79601 (Wrong ciphertext/tag in AES-CCM encryption for a 12 bytes IV). (CVE-2020-7069)', + 'raw' => 'Fixed bug #79601 (Wrong ciphertext/tag in AES-CCM encryption for a 12 bytes IV). (CVE-2020-7069) (Jakub Zelenka)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80027 (Terrible performance using $query->fetch on queries with many bind parameters).', + 'raw' => 'Fixed bug #80027 (Terrible performance using $query->fetch on queries with many bind parameters). (Matteo)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked").', + 'raw' => 'Fixed bug #47021 (SoapClient stumbles over WSDL delivered with "Transfer-Encoding: chunked"). (Matteo)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79986 (str_ireplace bug with diacritics characters).', + 'raw' => 'Fixed bug #79986 (str_ireplace bug with diacritics characters). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80077 (getmxrr test bug).', + 'raw' => 'Fixed bug #80077 (getmxrr test bug). (Rainer Jung)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72941 (Modifying bucket->data by-ref has no effect any longer).', + 'raw' => 'Fixed bug #72941 (Modifying bucket->data by-ref has no effect any longer). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80067 (Omitting the port in bindto setting errors).', + 'raw' => 'Fixed bug #80067 (Omitting the port in bindto setting errors). (cmb)', + ), + ), + ), + ), + '7.4.10' => + array ( + 'date' => '03 Sep 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79884 (PHP_CONFIG_FILE_PATH is meaningless).', + 'raw' => 'Fixed bug #79884 (PHP_CONFIG_FILE_PATH is meaningless). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77932 (File extensions are case-sensitive).', + 'raw' => 'Fixed bug #77932 (File extensions are case-sensitive). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79806 (realpath() erroneously resolves link to link).', + 'raw' => 'Fixed bug #79806 (realpath() erroneously resolves link to link). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79895 (PHP_CHECK_GCC_ARG does not allow flags with equal sign).', + 'raw' => 'Fixed bug #79895 (PHP_CHECK_GCC_ARG does not allow flags with equal sign). (Santiago M. Mola)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79919 (Stack use-after-scope in define()).', + 'raw' => 'Fixed bug #79919 (Stack use-after-scope in define()). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79934 (CRLF-only line in heredoc causes parsing error).', + 'raw' => 'Fixed bug #79934 (CRLF-only line in heredoc causes parsing error). (Pieter van den Ham)', + ), + 6 => + array ( + 'message' => 'Fixed bug #79947 (Memory leak on invalid offset type in compound assignment).', + 'raw' => 'Fixed bug #79947 (Memory leak on invalid offset type in compound assignment). (Nikita)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #48585 (com_load_typelib holds reference, fails on second call).', + 'raw' => 'Fixed bug #48585 (com_load_typelib holds reference, fails on second call). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75785 (Many errors from exif_read_data).', + 'raw' => 'Fixed bug #75785 (Many errors from exif_read_data). (Níckolas Daniel da Silva)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70574 (Tests fail due to relying on Linux fallback behavior for gettext()).', + 'raw' => 'Fixed bug #70574 (Tests fail due to relying on Linux fallback behavior for gettext()). (Florian Engelhardt)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks.', + 'raw' => 'Fixed memory leaks. (ptomulik)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73060 (php failed with error after temp folder cleaned up).', + 'raw' => 'Fixed bug #73060 (php failed with error after temp folder cleaned up). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79917 (File cache segfault with a static variable in inherited method).', + 'raw' => 'Fixed bug #79917 (File cache segfault with a static variable in inherited method). (Nikita)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64705 (errorInfo property of PDOException is null when PDO::__construct() fails).', + 'raw' => 'Fixed bug #64705 (errorInfo property of PDOException is null when PDO::__construct() fails). (Ahmed Abdou)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79724 (Return type does not match in ext/session/mod_mm.c).', + 'raw' => 'Fixed bug #79724 (Return type does not match in ext/session/mod_mm.c). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79930 (array_merge_recursive() crashes when called with array with single reference).', + 'raw' => 'Fixed bug #79930 (array_merge_recursive() crashes when called with array with single reference). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79944 (getmxrr always returns true on Alpine linux).', + 'raw' => 'Fixed bug #79944 (getmxrr always returns true on Alpine linux). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79951 (Memory leak in str_replace of empty string).', + 'raw' => 'Fixed bug #79951 (Memory leak in str_replace of empty string). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79922 (Crash after multiple calls to xml_parser_free()).', + 'raw' => 'Fixed bug #79922 (Crash after multiple calls to xml_parser_free()). (cmb)', + ), + ), + ), + ), + '7.4.9' => + array ( + 'date' => '06 Aug 2020', + 'modules' => + array ( + 'apache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79030 (Upgrade apache2handler\'s php_apache_sapi_get_request_time to return usec).', + 'raw' => 'Fixed bug #79030 (Upgrade apache2handler\'s php_apache_sapi_get_request_time to return usec). (Herbert256)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63208 (BSTR to PHP string conversion not binary safe).', + 'raw' => 'Fixed bug #63208 (BSTR to PHP string conversion not binary safe). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63527 (DCOM does not work with Username, Password parameter).', + 'raw' => 'Fixed bug #63527 (DCOM does not work with Username, Password parameter). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79877 (getimagesize function silently truncates after a null byte)', + 'raw' => 'Fixed bug #79877 (getimagesize function silently truncates after a null byte) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79740 (serialize() and unserialize() methods can not be called statically).', + 'raw' => 'Fixed bug #79740 (serialize() and unserialize() methods can not be called statically). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79783 (Segfault in php_str_replace_common).', + 'raw' => 'Fixed bug #79783 (Segfault in php_str_replace_common). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79778 (Assertion failure if dumping closure with unresolved static variable).', + 'raw' => 'Fixed bug #79778 (Assertion failure if dumping closure with unresolved static variable). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79779 (Assertion failure when assigning property of string offset by reference).', + 'raw' => 'Fixed bug #79779 (Assertion failure when assigning property of string offset by reference). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79792 (HT iterators not removed if empty array is destroyed).', + 'raw' => 'Fixed bug #79792 (HT iterators not removed if empty array is destroyed). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #78598 (Changing array during undef index RW error segfaults).', + 'raw' => 'Fixed bug #78598 (Changing array during undef index RW error segfaults). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #79784 (Use after free if changing array during undef var during array write fetch).', + 'raw' => 'Fixed bug #79784 (Use after free if changing array during undef var during array write fetch). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #79793 (Use after free if string used in undefined index warning is changed).', + 'raw' => 'Fixed bug #79793 (Use after free if string used in undefined index warning is changed). (Nikita)', + ), + 9 => + array ( + 'message' => 'Fixed bug #79862 (Public non-static property in child should take priority over private static).', + 'raw' => 'Fixed bug #79862 (Public non-static property in child should take priority over private static). (Nikita)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79756 (finfo_file crash (FILEINFO_MIME)).', + 'raw' => 'Fixed bug #79756 (finfo_file crash (FILEINFO_MIME)). (cmb)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55857 (ftp_size on large files).', + 'raw' => 'Fixed bug #55857 (ftp_size on large files). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79787 (mb_strimwidth does not trim string).', + 'raw' => 'Fixed bug #79787 (mb_strimwidth does not trim string). (XXiang)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79881 (Memory leak in openssl_pkey_get_public()).', + 'raw' => 'Fixed bug #79881 (Memory leak in openssl_pkey_get_public()). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79797 (Use of freed hash key in the phar_parse_zipfile function). (CVE-2020-7068)', + 'raw' => 'Fixed bug #79797 (Use of freed hash key in the phar_parse_zipfile function). (CVE-2020-7068) (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79487 (::getStaticProperties() ignores property modifications).', + 'raw' => 'Fixed bug #79487 (::getStaticProperties() ignores property modifications). (cmb, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69804 (::getStaticPropertyValue() throws on protected props).', + 'raw' => 'Fixed bug #69804 (::getStaticPropertyValue() throws on protected props). (cmb, Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79820 (Use after free when type duplicated into ReflectionProperty gets resolved).', + 'raw' => 'Fixed bug #79820 (Use after free when type duplicated into ReflectionProperty gets resolved). (Christopher Broadbent)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70362 (Can\'t copy() large \'data://\' with open_basedir).', + 'raw' => 'Fixed bug #70362 (Can\'t copy() large \'data://\' with open_basedir). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78008 (dns_check_record() always return true on Alpine).', + 'raw' => 'Fixed bug #78008 (dns_check_record() always return true on Alpine). (Andy Postnikov)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79839 (array_walk() does not respect property types).', + 'raw' => 'Fixed bug #79839 (array_walk() does not respect property types). (Nikita)', + ), + ), + ), + ), + '7.4.8' => + array ( + 'date' => '09 Jul 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79595 (zend_init_fpu() alters FPU precision).', + 'raw' => 'Fixed bug #79595 (zend_init_fpu() alters FPU precision). (cmb, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79650 (php-win.exe 100% cpu lockup).', + 'raw' => 'Fixed bug #79650 (php-win.exe 100% cpu lockup). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79668 (get_defined_functions(true) may miss functions).', + 'raw' => 'Fixed bug #79668 (get_defined_functions(true) may miss functions). (cmb, Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79683 (Fake reflection scope affects __toString()).', + 'raw' => 'Fixed bug #79683 (Fake reflection scope affects __toString()). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed possibly unsupported timercmp() usage.', + 'raw' => 'Fixed possibly unsupported timercmp() usage. (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79687 (Sony picture - PHP Warning - Make, Model, MakerNotes).', + 'raw' => 'Fixed bug #79687 (Sony picture - PHP Warning - Make, Model, MakerNotes). (cmb)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79681 (mime_content_type/finfo returning incorrect mimetype).', + 'raw' => 'Fixed bug #79681 (mime_content_type/finfo returning incorrect mimetype). (cmb)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73527 (Invalid memory access in php_filter_strip).', + 'raw' => 'Fixed bug #73527 (Invalid memory access in php_filter_strip). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79676 (imagescale adds black border with IMG_BICUBIC).', + 'raw' => 'Fixed bug #79676 (imagescale adds black border with IMG_BICUBIC). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62890 (default_socket_timeout=-1 causes connection to timeout).', + 'raw' => 'Fixed bug #62890 (default_socket_timeout=-1 causes connection to timeout). (cmb)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79664 (PDOStatement::getColumnMeta fails on empty result set).', + 'raw' => 'Fixed bug #79664 (PDOStatement::getColumnMeta fails on empty result set). (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73926 (phpdbg will not accept input on restart execution).', + 'raw' => 'Fixed bug #73926 (phpdbg will not accept input on restart execution). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #73927 (phpdbg fails with windows error prompt at "watch array").', + 'raw' => 'Fixed bug #73927 (phpdbg fails with windows error prompt at "watch array"). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed several mostly Windows related phpdbg bugs.', + 'raw' => 'Fixed several mostly Windows related phpdbg bugs. (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79710 (Reproducible segfault in error_handler during GC involved an SplFileObject).', + 'raw' => 'Fixed bug #79710 (Reproducible segfault in error_handler during GC involved an SplFileObject). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74267 (segfault with streams and invalid data).', + 'raw' => 'Fixed bug #74267 (segfault with streams and invalid data). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79579 (ZTS build of PHP 7.3.17 doesn\'t handle ERANGE for posix_getgrgid and others).', + 'raw' => 'Fixed bug #79579 (ZTS build of PHP 7.3.17 doesn\'t handle ERANGE for posix_getgrgid and others). (Böszörményi Zoltán)', + ), + ), + ), + ), + '7.4.7' => + array ( + 'date' => '11 Jun 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79599 (coredump in set_error_handler).', + 'raw' => 'Fixed bug #79599 (coredump in set_error_handler). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79566 (Private SHM is not private on Windows).', + 'raw' => 'Fixed bug #79566 (Private SHM is not private on Windows). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79489 (.user.ini does not inherit).', + 'raw' => 'Fixed bug #79489 (.user.ini does not inherit). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79600 (Regression in 7.4.6 when yielding an array based generator).', + 'raw' => 'Fixed bug #79600 (Regression in 7.4.6 when yielding an array based generator). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79657 ("yield from" hangs when invalid value encountered).', + 'raw' => 'Fixed bug #79657 ("yield from" hangs when invalid value encountered). (Nikita)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79571 (FFI: var_dumping unions may segfault).', + 'raw' => 'Fixed bug #79571 (FFI: var_dumping unions may segfault). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79615 (Wrong GIF header written in GD GIFEncode).', + 'raw' => 'Fixed bug #79615 (Wrong GIF header written in GD GIFEncode). (sageptr, cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79596 (MySQL FLOAT truncates to int some locales).', + 'raw' => 'Fixed bug #79596 (MySQL FLOAT truncates to int some locales). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79588 (Boolean opcache settings ignore on/off values).', + 'raw' => 'Fixed bug #79588 (Boolean opcache settings ignore on/off values). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79548 (Preloading segfault with inherited method using static variable).', + 'raw' => 'Fixed bug #79548 (Preloading segfault with inherited method using static variable). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79603 (RTD collision with opcache).', + 'raw' => 'Fixed bug #79603 (RTD collision with opcache). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79561 (dns_get_record() fails with DNS_ALL).', + 'raw' => 'Fixed bug #79561 (dns_get_record() fails with DNS_ALL). (cmb)', + ), + ), + ), + ), + '7.4.6' => + array ( + 'date' => '14 May 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79536 (zend_clear_exception prevent exception\'s destructor to be called).', + 'raw' => 'Fixed bug #79536 (zend_clear_exception prevent exception\'s destructor to be called). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78434 (Generator yields no items after valid() call).', + 'raw' => 'Fixed bug #78434 (Generator yields no items after valid() call). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79477 (casting object into array creates references).', + 'raw' => 'Fixed bug #79477 (casting object into array creates references). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79514 (Memory leaks while including unexistent file).', + 'raw' => 'Fixed bug #79514 (Memory leaks while including unexistent file). (cmb, Nikita)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78221 (DOMNode::normalize() doesn\'t remove empty text nodes).', + 'raw' => 'Fixed bug #78221 (DOMNode::normalize() doesn\'t remove empty text nodes). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79336 (ext/exif/tests/bug79046.phpt fails on Big endian arch).', + 'raw' => 'Fixed bug #79336 (ext/exif/tests/bug79046.phpt fails on Big endian arch). (Nikita)', + ), + ), + 'fcgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79491 (Search for .user.ini extends up to root dir).', + 'raw' => 'Fixed bug #79491 (Search for .user.ini extends up to root dir). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79441 (Segfault in mb_chr() if internal encoding is unsupported).', + 'raw' => 'Fixed bug #79441 (Segfault in mb_chr() if internal encoding is unsupported). (Girgias)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79497 (stream_socket_client() throws an unknown error sometimes with <1s timeout).', + 'raw' => 'Fixed bug #79497 (stream_socket_client() throws an unknown error sometimes with <1s timeout). (Joe Cai)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgraded to PCRE2 10.34.', + 'raw' => 'Upgraded to PCRE2 10.34. (cmb)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79503 (Memory leak on duplicate metadata).', + 'raw' => 'Fixed bug #79503 (Memory leak on duplicate metadata). (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4).', + 'raw' => 'Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69264 (__debugInfo() ignored while extending SPL classes).', + 'raw' => 'Fixed bug #69264 (__debugInfo() ignored while extending SPL classes). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67369 (ArrayObject serialization drops the iterator class).', + 'raw' => 'Fixed bug #67369 (ArrayObject serialization drops the iterator class). (Alex Dowad)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended).', + 'raw' => 'Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended). (dinosaur)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79447 (Serializing uninitialized typed properties with __sleep should not throw).', + 'raw' => 'Fixed bug #79447 (Serializing uninitialized typed properties with __sleep should not throw). (nicolas-grekas)', + ), + ), + ), + ), + '7.4.5' => + array ( + 'date' => '16 Apr 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79364 (When copy empty array, next key is unspecified).', + 'raw' => 'Fixed bug #79364 (When copy empty array, next key is unspecified). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78210 (Invalid pointer address).', + 'raw' => 'Fixed bug #78210 (Invalid pointer address). (cmb, Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79199 (curl_copy_handle() memory leak).', + 'raw' => 'Fixed bug #79199 (curl_copy_handle() memory leak). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79396 (DateTime hour incorrect during DST jump forward).', + 'raw' => 'Fixed bug #79396 (DateTime hour incorrect during DST jump forward). (Nate Brunette)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74940 (DateTimeZone loose comparison always true).', + 'raw' => 'Fixed bug #74940 (DateTimeZone loose comparison always true). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Implement request #77062 (Allow numeric [UG]ID in FPM listen.{owner,group})', + 'raw' => 'Implement request #77062 (Allow numeric [UG]ID in FPM listen.{owner,group}) (Andre Nathan)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79200 (Some iconv functions cut Windows-1258).', + 'raw' => 'Fixed bug #79200 (Some iconv functions cut Windows-1258). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).', + 'raw' => 'Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script). (Dmitry)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79413 (session_create_id() fails for active sessions).', + 'raw' => 'Fixed bug #79413 (session_create_id() fails for active sessions). (cmb)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79427 (Integer Overflow in shmop_open()).', + 'raw' => 'Fixed bug #79427 (Integer Overflow in shmop_open()). (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61597 (SXE properties may lack attributes and content).', + 'raw' => 'Fixed bug #61597 (SXE properties may lack attributes and content). (cmb)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79357 (SOAP request segfaults when any request parameter is missing).', + 'raw' => 'Fixed bug #79357 (SOAP request segfaults when any request parameter is missing). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75673 (SplStack::unserialize() behavior).', + 'raw' => 'Fixed bug #75673 (SplStack::unserialize() behavior). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79393 (Null coalescing operator failing with SplFixedArray).', + 'raw' => 'Fixed bug #79393 (Null coalescing operator failing with SplFixedArray). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79330 (shell_exec() silently truncates after a null byte).', + 'raw' => 'Fixed bug #79330 (shell_exec() silently truncates after a null byte). (stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79465 (OOB Read in urldecode()). (CVE-2020-7067)', + 'raw' => 'Fixed bug #79465 (OOB Read in urldecode()). (CVE-2020-7067) (stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79410 (system() swallows last chunk if it is exactly 4095 bytes without newline).', + 'raw' => 'Fixed bug #79410 (system() swallows last chunk if it is exactly 4095 bytes without newline). (Christian Schneider)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed Bug #79296 (ZipArchive::open fails on empty file).', + 'raw' => 'Fixed Bug #79296 (ZipArchive::open fails on empty file). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79424 (php_zip_glob uses gl_pathc after call to globfree).', + 'raw' => 'Fixed bug #79424 (php_zip_glob uses gl_pathc after call to globfree). (Max Rees)', + ), + ), + ), + ), + '7.4.4' => + array ( + 'date' => '19 Mar 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79244 (php crashes during parsing INI file).', + 'raw' => 'Fixed bug #79244 (php crashes during parsing INI file). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63206 (restore_error_handler does not restore previous errors mask).', + 'raw' => 'Fixed bug #63206 (restore_error_handler does not restore previous errors mask). (Mark Plomer)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66322 (COMPersistHelper::SaveToFile can save to wrong location).', + 'raw' => 'Fixed bug #66322 (COMPersistHelper::SaveToFile can save to wrong location). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79242 (COM error constants don\'t match com_exception codes on x86).', + 'raw' => 'Fixed bug #79242 (COM error constants don\'t match com_exception codes on x86). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79247 (Garbage collecting variant objects segfaults).', + 'raw' => 'Fixed bug #79247 (Garbage collecting variant objects segfaults). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79248 (Traversing empty VT_ARRAY throws com_exception).', + 'raw' => 'Fixed bug #79248 (Traversing empty VT_ARRAY throws com_exception). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79299 (com_print_typeinfo prints duplicate variables).', + 'raw' => 'Fixed bug #79299 (com_print_typeinfo prints duplicate variables). (Litiano Moura)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79332 (php_istreams are never freed).', + 'raw' => 'Fixed bug #79332 (php_istreams are never freed). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #79333 (com_print_typeinfo() leaks memory).', + 'raw' => 'Fixed bug #79333 (com_print_typeinfo() leaks memory). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79019 (Copied cURL handles upload empty file).', + 'raw' => 'Fixed bug #79019 (Copied cURL handles upload empty file). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79013 (Content-Length missing when posting a curlFile with curl).', + 'raw' => 'Fixed bug #79013 (Content-Length missing when posting a curlFile with curl). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77569: (Write Access Violation in DomImplementation).', + 'raw' => 'Fixed bug #77569: (Write Access Violation in DomImplementation). (Nikita, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79271 (DOMDocumentType::$childNodes is NULL).', + 'raw' => 'Fixed bug #79271 (DOMDocumentType::$childNodes is NULL). (cmb)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79311 (enchant_dict_suggest() fails on big endian architecture).', + 'raw' => 'Fixed bug #79311 (enchant_dict_suggest() fails on big endian architecture). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79282 (Use-of-uninitialized-value in exif). (CVE-2020-7064)', + 'raw' => 'Fixed bug #79282 (Use-of-uninitialized-value in exif). (CVE-2020-7064) (Nikita)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79283 (Segfault in libmagic patch contains a buffer overflow).', + 'raw' => 'Fixed bug #79283 (Segfault in libmagic patch contains a buffer overflow). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77653 (operator displayed instead of the real error message).', + 'raw' => 'Fixed bug #77653 (operator displayed instead of the real error message). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79014 (PHP-FPM & Primary script unknown).', + 'raw' => 'Fixed bug #79014 (PHP-FPM & Primary script unknown). (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79371 (mb_strtolower (UTF-32LE): stack-buffer-overflow at php_unicode_tolower_full). (CVE-2020-7065)', + 'raw' => 'Fixed bug #79371 (mb_strtolower (UTF-32LE): stack-buffer-overflow at php_unicode_tolower_full). (CVE-2020-7065) (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64032 (mysqli reports different client_version).', + 'raw' => 'Fixed bug #64032 (mysqli reports different client_version). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #79275 (Support auth_plugin_caching_sha2_password on Windows).', + 'raw' => 'Implemented FR #79275 (Support auth_plugin_caching_sha2_password on Windows). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79252 (preloading causes php-fpm to segfault during exit).', + 'raw' => 'Fixed bug #79252 (preloading causes php-fpm to segfault during exit). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79188 (Memory corruption in preg_replace/preg_replace_callback and unicode).', + 'raw' => 'Fixed bug #79188 (Memory corruption in preg_replace/preg_replace_callback and unicode). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79241 (Segmentation fault on preg_match()).', + 'raw' => 'Fixed bug #79241 (Segmentation fault on preg_match()). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79257 (Duplicate named groups (?J) prefer last alternative even if not matched).', + 'raw' => 'Fixed bug #79257 (Duplicate named groups (?J) prefer last alternative even if not matched). (Nikita)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79038 (PDOStatement::nextRowset() leaks column values).', + 'raw' => 'Fixed bug #79038 (PDOStatement::nextRowset() leaks column values). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79062 (Property with heredoc default value returns false for getDocComment).', + 'raw' => 'Fixed bug #79062 (Property with heredoc default value returns false for getDocComment). (Nikita)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79294 (::columnType() may fail after SQLite3Stmt::reset()).', + 'raw' => 'Fixed bug #79294 (::columnType() may fail after SQLite3Stmt::reset()). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79329 (get_headers() silently truncates after a null byte). (CVE-2020-7066)', + 'raw' => 'Fixed bug #79329 (get_headers() silently truncates after a null byte). (CVE-2020-7066) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79254 (getenv() w/o arguments not showing changes).', + 'raw' => 'Fixed bug #79254 (getenv() w/o arguments not showing changes). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79265 (Improper injection of Host header when using fopen for http requests).', + 'raw' => 'Fixed bug #79265 (Improper injection of Host header when using fopen for http requests). (Miguel Xavier Penha Neto)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79315 (ZipArchive::addFile doesn\'t honor start/length parameters).', + 'raw' => 'Fixed bug #79315 (ZipArchive::addFile doesn\'t honor start/length parameters). (Remi)', + ), + ), + ), + ), + '7.4.3' => + array ( + 'date' => '20 Feb 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79146 (cscript can fail to run on some systems).', + 'raw' => 'Fixed bug #79146 (cscript can fail to run on some systems). (clarodeus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79155 (Property nullability lost when using multiple property definition).', + 'raw' => 'Fixed bug #79155 (Property nullability lost when using multiple property definition). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78323 (Code 0 is returned on invalid options).', + 'raw' => 'Fixed bug #78323 (Code 0 is returned on invalid options). (Ivan Mikheykin)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78989 (Delayed variance check involving trait segfaults).', + 'raw' => 'Fixed bug #78989 (Delayed variance check involving trait segfaults). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79174 (cookie values with spaces fail to round-trip).', + 'raw' => 'Fixed bug #79174 (cookie values with spaces fail to round-trip). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #76047 (Use-after-free when accessing already destructed backtrace arguments).', + 'raw' => 'Fixed bug #76047 (Use-after-free when accessing already destructed backtrace arguments). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79078 (Hypothetical use-after-free in curl_multi_add_handle()).', + 'raw' => 'Fixed bug #79078 (Hypothetical use-after-free in curl_multi_add_handle()). (cmb)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79096 (FFI Struct Segfault).', + 'raw' => 'Fixed bug #79096 (FFI Struct Segfault). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79112 (IMAP extension can\'t find OpenSSL libraries at configure time).', + 'raw' => 'Fixed bug #79112 (IMAP extension can\'t find OpenSSL libraries at configure time). (Nikita)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79212 (NumberFormatter::format() may detect wrong type).', + 'raw' => 'Fixed bug #79212 (NumberFormatter::format() may detect wrong type). (cmb)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79191 (Error in SoapClient ctor disables DOMDocument::save()).', + 'raw' => 'Fixed bug #79191 (Error in SoapClient ctor disables DOMDocument::save()). (Nikita, cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79149 (SEGV in mb_convert_encoding with non-string encodings).', + 'raw' => 'Fixed bug #79149 (SEGV in mb_convert_encoding with non-string encodings). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78666 (Properties may emit a warning on var_dump()).', + 'raw' => 'Fixed bug #78666 (Properties may emit a warning on var_dump()). (kocsismate)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79084 (mysqlnd may fetch wrong column indexes with MYSQLI_BOTH).', + 'raw' => 'Fixed bug #79084 (mysqlnd may fetch wrong column indexes with MYSQLI_BOTH). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79011 (MySQL caching_sha2_password Access denied for password with more than 20 chars).', + 'raw' => 'Fixed bug #79011 (MySQL caching_sha2_password Access denied for password with more than 20 chars). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79114 (Eval class during preload causes class to be only half available).', + 'raw' => 'Fixed bug #79114 (Eval class during preload causes class to be only half available). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79128 (Preloading segfaults if preload_user is used).', + 'raw' => 'Fixed bug #79128 (Preloading segfaults if preload_user is used). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79193 (Incorrect type inference for self::$field =& $field).', + 'raw' => 'Fixed bug #79193 (Incorrect type inference for self::$field =& $field). (Nikita)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79145 (openssl memory leak).', + 'raw' => 'Fixed bug #79145 (openssl memory leak). (cmb, Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79082 (Files added to tar with Phar::buildFromIterator have all-access permissions). (CVE-2020-7063)', + 'raw' => 'Fixed bug #79082 (Files added to tar with Phar::buildFromIterator have all-access permissions). (CVE-2020-7063) (stas)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79171 (heap-buffer-overflow in phar_extract_file). (CVE-2020-7061)', + 'raw' => 'Fixed bug #79171 (heap-buffer-overflow in phar_extract_file). (CVE-2020-7061) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76584 (PharFileInfo::decompress not working).', + 'raw' => 'Fixed bug #76584 (PharFileInfo::decompress not working). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79115 (ReflectionClass::isCloneable call reflected class __destruct).', + 'raw' => 'Fixed bug #79115 (ReflectionClass::isCloneable call reflected class __destruct). (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79221 (Null Pointer Dereference in PHP Session Upload Progress). (CVE-2020-7062)', + 'raw' => 'Fixed bug #79221 (Null Pointer Dereference in PHP Session Upload Progress). (CVE-2020-7062) (stas)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78902 (Memory leak when using stream_filter_append).', + 'raw' => 'Fixed bug #78902 (Memory leak when using stream_filter_append). (liudaixiao)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78969 (PASSWORD_DEFAULT should match PASSWORD_BCRYPT instead of being null).', + 'raw' => 'Fixed bug #78969 (PASSWORD_DEFAULT should match PASSWORD_BCRYPT instead of being null). (kocsismate)', + ), + ), + 'testing' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78090 (bug45161.phpt takes forever to finish).', + 'raw' => 'Fixed bug #78090 (bug45161.phpt takes forever to finish). (cmb)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70078 (XSL callbacks with nodes as parameter leak memory).', + 'raw' => 'Fixed bug #70078 (XSL callbacks with nodes as parameter leak memory). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Add ZipArchive::CM_LZMA2 and ZipArchive::CM_XZ constants (since libzip 1.6.0).', + 'raw' => 'Add ZipArchive::CM_LZMA2 and ZipArchive::CM_XZ constants (since libzip 1.6.0). (Remi)', + ), + 1 => + array ( + 'message' => 'Add ZipArchive::RDONLY (since libzip 1.0.0).', + 'raw' => 'Add ZipArchive::RDONLY (since libzip 1.0.0). (Remi)', + ), + 2 => + array ( + 'message' => 'Add ZipArchive::ER_* missing constants.', + 'raw' => 'Add ZipArchive::ER_* missing constants. (Remi)', + ), + 3 => + array ( + 'message' => 'Add ZipArchive::LIBZIP_VERSION constant.', + 'raw' => 'Add ZipArchive::LIBZIP_VERSION constant. (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73119 (Wrong return for ZipArchive::addEmptyDir Method).', + 'raw' => 'Fixed bug #73119 (Wrong return for ZipArchive::addEmptyDir Method). (Remi)', + ), + ), + ), + ), + '7.4.2' => + array ( + 'date' => '23 Jan 2020', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Preloading support on Windows has been disabled.', + 'raw' => 'Preloading support on Windows has been disabled. (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79022 (class_exists returns True for classes that are not ready to be used).', + 'raw' => 'Fixed bug #79022 (class_exists returns True for classes that are not ready to be used). (Laruence)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78929 (plus signs in cookie values are converted to spaces).', + 'raw' => 'Fixed bug #78929 (plus signs in cookie values are converted to spaces). (Alexey Kachalin)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78973 (Destructor during CV freeing causes segfault if opline never saved).', + 'raw' => 'Fixed bug #78973 (Destructor during CV freeing causes segfault if opline never saved). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78776 (Abstract method implementation from trait does not check "static").', + 'raw' => 'Fixed bug #78776 (Abstract method implementation from trait does not check "static"). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78999 (Cycle leak when using function result as temporary).', + 'raw' => 'Fixed bug #78999 (Cycle leak when using function result as temporary). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #79008 (General performance regression with PHP 7.4 on Windows).', + 'raw' => 'Fixed bug #79008 (General performance regression with PHP 7.4 on Windows). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #79002 (Serializing uninitialized typed properties with __sleep makes unserialize throw).', + 'raw' => 'Fixed bug #79002 (Serializing uninitialized typed properties with __sleep makes unserialize throw). (Nikita)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79033 (Curl timeout error with specific url and post).', + 'raw' => 'Fixed bug #79033 (Curl timeout error with specific url and post). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79063 (curl openssl does not respect PKG_CONFIG_PATH).', + 'raw' => 'Fixed bug #79063 (curl openssl does not respect PKG_CONFIG_PATH). (Nikita)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79015 (undefined-behavior in php_date.c).', + 'raw' => 'Fixed bug #79015 (undefined-behavior in php_date.c). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached).', + 'raw' => 'Fixed bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79046 (NaN to int cast undefined behavior in exif).', + 'raw' => 'Fixed bug #79046 (NaN to int cast undefined behavior in exif). (Nikita)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74170 (locale information change after mime_content_type).', + 'raw' => 'Fixed bug #74170 (locale information change after mime_content_type). (Sergei Turchanov)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79067 (gdTransformAffineCopy() may use unitialized values).', + 'raw' => 'Fixed bug #79067 (gdTransformAffineCopy() may use unitialized values). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79068 (gdTransformAffineCopy() changes interpolation method).', + 'raw' => 'Fixed bug #79068 (gdTransformAffineCopy() changes interpolation method). (cmb)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79029 (Use After Free\'s in XMLReader / XMLWriter).', + 'raw' => 'Fixed bug #79029 (Use After Free\'s in XMLReader / XMLWriter). (Laruence)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78961 (erroneous optimization of re-assigned $GLOBALS).', + 'raw' => 'Fixed bug #78961 (erroneous optimization of re-assigned $GLOBALS). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78950 (Preloading trait method with static variables).', + 'raw' => 'Fixed bug #78950 (Preloading trait method with static variables). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78903 (Conflict in RTD key for closures results in crash).', + 'raw' => 'Fixed bug #78903 (Conflict in RTD key for closures results in crash). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78986 (Opcache segfaults when inheriting ctor from immutable into mutable class).', + 'raw' => 'Fixed bug #78986 (Opcache segfaults when inheriting ctor from immutable into mutable class). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79040 (Warning Opcode handlers are unusable due to ASLR).', + 'raw' => 'Fixed bug #79040 (Warning Opcode handlers are unusable due to ASLR). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79055 (Typed property become unknown with OPcache file cache).', + 'raw' => 'Fixed bug #79055 (Typed property become unknown with OPcache file cache). (Nikita)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78402 (Converting null to string in error message is bad DX).', + 'raw' => 'Fixed bug #78402 (Converting null to string in error message is bad DX). (SATŌ Kentarō)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h).', + 'raw' => 'Fixed bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h). (SATŌ Kentarō)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78980 (pgsqlGetNotify() overlooks dead connection).', + 'raw' => 'Fixed bug #78980 (pgsqlGetNotify() overlooks dead connection). (SATŌ Kentarō)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78982 (pdo_pgsql returns dead persistent connection).', + 'raw' => 'Fixed bug #78982 (pdo_pgsql returns dead persistent connection). (SATŌ Kentarō)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79031 (Session unserialization problem).', + 'raw' => 'Fixed bug #79031 (Session unserialization problem). (Nikita)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78538 (shmop memory leak).', + 'raw' => 'Fixed bug #78538 (shmop memory leak). (cmb)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79056 (sqlite does not respect PKG_CONFIG_PATH during compilation).', + 'raw' => 'Fixed bug #79056 (sqlite does not respect PKG_CONFIG_PATH during compilation). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78976 (SplFileObject::fputcsv returns -1 on failure).', + 'raw' => 'Fixed bug #78976 (SplFileObject::fputcsv returns -1 on failure). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79000 (Non-blocking socket stream reports EAGAIN as error).', + 'raw' => 'Fixed bug #79000 (Non-blocking socket stream reports EAGAIN as error). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #54298 (Using empty additional_headers adding extraneous CRLF).', + 'raw' => 'Fixed bug #54298 (Using empty additional_headers adding extraneous CRLF). (cmb)', + ), + ), + ), + ), + '7.4.1' => + array ( + 'date' => '18 Dec 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78810 (RW fetches do not throw "uninitialized property" exception).', + 'raw' => 'Fixed bug #78810 (RW fetches do not throw "uninitialized property" exception). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78868 (Calling __autoload() with incorrect EG(fake_scope) value).', + 'raw' => 'Fixed bug #78868 (Calling __autoload() with incorrect EG(fake_scope) value). (Antony Dovgal, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78296 (is_file fails to detect file).', + 'raw' => 'Fixed bug #78296 (is_file fails to detect file). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78883 (fgets(STDIN) fails on Windows).', + 'raw' => 'Fixed bug #78883 (fgets(STDIN) fails on Windows). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78898 (call_user_func([\'parent\', ...]) fails while other succeed).', + 'raw' => 'Fixed bug #78898 (call_user_func([\'parent\', ...]) fails while other succeed). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78904 (Uninitialized property triggers __get()).', + 'raw' => 'Fixed bug #78904 (Uninitialized property triggers __get()). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #78926 (Segmentation fault on Symfony cache:clear).', + 'raw' => 'Fixed bug #78926 (Segmentation fault on Symfony cache:clear). (Nikita)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78849 (GD build broken with -D SIGNED_COMPARE_SLOW).', + 'raw' => 'Fixed bug #78849 (GD build broken with -D SIGNED_COMPARE_SLOW). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78923 (Artifacts when convoluting image with transparency).', + 'raw' => 'Fixed bug #78923 (Artifacts when convoluting image with transparency). (wilson chen)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76601 (Partially working php-fpm ater incomplete reload).', + 'raw' => 'Fixed bug #76601 (Partially working php-fpm ater incomplete reload). (Maksim Nikulin)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78889 (php-fpm service fails to start).', + 'raw' => 'Fixed bug #78889 (php-fpm service fails to start). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78916 (php-fpm 7.4.0 don\'t send mail via mail()).', + 'raw' => 'Fixed bug #78916 (php-fpm 7.4.0 don\'t send mail via mail()). (Jakub Zelenka)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #78912 (INTL Support for accounting format).', + 'raw' => 'Implemented FR #78912 (INTL Support for accounting format). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78823 (ZLIB_LIBS not added to EXTRA_LIBS).', + 'raw' => 'Fixed bug #78823 (ZLIB_LIBS not added to EXTRA_LIBS). (Arjen de Korte)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed $x = (bool)$x; with opcache (should emit undeclared variable notice).', + 'raw' => 'Fixed $x = (bool)$x; with opcache (should emit undeclared variable notice). (Tyson Andre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78935 (Preloading removes classes that have dependencies).', + 'raw' => 'Fixed bug #78935 (Preloading removes classes that have dependencies). (Nikita, Dmitry)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78853 (preg_match() may return integer > 1).', + 'raw' => 'Fixed bug #78853 (preg_match() may return integer > 1). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78895 (Reflection detects abstract non-static class as abstract static. IS_IMPLICIT_ABSTRACT is not longer used).', + 'raw' => 'Fixed bug #78895 (Reflection detects abstract non-static class as abstract static. IS_IMPLICIT_ABSTRACT is not longer used). (Dmitry)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77638 (var_export\'ing certain class instances segfaults).', + 'raw' => 'Fixed bug #77638 (var_export\'ing certain class instances segfaults). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78840 (imploding $GLOBALS crashes).', + 'raw' => 'Fixed bug #78840 (imploding $GLOBALS crashes). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78833 (Integer overflow in pack causes out-of-bound access).', + 'raw' => 'Fixed bug #78833 (Integer overflow in pack causes out-of-bound access). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78814 (strip_tags allows / in tag name => whitelist bypass).', + 'raw' => 'Fixed bug #78814 (strip_tags allows / in tag name => whitelist bypass). (cmb)', + ), + ), + ), + ), + '7.4.0' => + array ( + 'date' => '28 Nov 2019', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Implemented RFC: Deprecate curly brace syntax for accessing array elements and string offsets. https://wiki.php.net/rfc/deprecate_curly_braces_array_access', + 'raw' => 'Implemented RFC: Deprecate curly brace syntax for accessing array elements and string offsets. https://wiki.php.net/rfc/deprecate_curly_braces_array_access (Andrey Gromov)', + ), + 1 => + array ( + 'message' => 'Implemented RFC: Deprecations for PHP 7.4. https://wiki.php.net/rfc/deprecations_php_7_4', + 'raw' => 'Implemented RFC: Deprecations for PHP 7.4. https://wiki.php.net/rfc/deprecations_php_7_4 (Kalle, Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #52752 (Crash when lexing).', + 'raw' => 'Fixed bug #52752 (Crash when lexing). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #60677 (CGI doesn\'t properly validate shebang line contains #!).', + 'raw' => 'Fixed bug #60677 (CGI doesn\'t properly validate shebang line contains #!). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #71030 (Self-assignment in list() may have inconsistent behavior).', + 'raw' => 'Fixed bug #71030 (Self-assignment in list() may have inconsistent behavior). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #72530 (Use After Free in GC with Certain Destructors).', + 'raw' => 'Fixed bug #72530 (Use After Free in GC with Certain Destructors). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #75921 (Inconsistent: No warning in some cases when stdObj is created on the fly).', + 'raw' => 'Fixed bug #75921 (Inconsistent: No warning in some cases when stdObj is created on the fly). (David Walker)', + ), + 7 => + array ( + 'message' => 'Implemented FR #76148 (Add array_key_exists() to the list of specially compiled functions).', + 'raw' => 'Implemented FR #76148 (Add array_key_exists() to the list of specially compiled functions). (Majkl578)', + ), + 8 => + array ( + 'message' => 'Fixed bug #76430 (__METHOD__ inconsistent outside of method).', + 'raw' => 'Fixed bug #76430 (__METHOD__ inconsistent outside of method). (Ryan McCullagh, Nikita)', + ), + 9 => + array ( + 'message' => 'Fixed bug #76451 (Aliases during inheritance type checks affected by opcache).', + 'raw' => 'Fixed bug #76451 (Aliases during inheritance type checks affected by opcache). (Nikita)', + ), + 10 => + array ( + 'message' => 'Implemented FR #77230 (Support custom CFLAGS and LDFLAGS from environment).', + 'raw' => 'Implemented FR #77230 (Support custom CFLAGS and LDFLAGS from environment). (cmb)', + ), + 11 => + array ( + 'message' => 'Fixed bug #77345 (Stack Overflow caused by circular reference in garbage collection).', + 'raw' => 'Fixed bug #77345 (Stack Overflow caused by circular reference in garbage collection). (Alexandru Patranescu, Nikita, Dmitry)', + ), + 12 => + array ( + 'message' => 'Fixed bug #77812 (Interactive mode does not support PHP 7.3-style heredoc).', + 'raw' => 'Fixed bug #77812 (Interactive mode does not support PHP 7.3-style heredoc). (cmb, Nikita)', + ), + 13 => + array ( + 'message' => 'Fixed bug #77877 (call_user_func() passes $this to static methods).', + 'raw' => 'Fixed bug #77877 (call_user_func() passes $this to static methods). (Dmitry)', + ), + 14 => + array ( + 'message' => 'Fixed bug #78066 (PHP eats the first byte of a program that comes from process substitution).', + 'raw' => 'Fixed bug #78066 (PHP eats the first byte of a program that comes from process substitution). (Nikita)', + ), + 15 => + array ( + 'message' => 'Fixed bug #78151 (Segfault caused by indirect expressions in PHP 7.4a1).', + 'raw' => 'Fixed bug #78151 (Segfault caused by indirect expressions in PHP 7.4a1). (Nikita)', + ), + 16 => + array ( + 'message' => 'Fixed bug #78154 (SEND_VAR_NO_REF does not always send reference).', + 'raw' => 'Fixed bug #78154 (SEND_VAR_NO_REF does not always send reference). (Nikita)', + ), + 17 => + array ( + 'message' => 'Fixed bug #78182 (Segmentation fault during by-reference property assignment).', + 'raw' => 'Fixed bug #78182 (Segmentation fault during by-reference property assignment). (Nikita)', + ), + 18 => + array ( + 'message' => 'Fixed bug #78212 (Segfault in built-in webserver).', + 'raw' => 'Fixed bug #78212 (Segfault in built-in webserver). (cmb)', + ), + 19 => + array ( + 'message' => 'Fixed bug #78220 (Can\'t access OneDrive folder).', + 'raw' => 'Fixed bug #78220 (Can\'t access OneDrive folder). (cmb, ab)', + ), + 20 => + array ( + 'message' => 'Fixed bug #78226 (Unexpected __set behavior with typed properties).', + 'raw' => 'Fixed bug #78226 (Unexpected __set behavior with typed properties). (Nikita)', + ), + 21 => + array ( + 'message' => 'Fixed bug #78239 (Deprecation notice during string conversion converted to exception hangs).', + 'raw' => 'Fixed bug #78239 (Deprecation notice during string conversion converted to exception hangs). (Nikita)', + ), + 22 => + array ( + 'message' => 'Fixed bug #78335 (Static properties/variables containing cycles report as leak).', + 'raw' => 'Fixed bug #78335 (Static properties/variables containing cycles report as leak). (Nikita)', + ), + 23 => + array ( + 'message' => 'Fixed bug #78340 (Include of stream wrapper not reading whole file).', + 'raw' => 'Fixed bug #78340 (Include of stream wrapper not reading whole file). (Nikita)', + ), + 24 => + array ( + 'message' => 'Fixed bug #78344 (Segmentation fault on zend_check_protected).', + 'raw' => 'Fixed bug #78344 (Segmentation fault on zend_check_protected). (Nikita)', + ), + 25 => + array ( + 'message' => 'Fixed bug #78356 (Array returned from ArrayAccess is incorrectly unpacked as argument).', + 'raw' => 'Fixed bug #78356 (Array returned from ArrayAccess is incorrectly unpacked as argument). (Nikita)', + ), + 26 => + array ( + 'message' => 'Fixed bug #78379 (Cast to object confuses GC, causes crash).', + 'raw' => 'Fixed bug #78379 (Cast to object confuses GC, causes crash). (Dmitry)', + ), + 27 => + array ( + 'message' => 'Fixed bug #78386 (fstat mode has unexpected value on PHP 7.4).', + 'raw' => 'Fixed bug #78386 (fstat mode has unexpected value on PHP 7.4). (cmb)', + ), + 28 => + array ( + 'message' => 'Fixed bug #78396 (Second file_put_contents in Shutdown hangs script).', + 'raw' => 'Fixed bug #78396 (Second file_put_contents in Shutdown hangs script). (Nikita)', + ), + 29 => + array ( + 'message' => 'Fixed bug #78406 (Broken file includes with user-defined stream filters).', + 'raw' => 'Fixed bug #78406 (Broken file includes with user-defined stream filters). (Nikita)', + ), + 30 => + array ( + 'message' => 'Fixed bug #78438 (Corruption when __unserializing deeply nested structures).', + 'raw' => 'Fixed bug #78438 (Corruption when __unserializing deeply nested structures). (cmb, Nikita)', + ), + 31 => + array ( + 'message' => 'Fixed bug #78441 (Parse error due to heredoc identifier followed by digit).', + 'raw' => 'Fixed bug #78441 (Parse error due to heredoc identifier followed by digit). (cmb)', + ), + 32 => + array ( + 'message' => 'Fixed bug #78454 (Consecutive numeric separators cause OOM error).', + 'raw' => 'Fixed bug #78454 (Consecutive numeric separators cause OOM error). (Theodore Brown)', + ), + 33 => + array ( + 'message' => 'Fixed bug #78460 (PEAR installation failure).', + 'raw' => 'Fixed bug #78460 (PEAR installation failure). (Peter Kokot, L. Declercq)', + ), + 34 => + array ( + 'message' => 'Fixed bug #78531 (Crash when using undefined variable as object).', + 'raw' => 'Fixed bug #78531 (Crash when using undefined variable as object). (Dmitry)', + ), + 35 => + array ( + 'message' => 'Fixed bug #78535 (auto_detect_line_endings value not parsed as bool).', + 'raw' => 'Fixed bug #78535 (auto_detect_line_endings value not parsed as bool). (bugreportuser)', + ), + 36 => + array ( + 'message' => 'Fixed bug #78604 (token_get_all() does not properly tokenize FOO<?php with short_open_tag=0).', + 'raw' => 'Fixed bug #78604 (token_get_all() does not properly tokenize FOO<?php with short_open_tag=0). (Nikita)', + ), + 37 => + array ( + 'message' => 'Fixed bug #78614 (Does not compile with DTRACE anymore).', + 'raw' => 'Fixed bug #78614 (Does not compile with DTRACE anymore). (tz at FreeBSD dot org)', + ), + 38 => + array ( + 'message' => 'Fixed bug #78620 (Out of memory error).', + 'raw' => 'Fixed bug #78620 (Out of memory error). (cmb, Nikita)', + ), + 39 => + array ( + 'message' => 'Fixed bug #78632 (method_exists() in php74 works differently from php73 in checking priv. methods).', + 'raw' => 'Fixed bug #78632 (method_exists() in php74 works differently from php73 in checking priv. methods). (Nikita)', + ), + 40 => + array ( + 'message' => 'Fixed bug #78644 (SEGFAULT in ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER).', + 'raw' => 'Fixed bug #78644 (SEGFAULT in ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER). (Nikita)', + ), + 41 => + array ( + 'message' => 'Fixed bug #78658 (Memory corruption using Closure::bindTo).', + 'raw' => 'Fixed bug #78658 (Memory corruption using Closure::bindTo). (Nikita)', + ), + 42 => + array ( + 'message' => 'Fixed bug #78656 (Parse errors classified as highest log-level).', + 'raw' => 'Fixed bug #78656 (Parse errors classified as highest log-level). (Erik Lundin)', + ), + 43 => + array ( + 'message' => 'Fixed bug #78662 (stream_write bad error detection).', + 'raw' => 'Fixed bug #78662 (stream_write bad error detection). (Remi)', + ), + 44 => + array ( + 'message' => 'Fixed bug #78768 (redefinition of typedef zend_property_info).', + 'raw' => 'Fixed bug #78768 (redefinition of typedef zend_property_info). (Nikita)', + ), + 45 => + array ( + 'message' => 'Fixed bug #78788 (./configure generates invalid php_version.h).', + 'raw' => 'Fixed bug #78788 (./configure generates invalid php_version.h). (max)', + ), + 46 => + array ( + 'message' => 'Fixed incorrect usage of QM_ASSIGN instruction. It must not return IS_VAR. As a side effect, this allowed passing left hand list() "by reference", instead of compile-time error.', + 'raw' => 'Fixed incorrect usage of QM_ASSIGN instruction. It must not return IS_VAR. As a side effect, this allowed passing left hand list() "by reference", instead of compile-time error. (Dmitry)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'The built-in CLI server now reports the request method in log files.', + 'raw' => 'The built-in CLI server now reports the request method in log files. (Simon Welsh)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Deprecated registering of case-insensitive constants from typelibs.', + 'raw' => 'Deprecated registering of case-insensitive constants from typelibs. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78650 (new COM Crash).', + 'raw' => 'Fixed bug #78650 (new COM Crash). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78694 (Appending to a variant array causes segfault).', + 'raw' => 'Fixed bug #78694 (Appending to a variant array causes segfault). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected).', + 'raw' => 'Fixed bug #76480 (Use curl_multi_wait() so that timeouts are respected). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Implemented FR #77711 (CURLFile should support UNICODE filenames).', + 'raw' => 'Implemented FR #77711 (CURLFile should support UNICODE filenames). (cmb)', + ), + 2 => + array ( + 'message' => 'Deprecated CURLPIPE_HTTP1.', + 'raw' => 'Deprecated CURLPIPE_HTTP1. (cmb)', + ), + 3 => + array ( + 'message' => 'Deprecated $version parameter of curl_version().', + 'raw' => 'Deprecated $version parameter of curl_version(). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Updated timelib to 2018.02.', + 'raw' => 'Updated timelib to 2018.02. (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69044 (discrepency between time and microtime).', + 'raw' => 'Fixed bug #69044 (discrepency between time and microtime). (krakjoe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #70153 (\\DateInterval incorrectly unserialized).', + 'raw' => 'Fixed bug #70153 (\\DateInterval incorrectly unserialized). (Maksim Iakunin)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75232 (print_r of DateTime creating side-effect).', + 'raw' => 'Fixed bug #75232 (print_r of DateTime creating side-effect). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78383 (Casting a DateTime to array no longer returns its properties).', + 'raw' => 'Fixed bug #78383 (Casting a DateTime to array no longer returns its properties). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78751 (Serialising DatePeriod converts DateTimeImmutable).', + 'raw' => 'Fixed bug #78751 (Serialising DatePeriod converts DateTimeImmutable). (cmb)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast).', + 'raw' => 'Fixed bug #78333 (Exif crash (bus error) due to wrong alignment and invalid cast). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042)', + 'raw' => 'Fixed bug #78256 (heap-buffer-overflow on exif_process_user_comment). (CVE-2019-11042) (Stas)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041)', + 'raw' => 'Fixed bug #78222 (heap-buffer-overflow on exif_scan_thumbnail). (CVE-2019-11041) (Stas)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78075 (finfo_file treats JSON file as text/plain).', + 'raw' => 'Fixed bug #78075 (finfo_file treats JSON file as text/plain). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78183 (finfo_file shows wrong mime-type for .tga file).', + 'raw' => 'Fixed bug #78183 (finfo_file shows wrong mime-type for .tga file). (Anatol)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'The filter extension no longer has the --with-pcre-dir on Unix builds, allowing the extension to be once more compiled as shared using ./configure.', + 'raw' => 'The filter extension no longer has the --with-pcre-dir on Unix builds, allowing the extension to be once more compiled as shared using ./configure. (Kalle)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Added FFI extension.', + 'raw' => 'Added FFI extension. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)).', + 'raw' => 'Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78543 (is_callable() on FFI\\CData throws Exception).', + 'raw' => 'Fixed bug #78543 (is_callable() on FFI\\CData throws Exception). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78716 (Function name mangling is wrong for some parameter types).', + 'raw' => 'Fixed bug #78716 (Function name mangling is wrong for some parameter types). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78762 (Failing FFI::cast() may leak memory).', + 'raw' => 'Fixed bug #78762 (Failing FFI::cast() may leak memory). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78761 (Zend memory heap corruption with preload and casting).', + 'raw' => 'Fixed bug #78761 (Zend memory heap corruption with preload and casting). (cmb)', + ), + 6 => + array ( + 'message' => 'Implement FR #78270 (Support __vectorcall convention with FFI).', + 'raw' => 'Implement FR #78270 (Support __vectorcall convention with FFI). (cmb)', + ), + 7 => + array ( + 'message' => 'Added missing FFI::isNull().', + 'raw' => 'Added missing FFI::isNull(). (Philip Hofstetter)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #72510 (systemd service should be hardened).', + 'raw' => 'Implemented FR #72510 (systemd service should be hardened). (Craig Andrews)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74083 (master PHP-fpm is stopped on multiple reloads).', + 'raw' => 'Fixed bug #74083 (master PHP-fpm is stopped on multiple reloads). (Maksim Nikulin)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78334 (fpm log prefix message includes wrong stdout/stderr notation).', + 'raw' => 'Fixed bug #78334 (fpm log prefix message includes wrong stdout/stderr notation). (Tsuyoshi Sadakata)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043)', + 'raw' => 'Fixed bug #78599 (env_path_info underflow in fpm_main.c can lead to RCE). (CVE-2019-11043) (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Implemented the scatter filter (IMG_FILTER_SCATTER).', + 'raw' => 'Implemented the scatter filter (IMG_FILTER_SCATTER). (Kalle)', + ), + 1 => + array ( + 'message' => 'The bundled libgd behaves now like system libgd wrt. IMG_CROP_DEFAULT never falling back to IMG_CROP_SIDES.', + 'raw' => 'The bundled libgd behaves now like system libgd wrt. IMG_CROP_DEFAULT never falling back to IMG_CROP_SIDES.', + ), + 2 => + array ( + 'message' => 'The default $mode parameter of imagecropauto() has been changed to IMG_CROP_DEFAULT; passing -1 is now deprecated.', + 'raw' => 'The default $mode parameter of imagecropauto() has been changed to IMG_CROP_DEFAULT; passing -1 is now deprecated.', + ), + 3 => + array ( + 'message' => 'Added support for aspect ratio preserving scaling to a fixed height for imagescale().', + 'raw' => 'Added support for aspect ratio preserving scaling to a fixed height for imagescale(). (Andreas Treichel)', + ), + 4 => + array ( + 'message' => 'Added TGA read support.', + 'raw' => 'Added TGA read support. (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #73291 (imagecropauto() $threshold differs from external libgd).', + 'raw' => 'Fixed bug #73291 (imagecropauto() $threshold differs from external libgd). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #76324 (cannot detect recent versions of freetype with pkg-config).', + 'raw' => 'Fixed bug #76324 (cannot detect recent versions of freetype with pkg-config). (Eli Schwartz)', + ), + 7 => + array ( + 'message' => 'Fixed bug #78314 (missing freetype support/functions with external gd).', + 'raw' => 'Fixed bug #78314 (missing freetype support/functions with external gd). (Remi)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78574 (broken shared build).', + 'raw' => 'Fixed bug #78574 (broken shared build). (Remi)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'The hash extension is now an integral part of PHP and cannot be disabled as per RFC: https://wiki.php.net/rfc/permanent_hash_ext.', + 'raw' => 'The hash extension is now an integral part of PHP and cannot be disabled as per RFC: https://wiki.php.net/rfc/permanent_hash_ext. (Kalle)', + ), + 1 => + array ( + 'message' => 'Implemented FR #71890 (crc32c checksum algorithm).', + 'raw' => 'Implemented FR #71890 (crc32c checksum algorithm). (Andrew Brampton)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78342 (Bus error in configure test for iconv //IGNORE).', + 'raw' => 'Fixed bug #78342 (Bus error in configure test for iconv //IGNORE). (Rainer Jung)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78642 (Wrong libiconv version displayed). .', + 'raw' => 'Fixed bug #78642 (Wrong libiconv version displayed). (gedas at martynas, cmb).', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78279 (libxml_disable_entity_loader settings is shared between requests (cgi-fcgi)).', + 'raw' => 'Fixed bug #78279 (libxml_disable_entity_loader settings is shared between requests (cgi-fcgi)). (Nikita)', + ), + ), + 'interbase' => + array ( + 0 => + array ( + 'message' => 'Unbundled the InterBase extension and moved it to PECL.', + 'raw' => 'Unbundled the InterBase extension and moved it to PECL. (Kalle)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Raised requirements to ICU ≥ 50.1.', + 'raw' => 'Raised requirements to ICU ≥ 50.1. (cmb)', + ), + 1 => + array ( + 'message' => 'Changed ResourceBundle to implement Countable.', + 'raw' => 'Changed ResourceBundle to implement Countable. (LeSuisse)', + ), + 2 => + array ( + 'message' => 'Changed default of $variant parameter of idn_to_ascii() and idn_to_utf8().', + 'raw' => 'Changed default of $variant parameter of idn_to_ascii() and idn_to_utf8(). (cmb)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Deprecated ldap_control_paged_result_response and ldap_control_paged_result', + 'raw' => 'Deprecated ldap_control_paged_result_response and ldap_control_paged_result', + ), + ), + 'litespeed' => + array ( + 0 => + array ( + 'message' => 'Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown).', + 'raw' => 'Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown). (George Wang)', + ), + 1 => + array ( + 'message' => 'Updated to LiteSpeed SAPI V7.4.3 (increased response header count limit from 100 to 1000, added crash handler to cleanly shutdown PHP request, added CloudLinux mod_lsapi mode).', + 'raw' => 'Updated to LiteSpeed SAPI V7.4.3 (increased response header count limit from 100 to 1000, added crash handler to cleanly shutdown PHP request, added CloudLinux mod_lsapi mode). (George Wang)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76058 (After "POST data can\'t be buffered", using php://input makes huge tmp files).', + 'raw' => 'Fixed bug #76058 (After "POST data can\'t be buffered", using php://input makes huge tmp files). (George Wang)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77907 (mb-functions do not respect default_encoding).', + 'raw' => 'Fixed bug #77907 (mb-functions do not respect default_encoding). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78579 (mb_decode_numericentity: args number inconsistency).', + 'raw' => 'Fixed bug #78579 (mb_decode_numericentity: args number inconsistency). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78609 (mb_check_encoding() no longer supports stringable objects).', + 'raw' => 'Fixed bug #78609 (mb_check_encoding() no longer supports stringable objects). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67348 (Reading $dbc->stat modifies $dbc->affected_rows).', + 'raw' => 'Fixed bug #67348 (Reading $dbc->stat modifies $dbc->affected_rows). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used).', + 'raw' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used). (fabiomsouto)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78179 (MariaDB server version incorrectly detected).', + 'raw' => 'Fixed bug #78179 (MariaDB server version incorrectly detected). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78213 (Empty row pocket).', + 'raw' => 'Fixed bug #78213 (Empty row pocket). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed connect_attr issues and added the _server_host connection attribute.', + 'raw' => 'Fixed connect_attr issues and added the _server_host connection attribute. (Qianqian Bu)', + ), + 1 => + array ( + 'message' => 'Fixed bug #60594 (mysqlnd exposes 160 lines of stats in phpinfo).', + 'raw' => 'Fixed bug #60594 (mysqlnd exposes 160 lines of stats in phpinfo). (PeeHaa)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78473 (odbc_close() closes arbitrary resources).', + 'raw' => 'Fixed bug #78473 (odbc_close() closes arbitrary resources). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Implemented preloading RFC: https://wiki.php.net/rfc/preload.', + 'raw' => 'Implemented preloading RFC: https://wiki.php.net/rfc/preload. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Add opcache.preload_user INI directive.', + 'raw' => 'Add opcache.preload_user INI directive. (Dmitry)', + ), + 2 => + array ( + 'message' => 'Added new INI directive opcache.cache_id (Windows only).', + 'raw' => 'Added new INI directive opcache.cache_id (Windows only). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78106 (Path resolution fails if opcache disabled during request).', + 'raw' => 'Fixed bug #78106 (Path resolution fails if opcache disabled during request). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78175 (Preloading segfaults at preload time and at runtime).', + 'raw' => 'Fixed bug #78175 (Preloading segfaults at preload time and at runtime). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM).', + 'raw' => 'Fixed bug #78202 (Opcache stats for cache hits are capped at 32bit NUM). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #78271 (Invalid result of if-else).', + 'raw' => 'Fixed bug #78271 (Invalid result of if-else). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #78341 (Failure to detect smart branch in DFA pass).', + 'raw' => 'Fixed bug #78341 (Failure to detect smart branch in DFA pass). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #78376 (Incorrect preloading of constant static properties).', + 'raw' => 'Fixed bug #78376 (Incorrect preloading of constant static properties). (Dmitry)', + ), + 9 => + array ( + 'message' => 'Fixed bug #78429 (opcache_compile_file(__FILE__); segfaults).', + 'raw' => 'Fixed bug #78429 (opcache_compile_file(__FILE__); segfaults). (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug #78512 (Cannot make preload work).', + 'raw' => 'Fixed bug #78512 (Cannot make preload work). (Dmitry)', + ), + 11 => + array ( + 'message' => 'Fixed bug #78514 (Preloading segfaults with inherited typed property).', + 'raw' => 'Fixed bug #78514 (Preloading segfaults with inherited typed property). (Nikita)', + ), + 12 => + array ( + 'message' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters).', + 'raw' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters). (mhagstrand)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added TLS 1.3 support to streams including new tlsv1.3 stream.', + 'raw' => 'Added TLS 1.3 support to streams including new tlsv1.3 stream. (Codarren Velvindron, Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Added openssl_x509_verify function.', + 'raw' => 'Added openssl_x509_verify function. (Ben Scholzen)', + ), + 2 => + array ( + 'message' => 'openssl_random_pseudo_bytes() now throws in error conditions.', + 'raw' => 'openssl_random_pseudo_bytes() now throws in error conditions. (Sammy Kaye Powers)', + ), + 3 => + array ( + 'message' => 'Changed the default config path (Windows only).', + 'raw' => 'Changed the default config path (Windows only). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78231 (Segmentation fault upon stream_socket_accept of exported socket-to-stream).', + 'raw' => 'Fixed bug #78231 (Segmentation fault upon stream_socket_accept of exported socket-to-stream). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78391 (Assertion failure in openssl_random_pseudo_bytes).', + 'raw' => 'Fixed bug #78391 (Assertion failure in openssl_random_pseudo_bytes). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #78775 (TLS issues from HTTP request affecting other encrypted connections).', + 'raw' => 'Fixed bug #78775 (TLS issues from HTTP request affecting other encrypted connections). (Nikita)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77335 (PHP is preventing SIGALRM from specifying SA_RESTART).', + 'raw' => 'Fixed bug #77335 (PHP is preventing SIGALRM from specifying SA_RESTART). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #77094 (Support flags in preg_replace_callback).', + 'raw' => 'Implemented FR #77094 (Support flags in preg_replace_callback). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72685 (Repeated UTF-8 validation of same string in UTF-8 mode).', + 'raw' => 'Fixed bug #72685 (Repeated UTF-8 validation of same string in UTF-8 mode). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73948 .', + 'raw' => 'Fixed bug #73948 (Preg_match_all should return NULLs on trailing optional capture groups).', + ), + 3 => + array ( + 'message' => 'Fixed bug #78338 (Array cross-border reading in PCRE).', + 'raw' => 'Fixed bug #78338 (Array cross-border reading in PCRE). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78349 (Bundled pcre2 library missing LICENCE file).', + 'raw' => 'Fixed bug #78349 (Bundled pcre2 library missing LICENCE file). (Peter Kokot)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #71885 (Allow escaping question mark placeholders). https://wiki.php.net/rfc/pdo_escape_placeholders', + 'raw' => 'Implemented FR #71885 (Allow escaping question mark placeholders). https://wiki.php.net/rfc/pdo_escape_placeholders (Matteo)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects).', + 'raw' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects). (camporter)', + ), + 2 => + array ( + 'message' => 'Implemented FR #78033 (PDO - support username & password specified in DSN).', + 'raw' => 'Implemented FR #78033 (PDO - support username & password specified in DSN). (sjon)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #65690 (PDO_Firebird should also support dialect 1).', + 'raw' => 'Implemented FR #65690 (PDO_Firebird should also support dialect 1). (Simonov Denis)', + ), + 1 => + array ( + 'message' => 'Implemented FR #77863 (PDO firebird support type Boolean in input parameters).', + 'raw' => 'Implemented FR #77863 (PDO firebird support type Boolean in input parameters). (Simonov Denis)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #41997 (SP call yields additional empty result set).', + 'raw' => 'Fixed bug #41997 (SP call yields additional empty result set). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78623 (Regression caused by "SP call yields additional empty result set").', + 'raw' => 'Fixed bug #78623 (Regression caused by "SP call yields additional empty result set"). (cmb)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER.', + 'raw' => 'Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO, and CLIENT_IDENTIFIER. (Cameron Porter)', + ), + 1 => + array ( + 'message' => 'Implemented FR #76908 (PDO_OCI getColumnMeta() not implemented).', + 'raw' => 'Implemented FR #76908 (PDO_OCI getColumnMeta() not implemented). (Valentin Collet, Chris Jones, Remi)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Implemented sqlite_stmt_readonly in PDO_SQLite.', + 'raw' => 'Implemented sqlite_stmt_readonly in PDO_SQLite. (BohwaZ)', + ), + 1 => + array ( + 'message' => 'Raised requirements to SQLite 3.5.0.', + 'raw' => 'Raised requirements to SQLite 3.5.0. (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78192 (SegFault when reuse statement after schema has changed).', + 'raw' => 'Fixed bug #78192 (SegFault when reuse statement after schema has changed). (Vincent Quatrevieux)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78348 (Remove -lrt from pdo_sqlite.so).', + 'raw' => 'Fixed bug #78348 (Remove -lrt from pdo_sqlite.so). (Peter Kokot)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN).', + 'raw' => 'Fixed bug #77919 (Potential UAF in Phar RSHUTDOWN). (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr).', + 'raw' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr). (kabel)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76801 (too many open files).', + 'raw' => 'Fixed bug #76801 (too many open files). (alekitto)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).', + 'raw' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints). (krakjoe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77805 (phpdbg build fails when readline is shared).', + 'raw' => 'Fixed bug #77805 (phpdbg build fails when readline is shared). (krakjoe)', + ), + ), + 'recode' => + array ( + 0 => + array ( + 'message' => 'Unbundled the recode extension.', + 'raw' => 'Unbundled the recode extension. (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76737 (Unserialized reflection objects are broken, they shouldn\'t be serializable).', + 'raw' => 'Fixed bug #76737 (Unserialized reflection objects are broken, they shouldn\'t be serializable). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78263 (\\ReflectionReference::fromArrayElement() returns null while item is a reference).', + 'raw' => 'Fixed bug #78263 (\\ReflectionReference::fromArrayElement() returns null while item is a reference). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78410 (Cannot "manually" unserialize class that is final and extends an internal one).', + 'raw' => 'Fixed bug #78410 (Cannot "manually" unserialize class that is final and extends an internal one). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78697 (ReflectionClass::implementsInterface - inaccurate error message with traits).', + 'raw' => 'Fixed bug #78697 (ReflectionClass::implementsInterface - inaccurate error message with traits). (villfa)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78774 (ReflectionNamedType on Typed Properties Crash).', + 'raw' => 'Fixed bug #78774 (ReflectionNamedType on Typed Properties Crash). (Nikita)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78624 (session_gc return value for user defined session handlers).', + 'raw' => 'Fixed bug #78624 (session_gc return value for user defined session handlers). (bshaffer)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #65215 (SimpleXMLElement could register as implementing Countable).', + 'raw' => 'Implemented FR #65215 (SimpleXMLElement could register as implementing Countable). (LeSuisse)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75245 (Don\'t set content of elements with only whitespaces).', + 'raw' => 'Fixed bug #75245 (Don\'t set content of elements with only whitespaces). (eriklundin)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67619 (Validate length on socket_write).', + 'raw' => 'Fixed bug #67619 (Validate length on socket_write). (thiagooak)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78665 (Multicasting may leak memory).', + 'raw' => 'Fixed bug #78665 (Multicasting may leak memory). (cmb)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77646 (sign_detached() strings not terminated).', + 'raw' => 'Fixed bug #77646 (sign_detached() strings not terminated). (Frank)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78510 (Partially uninitialized buffer returned by sodium_crypto_generichash_init()).', + 'raw' => 'Fixed bug #78510 (Partially uninitialized buffer returned by sodium_crypto_generichash_init()). (Frank Denis, cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78516 (password_hash(): Memory cost is not in allowed range).', + 'raw' => 'Fixed bug #78516 (password_hash(): Memory cost is not in allowed range). (cmb, Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77518 (SeekableIterator::seek() should accept \'int\' typehint as documented).', + 'raw' => 'Fixed bug #77518 (SeekableIterator::seek() should accept \'int\' typehint as documented). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78409 (Segfault when creating instance of ArrayIterator without constructor).', + 'raw' => 'Fixed bug #78409 (Segfault when creating instance of ArrayIterator without constructor). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78436 (Missing addref in SplPriorityQueue EXTR_BOTH mode).', + 'raw' => 'Fixed bug #78436 (Missing addref in SplPriorityQueue EXTR_BOTH mode). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78456 (Segfault when serializing SplDoublyLinkedList).', + 'raw' => 'Fixed bug #78456 (Segfault when serializing SplDoublyLinkedList). (Nikita)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Unbundled libsqlite.', + 'raw' => 'Unbundled libsqlite. (cmb)', + ), + 1 => + array ( + 'message' => 'Raised requirements to SQLite 3.7.4.', + 'raw' => 'Raised requirements to SQLite 3.7.4. (cmb)', + ), + 2 => + array ( + 'message' => 'Forbid (un)serialization of SQLite3, SQLite3Stmt and SQLite3Result.', + 'raw' => 'Forbid (un)serialization of SQLite3, SQLite3Stmt and SQLite3Result. (cmb)', + ), + 3 => + array ( + 'message' => 'Added support for the SQLite @name notation.', + 'raw' => 'Added support for the SQLite @name notation. (cmb, BohwaZ)', + ), + 4 => + array ( + 'message' => 'Added SQLite3Stmt::getSQL() to retrieve the SQL of the statement.', + 'raw' => 'Added SQLite3Stmt::getSQL() to retrieve the SQL of the statement. (Bohwaz)', + ), + 5 => + array ( + 'message' => 'Implement FR ##70950 (Make SQLite3 Online Backup API available).', + 'raw' => 'Implement FR ##70950 (Make SQLite3 Online Backup API available). (BohwaZ)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Implemented password hashing registry RFC: https://wiki.php.net/rfc/password_registry.', + 'raw' => 'Implemented password hashing registry RFC: https://wiki.php.net/rfc/password_registry. (Sara)', + ), + 1 => + array ( + 'message' => 'Implemented RFC where password_hash() has argon2i(d) implementations from ext/sodium when PHP is built without libargon: https://wiki.php.net/rfc/sodium.argon.hash', + 'raw' => 'Implemented RFC where password_hash() has argon2i(d) implementations from ext/sodium when PHP is built without libargon: https://wiki.php.net/rfc/sodium.argon.hash (Sara)', + ), + 2 => + array ( + 'message' => 'Implemented FR #38301 (field enclosure behavior in fputcsv).', + 'raw' => 'Implemented FR #38301 (field enclosure behavior in fputcsv). (cmb)', + ), + 3 => + array ( + 'message' => 'Implemented FR #51496 (fgetcsv should take empty string as an escape).', + 'raw' => 'Implemented FR #51496 (fgetcsv should take empty string as an escape). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73535 (php_sockop_write() returns 0 on error, can be used to trigger Denial of Service).', + 'raw' => 'Fixed bug #73535 (php_sockop_write() returns 0 on error, can be used to trigger Denial of Service). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client).', + 'raw' => 'Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with stream_socket_client). (Ville Hukkamäki)', + ), + 6 => + array ( + 'message' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter).', + 'raw' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter). (kkopachev)', + ), + 7 => + array ( + 'message' => 'Implemented FR #77377 (No way to handle CTRL+C in Windows).', + 'raw' => 'Implemented FR #77377 (No way to handle CTRL+C in Windows). (Anatol)', + ), + 8 => + array ( + 'message' => 'Fixed bug #77930 (stream_copy_to_stream should use mmap more often).', + 'raw' => 'Fixed bug #77930 (stream_copy_to_stream should use mmap more often). (Nikita)', + ), + 9 => + array ( + 'message' => 'Implemented FR #78177 (Make proc_open accept command array).', + 'raw' => 'Implemented FR #78177 (Make proc_open accept command array). (Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #78208 (password_needs_rehash() with an unknown algo should always return true).', + 'raw' => 'Fixed bug #78208 (password_needs_rehash() with an unknown algo should always return true). (Sara)', + ), + 11 => + array ( + 'message' => 'Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit).', + 'raw' => 'Fixed bug #78241 (touch() does not handle dates after 2038 in PHP 64-bit). (cmb)', + ), + 12 => + array ( + 'message' => 'Fixed bug #78282 (atime and mtime mismatch).', + 'raw' => 'Fixed bug #78282 (atime and mtime mismatch). (cmb)', + ), + 13 => + array ( + 'message' => 'Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer).', + 'raw' => 'Fixed bug #78326 (improper memory deallocation on stream_get_contents() with fixed length buffer). (Albert Casademont)', + ), + 14 => + array ( + 'message' => 'Fixed bug #78346 (strip_tags no longer handling nested php tags).', + 'raw' => 'Fixed bug #78346 (strip_tags no longer handling nested php tags). (cmb)', + ), + 15 => + array ( + 'message' => 'Fixed bug #78506 (Error in a php_user_filter::filter() is not reported).', + 'raw' => 'Fixed bug #78506 (Error in a php_user_filter::filter() is not reported). (Nikita)', + ), + 16 => + array ( + 'message' => 'Fixed bug #78549 (Stack overflow due to nested serialized input).', + 'raw' => 'Fixed bug #78549 (Stack overflow due to nested serialized input). (Nikita)', + ), + 17 => + array ( + 'message' => 'Fixed bug #78759 (array_search in $GLOBALS).', + 'raw' => 'Fixed bug #78759 (array_search in $GLOBALS). (Nikita)', + ), + ), + 'testing' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78684 (PCRE bug72463_2 test is sending emails on Linux).', + 'raw' => 'Fixed bug #78684 (PCRE bug72463_2 test is sending emails on Linux). (cmb)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Added TIDY_TAG_* constants for HTML5 elements.', + 'raw' => 'Added TIDY_TAG_* constants for HTML5 elements. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76736 (wrong reflection for tidy_get_head, tidy_get_html, tidy_get_root, and tidy_getopt)', + 'raw' => 'Fixed bug #76736 (wrong reflection for tidy_get_head, tidy_get_html, tidy_get_root, and tidy_getopt) (tandre)', + ), + ), + 'wddx' => + array ( + 0 => + array ( + 'message' => 'Deprecated and unbundled the WDDX extension.', + 'raw' => 'Deprecated and unbundled the WDDX extension. (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78641 (addGlob can modify given remove_path value).', + 'raw' => 'Fixed bug #78641 (addGlob can modify given remove_path value). (cmb)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.0/changelist.inc b/include/releases/8.0/changelist.inc new file mode 100644 index 0000000000..47089f0fb1 --- /dev/null +++ b/include/releases/8.0/changelist.inc @@ -0,0 +1,4032 @@ +<?php return array ( + '8.0.30' => + array ( + 'date' => NULL, + 'modules' => + array ( + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823)', + 'raw' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824)', + 'raw' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824) (nielsdos)', + ), + ), + ), + ), + '8.0.29' => + array ( + 'date' => '08 Jun 2023', + 'modules' => + array ( + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247)', + 'raw' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) (nielsdos, timwolla)', + ), + ), + ), + ), + '8.0.28' => + array ( + 'date' => '14 Feb 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567).', + 'raw' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567). (Tim Düsterhus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568).', + 'raw' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568). (Niels Dossche)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662)', + 'raw' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) (Jakub Zelenka)', + ), + ), + ), + ), + '8.0.27' => + array ( + 'date' => '05 Jan 2023', + 'modules' => + array ( + 'pdo/sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631)', + 'raw' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631) (cmb)', + ), + ), + ), + ), + '8.0.26' => + array ( + 'date' => '24 Nov 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options).', + 'raw' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options). (Adam Saponara)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params).', + 'raw' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization).', + 'raw' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed potential NULL pointer dereference in Windows shm*() functions.', + 'raw' => 'Fixed potential NULL pointer dereference in Windows shm*() functions. (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation.', + 'raw' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation. (Arnaud)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9763 (DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100*60 minutes).', + 'raw' => 'Fixed bug GH-9763 (DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100*60 minutes). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11).', + 'raw' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694).', + 'raw' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694). (Petr Sumbera)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode).', + 'raw' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode). (Kamil Tekiela)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build).', + 'raw' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). (Jakub Zelenka, fsbruva)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9720 (Null pointer dereference while serializing the response).', + 'raw' => 'Fixed GH-9720 (Null pointer dereference while serializing the response). (cmb)', + ), + ), + ), + ), + '8.0.25' => + array ( + 'date' => '27 Oct 2022', + 'modules' => + array ( + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)', + 'raw' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) (cmb)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)', + 'raw' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454) (nicky at mouha dot be)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method).', + 'raw' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method). (Girgias)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set).', + 'raw' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set). (Arnaud)', + ), + ), + ), + ), + '8.0.24' => + array ( + 'date' => '29 Sep 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)', + 'raw' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) (Tim Starling)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9361 (Segmentation fault on script exit #9379).', + 'raw' => 'Fixed bug GH-9361 (Segmentation fault on script exit #9379). (cmb, Christian Schneider)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9407 (LSP error in eval\'d code refers to wrong class for static type).', + 'raw' => 'Fixed bug GH-9407 (LSP error in eval\'d code refers to wrong class for static type). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81727: Don\'t mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629).', + 'raw' => 'Fixed bug #81727: Don\'t mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629). (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free).', + 'raw' => 'Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free). (Nathan Freeman)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to error_log after daemon reload).', + 'raw' => 'Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to error_log after daemon reload). (Dmitry Menshikov)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77780 ("Headers already sent..." when previous connection was aborted).', + 'raw' => 'Fixed bug #77780 ("Headers already sent..." when previous connection was aborted). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()).', + 'raw' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()). (Girgias)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).', + 'raw' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). (Girgias)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).', + 'raw' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). (Yurunsoft)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628).', + 'raw' => 'Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure).', + 'raw' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure). (cmb, Nicolas Grekas)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9409 (Private method is incorrectly dumped as "overwrites").', + 'raw' => 'Fixed bug GH-9409 (Private method is incorrectly dumped as "overwrites"). (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line).', + 'raw' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line). (cmb, timwolla)', + ), + ), + ), + ), + '8.0.23' => + array ( + 'date' => '01 Sep 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect double to long casting in latest clang.', + 'raw' => 'Fixed incorrect double to long casting in latest clang. (zeriyoshi)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed LMDB driver memory leak on DB creation failure', + 'raw' => 'Fixed LMDB driver memory leak on DB creation failure (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9155 (dba_open("non-existing", "c-", "flatfile") segfaults).', + 'raw' => 'Fixed bug GH-9155 (dba_open("non-existing", "c-", "flatfile") segfaults). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed IntlDateFormatter::formatObject() parameter type.', + 'raw' => 'Fixed IntlDateFormatter::formatObject() parameter type. (Gert de Pagter)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9033 (Loading blacklist file can fail due to negative length).', + 'raw' => 'Fixed bug GH-9033 (Loading blacklist file can fail due to negative length). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9339 (OpenSSL oid_file path check warning contains uninitialized path).', + 'raw' => 'Fixed bug GH-9339 (OpenSSL oid_file path check warning contains uninitialized path). (Jakub Zelenka)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values).', + 'raw' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values).', + 'raw' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL).', + 'raw' => 'Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL). (Heiko Weber)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8472 (The resource returned by stream_socket_accept may have incorrect metadata).', + 'raw' => 'Fixed bug GH-8472 (The resource returned by stream_socket_accept may have incorrect metadata). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8409 (SSL handshake timeout leaves persistent connections hanging).', + 'raw' => 'Fixed bug GH-8409 (SSL handshake timeout leaves persistent connections hanging). (Jakub Zelenka, Twosee)', + ), + ), + ), + ), + '8.0.22' => + array ( + 'date' => '04 Aug 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable.', + 'raw' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8923 (error_log on Windows can hold the file write lock).', + 'raw' => 'Fixed bug GH-8923 (error_log on Windows can hold the file write lock). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).', + 'raw' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). (Tobias Bachert)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80047 (DatePeriod doesn\'t warn with custom DateTimeImmutable).', + 'raw' => 'Fixed bug #80047 (DatePeriod doesn\'t warn with custom DateTimeImmutable). (Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed LMDB driver hanging when attempting to delete a non-existing key', + 'raw' => 'Fixed LMDB driver hanging when attempting to delete a non-existing key (Girgias)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed zlog message prepend, free on incorrect address.', + 'raw' => 'Fixed zlog message prepend, free on incorrect address. (Heiko Weber)', + ), + 1 => + array ( + 'message' => 'Fixed possible double free on configuration loading failure. .', + 'raw' => 'Fixed possible double free on configuration loading failure. (Heiko Weber).', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument).', + 'raw' => 'Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build for ICU 69.x and onwards.', + 'raw' => 'Fixed build for ICU 69.x and onwards. (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file).', + 'raw' => 'Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file). (Dmitry)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed the crypt_sha256/512 api build with clang > 12.', + 'raw' => 'Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. .', + 'raw' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).', + ), + ), + ), + ), + '8.0.21' => + array ( + 'date' => '07 Jul 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed potential use after free in php_binary_init().', + 'raw' => 'Fixed potential use after free in php_binary_init(). (Heiko Weber)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-8827 (Intentionally closing std handles no longer possible).', + 'raw' => 'Fixed GH-8827 (Intentionally closing std handles no longer possible). (cmb)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8778 (Integer arithmethic with large number variants fails).', + 'raw' => 'Fixed bug GH-8778 (Integer arithmethic with large number variants fails). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option.', + 'raw' => 'Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option. (Pierrick)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74671 (DST timezone abbreviation has incorrect offset).', + 'raw' => 'Fixed bug #74671 (DST timezone abbreviation has incorrect offset). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77243 (Weekdays are calculated incorrectly for negative years).', + 'raw' => 'Fixed bug #77243 (Weekdays are calculated incorrectly for negative years). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78139 (timezone_open accepts invalid timezone string argument).', + 'raw' => 'Fixed bug #78139 (timezone_open accepts invalid timezone string argument). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67764 (fpm: syslog.ident don\'t work).', + 'raw' => 'Fixed bug #67764 (fpm: syslog.ident don\'t work). (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8685 (pcre not ready at mbstring startup).', + 'raw' => 'Fixed bug GH-8685 (pcre not ready at mbstring startup). (Remi)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed handling of single-key connection strings.', + 'raw' => 'Fixed handling of single-key connection strings. (Calvin Buckley)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50293 (Several openssl functions ignore the VCWD).', + 'raw' => 'Fixed bug #50293 (Several openssl functions ignore the VCWD). (Jakub Zelenka, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81713 (NULL byte injection in several OpenSSL functions working with certificates).', + 'raw' => 'Fixed bug #81713 (NULL byte injection in several OpenSSL functions working with certificates). (Jakub Zelenka)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed errorInfo() result on successful PDOStatement->execute().', + 'raw' => 'Fixed errorInfo() result on successful PDOStatement->execute(). (Yurunsoft)', + ), + 1 => + array ( + 'message' => 'Fixed handling of single-key connection strings.', + 'raw' => 'Fixed handling of single-key connection strings. (Calvin Buckley)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat cache).', + 'raw' => 'Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat cache). (Remi)', + ), + ), + ), + ), + '8.0.20' => + array ( + 'date' => '09 Jun 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8575 (CLI closes standard streams too early).', + 'raw' => 'Fixed bug GH-8575 (CLI closes standard streams too early). (Levi Morrison)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed Haiku ZTS builds.', + 'raw' => 'Fixed Haiku ZTS builds. (David Carlier)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions).', + 'raw' => 'Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8471 (Segmentation fault when converting immutable and mutable DateTime instances created using reflection).', + 'raw' => 'Fixed bug GH-8471 (Segmentation fault when converting immutable and mutable DateTime instances created using reflection). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed ACL build check on MacOS.', + 'raw' => 'Fixed ACL build check on MacOS. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72185: php-fpm writes empty fcgi record causing nginx 502.', + 'raw' => 'Fixed bug #72185: php-fpm writes empty fcgi record causing nginx 502. (Jakub Zelenka, loveharmful)', + ), + 2 => + array ( + 'message' => 'Fixes use after free. .', + 'raw' => 'Fixes use after free. (Heiko Weber).', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626)', + 'raw' => 'Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626) (c dot fol at ambionics dot io)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8466 (ini_get() is optimized out when the option does not exist).', + 'raw' => 'Fixed bug GH-8466 (ini_get() is optimized out when the option does not exist). (Arnaud)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625)', + 'raw' => 'Fixed bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625) (cmb)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed Haiku build.', + 'raw' => 'Fixed Haiku build. (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor).', + 'raw' => 'Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor). (robertnisipeanu)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8538 (SoapClient may strip parts of nmtokens).', + 'raw' => 'Fixed bug GH-8538 (SoapClient may strip parts of nmtokens). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8235 (iterator_count() may run indefinitely).', + 'raw' => 'Fixed bug GH-8235 (iterator_count() may run indefinitely). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed type for index in ZipArchive::replaceFile.', + 'raw' => 'Fixed type for index in ZipArchive::replaceFile. (Martin Rehberger)', + ), + ), + ), + ), + '8.0.19' => + array ( + 'date' => '12 May 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8289 (Exceptions thrown within a yielded from iterator are not rethrown into the generator).', + 'raw' => 'Fixed bug GH-8289 (Exceptions thrown within a yielded from iterator are not rethrown into the generator). (Bob)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7979 (DatePeriod iterator advances when checking if valid).', + 'raw' => 'Fixed bug GH-7979 (DatePeriod iterator advances when checking if valid). (Derick, Cody Mann)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8433 (Assigning function pointers to structs in FFI leaks).', + 'raw' => 'Fixed bug GH-8433 (Assigning function pointers to structs in FFI leaks). (Bob)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76003 (FPM /status reports wrong number of active processe).', + 'raw' => 'Fixed bug #76003 (FPM /status reports wrong number of active processe). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77023 (FPM cannot shutdown processes).', + 'raw' => 'Fixed bug #77023 (FPM cannot shutdown processes). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed comment in kqueue remove callback log message.', + 'raw' => 'Fixed comment in kqueue remove callback log message. (David Carlier)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header).', + 'raw' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8364 (msgfmt_format $values may not support references).', + 'raw' => 'Fixed bug GH-8364 (msgfmt_format $values may not support references). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8267 (MySQLi uses unsupported format specifier on Windows).', + 'raw' => 'Fixed bug GH-8267 (MySQLi uses unsupported format specifier on Windows). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8366 (ArrayIterator may leak when calling __construct()).', + 'raw' => 'Fixed bug GH-8366 (ArrayIterator may leak when calling __construct()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8273 (SplFileObject: key() returns wrong value).', + 'raw' => 'Fixed bug GH-8273 (SplFileObject: key() returns wrong value). (Girgias)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed php://temp does not preserve file-position when switched to temporary file.', + 'raw' => 'Fixed php://temp does not preserve file-position when switched to temporary file. (Bernd Holzmüller)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header).', + 'raw' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header). (cmb)', + ), + ), + ), + ), + '8.0.18' => + array ( + 'date' => '14 Apr 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed freeing of internal attribute arguments.', + 'raw' => 'Fixed freeing of internal attribute arguments. (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8070 (memory leak of internal function attribute hash).', + 'raw' => 'Fixed bug GH-8070 (memory leak of internal function attribute hash). (Tim Düsterhus)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8160 (ZTS support on Alpine is broken).', + 'raw' => 'Fixed bug GH-8160 (ZTS support on Alpine is broken). (Michael Voříšek)', + ), + 3 => + array ( + 'message' => 'Fixed potential race condition during resource ID allocation.', + 'raw' => 'Fixed potential race condition during resource ID allocation. (ryancaicse)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed signedness confusion in php_filter_validate_domain().', + 'raw' => 'Fixed signedness confusion in php_filter_validate_domain(). (cmb)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81714 (segfault when serializing finalized HashContext).', + 'raw' => 'Fixed bug #81714 (segfault when serializing finalized HashContext). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8142 (Compilation error on cygwin).', + 'raw' => 'Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken).', + 'raw' => 'Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties).', + 'raw' => 'Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties). (cmb)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8142 (Compilation error on cygwin).', + 'raw' => 'Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed result_type related stack corruption on LLP64 architectures.', + 'raw' => 'Fixed result_type related stack corruption on LLP64 architectures. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8253 (pg_insert() fails for references).', + 'raw' => 'Fixed bug GH-8253 (pg_insert() fails for references). (cmb)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed Solaris builds.', + 'raw' => 'Fixed Solaris builds. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fix undefined behavior in php_set_inet6_addr.', + 'raw' => 'Fix undefined behavior in php_set_inet6_addr. (ilutov)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8121 (SplFileObject - seek and key with csv file inconsistent).', + 'raw' => 'Fixed bug GH-8121 (SplFileObject - seek and key with csv file inconsistent). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8048 (Force macOS to use statfs).', + 'raw' => 'Fixed bug GH-8048 (Force macOS to use statfs). (risner)', + ), + ), + ), + ), + '8.0.17' => + array ( + 'date' => '17 Mar 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed Haiku ZTS build.', + 'raw' => 'Fixed Haiku ZTS build. (David Carlier)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed libpng warning when loading interlaced images.', + 'raw' => 'Fixed libpng warning when loading interlaced images. (Brett)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76109 (Unsafe access to fpm scoreboard).', + 'raw' => 'Fixed bug #76109 (Unsafe access to fpm scoreboard). (Till Backhaus, Jakub Zelenka)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding).', + 'raw' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7980 (Unexpected result for iconv_mime_decode).', + 'raw' => 'Fixed bug GH-7980 (Unexpected result for iconv_mime_decode). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8058 (NULL pointer dereference in mysqlnd package).', + 'raw' => 'Fixed bug GH-8058 (NULL pointer dereference in mysqlnd package). (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8074 (Wrong type inference of range() result).', + 'raw' => 'Fixed bug GH-8074 (Wrong type inference of range() result). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8080 (ReflectionClass::getConstants() depends on def. order).', + 'raw' => 'Fixed bug GH-8080 (ReflectionClass::getConstants() depends on def. order). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8421 (Closures should accept attributes with Attribute::TARGET_FUNCTION).', + 'raw' => 'Fixed bug GH-8421 (Closures should accept attributes with Attribute::TARGET_FUNCTION). (ollieread)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding).', + 'raw' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb)', + ), + ), + ), + ), + '8.0.16' => + array ( + 'date' => '17 Feb 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81430 (Attribute instantiation leaves dangling pointer).', + 'raw' => 'Fixed bug #81430 (Attribute instantiation leaves dangling pointer). (beberlei)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7896 (Environment vars may be mangled on Windows).', + 'raw' => 'Fixed bug GH-7896 (Environment vars may be mangled on Windows). (cmb)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7867 (FFI::cast() from pointer to array is broken).', + 'raw' => 'Fixed bug GH-7867 (FFI::cast() from pointer to array is broken). (cmb, dmitry)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fix #81708: UAF due to php_filter_float() failing for ints. (CVE-2021-21708)', + 'raw' => 'Fix #81708: UAF due to php_filter_float() failing for ints. (CVE-2021-21708) (stas)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak on invalid port.', + 'raw' => 'Fixed memory leak on invalid port. (David Carlier)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7902 (mb_send_mail may delimit headers with LF only).', + 'raw' => 'Fixed bug GH-7902 (mb_send_mail may delimit headers with LF only). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7972 (MariaDB version prefix 5.5.5- is not stripped).', + 'raw' => 'Fixed bug GH-7972 (MariaDB version prefix 5.5.5- is not stripped). (Kamil Tekiela)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed ext/sockets build on Haiku.', + 'raw' => 'Fixed ext/sockets build on Haiku. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7978 (sockets extension compilation errors).', + 'raw' => 'Fixed bug GH-7978 (sockets extension compilation errors). (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7875 (mails are sent even if failure to log throws exception).', + 'raw' => 'Fixed bug GH-7875 (mails are sent even if failure to log throws exception). (cmb)', + ), + ), + ), + ), + '8.0.15' => + array ( + 'date' => '20 Jan 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81656 (GCC-11 silently ignores -R).', + 'raw' => 'Fixed bug #81656 (GCC-11 silently ignores -R). (Michael Wallner)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81585 (cached_chunks are not counted to real_size on shutdown).', + 'raw' => 'Fixed bug #81585 (cached_chunks are not counted to real_size on shutdown). (cmb)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed FILTER_FLAG_NO_RES_RANGE flag.', + 'raw' => 'Fixed FILTER_FLAG_NO_RES_RANGE flag. (Yifan Tong)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7759 (Incorrect return types for hash() and hash_hmac()).', + 'raw' => 'Fixed bug GH-7759 (Incorrect return types for hash() and hash_hmac()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7826 (Inconsistent argument name in hash_hmac_file and hash_file).', + 'raw' => 'Fixed bug GH-7826 (Inconsistent argument name in hash_hmac_file and hash_file). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug where large bigints may be truncated.', + 'raw' => 'Fixed bug where large bigints may be truncated. (Nathan Freeman, cmb)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7765 (php_oci_cleanup_global_handles segfaults at second call).', + 'raw' => 'Fixed bug GH-7765 (php_oci_cleanup_global_handles segfaults at second call). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81679 (Tracing JIT crashes on reattaching).', + 'raw' => 'Fixed bug #81679 (Tracing JIT crashes on reattaching). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed error message allocation of PDO PgSQL.', + 'raw' => 'Fixed error message allocation of PDO PgSQL. (SATO Kentaro)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Avoid void* arithmetic in sockets/multicast.c on NetBSD.', + 'raw' => 'Avoid void* arithmetic in sockets/multicast.c on NetBSD. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75917 (SplFileObject::seek broken with CSV flags).', + 'raw' => 'Fixed bug #75917 (SplFileObject::seek broken with CSV flags). (Aliaksandr Bystry)', + ), + ), + ), + ), + '8.0.14' => + array ( + 'date' => '16 Dec 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81582 (Stringable not implicitly declared if __toString() came from a trait).', + 'raw' => 'Fixed bug #81582 (Stringable not implicitly declared if __toString() came from a trait). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81591 (Fatal Error not properly logged in particular cases).', + 'raw' => 'Fixed bug #81591 (Fatal Error not properly logged in particular cases). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81626 (Error on use static:: in __сallStatic() wrapped to Closure::fromCallable()).', + 'raw' => 'Fixed bug #81626 (Error on use static:: in __сallStatic() wrapped to Closure::fromCallable()). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81631 (::class with dynamic class name may yield wrong line number).', + 'raw' => 'Fixed bug #81631 (::class with dynamic class name may yield wrong line number). (Nikita)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81513 (Future possibility for heap overflow in FPM zlog).', + 'raw' => 'Fixed bug #81513 (Future possibility for heap overflow in FPM zlog). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71316 (libpng warning from imagecreatefromstring).', + 'raw' => 'Fixed bug #71316 (libpng warning from imagecreatefromstring). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers).', + 'raw' => 'Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75725 (./configure: detecting RAND_egd).', + 'raw' => 'Fixed bug #75725 (./configure: detecting RAND_egd). (Dilyan Palauzov)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74604 (Out of bounds in php_pcre_replace_impl).', + 'raw' => 'Fixed bug #74604 (Out of bounds in php_pcre_replace_impl). (cmb, Dmitry)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81587 (MultipleIterator Segmentation fault w/ SimpleXMLElement attached).', + 'raw' => 'Fixed bug #81587 (MultipleIterator Segmentation fault w/ SimpleXMLElement attached). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81618 (dns_get_record fails on FreeBSD for missing type).', + 'raw' => 'Fixed bug #81618 (dns_get_record fails on FreeBSD for missing type). (fsbruva)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate).', + 'raw' => 'Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate). (cmb)', + ), + ), + ), + ), + '8.0.13' => + array ( + 'date' => '18 Nov 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81518 (Header injection via default_mimetype / default_charset).', + 'raw' => 'Fixed bug #81518 (Header injection via default_mimetype / default_charset). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).', + 'raw' => 'Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81588 (TokyoCabinet driver leaks memory).', + 'raw' => 'Fixed bug #81588 (TokyoCabinet driver leaks memory). (girgias)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76167 (mbstring may use pointer from some previous request).', + 'raw' => 'Fixed bug #76167 (mbstring may use pointer from some previous request). (cmb, cataphract)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81512 (Unexpected behavior with arrays and JIT).', + 'raw' => 'Fixed bug #81512 (Unexpected behavior with arrays and JIT). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81652 (The value of error_reporting() gets overridden).', + 'raw' => 'Fixed bug #81652 (The value of error_reporting() gets overridden). (Nikita)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81424 (PCRE2 10.35 JIT performance regression).', + 'raw' => 'Fixed bug #81424 (PCRE2 10.35 JIT performance regression). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79971 (special character is breaking the path in xml function). (CVE-2021-21707)', + 'raw' => 'Fixed bug #79971 (special character is breaking the path in xml function). (CVE-2021-21707) (cmb)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81521 (XMLReader::getParserProperty may throw with a valid property).', + 'raw' => 'Fixed bug #81521 (XMLReader::getParserProperty may throw with a valid property). (Nikita)', + ), + ), + ), + ), + '8.0.12' => + array ( + 'date' => '21 Oct 2021', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81496 (Server logs incorrect request method).', + 'raw' => 'Fixed bug #81496 (Server logs incorrect request method). (lauri)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81435 (Observer current_observed_frame may point to an old (overwritten) frame).', + 'raw' => 'Fixed bug #81435 (Observer current_observed_frame may point to an old (overwritten) frame). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81380 (Observer may not be initialized properly).', + 'raw' => 'Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID).', + 'raw' => 'Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID). (Viktor Volkov)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined).', + 'raw' => 'Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined). (Dmitry)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78987 (High memory usage during encoding detection).', + 'raw' => 'Fixed bug #78987 (High memory usage during encoding detection). (Anatol)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).', + 'raw' => 'Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing). (cmb, Nikita)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703).', + 'raw' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703). (Jakub Zelenka)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81472 (Cannot support large linux major/minor device number when read /proc/self/maps).', + 'raw' => 'Fixed bug #81472 (Cannot support large linux major/minor device number when read /proc/self/maps). (Lin Yang)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'ReflectionAttribute is no longer final.', + 'raw' => 'ReflectionAttribute is no longer final. (sasezaki)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free).', + 'raw' => 'Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free). (cmb, Nikita, Tyson Andre)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1).', + 'raw' => 'Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69751 (Change Error message of sprintf/printf for missing/typo position specifier).', + 'raw' => 'Fixed bug #69751 (Change Error message of sprintf/printf for missing/typo position specifier). (Aliaksandr Bystry)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper).', + 'raw' => 'Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).', + 'raw' => 'Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace). (Aliaksandr Bystry, cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81490 (ZipArchive::extractTo() may leak memory).', + 'raw' => 'Fixed bug #81490 (ZipArchive::extractTo() may leak memory). (cmb, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77978 (Dirname ending in colon unzips to wrong dir).', + 'raw' => 'Fixed bug #77978 (Dirname ending in colon unzips to wrong dir). (cmb)', + ), + ), + ), + ), + '8.0.11' => + array ( + 'date' => '23 Sep 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81302 (Stream position after stream filter removed).', + 'raw' => 'Fixed bug #81302 (Stream position after stream filter removed). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81346 (Non-seekable streams don\'t update position after write).', + 'raw' => 'Fixed bug #81346 (Non-seekable streams don\'t update position after write). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #73122 (Integer Overflow when concatenating strings).', + 'raw' => 'Fixed bug #73122 (Integer Overflow when concatenating strings). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #53580 (During resize gdImageCopyResampled cause colors change).', + 'raw' => 'Fixed bug #53580 (During resize gdImageCopyResampled cause colors change). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81353 (segfault with preloading and statically bound closure).', + 'raw' => 'Fixed bug #81353 (segfault with preloading and statically bound closure). (Nikita)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81407 (shmop_open won\'t attach and causes php to crash).', + 'raw' => 'Fixed bug #81407 (shmop_open won\'t attach and causes php to crash). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71542 (disk_total_space does not work with relative paths).', + 'raw' => 'Fixed bug #71542 (disk_total_space does not work with relative paths). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81400 (Unterminated string in dns_get_record() results).', + 'raw' => 'Fixed bug #81400 (Unterminated string in dns_get_record() results). (cmb)', + ), + ), + 'sysvmsg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78819 (Heap Overflow in msg_send).', + 'raw' => 'Fixed bug #78819 (Heap Overflow in msg_send). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81351 (xml_parse may fail, but has no error code).', + 'raw' => 'Fixed bug #81351 (xml_parse may fail, but has no error code). (cmb, Nikita)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80833 (ZipArchive::getStream doesn\'t use setPassword).', + 'raw' => 'Fixed bug #80833 (ZipArchive::getStream doesn\'t use setPassword). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination). (CVE-2021-21706)', + 'raw' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination). (CVE-2021-21706) (cmb)', + ), + ), + ), + ), + '8.0.10' => + array ( + 'date' => '26 Aug 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72595 (php_output_handler_append illegal write access).', + 'raw' => 'Fixed bug #72595 (php_output_handler_append illegal write access). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66719 (Weird behaviour when using get_called_class() with call_user_func()).', + 'raw' => 'Fixed bug #66719 (Weird behaviour when using get_called_class() with call_user_func()). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header).', + 'raw' => 'Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header). (cmb)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78238 (BCMath returns "-0").', + 'raw' => 'Fixed bug #78238 (BCMath returns "-0"). (cmb)', + ), + ), + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80849 (HTTP Status header truncation).', + 'raw' => 'Fixed bug #80849 (HTTP Status header truncation). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64975 (Error parsing when AM/PM not at the end).', + 'raw' => 'Fixed bug #64975 (Error parsing when AM/PM not at the end). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78984 (DateTimeZone accepting invalid UTC timezones).', + 'raw' => 'Fixed bug #78984 (DateTimeZone accepting invalid UTC timezones). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79580 (date_create_from_format misses leap year).', + 'raw' => 'Fixed bug #79580 (date_create_from_format misses leap year). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80409 (DateTime::modify() loses time with \'weekday\' parameter).', + 'raw' => 'Fixed bug #80409 (DateTime::modify() loses time with \'weekday\' parameter). (Derick)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51498 (imagefilledellipse does not work for large circles).', + 'raw' => 'Fixed bug #51498 (imagefilledellipse does not work for large circles). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()).', + 'raw' => 'Fixed bug #74544 (Integer overflow in mysqli_real_escape_string()). (cmb, johannes)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81225 (Wrong result with pow operator with JIT enabled).', + 'raw' => 'Fixed bug #81225 (Wrong result with pow operator with JIT enabled). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81249 (Intermittent property assignment failure with JIT enabled).', + 'raw' => 'Fixed bug #81249 (Intermittent property assignment failure with JIT enabled). (Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81206 (Multiple PHP processes crash with JIT enabled).', + 'raw' => 'Fixed bug #81206 (Multiple PHP processes crash with JIT enabled). (cmb, Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81272 (Segfault in var[] after array_slice with JIT).', + 'raw' => 'Fixed bug #81272 (Segfault in var[] after array_slice with JIT). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT).', + 'raw' => 'Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)', + 'raw' => 'Fixed Bug #80959 (infinite loop in building cfg during JIT compilation) (Nikita, Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #81226 (Integer overflow behavior is different with JIT enabled).', + 'raw' => 'Fixed bug #81226 (Integer overflow behavior is different with JIT enabled). (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81327 (Error build openssl extension on php 7.4.22).', + 'raw' => 'Fixed bug #81327 (Error build openssl extension on php 7.4.22). (cmb)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81252 (PDO_ODBC doesn\'t account for SQL_NO_TOTAL).', + 'raw' => 'Fixed bug #81252 (PDO_ODBC doesn\'t account for SQL_NO_TOTAL). (cmb)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81283 (shmop can\'t read beyond 2147483647 bytes).', + 'raw' => 'Fixed bug #81283 (shmop can\'t read beyond 2147483647 bytes). (cmb, Nikita)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81325 (Segfault in zif_simplexml_import_dom).', + 'raw' => 'Fixed bug #81325 (Segfault in zif_simplexml_import_dom). (remi)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72146 (Integer overflow on substr_replace).', + 'raw' => 'Fixed bug #72146 (Integer overflow on substr_replace). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81265 (getimagesize returns 0 for 256px ICO images).', + 'raw' => 'Fixed bug #81265 (getimagesize returns 0 for 256px ICO images). (George Dietrich)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74960 (Heap buffer overflow via str_repeat).', + 'raw' => 'Fixed bug #74960 (Heap buffer overflow via str_repeat). (cmb, Dmitry)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81294 (Segfault when removing a filter).', + 'raw' => 'Fixed bug #81294 (Segfault when removing a filter). (cmb)', + ), + ), + ), + ), + '8.0.9' => + array ( + 'date' => '29 Jul 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files).', + 'raw' => 'Fixed bug #81145 (copy() and stream_copy_to_stream() fail for +4GB files). (cmb, Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81163 (incorrect handling of indirect vars in __sleep).', + 'raw' => 'Fixed bug #81163 (incorrect handling of indirect vars in __sleep). (krakjoe)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81159 (Object to int warning when using an object as a string offset).', + 'raw' => 'Fixed bug #81159 (Object to int warning when using an object as a string offset). (girgias)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80728 (PHP built-in web server resets timeout when it can kill the process).', + 'raw' => 'Fixed bug #80728 (PHP built-in web server resets timeout when it can kill the process). (Calvin Buckley)', + ), + 4 => + array ( + 'message' => 'Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER[\'request_uri\']).', + 'raw' => 'Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER[\'request_uri\']). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80173 (Using return value of zend_assign_to_variable() is not safe).', + 'raw' => 'Fixed bug #80173 (Using return value of zend_assign_to_variable() is not safe). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #73226 (--r[fcez] always return zero exit code).', + 'raw' => 'Fixed bug #73226 (--r[fcez] always return zero exit code). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option).', + 'raw' => 'Fixed bug #72809 (Locale::lookup() wrong result with canonicalize option). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone).', + 'raw' => 'Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74264 (grapheme_strrpos() broken for negative offsets).', + 'raw' => 'Fixed bug #74264 (grapheme_strrpos() broken for negative offsets). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52093 (openssl_csr_sign truncates $serial).', + 'raw' => 'Fixed bug #52093 (openssl_csr_sign truncates $serial). (cmb)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81101 (PCRE2 10.37 shows unexpected result).', + 'raw' => 'Fixed bug #81101 (PCRE2 10.37 shows unexpected result). (Anatol)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81243 (Too much memory is allocated for preg_replace()).', + 'raw' => 'Fixed bug #81243 (Too much memory is allocated for preg_replace()). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81208 (Segmentation fault while create newInstance from attribute).', + 'raw' => 'Fixed bug #81208 (Segmentation fault while create newInstance from attribute). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81223 (flock() only locks first byte of file).', + 'raw' => 'Fixed bug #81223 (flock() only locks first byte of file). (cmb)', + ), + ), + ), + ), + '8.0.8' => + array ( + 'date' => '17 Jun 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81076 (incorrect debug info on Closures with implicit binds).', + 'raw' => 'Fixed bug #81076 (incorrect debug info on Closures with implicit binds). (krakjoe)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81068 (Double free in realpath_cache_clean()).', + 'raw' => 'Fixed bug #81068 (Double free in realpath_cache_clean()). (Dimitry Andric)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76359 (open_basedir bypass through adding "..").', + 'raw' => 'Fixed bug #76359 (open_basedir bypass through adding ".."). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81090 (Typed property performance degradation with .= operator).', + 'raw' => 'Fixed bug #81090 (Typed property performance degradation with .= operator). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81070 (Integer underflow in memory limit comparison).', + 'raw' => 'Fixed bug #81070 (Integer underflow in memory limit comparison). (Peter van Dommelen)', + ), + 5 => + array ( + 'message' => 'Fixed bug #81122: SSRF bypass in FILTER_VALIDATE_URL. (CVE-2021-21705)', + 'raw' => 'Fixed bug #81122: SSRF bypass in FILTER_VALIDATE_URL. (CVE-2021-21705) (cmb)', + ), + ), + 'bzip2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81092 (fflush before stream_filter_remove corrupts stream).', + 'raw' => 'Fixed bug #81092 (fflush before stream_filter_remove corrupts stream). (cmb)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80197 (implicit declaration of function \'magic_stream\' is invalid).', + 'raw' => 'Fixed bug #80197 (implicit declaration of function \'magic_stream\' is invalid). (Nikita)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81119 (GMP operators throw errors with wrong parameter names).', + 'raw' => 'Fixed bug #81119 (GMP operators throw errors with wrong parameter names). (Nikita)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80761 (PDO uses too much memory).', + 'raw' => 'Fixed bug #80761 (PDO uses too much memory). (Nikita)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81088 (error in regression test for oci_fetch_object() and oci_fetch_array()).', + 'raw' => 'Fixed bug #81088 (error in regression test for oci_fetch_object() and oci_fetch_array()). (Máté)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81051 (Broken property type handling after incrementing reference).', + 'raw' => 'Fixed bug #81051 (Broken property type handling after incrementing reference). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80968 (JIT segfault with return from required file).', + 'raw' => 'Fixed bug #80968 (JIT segfault with return from required file). (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76694 (native Windows cert verification uses CN as sever name).', + 'raw' => 'Fixed bug #76694 (native Windows cert verification uses CN as sever name). (cmb)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76448: Stack buffer overflow in firebird_info_cb. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76448: Stack buffer overflow in firebird_info_cb. (CVE-2021-21704) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76449: SIGSEGV in firebird_handle_doer. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76449: SIGSEGV in firebird_handle_doer. (CVE-2021-21704) (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76450: SIGSEGV in firebird_stmt_execute. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76450: SIGSEGV in firebird_stmt_execute. (CVE-2021-21704) (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #76452: Crash while parsing blob data in firebird_fetch_blob. (CVE-2021-21704)', + 'raw' => 'Fixed bug #76452: Crash while parsing blob data in firebird_fetch_blob. (CVE-2021-21704) (cmb)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72998 (invalid read in readline completion).', + 'raw' => 'Fixed bug #72998 (invalid read in readline completion). (krakjoe)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81048 (phpinfo(INFO_VARIABLES) "Array to string conversion").', + 'raw' => 'Fixed bug #81048 (phpinfo(INFO_VARIABLES) "Array to string conversion"). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77627 (method_exists on Closure::__invoke inconsistency).', + 'raw' => 'Fixed bug #77627 (method_exists on Closure::__invoke inconsistency). (krakjoe)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81120 (PGO data for main PHP DLL are not used).', + 'raw' => 'Fixed bug #81120 (PGO data for main PHP DLL are not used). (cmb)', + ), + ), + ), + ), + '8.0.7' => + array ( + 'date' => '03 Jun 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80960 (opendir() warning wrong info when failed on Windows).', + 'raw' => 'Fixed bug #80960 (opendir() warning wrong info when failed on Windows). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67792 (HTTP Authorization schemes are treated as case-sensitive).', + 'raw' => 'Fixed bug #67792 (HTTP Authorization schemes are treated as case-sensitive). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80972 (Memory exhaustion on invalid string offset).', + 'raw' => 'Fixed bug #80972 (Memory exhaustion on invalid string offset). (girgias)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65800 (Events port mechanism).', + 'raw' => 'Fixed bug #65800 (Events port mechanism). (psumbera)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80901 (Info leak in ftp extension).', + 'raw' => 'Fixed bug #80901 (Info leak in ftp extension). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79100 (Wrong FTP error messages).', + 'raw' => 'Fixed bug #79100 (Wrong FTP error messages). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81032 (GD install is affected by external libgd installation).', + 'raw' => 'Fixed bug #81032 (GD install is affected by external libgd installation). (Flavio Heleno, cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81019 (Unable to clone NumberFormatter after failed parse()).', + 'raw' => 'Fixed bug #81019 (Unable to clone NumberFormatter after failed parse()). (Nikita)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81011 (mb_convert_encoding removes references from arrays).', + 'raw' => 'Fixed bug #81011 (mb_convert_encoding removes references from arrays). (cmb)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80460 (ODBC doesn\'t account for SQL_NO_TOTAL indicator).', + 'raw' => 'Fixed bug #80460 (ODBC doesn\'t account for SQL_NO_TOTAL indicator). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81007 (JIT "not supported" on 32-bit x86 -- build problem?).', + 'raw' => 'Fixed bug #81007 (JIT "not supported" on 32-bit x86 -- build problem?). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81015 (Opcache optimization assumes wrong part of ternary operator in if-condition).', + 'raw' => 'Fixed bug #81015 (Opcache optimization assumes wrong part of ternary operator in if-condition). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81046 (Literal compaction merges non-equal related literals).', + 'raw' => 'Fixed bug #81046 (Literal compaction merges non-equal related literals). (Nikita)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81037 (PDO discards error message text from prepared statement).', + 'raw' => 'Fixed bug #81037 (PDO discards error message text from prepared statement). (Kamil Tekiela)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #44643 (bound parameters ignore explicit type definitions).', + 'raw' => 'Fixed bug #44643 (bound parameters ignore explicit type definitions). (cmb)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed php_pgsql_fd_cast() wrt. php_stream_can_cast().', + 'raw' => 'Fixed php_pgsql_fd_cast() wrt. php_stream_can_cast(). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80933 (SplFileObject::DROP_NEW_LINE is broken for NUL and CR).', + 'raw' => 'Fixed bug #80933 (SplFileObject::DROP_NEW_LINE is broken for NUL and CR). (cmb, Nikita)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73246 (XMLReader: encoding length not checked).', + 'raw' => 'Fixed bug #73246 (XMLReader: encoding length not checked). (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80863 (ZipArchive::extractTo() ignores references).', + 'raw' => 'Fixed bug #80863 (ZipArchive::extractTo() ignores references). (cmb)', + ), + ), + ), + ), + '8.0.6' => + array ( + 'date' => '06 May 2021', + 'modules' => + array ( + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Revert "Fixed bug #80892 " from PHP 8.0.5.', + 'raw' => 'Revert "Fixed bug #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR)" from PHP 8.0.5.', + ), + ), + ), + ), + '8.0.5' => + array ( + 'date' => '29 Apr 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Changed PowerPC CPU registers used by Zend VM to work around GCC bug. Old registers (r28/r29) might be clobbered by _restgpr routine used for return from C function compiled with -Os.', + 'raw' => 'Changed PowerPC CPU registers used by Zend VM to work around GCC bug. Old registers (r28/r29) might be clobbered by _restgpr routine used for return from C function compiled with -Os. (Dmitry)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66783 (UAF when appending DOMDocument to element).', + 'raw' => 'Fixed bug #66783 (UAF when appending DOMDocument to element). (cmb)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80847 (CData structs with fields of type struct can\'t be passed as C function argument).', + 'raw' => 'Fixed bug #80847 (CData structs with fields of type struct can\'t be passed as C function argument). (Nickolas Daniel da Silva, Dmitry)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80024 (Duplication of info about inherited socket after pool removing).', + 'raw' => 'Fixed bug #80024 (Duplication of info about inherited socket after pool removing). (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80880 (SSL_read on shutdown, ftp/proc_open).', + 'raw' => 'Fixed bug #80880 (SSL_read on shutdown, ftp/proc_open). (cmb, Jakub Zelenka)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80710 (imap_mail_compose() header injection).', + 'raw' => 'Fixed bug #80710 (imap_mail_compose() header injection). (cmb, Stas)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73533 (Invalid memory access in php_libxml_xmlCheckUTF8).', + 'raw' => 'Fixed bug #73533 (Invalid memory access in php_libxml_xmlCheckUTF8). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80839 (PHP problem with JIT).', + 'raw' => 'Fixed bug #80839 (PHP problem with JIT). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80861 (erronous array key overflow in 2D array with JIT).', + 'raw' => 'Fixed bug #80861 (erronous array key overflow in 2D array with JIT). (Dmitry)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79812 (Potential integer overflow in pcntl_exec()).', + 'raw' => 'Fixed bug #79812 (Potential integer overflow in pcntl_exec()). (cmb)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80783 (PDO ODBC truncates BLOB records at every 256th byte).', + 'raw' => 'Fixed bug #80783 (PDO ODBC truncates BLOB records at every 256th byte). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR).', + 'raw' => 'Fixed bug #80892 (PDO::PARAM_INT is treated the same as PDO::PARAM_STR). (Matteo)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80889 (Cannot set save handler when save_handler is invalid).', + 'raw' => 'Fixed bug #80889 (Cannot set save handler when save_handler is invalid). (cmb)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69668 (SOAP special XML characters in namespace URIs not encoded).', + 'raw' => 'Fixed bug #69668 (SOAP special XML characters in namespace URIs not encoded). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80915 (Taking a reference to $_SERVER hides its values from phpinfo()).', + 'raw' => 'Fixed bug #80915 (Taking a reference to $_SERVER hides its values from phpinfo()). (Rowan Tommins)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80914 (\'getdir\' accidentally defined as an alias of \'dir\').', + 'raw' => 'Fixed bug #80914 (\'getdir\' accidentally defined as an alias of \'dir\'). (Rowan Tommins)', + ), + ), + ), + ), + '8.0.4' => + array ( + 'date' => '01 Apr 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75776 (Flushing streams with compression filter is broken).', + 'raw' => 'Fixed bug #75776 (Flushing streams with compression filter is broken). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80811 (Function exec without $output but with $restult_code parameter crashes).', + 'raw' => 'Fixed bug #80811 (Function exec without $output but with $restult_code parameter crashes). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80814 (threaded mod_php won\'t load on FreeBSD: No space available for static Thread Local Storage).', + 'raw' => 'Fixed bug #80814 (threaded mod_php won\'t load on FreeBSD: No space available for static Thread Local Storage). (Dmitry)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80817 (dba_popen() may cause segfault during RSHUTDOWN).', + 'raw' => 'Fixed bug #80817 (dba_popen() may cause segfault during RSHUTDOWN). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80800 (imap_open() fails when the flags parameter includes CL_EXPUNGE).', + 'raw' => 'Fixed bug #80800 (imap_open() fails when the flags parameter includes CL_EXPUNGE). (girgias)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80763 (msgfmt_format() does not accept DateTime references).', + 'raw' => 'Fixed bug #80763 (msgfmt_format() does not accept DateTime references). (cmb)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51903 (simplexml_load_file() doesn\'t use HTTP headers).', + 'raw' => 'Fixed bug #51903 (simplexml_load_file() doesn\'t use HTTP headers). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80837 (Calling stmt_store_result after fetch doesn\'t throw an error).', + 'raw' => 'Fixed bug #80837 (Calling stmt_store_result after fetch doesn\'t throw an error). (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80786 (PHP crash using JIT).', + 'raw' => 'Fixed bug #80786 (PHP crash using JIT). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80782 (DASM_S_RANGE_VREG on PHP_INT_MIN-1).', + 'raw' => 'Fixed bug #80782 (DASM_S_RANGE_VREG on PHP_INT_MIN-1). (Dmitry)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80866 (preg_split ignores limit flag when pattern with \\K has 0-width fullstring match).', + 'raw' => 'Fixed bug #80866 (preg_split ignores limit flag when pattern with \\K has 0-width fullstring match). (Kamil Tekiela)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80774 (session_name() problem with backslash).', + 'raw' => 'Fixed bug #80774 (session_name() problem with backslash). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80771 (phpinfo(INFO_CREDITS) displays nothing in CLI).', + 'raw' => 'Fixed bug #80771 (phpinfo(INFO_CREDITS) displays nothing in CLI). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78719 (http wrapper silently ignores long Location headers).', + 'raw' => 'Fixed bug #78719 (http wrapper silently ignores long Location headers). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80838 (HTTP wrapper waits for HTTP 1 response after HTTP 101).', + 'raw' => 'Fixed bug #80838 (HTTP wrapper waits for HTTP 1 response after HTTP 101). (manuelm)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80825 (ZipArchive::isCompressionMethodSupported does not exist).', + 'raw' => 'Fixed bug #80825 (ZipArchive::isCompressionMethodSupported does not exist). (cmb)', + ), + ), + ), + ), + '8.0.3' => + array ( + 'date' => '18 Feb 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed #80706 (mail(): Headers after Bcc headers may be ignored).', + 'raw' => 'Fixed #80706 (mail(): Headers after Bcc headers may be ignored). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80600 (DOMChildNode::remove() doesn\'t work on CharacterData nodes).', + 'raw' => 'Fixed bug #80600 (DOMChildNode::remove() doesn\'t work on CharacterData nodes). (beberlei)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #53251 (bindtextdomain with null dir doesn\'t return old value).', + 'raw' => 'Fixed bug #53251 (bindtextdomain with null dir doesn\'t return old value). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #78680 (mysqlnd\'s mysql_clear_password does not transmit null-terminated password).', + 'raw' => 'Fixed bug #78680 (mysqlnd\'s mysql_clear_password does not transmit null-terminated password). (Daniel Black)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80713 (SegFault when disabling ATTR_EMULATE_PREPARES and MySQL 8.0).', + 'raw' => 'Fixed bug #80713 (SegFault when disabling ATTR_EMULATE_PREPARES and MySQL 8.0). (Nikita)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74779 (x() and y() truncating floats to integers).', + 'raw' => 'Fixed bug #74779 (x() and y() truncating floats to integers). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80634 (write_property handler of internal classes is skipped on preloaded JITted code).', + 'raw' => 'Fixed bug #80634 (write_property handler of internal classes is skipped on preloaded JITted code). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80682 (opcache doesn\'t honour pcre.jit option).', + 'raw' => 'Fixed bug #80682 (opcache doesn\'t honour pcre.jit option). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80742 (Opcache JIT makes some boolean logic unexpectedly be true).', + 'raw' => 'Fixed bug #80742 (Opcache JIT makes some boolean logic unexpectedly be true). (Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80745 (JIT produces Assert failure and UNKNOWN:0 var_dumps in code involving bitshifts).', + 'raw' => 'Fixed bug #80745 (JIT produces Assert failure and UNKNOWN:0 var_dumps in code involving bitshifts). (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80747 (Providing RSA key size < 512 generates key that crash PHP).', + 'raw' => 'Fixed bug #80747 (Providing RSA key size < 512 generates key that crash PHP). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75850 (Unclear error message wrt. __halt_compiler() w/o semicolon)', + 'raw' => 'Fixed bug #75850 (Unclear error message wrt. __halt_compiler() w/o semicolon) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70091 (Phar does not mark UTF-8 filenames in ZIP archives).', + 'raw' => 'Fixed bug #70091 (Phar does not mark UTF-8 filenames in ZIP archives). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #53467 (Phar cannot compress large archives).', + 'raw' => 'Fixed bug #53467 (Phar cannot compress large archives). (cmb, lserni)', + ), + ), + 'socket' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80723 (Different sockets compare as equal (regression in 8.0)).', + 'raw' => 'Fixed bug #80723 (Different sockets compare as equal (regression in 8.0)). (Nikita)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug#80719 (Iterating after failed ArrayObject::setIteratorClass() causes Segmentation fault).', + 'raw' => 'Fixed bug#80719 (Iterating after failed ArrayObject::setIteratorClass() causes Segmentation fault). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80654 (file_get_contents() maxlen fails above (2**31)-1 bytes).', + 'raw' => 'Fixed bug #80654 (file_get_contents() maxlen fails above (2**31)-1 bytes). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80718 (ext/standard/dl.c fallback code path with syntax error).', + 'raw' => 'Fixed bug #80718 (ext/standard/dl.c fallback code path with syntax error). (Nikita)', + ), + ), + ), + ), + '8.0.2' => + array ( + 'date' => '21 Jan 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80523 (bogus parse error on >4GB source code).', + 'raw' => 'Fixed bug #80523 (bogus parse error on >4GB source code). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80384 (filter buffers entire read until file closed).', + 'raw' => 'Fixed bug #80384 (filter buffers entire read until file closed). (Adam Seitz, cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80596 (Invalid union type TypeError in anonymous classes).', + 'raw' => 'Fixed bug #80596 (Invalid union type TypeError in anonymous classes). (Daniil Gentili)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80617 (GCC throws warning about type narrowing in ZEND_TYPE_INIT_CODE).', + 'raw' => 'Fixed bug #80617 (GCC throws warning about type narrowing in ZEND_TYPE_INIT_CODE). (Nikita)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80545 (bcadd(\'a\', \'a\') doesn\'t throw an exception).', + 'raw' => 'Fixed bug #80545 (bcadd(\'a\', \'a\') doesn\'t throw an exception). (Jens de Nies)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80595 (Resetting POSTFIELDS to empty array breaks request).', + 'raw' => 'Fixed bug #80595 (Resetting POSTFIELDS to empty array breaks request). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80376 (last day of the month causes runway cpu usage).', + 'raw' => 'Fixed bug #80376 (last day of the month causes runway cpu usage). (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80537 (Wrong parameter type in DOMElement::removeAttributeNode stub).', + 'raw' => 'Fixed bug #80537 (Wrong parameter type in DOMElement::removeAttributeNode stub). (Nikita)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80584 (0x and 0X are considered valid hex numbers by filter_var()).', + 'raw' => 'Fixed bug #80584 (0x and 0X are considered valid hex numbers by filter_var()). (girgias)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80560 (Strings containing only a base prefix return 0 object).', + 'raw' => 'Fixed bug #80560 (Strings containing only a base prefix return 0 object). (girgias)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80644 (Missing resource causes subsequent get() calls to fail).', + 'raw' => 'Fixed bug #80644 (Missing resource causes subsequent get() calls to fail). (Nikita)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to interpret bit columns).', + 'raw' => 'Fixed bug #67983 (mysqlnd with MYSQLI_OPT_INT_AND_FLOAT_NATIVE fails to interpret bit columns). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64638 (Fetching resultsets from stored procedure with cursor fails).', + 'raw' => 'Fixed bug #64638 (Fetching resultsets from stored procedure with cursor fails). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #72862 (segfault using prepared statements on stored procedures that use a cursor).', + 'raw' => 'Fixed bug #72862 (segfault using prepared statements on stored procedures that use a cursor). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77935 (Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor).', + 'raw' => 'Fixed bug #77935 (Crash in mysqlnd_fetch_stmt_row_cursor when calling an SP with a cursor). (Nikita)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80592 (all floats are the same in ODBC parameters).', + 'raw' => 'Fixed bug #80592 (all floats are the same in ODBC parameters). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80422 (php_opcache.dll crashes when using Apache 2.4 with JIT).', + 'raw' => 'Fixed bug #80422 (php_opcache.dll crashes when using Apache 2.4 with JIT). (Dmitry)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80521 (Parameters with underscores no longer recognized).', + 'raw' => 'Fixed bug #80521 (Parameters with underscores no longer recognized). (cmb, Simonov Denis)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76929 (zip-based phar does not respect phar.require_hash).', + 'raw' => 'Fixed bug #76929 (zip-based phar does not respect phar.require_hash). (david at bamsoftware, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77565 (Incorrect locator detection in ZIP-based phars).', + 'raw' => 'Fixed bug #77565 (Incorrect locator detection in ZIP-based phars). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69279 (Compressed ZIP Phar extractTo() creates garbage files).', + 'raw' => 'Fixed bug #69279 (Compressed ZIP Phar extractTo() creates garbage files). (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Reverted fix for bug #76813 (Access violation near NULL on source operand).', + 'raw' => 'Reverted fix for bug #76813 (Access violation near NULL on source operand). (cmb)', + ), + ), + ), + ), + '8.0.1' => + array ( + 'date' => '07 Jan 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80345 (PHPIZE configuration has outdated PHP_RELEASE_VERSION).', + 'raw' => 'Fixed bug #80345 (PHPIZE configuration has outdated PHP_RELEASE_VERSION). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72964 (White space not unfolded for CC/Bcc headers).', + 'raw' => 'Fixed bug #72964 (White space not unfolded for CC/Bcc headers). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80391 (Iterable not covariant to mixed).', + 'raw' => 'Fixed bug #80391 (Iterable not covariant to mixed). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80393 (Build of PHP extension fails due to configuration gap with libtool).', + 'raw' => 'Fixed bug #80393 (Build of PHP extension fails due to configuration gap with libtool). (kir dot morozov at gmail dot com)', + ), + 4 => + array ( + 'message' => 'Fixed bug #77069 (stream filter loses final block of data).', + 'raw' => 'Fixed bug #77069 (stream filter loses final block of data). (cmb)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77961 (finfo_open crafted magic parsing SIGABRT).', + 'raw' => 'Fixed bug #77961 (finfo_open crafted magic parsing SIGABRT). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69625 (FPM returns 200 status on request without SCRIPT_FILENAME env).', + 'raw' => 'Fixed bug #69625 (FPM returns 200 status on request without SCRIPT_FILENAME env). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80438 (imap_msgno() incorrectly warns and return false on valid UIDs in PHP 8.0.0).', + 'raw' => 'Fixed bug #80438 (imap_msgno() incorrectly warns and return false on valid UIDs in PHP 8.0.0). (girgias)', + ), + 2 => + array ( + 'message' => 'Fix a regression with valid UIDs in imap_savebody()', + 'raw' => 'Fix a regression with valid UIDs in imap_savebody() (girgias)', + ), + 3 => + array ( + 'message' => 'Make warnings for invalid message numbers/UIDs between functions consistent', + 'raw' => 'Make warnings for invalid message numbers/UIDs between functions consistent (girgias)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80425 (MessageFormatAdapter::getArgTypeList redefined).', + 'raw' => 'Fixed bug #80425 (MessageFormatAdapter::getArgTypeList redefined). (Nikita)', + ), + 1 => + array ( + 'message' => 'Create Windows DLLs for Oracle Client 19c.', + 'raw' => 'Create Windows DLLs for Oracle Client 19c. (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80404 (Incorrect range inference result when division results in float).', + 'raw' => 'Fixed bug #80404 (Incorrect range inference result when division results in float). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80377 (Opcache misses executor_globals).', + 'raw' => 'Fixed bug #80377 (Opcache misses executor_globals). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80433 (Unable to disable the use of the AVX command when using JIT).', + 'raw' => 'Fixed bug #80433 (Unable to disable the use of the AVX command when using JIT). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80447 (Strange out of memory error when running with JIT).', + 'raw' => 'Fixed bug #80447 (Strange out of memory error when running with JIT). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80480 (Segmentation fault with JIT enabled).', + 'raw' => 'Fixed bug #80480 (Segmentation fault with JIT enabled). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80506 (Immediate SIGSEGV upon ini_set("opcache.jit_debug", 1)).', + 'raw' => 'Fixed bug #80506 (Immediate SIGSEGV upon ini_set("opcache.jit_debug", 1)). (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80368 (OpenSSL extension fails to build against LibreSSL due to lack of OCB support).', + 'raw' => 'Fixed bug #80368 (OpenSSL extension fails to build against LibreSSL due to lack of OCB support). (Nikita)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80458 (PDOStatement::fetchAll() throws for upsert queries).', + 'raw' => 'Fixed bug #80458 (PDOStatement::fetchAll() throws for upsert queries). (Kamil Tekiela)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63185 (nextRowset() ignores MySQL errors with native prepared statements).', + 'raw' => 'Fixed bug #63185 (nextRowset() ignores MySQL errors with native prepared statements). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #78152 (PDO::exec() - Bad error handling with multiple commands).', + 'raw' => 'Fixed bug #78152 (PDO::exec() - Bad error handling with multiple commands). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #66878 (Multiple rowsets not returned unless PDO statement object is unset()).', + 'raw' => 'Fixed bug #66878 (Multiple rowsets not returned unless PDO statement object is unset()). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #70066 (Unexpected "Cannot execute queries while other unbuffered queries").', + 'raw' => 'Fixed bug #70066 (Unexpected "Cannot execute queries while other unbuffered queries"). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #71145 (Multiple statements in init command triggers unbuffered query error).', + 'raw' => 'Fixed bug #71145 (Multiple statements in init command triggers unbuffered query error). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #76815 (PDOStatement cannot be GCed/closeCursor-ed when a PROCEDURE resultset SIGNAL).', + 'raw' => 'Fixed bug #76815 (PDOStatement cannot be GCed/closeCursor-ed when a PROCEDURE resultset SIGNAL). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #79872 (Can\'t execute query with pending result sets).', + 'raw' => 'Fixed bug #79872 (Can\'t execute query with pending result sets). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #79131 (PDO does not throw an exception when parameter values are missing).', + 'raw' => 'Fixed bug #79131 (PDO does not throw an exception when parameter values are missing). (Nikita)', + ), + 9 => + array ( + 'message' => 'Fixed bug #72368 (PdoStatement->execute() fails but does not throw an exception).', + 'raw' => 'Fixed bug #72368 (PdoStatement->execute() fails but does not throw an exception). (Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #62889 (LOAD DATA INFILE broken).', + 'raw' => 'Fixed bug #62889 (LOAD DATA INFILE broken). (Nikita)', + ), + 11 => + array ( + 'message' => 'Fixed bug #67004 (Executing PDOStatement::fetch() more than once prevents releasing resultset).', + 'raw' => 'Fixed bug #67004 (Executing PDOStatement::fetch() more than once prevents releasing resultset). (Nikita)', + ), + 12 => + array ( + 'message' => 'Fixed bug #79132 (PDO re-uses parameter values from earlier calls to execute()).', + 'raw' => 'Fixed bug #79132 (PDO re-uses parameter values from earlier calls to execute()). (Nikita)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73809 (Phar Zip parse crash - mmap fail).', + 'raw' => 'Fixed bug #73809 (Phar Zip parse crash - mmap fail). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75102 (`PharData` says invalid checksum for valid tar).', + 'raw' => 'Fixed bug #75102 (`PharData` says invalid checksum for valid tar). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77322 (PharData::addEmptyDir(\'/\') Possible integer overflow).', + 'raw' => 'Fixed bug #77322 (PharData::addEmptyDir(\'/\') Possible integer overflow). (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76813 (Access violation near NULL on source operand).', + 'raw' => 'Fixed bug #76813 (Access violation near NULL on source operand). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed #62004 (SplFileObject: fgets after seek returns wrong line).', + 'raw' => 'Fixed #62004 (SplFileObject: fgets after seek returns wrong line). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77423 (FILTER_VALIDATE_URL accepts URLs with invalid userinfo). (CVE-2020-7071)', + 'raw' => 'Fixed bug #77423 (FILTER_VALIDATE_URL accepts URLs with invalid userinfo). (CVE-2020-7071) (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80366 (Return Value of zend_fstat() not Checked).', + 'raw' => 'Fixed bug #80366 (Return Value of zend_fstat() not Checked). (sagpant, cmb)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77594 (ob_tidyhandler is never reset).', + 'raw' => 'Fixed bug #77594 (ob_tidyhandler is never reset). (cmb)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80462 (Nullsafe operator tokenize with TOKEN_PARSE flag fails).', + 'raw' => 'Fixed bug #80462 (Nullsafe operator tokenize with TOKEN_PARSE flag fails). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'XmlParser opaque object renamed to XMLParser for consistency with other XML objects.', + 'raw' => 'XmlParser opaque object renamed to XMLParser for consistency with other XML objects. (girgias)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed #48725 (Support for flushing in zlib stream).', + 'raw' => 'Fixed #48725 (Support for flushing in zlib stream). (cmb)', + ), + ), + ), + ), + '8.0.0' => + array ( + 'date' => '26 Nov 2020', + 'modules' => + array ( + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71263 (fread() does not report bzip2.decompress errors).', + 'raw' => 'Fixed bug #71263 (fread() does not report bzip2.decompress errors). (cmb)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Allow debug server binding to an ephemeral port via `-S localhost:0`.', + 'raw' => 'Allow debug server binding to an ephemeral port via `-S localhost:0`. (Sara)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55847 (DOTNET .NET 4.0 GAC new location).', + 'raw' => 'Fixed bug #55847 (DOTNET .NET 4.0 GAC new location). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62474 (com_event_sink crashes on certain arguments).', + 'raw' => 'Fixed bug #62474 (com_event_sink crashes on certain arguments). (cmb)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing).', + 'raw' => 'Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing). (Andy Postnikov)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #36365 (scandir duplicates file name at every 65535th file).', + 'raw' => 'Fixed bug #36365 (scandir duplicates file name at every 65535th file). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #49555 (Fatal error "Function must be a string" message should be renamed).', + 'raw' => 'Fixed bug #49555 (Fatal error "Function must be a string" message should be renamed). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #62294 (register_shutdown_function() does not correctly handle exit code).', + 'raw' => 'Fixed bug #62294 (register_shutdown_function() does not correctly handle exit code). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #62609 (Allow implementing Traversable on abstract classes).', + 'raw' => 'Fixed bug #62609 (Allow implementing Traversable on abstract classes). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #65274 (Enhance undefined class constant error with class name).', + 'raw' => 'Fixed bug #65274 (Enhance undefined class constant error with class name). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #65275 (Calling exit() in a shutdown function does not change the exit value in CLI).', + 'raw' => 'Fixed bug #65275 (Calling exit() in a shutdown function does not change the exit value in CLI). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69084 (Unclear error message when not implementing a renamed abstract trait function).', + 'raw' => 'Fixed bug #69084 (Unclear error message when not implementing a renamed abstract trait function). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #70839 (Converting optional argument to variadic forbidden by LSP checks).', + 'raw' => 'Fixed bug #70839 (Converting optional argument to variadic forbidden by LSP checks). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #74558 (Can\'t rebind closure returned by Closure::fromCallable()).', + 'raw' => 'Fixed bug #74558 (Can\'t rebind closure returned by Closure::fromCallable()). (cmb)', + ), + 9 => + array ( + 'message' => 'Fixed bug #77561 (Shebang line not stripped for non-primary script).', + 'raw' => 'Fixed bug #77561 (Shebang line not stripped for non-primary script). (Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #77619 (Wrong reflection on MultipleIterator::__construct).', + 'raw' => 'Fixed bug #77619 (Wrong reflection on MultipleIterator::__construct). (Fabien Villepinte)', + ), + 11 => + array ( + 'message' => 'Fixed bug #77966 (Cannot alias a method named "namespace").', + 'raw' => 'Fixed bug #77966 (Cannot alias a method named "namespace"). (Nikita)', + ), + 12 => + array ( + 'message' => 'Fixed bug #78236 (convert error on receiving variables when duplicate [).', + 'raw' => 'Fixed bug #78236 (convert error on receiving variables when duplicate [). (cmb)', + ), + 13 => + array ( + 'message' => 'Fixed bug #78770 (Incorrect callability check inside internal methods).', + 'raw' => 'Fixed bug #78770 (Incorrect callability check inside internal methods). (Nikita)', + ), + 14 => + array ( + 'message' => 'Fixed bug #79108 (Referencing argument in a function makes it a reference in the stack trace).', + 'raw' => 'Fixed bug #79108 (Referencing argument in a function makes it a reference in the stack trace). (Nikita)', + ), + 15 => + array ( + 'message' => 'Fixed bug #79368 ("Unexpected end of file" is not an acceptable error message).', + 'raw' => 'Fixed bug #79368 ("Unexpected end of file" is not an acceptable error message). (Alex Dowad)', + ), + 16 => + array ( + 'message' => 'Fixed bug #79462 (method_exists and property_exists incoherent behavior).', + 'raw' => 'Fixed bug #79462 (method_exists and property_exists incoherent behavior). (cmb)', + ), + 17 => + array ( + 'message' => 'Fixed bug #79467 (data:// wrappers are writable).', + 'raw' => 'Fixed bug #79467 (data:// wrappers are writable). (cmb)', + ), + 18 => + array ( + 'message' => 'Fixed bug #79521 (Check __set_state structure).', + 'raw' => 'Fixed bug #79521 (Check __set_state structure). (carusogabriel)', + ), + 19 => + array ( + 'message' => 'Fixed bug #79790 ("Illegal offset type" exception during AST evaluation not handled properly).', + 'raw' => 'Fixed bug #79790 ("Illegal offset type" exception during AST evaluation not handled properly). (Nikita)', + ), + 20 => + array ( + 'message' => 'Fixed bug #79791 (Assertion failure when unsetting variable during binary op).', + 'raw' => 'Fixed bug #79791 (Assertion failure when unsetting variable during binary op). (Nikita)', + ), + 21 => + array ( + 'message' => 'Fixed bug #79828 (Segfault when trying to access non-existing variable).', + 'raw' => 'Fixed bug #79828 (Segfault when trying to access non-existing variable). (Nikita)', + ), + 22 => + array ( + 'message' => 'Fixed bug #79841 (Syntax error in configure / unescaped "[]" in php.m4).', + 'raw' => 'Fixed bug #79841 (Syntax error in configure / unescaped "[]" in php.m4). (Nikita)', + ), + 23 => + array ( + 'message' => 'Fixed bug #79852 (count(DOMNodeList) doesn\'t match count(IteratorIterator(DOMNodeList))).', + 'raw' => 'Fixed bug #79852 (count(DOMNodeList) doesn\'t match count(IteratorIterator(DOMNodeList))). (Nikita)', + ), + 24 => + array ( + 'message' => 'Fixed bug #79867 (Promoted untyped properties should get null default value).', + 'raw' => 'Fixed bug #79867 (Promoted untyped properties should get null default value). (Nikita)', + ), + 25 => + array ( + 'message' => 'Fixed bug #79897 (Promoted constructor params with attribs cause crash).', + 'raw' => 'Fixed bug #79897 (Promoted constructor params with attribs cause crash). (Deus Kane)', + ), + 26 => + array ( + 'message' => 'Fixed bug #79927 (Generator doesn\'t throw exception after multiple yield from iterable).', + 'raw' => 'Fixed bug #79927 (Generator doesn\'t throw exception after multiple yield from iterable). (Nikita)', + ), + 27 => + array ( + 'message' => 'Fixed bug #79946 (Build fails due to undeclared UINT32_C).', + 'raw' => 'Fixed bug #79946 (Build fails due to undeclared UINT32_C). (Nikita)', + ), + 28 => + array ( + 'message' => 'Fixed bug #79948 (Exit in auto-prepended file does not abort PHP execution).', + 'raw' => 'Fixed bug #79948 (Exit in auto-prepended file does not abort PHP execution). (Nikita)', + ), + 29 => + array ( + 'message' => 'Fixed bug #80045 (memleak after two set_exception_handler calls with __call).', + 'raw' => 'Fixed bug #80045 (memleak after two set_exception_handler calls with __call). (Nikita)', + ), + 30 => + array ( + 'message' => 'Fixed bug #80096 (Segmentation fault with named arguments in nested call).', + 'raw' => 'Fixed bug #80096 (Segmentation fault with named arguments in nested call). (Nikita)', + ), + 31 => + array ( + 'message' => 'Fixed bug #80109 (Cannot skip arguments when extended debug is enabled).', + 'raw' => 'Fixed bug #80109 (Cannot skip arguments when extended debug is enabled). (Nikita)', + ), + 32 => + array ( + 'message' => 'Fixed bug #80225 (broken namespace usage in eval code).', + 'raw' => 'Fixed bug #80225 (broken namespace usage in eval code). (Nikita)', + ), + 33 => + array ( + 'message' => 'Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors).', + 'raw' => 'Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors). (cmb)', + ), + 34 => + array ( + 'message' => 'Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date).', + 'raw' => 'Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date). (cmb)', + ), + 35 => + array ( + 'message' => 'Fixed bug #80334 (assert() vs named parameters - confusing error).', + 'raw' => 'Fixed bug #80334 (assert() vs named parameters - confusing error). (Nikita)', + ), + 36 => + array ( + 'message' => 'Fixed bug #80055 (Abstract trait methods returning "self" cannot be fulfilled by traits).', + 'raw' => 'Fixed bug #80055 (Abstract trait methods returning "self" cannot be fulfilled by traits). (Nikita)', + ), + 37 => + array ( + 'message' => 'Fixed faulty generator cleanup with yield from.', + 'raw' => 'Fixed faulty generator cleanup with yield from. (Bob)', + ), + 38 => + array ( + 'message' => 'Implement #[Attr] Attribute syntax as per final vote in RFC https://wiki.php.net/rfc/shorter_attribute_syntax_change', + 'raw' => 'Implement #[Attr] Attribute syntax as per final vote in RFC https://wiki.php.net/rfc/shorter_attribute_syntax_change', + ), + 39 => + array ( + 'message' => 'Implemented FR #47074 (phpinfo() reports "On" as 1 for the some extensions).', + 'raw' => 'Implemented FR #47074 (phpinfo() reports "On" as 1 for the some extensions). (cmb)', + ), + 40 => + array ( + 'message' => 'Implemented FR #72089 (require() throws fatal error instead of exception).', + 'raw' => 'Implemented FR #72089 (require() throws fatal error instead of exception). (Nikita)', + ), + 41 => + array ( + 'message' => 'Removed the pdo_odbc.db2_instance_name php.ini directive.', + 'raw' => 'Removed the pdo_odbc.db2_instance_name php.ini directive. (Kalle)', + ), + 42 => + array ( + 'message' => 'Use SSE2 instructions do locale independent strtolower.', + 'raw' => 'Use SSE2 instructions do locale independent strtolower. (Laruence)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Bumped required libcurl version to 7.29.0.', + 'raw' => 'Bumped required libcurl version to 7.29.0. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80121 (Null pointer deref if CurlHandle directly instantiated).', + 'raw' => 'Fixed bug #80121 (Null pointer deref if CurlHandle directly instantiated). (Nikita)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Add property DOMXPath::$registerNodeNamespaces and constructor argument that allow global flag to configure query() or evaluate() calls.', + 'raw' => 'Add property DOMXPath::$registerNodeNamespaces and constructor argument that allow global flag to configure query() or evaluate() calls.', + ), + 1 => + array ( + 'message' => 'Fixed bug #79968 (DOMChildNode API crash on unattached nodes).', + 'raw' => 'Fixed bug #79968 (DOMChildNode API crash on unattached nodes). (Benjamin)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80268 (loadHTML() truncates at NUL bytes).', + 'raw' => 'Fixed bug #80268 (loadHTML() truncates at NUL bytes). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60302 (DateTime::createFromFormat should new static(), not new self()).', + 'raw' => 'Fixed bug #60302 (DateTime::createFromFormat should new static(), not new self()). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65547 (Default value for sunrise/sunset zenith still wrong).', + 'raw' => 'Fixed bug #65547 (Default value for sunrise/sunset zenith still wrong). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69044 (discrepancy between time and microtime).', + 'raw' => 'Fixed bug #69044 (discrepancy between time and microtime). (krakjoe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80057 (DateTimeImmutable::createFromFormat() does not populate time).', + 'raw' => 'Fixed bug #80057 (DateTimeImmutable::createFromFormat() does not populate time). (Derick)', + ), + 4 => + array ( + 'message' => 'Implemented FR #79903 (datetime: new format "p", same as "P" but returning "Z" for UTC).', + 'raw' => 'Implemented FR #79903 (datetime: new format "p", same as "P" but returning "Z" for UTC). (gharlan)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Add LIBENCHANT_VERSION macro.', + 'raw' => 'Add LIBENCHANT_VERSION macro.', + ), + 1 => + array ( + 'message' => 'Add enchant_dict_add and enchant_dict_is_added functions.', + 'raw' => 'Add enchant_dict_add and enchant_dict_is_added functions.', + ), + 2 => + array ( + 'message' => 'Deprecate enchant_broker_set_dict_path, enchant_broker_get_dict_path, enchant_dict_add_to_personal and enchant_dict_is_in_session.', + 'raw' => 'Deprecate enchant_broker_set_dict_path, enchant_broker_get_dict_path, enchant_dict_add_to_personal and enchant_dict_is_in_session.', + ), + 3 => + array ( + 'message' => 'Use libenchant-2 when available.', + 'raw' => 'Use libenchant-2 when available.', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Added FFI\\CType::getName() method.', + 'raw' => 'Added FFI\\CType::getName() method. (chopins)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79177 (FFI doesn\'t handle well PHP exceptions within callback).', + 'raw' => 'Fixed bug #79177 (FFI doesn\'t handle well PHP exceptions within callback). (cmb, Dmitry, Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79749 (Converting FFI instances to bool fails).', + 'raw' => 'Fixed bug #79749 (Converting FFI instances to bool fails). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Add pm.status_listen option.', + 'raw' => 'Add pm.status_listen option. (Jakub Zelenka)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Upgrade to libmagic 5.39.', + 'raw' => 'Upgrade to libmagic 5.39. (Anatol)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Added imagegetinterpolation().', + 'raw' => 'Added imagegetinterpolation(). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #55005 (imagepolygon num_points requirement).', + 'raw' => 'Fixed bug #55005 (imagepolygon num_points requirement). (cmb)', + ), + 2 => + array ( + 'message' => 'Made the $num_points parameter of php_imagepolygon optional.', + 'raw' => 'Made the $num_points parameter of php_imagepolygon optional. (cmb)', + ), + 3 => + array ( + 'message' => 'Removed deprecated image2wbmp().', + 'raw' => 'Removed deprecated image2wbmp(). (cmb)', + ), + 4 => + array ( + 'message' => 'Removed deprecated png2wbmp() and jpeg2wbmp().', + 'raw' => 'Removed deprecated png2wbmp() and jpeg2wbmp(). (cmb)', + ), + 5 => + array ( + 'message' => 'Replaced gd resources with objects.', + 'raw' => 'Replaced gd resources with objects. (Mark Randall)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64076 (imap_sort() does not return FALSE on failure).', + 'raw' => 'Fixed bug #64076 (imap_sort() does not return FALSE on failure). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76618 (segfault on imap_reopen).', + 'raw' => 'Fixed bug #76618 (segfault on imap_reopen). (girgias)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies).', + 'raw' => 'Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80215 (imap_mail_compose() may modify by-val parameters).', + 'raw' => 'Fixed bug #80215 (imap_mail_compose() may modify by-val parameters). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80216 (imap_mail_compose() does not validate types/encodings).', + 'raw' => 'Fixed bug #80216 (imap_mail_compose() does not validate types/encodings). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80220 (imap_mail_compose() may leak memory).', + 'raw' => 'Fixed bug #80220 (imap_mail_compose() may leak memory). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies).', + 'raw' => 'Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #80226 (imap_sort() leaks sortpgm memory).', + 'raw' => 'Fixed bug #80226 (imap_sort() leaks sortpgm memory). (cmb)', + ), + 8 => + array ( + 'message' => 'Fixed bug #80239 (imap_rfc822_write_address() leaks memory).', + 'raw' => 'Fixed bug #80239 (imap_rfc822_write_address() leaks memory). (cmb)', + ), + 9 => + array ( + 'message' => 'Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822).', + 'raw' => 'Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822). (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed minor regression caused by fixing bug #80220.', + 'raw' => 'Fixed minor regression caused by fixing bug #80220. (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Dropped support for iconv without proper errno setting.', + 'raw' => 'Dropped support for iconv without proper errno setting. (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Removed deprecated INTL_IDNA_VARIANT_2003.', + 'raw' => 'Removed deprecated INTL_IDNA_VARIANT_2003. (cmb)', + ), + ), + 'jit' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77857 (Wrong result if executed with JIT).', + 'raw' => 'Fixed bug #77857 (Wrong result if executed with JIT). (Laruence)', + ), + 1 => + array ( + 'message' => 'Fixed bug #79255 (PHP cannot be compiled with enable JIT).', + 'raw' => 'Fixed bug #79255 (PHP cannot be compiled with enable JIT). (Laruence, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79582 (Crash seen when opcache.jit=1235 and opcache.jit_debug=2).', + 'raw' => 'Fixed bug #79582 (Crash seen when opcache.jit=1235 and opcache.jit_debug=2). (Laruence)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79743 (Fatal error when assigning to array property with JIT enabled).', + 'raw' => 'Fixed bug #79743 (Fatal error when assigning to array property with JIT enabled). (Laruence)', + ), + 4 => + array ( + 'message' => 'Fixed bug #79864 (JIT segfault in Symfony OptionsResolver).', + 'raw' => 'Fixed bug #79864 (JIT segfault in Symfony OptionsResolver). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79888 (Incorrect execution with JIT enabled).', + 'raw' => 'Fixed bug #79888 (Incorrect execution with JIT enabled). (Dmitry)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'The JSON extension is now an integral part of PHP and cannot be disabled as per RFC: https://wiki.php.net/rfc/always_enable_json', + 'raw' => 'The JSON extension is now an integral part of PHP and cannot be disabled as per RFC: https://wiki.php.net/rfc/always_enable_json (tandre)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks.', + 'raw' => 'Fixed memory leaks. (ptomulik)', + ), + 1 => + array ( + 'message' => 'Removed deprecated ldap_sort.', + 'raw' => 'Removed deprecated ldap_sort. (mcmic)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76999 (mb_regex_set_options() return current options).', + 'raw' => 'Fixed bug #76999 (mb_regex_set_options() return current options). (cmb)', + ), + 1 => + array ( + 'message' => 'Removed the unused $is_hex parameter from mb_decode_numericentity().', + 'raw' => 'Removed the unused $is_hex parameter from mb_decode_numericentity(). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used).', + 'raw' => 'Fixed bug #76809 (SSL settings aren\'t respected when persistent connections are used). (fabiomsouto)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed #60594 (mysqlnd exposes 160 lines of stats in phpinfo).', + 'raw' => 'Fixed #60594 (mysqlnd exposes 160 lines of stats in phpinfo). (PeeHaa)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Deprecated old OCI8 function aliases.', + 'raw' => 'Deprecated old OCI8 function aliases. (Jens de Nies)', + ), + 1 => + array ( + 'message' => 'Modernized oci_register_taf_callback() callable argument parsing implementation.', + 'raw' => 'Modernized oci_register_taf_callback() callable argument parsing implementation. (girgias)', + ), + 2 => + array ( + 'message' => 'Removed obsolete no-op function oci_internal_debug().', + 'raw' => 'Removed obsolete no-op function oci_internal_debug(). (Jens de Nies)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #22986 (odbc_connect() may reuse persistent connection).', + 'raw' => 'Fixed bug #22986 (odbc_connect() may reuse persistent connection). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #44618 (Fetching may rely on uninitialized data).', + 'raw' => 'Fixed bug #44618 (Fetching may rely on uninitialized data). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76535 (Opcache does not replay compile-time warnings).', + 'raw' => 'Fixed bug #76535 (Opcache does not replay compile-time warnings). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters).', + 'raw' => 'Fixed bug #78654 (Incorrectly computed opcache checksum on files with non-ascii characters). (mhagstrand)', + ), + 2 => + array ( + 'message' => 'Fixed bug #79665 (ini_get() and opcache_get_configuration() inconsistency).', + 'raw' => 'Fixed bug #79665 (ini_get() and opcache_get_configuration() inconsistency). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80030 (Optimizer segfault with isset on static property with undef dynamic class name).', + 'raw' => 'Fixed bug #80030 (Optimizer segfault with isset on static property with undef dynamic class name). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80175 (PHP8 RC1 - JIT Buffer not working).', + 'raw' => 'Fixed bug #80175 (PHP8 RC1 - JIT Buffer not working). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80184 (Complex expression in while / if statements resolves to false incorrectly).', + 'raw' => 'Fixed bug #80184 (Complex expression in while / if statements resolves to false incorrectly). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #80255 (Opcache bug (bad condition result) in 8.0.0rc1).', + 'raw' => 'Fixed bug #80255 (Opcache bug (bad condition result) in 8.0.0rc1). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed run-time binding of preloaded dynamically declared function.', + 'raw' => 'Fixed run-time binding of preloaded dynamically declared function. (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added Cryptographic Message Syntax (CMS) support.', + 'raw' => 'Added Cryptographic Message Syntax (CMS) support. (Eliot Lear)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Don\'t ignore invalid escape sequences.', + 'raw' => 'Don\'t ignore invalid escape sequences. (sjon)', + ), + 1 => + array ( + 'message' => 'Updated to PCRE2 10.35.', + 'raw' => 'Updated to PCRE2 10.35. (cmb)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Changed default PDO error mode to exceptions.', + 'raw' => 'Changed default PDO error mode to exceptions. (AllenJB)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects).', + 'raw' => 'Fixed bug #77849 (Disable cloning of PDO handle/connection objects). (camporter)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64937 (Firebird PDO preprocessing sql).', + 'raw' => 'Fixed bug #64937 (Firebird PDO preprocessing sql). (Simonov Denis)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Added support for setting and getting the oracle OCI 18c call timeout.', + 'raw' => 'Added support for setting and getting the oracle OCI 18c call timeout. (camporter)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Bumped required libpq version to 9.1.', + 'raw' => 'Bumped required libpq version to 9.1. (cmb)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Bumped required libpq version to 9.1.', + 'raw' => 'Bumped required libpq version to 9.1. (cmb)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr).', + 'raw' => 'Fixed bug #76596 (phpdbg support for display_errors=stderr). (kabel)', + ), + 1 => + array ( + 'message' => 'Fixed bug #76801 (too many open files).', + 'raw' => 'Fixed bug #76801 (too many open files). (alekitto)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).', + 'raw' => 'Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints). (krakjoe)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77805 (phpdbg build fails when readline is shared).', + 'raw' => 'Fixed bug #77805 (phpdbg build fails when readline is shared). (krakjoe)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #64592 (ReflectionClass::getMethods() returns methods out of scope).', + 'raw' => 'Fixed bug #64592 (ReflectionClass::getMethods() returns methods out of scope). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #69180 (Reflection does not honor trait conflict resolution / method aliasing).', + 'raw' => 'Fixed bug #69180 (Reflection does not honor trait conflict resolution / method aliasing). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74939 (Nested traits\' aliased methods are lowercased).', + 'raw' => 'Fixed bug #74939 (Nested traits\' aliased methods are lowercased). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #77325 (ReflectionClassConstant::$class returns wrong class when extending).', + 'raw' => 'Fixed bug #77325 (ReflectionClassConstant::$class returns wrong class when extending). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #78697 (ReflectionClass::implementsInterface - inaccurate error message with traits).', + 'raw' => 'Fixed bug #78697 (ReflectionClass::implementsInterface - inaccurate error message with traits). (villfa)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80190 (ReflectionMethod::getReturnType() does not handle static as part of union type).', + 'raw' => 'Fixed bug #80190 (ReflectionMethod::getReturnType() does not handle static as part of union type). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #80299 (ReflectionFunction->invokeArgs confused in arguments).', + 'raw' => 'Fixed bug #80299 (ReflectionFunction->invokeArgs confused in arguments). (Nikita)', + ), + 7 => + array ( + 'message' => 'Fixed bug #80370 (getAttributes segfault on dynamic properties).', + 'raw' => 'Fixed bug #80370 (getAttributes segfault on dynamic properties). (Benjamin Eberlei)', + ), + 8 => + array ( + 'message' => 'Implement #79628 (Add $filter parameter for ReflectionClass::getConstants and ReflectionClass::getReflectionConstants)', + 'raw' => 'Implement #79628 (Add $filter parameter for ReflectionClass::getConstants and ReflectionClass::getReflectionConstants) (carusogabriel)', + ), + 9 => + array ( + 'message' => 'Implement ReflectionProperty::hasDefaultValue and Reflection::getDefaultValue', + 'raw' => 'Implement ReflectionProperty::hasDefaultValue and Reflection::getDefaultValue (beberlei)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70461 (disable md5 code when it is not supported in net-snmp).', + 'raw' => 'Fixed bug #70461 (disable md5 code when it is not supported in net-snmp). (Alexander Bergmann, cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #65006 (spl_autoload_register fails with multiple callables using self, same method).', + 'raw' => 'Fixed bug #65006 (spl_autoload_register fails with multiple callables using self, same method). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65387 (Circular references in SPL iterators are not garbage collected).', + 'raw' => 'Fixed bug #65387 (Circular references in SPL iterators are not garbage collected). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #71236 (Second call of spl_autoload_register() does nothing if it has no arguments).', + 'raw' => 'Fixed bug #71236 (Second call of spl_autoload_register() does nothing if it has no arguments). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #79987 (Memory leak in SplFileInfo because of missing zend_restore_error_handling()).', + 'raw' => 'Fixed bug #79987 (Memory leak in SplFileInfo because of missing zend_restore_error_handling()). (Dmitry)', + ), + 4 => + array ( + 'message' => 'SplFixedArray is now IteratorAggregate rather than Iterator.', + 'raw' => 'SplFixedArray is now IteratorAggregate rather than Iterator. (alexdowad)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Added SQLite3::setAuthorizer() and respective class constants.', + 'raw' => 'Added SQLite3::setAuthorizer() and respective class constants. (bohwaz)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73529 (session_decode() silently fails on wrong input).', + 'raw' => 'Fixed bug #73529 (session_decode() silently fails on wrong input). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78624 (session_gc return value for user defined session handlers).', + 'raw' => 'Fixed bug #78624 (session_gc return value for user defined session handlers). (bshaffer)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Converted shmop resources to objects.', + 'raw' => 'Converted shmop resources to objects. (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63575 (Root elements are not properly cloned).', + 'raw' => 'Fixed bug #63575 (Root elements are not properly cloned). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #75245 (Don\'t set content of elements with only whitespaces).', + 'raw' => 'Fixed bug #75245 (Don\'t set content of elements with only whitespaces). (eriklundin)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77646 (sign_detached() strings not terminated).', + 'raw' => 'Fixed bug #77646 (sign_detached() strings not terminated). (Frank)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Don\'t force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper.', + 'raw' => 'Don\'t force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper. (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #47983 (mixed LF and CRLF line endings in mail()).', + 'raw' => 'Fixed bug #47983 (mixed LF and CRLF line endings in mail()). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #64060 (lstat_stat_variation7.phpt fails on certain file systems).', + 'raw' => 'Fixed bug #64060 (lstat_stat_variation7.phpt fails on certain file systems). (M. Voelker, cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #75902 (str_replace should warn when misused with nested arrays).', + 'raw' => 'Fixed bug #75902 (str_replace should warn when misused with nested arrays). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter).', + 'raw' => 'Fixed bug #76859 (stream_get_line skips data if used with data-generating filter). (kkopachev)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77204 (getimagesize(): Read error! should mention file path).', + 'raw' => 'Fixed bug #77204 (getimagesize(): Read error! should mention file path). (peter279k)', + ), + 6 => + array ( + 'message' => 'Fixed bug #78385 (parse_url() does not include \'query\' when question mark is the last char).', + 'raw' => 'Fixed bug #78385 (parse_url() does not include \'query\' when question mark is the last char). (Islam Israfilov)', + ), + 7 => + array ( + 'message' => 'Fixed bug #79868 (Sorting with array_unique gives unwanted result).', + 'raw' => 'Fixed bug #79868 (Sorting with array_unique gives unwanted result). (Nikita)', + ), + 8 => + array ( + 'message' => 'Fixed bug #80256 (file_get_contents strip first line with chunked encoding redirect).', + 'raw' => 'Fixed bug #80256 (file_get_contents strip first line with chunked encoding redirect). (Nikita)', + ), + 9 => + array ( + 'message' => 'Fixed bug #80266 (parse_url silently drops port number 0).', + 'raw' => 'Fixed bug #80266 (parse_url silently drops port number 0). (cmb, Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #80290 (Double free when ASSERT_CALLBACK is used with a dynamic message).', + 'raw' => 'Fixed bug #80290 (Double free when ASSERT_CALLBACK is used with a dynamic message). (Nikita)', + ), + 11 => + array ( + 'message' => 'Implemented FR #78638 (__PHP_Incomplete_Class should be final).', + 'raw' => 'Implemented FR #78638 (__PHP_Incomplete_Class should be final). (Laruence)', + ), + 12 => + array ( + 'message' => 'Made quoting of cmd execution functions consistent.', + 'raw' => 'Made quoting of cmd execution functions consistent. (cmb)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Removed the unused $use_include_path parameter from tidy_repair_string().', + 'raw' => 'Removed the unused $use_include_path parameter from tidy_repair_string(). (cmb)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80328 (PhpToken::getAll() confusing name).', + 'raw' => 'Fixed bug #80328 (PhpToken::getAll() confusing name). (Nikita)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76874 (xml_parser_free() should never leak memory).', + 'raw' => 'Fixed bug #76874 (xml_parser_free() should never leak memory). (Nikita)', + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Changed functions to accept/return XMLWriter objects instead of resources.', + 'raw' => 'Changed functions to accept/return XMLWriter objects instead of resources. (cmb)', + ), + 1 => + array ( + 'message' => 'Implemented FR #79344 (xmlwriter_write_attribute_ns: $prefix should be nullable).', + 'raw' => 'Implemented FR #79344 (xmlwriter_write_attribute_ns: $prefix should be nullable). (cmb)', + ), + 2 => + array ( + 'message' => 'Removed return types from XMLWriter stubs.', + 'raw' => 'Removed return types from XMLWriter stubs. (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Add "flags" options to ZipArchive::addGlob and addPattern methods keeping previous behavior having FL_OVERWRITE by default.', + 'raw' => 'Add "flags" options to ZipArchive::addGlob and addPattern methods keeping previous behavior having FL_OVERWRITE by default. (Remi)', + ), + 1 => + array ( + 'message' => 'Add ZipArchive::EM_UNKNOWN and ZipArchive::EM_TRAD_PKWARE constants.', + 'raw' => 'Add ZipArchive::EM_UNKNOWN and ZipArchive::EM_TRAD_PKWARE constants. (Remi)', + ), + 2 => + array ( + 'message' => 'Add ZipArchive::isCompressionMethodSupported() and ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0).', + 'raw' => 'Add ZipArchive::isCompressionMethodSupported() and ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0). (Remi)', + ), + 3 => + array ( + 'message' => 'Add ZipArchive::replaceFile() method.', + 'raw' => 'Add ZipArchive::replaceFile() method. (Remi)', + ), + 4 => + array ( + 'message' => 'Add ZipArchive::setCancelCallback method (since libzip 1.6.0).', + 'raw' => 'Add ZipArchive::setCancelCallback method (since libzip 1.6.0). (Remi)', + ), + 5 => + array ( + 'message' => 'Add ZipArchive::setMtimeName and ZipArchive::setMtimeIndex methods.', + 'raw' => 'Add ZipArchive::setMtimeName and ZipArchive::setMtimeIndex methods. (Remi)', + ), + 6 => + array ( + 'message' => 'Add ZipArchive::setProgressCallback method (since libzip 1.3.0).', + 'raw' => 'Add ZipArchive::setProgressCallback method (since libzip 1.3.0). (Remi)', + ), + 7 => + array ( + 'message' => 'Add lastId property to ZipArchive.', + 'raw' => 'Add lastId property to ZipArchive. (Remi)', + ), + 8 => + array ( + 'message' => 'Add optional "flags" parameter to ZipArchive::addEmptyDir, addFile and addFromString methods.', + 'raw' => 'Add optional "flags" parameter to ZipArchive::addEmptyDir, addFile and addFromString methods. (Remi)', + ), + 9 => + array ( + 'message' => 'Fixed bug #50678 (files extracted by ZipArchive class lost their original modified time).', + 'raw' => 'Fixed bug #50678 (files extracted by ZipArchive class lost their original modified time). (Remi)', + ), + 10 => + array ( + 'message' => 'Fixed bug #72374 (remove_path strips first char of filename).', + 'raw' => 'Fixed bug #72374 (remove_path strips first char of filename). (tyage, Remi)', + ), + 11 => + array ( + 'message' => 'Implemented FR #77960 (add compression / encryption options for ZipArchive::addGlob and ZipArchive::addPattern).', + 'raw' => 'Implemented FR #77960 (add compression / encryption options for ZipArchive::addGlob and ZipArchive::addPattern). (Remi)', + ), + 12 => + array ( + 'message' => 'ZipArchive::status and ZipArchive::statusSys properties and ZipArchive::getStatusString() method stay valid after the archive is closed.', + 'raw' => 'ZipArchive::status and ZipArchive::statusSys properties and ZipArchive::getStatusString() method stay valid after the archive is closed. (Remi)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71417 (fread() does not report zlib.inflate errors).', + 'raw' => 'Fixed bug #71417 (fread() does not report zlib.inflate errors). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #78792 (zlib.output_compression disabled by Content-Type: image/).', + 'raw' => 'Fixed bug #78792 (zlib.output_compression disabled by Content-Type: image/). (cmb)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.1/changelist.inc b/include/releases/8.1/changelist.inc new file mode 100644 index 0000000000..118855c893 --- /dev/null +++ b/include/releases/8.1/changelist.inc @@ -0,0 +1,4961 @@ +<?php return array ( + '8.1.34' => + array ( + 'date' => NULL, + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + ), + ), + ), + ), + '8.1.33' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735)', + 'raw' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735) (Jakub Zelenka)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP Extension via Large XML Namespace Prefix). (CVE-2025-6491)', + 'raw' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP Extension via Large XML Namespace Prefix). (CVE-2025-6491) (Lekssays, nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220)', + 'raw' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220) (Jakub Zelenka)', + ), + ), + ), + ), + '8.1.32' => + array ( + 'date' => '13 Mar 2025', + 'modules' => + array ( + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + ), + ), + ), + ), + '8.1.31' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface).', + 'raw' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932)', + 'raw' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932) (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929)', + 'raw' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) (Jakub Zelenka)', + ), + ), + 'pdo dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234)', + 'raw' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233)', + 'raw' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) (nielsdos)', + ), + ), + ), + ), + '8.1.30' => + array ( + 'date' => '26 Sep 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926)', + 'raw' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927)', + 'raw' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026)', + 'raw' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) (Jakub Zelenka)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925)', + 'raw' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) (Arnaud)', + ), + ), + ), + ), + '8.1.29' => + array ( + 'date' => '06 Jun 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577)', + 'raw' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) (nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458)', + 'raw' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458) (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable.', + 'raw' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. (CVE-2024-2408)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585)', + 'raw' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) (nielsdos)', + ), + ), + ), + ), + '8.1.28' => + array ( + 'date' => '11 Apr 2024', + 'modules' => + array ( + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)', + 'raw' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)', + 'raw' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)', + 'raw' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)', + ), + ), + ), + ), + '8.1.27' => + array ( + 'date' => '21 Dec 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler).', + 'raw' => 'Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed oss-fuzz #64209 (In-place modification of filename in php_message_handler_for_zend).', + 'raw' => 'Fixed oss-fuzz #64209 (In-place modification of filename in php_message_handler_for_zend). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC).', + 'raw' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix).', + 'raw' => 'Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval).', + 'raw' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). (Patrick Prasse)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1).', + 'raw' => 'Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12702 (libxml2 2.12.0 issue building from src).', + 'raw' => 'Fixed bug GH-12702 (libxml2 2.12.0 issue building from src). (nono303)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Avoid using uninitialised struct.', + 'raw' => 'Avoid using uninitialised struct. (mikhainin)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs).', + 'raw' => 'Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs). (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux).', + 'raw' => 'Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux). (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12763 wrong argument type for pg_untrace.', + 'raw' => 'Fixed bug GH-12763 wrong argument type for pg_untrace. (degtyarov)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c). (nielsdos)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0).', + 'raw' => 'Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0). (SakiTakamachi)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in syslog device handling.', + 'raw' => 'Fix memory leak in syslog device handling. (danog)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12621 (browscap segmentation fault when configured in the vhost).', + 'raw' => 'Fixed bug GH-12621 (browscap segmentation fault when configured in the vhost). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12655 (proc_open() does not take into account references in the descriptor array).', + 'raw' => 'Fixed bug GH-12655 (proc_open() does not take into account references in the descriptor array). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault).', + 'raw' => 'Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault). (Jakub Zelenka)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option Behavior).', + 'raw' => 'Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option Behavior). (Remi)', + ), + ), + ), + ), + '8.1.26' => + array ( + 'date' => '23 Nov 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12468 (Double-free of doc_comment when overriding static property via trait).', + 'raw' => 'Fixed bug GH-12468 (Double-free of doc_comment when overriding static property via trait). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed segfault caused by weak references to FFI objects.', + 'raw' => 'Fixed segfault caused by weak references to FFI objects. (sj-i)', + ), + 2 => + array ( + 'message' => 'Fixed max_execution_time: don\'t delete an unitialized timer.', + 'raw' => 'Fixed max_execution_time: don\'t delete an unitialized timer. (Kévin Dunglas)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix registerNodeClass with abstract class crashing.', + 'raw' => 'Fix registerNodeClass with abstract class crashing. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + ), + 2 => + array ( + 'message' => 'Fix validation logic of php:function() callbacks.', + 'raw' => 'Fix validation logic of php:function() callbacks. (nielsdos)', + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11121 (ReflectionFiber segfault).', + 'raw' => 'Fixed bug GH-11121 (ReflectionFiber segfault). (danog, trowski, bwoebi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9921 (Loading ext in FPM config does not register module handlers).', + 'raw' => 'Fixed bug GH-9921 (Loading ext in FPM config does not register module handlers). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12232 (FPM: segfault dynamically loading extension without opcache).', + 'raw' => 'Fixed bug GH-12232 (FPM: segfault dynamically loading extension without opcache). (Jakub Zelenka)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale.', + 'raw' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added warning when JIT cannot be enabled.', + 'raw' => 'Added warning when JIT cannot be enabled. (danog)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache).', + 'raw' => 'Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache). (turchanov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify).', + 'raw' => 'Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify). (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11374 (Backport upstream fix, Different preg_match result with -d pcre.jit=0).', + 'raw' => 'Fixed bug GH-11374 (Backport upstream fix, Different preg_match result with -d pcre.jit=0). (mvorisek)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes).', + 'raw' => 'Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation Fault).', + 'raw' => 'Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation Fault). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC).', + 'raw' => 'Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix incorrect uri check in SOAP caching.', + 'raw' => 'Fix incorrect uri check in SOAP caching. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix segfault and assertion failure with refcounted props and arrays.', + 'raw' => 'Fix segfault and assertion failure with refcounted props and arrays. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix potential crash with an edge case of persistent encoders.', + 'raw' => 'Fix potential crash with an edge case of persistent encoders. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #75306 (Memleak in SoapClient).', + 'raw' => 'Fixed bug #75306 (Memleak in SoapClient). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers).', + 'raw' => 'Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers). (Jakub Zelenka)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Add missing module dependency.', + 'raw' => 'Add missing module dependency. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix validation logic of php:function() callbacks.', + 'raw' => 'Fix validation logic of php:function() callbacks. (nielsdos)', + ), + ), + ), + ), + '8.1.25' => + array ( + 'date' => '26 Oct 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12207 (memory leak when class using trait with doc block).', + 'raw' => 'Fixed bug GH-12207 (memory leak when class using trait with doc block). (rioderelfte)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom).', + 'raw' => 'Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12273 (__builtin_cpu_init check).', + 'raw' => 'Fixed bug GH-12273 (__builtin_cpu_init check). (Freaky)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80092 (ZTS + preload = segfault on shutdown).', + 'raw' => 'Fixed bug #80092 (ZTS + preload = segfault on shutdown). (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Ensure a single Date header is present.', + 'raw' => 'Ensure a single Date header is present. (coppolafab)', + ), + ), + 'ctype' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater).', + 'raw' => 'Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Restore old namespace reconciliation behaviour.', + 'raw' => 'Restore old namespace reconciliation behaviour. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1).', + 'raw' => 'Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11891 (fileinfo returns text/xml for some svg files).', + 'raw' => 'Fixed bug GH-11891 (fileinfo returns text/xml for some svg files). (usarise)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK', + 'raw' => 'Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK (ilutov)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext).', + 'raw' => 'Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext). (MaxSem)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12243 (segfault on IntlDateFormatter::construct).', + 'raw' => 'Fixed bug GH-12243 (segfault on IntlDateFormatter::construct). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale).', + 'raw' => 'Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale). (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) \'mysqlnd.so\' in Unknown on line).', + 'raw' => 'Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) \'mysqlnd.so\' in Unknown on line). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed opcache_invalidate() on deleted file.', + 'raw' => 'Fixed opcache_invalidate() on deleted file. (mikhainin)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class).', + 'raw' => 'Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class). (nielsdos)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result).', + 'raw' => 'Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12170 (Can\'t use xpath with comments in SimpleXML).', + 'raw' => 'Fixed bug GH-12170 (Can\'t use xpath with comments in SimpleXML). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r).', + 'raw' => 'Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML).', + 'raw' => 'Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12169 (Unable to get comment contents in SimpleXML).', + 'raw' => 'Fixed bug GH-12169 (Unable to get comment contents in SimpleXML). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12190 (binding ipv4 address with both address and port at 0).', + 'raw' => 'Fixed bug GH-12190 (binding ipv4 address with both address and port at 0). (David Carlier)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fix return type of stub of xml_parse_into_struct().', + 'raw' => 'Fix return type of stub of xml_parse_into_struct(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when calling xml_parse_into_struct() twice.', + 'raw' => 'Fix memory leak when calling xml_parse_into_struct() twice. (nielsdos)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML.', + 'raw' => 'Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML. (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fix socket_export_stream() with wrong protocol', + 'raw' => 'Fix socket_export_stream() with wrong protocol (twosee)', + ), + ), + ), + ), + '8.1.24' => + array ( + 'date' => '28 Sep 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11937 (Constant ASTs containing objects).', + 'raw' => 'Fixed bug GH-11937 (Constant ASTs containing objects). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11790 (On riscv64 require libatomic if actually needed).', + 'raw' => 'Fixed bug GH-11790 (On riscv64 require libatomic if actually needed). (Jeremie Courreges-Anglas)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures).', + 'raw' => 'Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12060 (Internal iterator rewind handler is called twice).', + 'raw' => 'Fixed bug GH-12060 (Internal iterator rewind handler is called twice). (ju1ius)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call).', + 'raw' => 'Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting an invalid DOMDocument encoding.', + 'raw' => 'Fix memory leak when setting an invalid DOMDocument encoding. (nielsdos)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed build for NetBSD which still uses the old iconv signature.', + 'raw' => 'Fixed build for NetBSD which still uses the old iconv signature. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12020 (intl_get_error_message() broken after MessageFormatter::formatMessage() fails).', + 'raw' => 'Fixed bug GH-12020 (intl_get_error_message() broken after MessageFormatter::formatMessage() fails). (Girgias)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10270 (Invalid error message when connection via SSL fails: "trying to connect via (null)").', + 'raw' => 'Fixed bug GH-10270 (Invalid error message when connection via SSL fails: "trying to connect via (null)"). (Kamil Tekiela)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak with failed SQLPrepare.', + 'raw' => 'Fixed memory leak with failed SQLPrepare. (NattyNarwhal)', + ), + 1 => + array ( + 'message' => 'Fixed persistent procedural ODBC connections not getting closed.', + 'raw' => 'Fixed persistent procedural ODBC connections not getting closed. (NattyNarwhal)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52751 (XPath processing-instruction() function is not supported).', + 'raw' => 'Fixed bug #52751 (XPath processing-instruction() function is not supported). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18).', + 'raw' => 'Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18). (nielsdos)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array).', + 'raw' => 'Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array). (nielsdos, arnaud-lb)', + ), + ), + ), + ), + '8.1.23' => + array ( + 'date' => '31 Aug 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10964 (Improve man page about the built-in server).', + 'raw' => 'Fixed bug GH-10964 (Improve man page about the built-in server). (Alexandre Daubois)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed strerror_r detection at configuration time.', + 'raw' => 'Fixed strerror_r detection at configuration time. (Kévin Dunglas)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11416: Crash with DatePeriod when uninitialised objects are passed in.', + 'raw' => 'Fixed bug GH-11416: Crash with DatePeriod when uninitialised objects are passed in. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix DOMEntity field getter bugs.', + 'raw' => 'Fix DOMEntity field getter bugs. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS.', + 'raw' => 'Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix DOMCharacterData::replaceWith() with itself.', + 'raw' => 'Fix DOMCharacterData::replaceWith() with itself. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix empty argument cases for DOMParentNode methods.', + 'raw' => 'Fix empty argument cases for DOMParentNode methods. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone).', + 'raw' => 'Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix json_encode result on DOMDocument.', + 'raw' => 'Fix json_encode result on DOMDocument. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fix manually calling __construct() on DOM classes.', + 'raw' => 'Fix manually calling __construct() on DOM classes. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-11830 (ParentNode methods should perform their checks upfront).', + 'raw' => 'Fixed bug GH-11830 (ParentNode methods should perform their checks upfront). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fix segfault when DOMParentNode::prepend() is called when the child disappears.', + 'raw' => 'Fix segfault when DOMParentNode::prepend() is called when the child disappears. (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix leaking definitions when using FFI::cdef()->new(...).', + 'raw' => 'Fix leaking definitions when using FFI::cdef()->new(...). (ilutov)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL).', + 'raw' => 'Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters).', + 'raw' => 'Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters). (nielsdos, Kamil Tekiela)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault).', + 'raw' => 'Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault). (Yurunsoft)', + ), + 3 => + array ( + 'message' => 'Fixed invalid error message "Malformed packet" when connection is dropped.', + 'raw' => 'Fixed invalid error message "Malformed packet" when connection is dropped. (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong).', + 'raw' => 'Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress.', + 'raw' => 'Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress. (mikhainin)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22.', + 'raw' => 'Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22. (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free).', + 'raw' => 'Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Prevent int overflow on $decimals in number_format.', + 'raw' => 'Prevent int overflow on $decimals in number_format. (Marc Bennewitz)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix)', + 'raw' => 'Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro)', + ), + ), + ), + ), + '8.1.22' => + array ( + 'date' => '03 Aug 2023', + 'modules' => + array ( + 'build' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11522 (PHP version check fails with \'-\' separator).', + 'raw' => 'Fixed bug GH-11522 (PHP version check fails with \'-\' separator). (SVGAnimate)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix interrupted CLI output causing the process to exit.', + 'raw' => 'Fix interrupted CLI output causing the process to exit. (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator).', + 'raw' => 'Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed use-of-uninitialized-value with ??= on assert.', + 'raw' => 'Fixed use-of-uninitialized-value with ??= on assert. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed build for FreeBSD before the 11.0 releases.', + 'raw' => 'Fixed build for FreeBSD before the 11.0 releases. (David Carlier)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION.', + 'raw' => 'Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION. (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11368 (Date modify returns invalid datetime).', + 'raw' => 'Fixed bug GH-11368 (Date modify returns invalid datetime). (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11625 (DOMElement::replaceWith() doesn\'t replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version).', + 'raw' => 'Fixed bug GH-11625 (DOMElement::replaceWith() doesn\'t replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11298 (finfo returns wrong mime type for xz files).', + 'raw' => 'Fixed bug GH-11298 (finfo returns wrong mime type for xz files). (Anatol)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix context option check for "overwrite".', + 'raw' => 'Fix context option check for "overwrite". (JonasQuinten)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget).', + 'raw' => 'Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix most of the external libgd test failures.', + 'raw' => 'Fix most of the external libgd test failures. (Michael Orlitzky)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature.', + 'raw' => 'Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature. (ilutov)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in MessageFormatter::format() on failure.', + 'raw' => 'Fix memory leak in MessageFormatter::format() on failure. (Girgias)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823)', + 'raw' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11300 (license issue: restricted unicode license headers).', + 'raw' => 'Fix GH-11300 (license issue: restricted unicode license headers). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault).', + 'raw' => 'Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Prevent potential deadlock if accelerated globals cannot be allocated.', + 'raw' => 'Prevent potential deadlock if accelerated globals cannot be allocated. (nielsdos)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open).', + 'raw' => 'Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open). (nielsdos)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Mangle PCRE regex cache key with JIT option.', + 'raw' => 'Mangle PCRE regex cache key with JIT option. (mvorisek)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled).', + 'raw' => 'Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled). (SakiTakamachi)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt).', + 'raw' => 'Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt). (KapitanOczywisty, CViniciusSDias)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing check on EVP_VerifyUpdate() in phar util.', + 'raw' => 'Add missing check on EVP_VerifyUpdate() in phar util. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824)', + 'raw' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824) (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9669 (phpdbg -h options doesn\'t list the -z option).', + 'raw' => 'Fixed bug GH-9669 (phpdbg -h options doesn\'t list the -z option). (adsr)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Removed broken url support for transferring session ID.', + 'raw' => 'Removed broken url support for transferring session ID. (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix serialization of RC1 objects appearing in object graph twice.', + 'raw' => 'Fix serialization of RC1 objects appearing in object graph twice. (ilutov)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fix replaced error handling in SQLite3Stmt::__construct.', + 'raw' => 'Fix replaced error handling in SQLite3Stmt::__construct. (nielsdos)', + ), + ), + ), + ), + '8.1.21' => + array ( + 'date' => '06 Jul 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS).', + 'raw' => 'Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS). (James Lucas)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed build for the riscv64 architecture/GCC 12.', + 'raw' => 'Fixed build for the riscv64 architecture/GCC 12. (Daniil Gentili)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL).', + 'raw' => 'Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith).', + 'raw' => 'Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value).', + 'raw' => 'Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix return value in stub file for DOMNodeList::item.', + 'raw' => 'Fix return value in stub file for DOMNodeList::item. (divinity76)', + ), + 3 => + array ( + 'message' => 'Fix spec compliance error with \'*\' namespace for DOMDocument::getElementsByTagNameNS.', + 'raw' => 'Fix spec compliance error with \'*\' namespace for DOMDocument::getElementsByTagNameNS. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix DOMElement::append() and DOMElement::prepend() hierarchy checks.', + 'raw' => 'Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query).', + 'raw' => 'Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces).', + 'raw' => 'Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself).', + 'raw' => 'Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed bug #77686 (Removed elements are still returned by getElementById).', + 'raw' => 'Fixed bug #77686 (Removed elements are still returned by getElementById). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()).', + 'raw' => 'Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Fixed bug #78577 (Crash in DOMNameSpace debug info handlers).', + 'raw' => 'Fixed bug #78577 (Crash in DOMNameSpace debug info handlers). (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fix lifetime issue with getAttributeNodeNS().', + 'raw' => 'Fix lifetime issue with getAttributeNodeNS(). (nielsdos)', + ), + 12 => + array ( + 'message' => 'Fix "invalid state error" with cloned namespace declarations.', + 'raw' => 'Fix "invalid state error" with cloned namespace declarations. (nielsdos)', + ), + 13 => + array ( + 'message' => 'Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues).', + 'raw' => 'Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues). (nielsdos)', + ), + 14 => + array ( + 'message' => 'Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap).', + 'raw' => 'Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix allocation loop in zend_shared_alloc_startup().', + 'raw' => 'Fix allocation loop in zend_shared_alloc_startup(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Access violation on smm_shared_globals with ALLOC_FALLBACK.', + 'raw' => 'Access violation on smm_shared_globals with ALLOC_FALLBACK. (KoudelkaB)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked).', + 'raw' => 'Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames .', + 'raw' => 'Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames (James Lucas, Jakub Zelenka).', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed intermittent segfault with pg_trace.', + 'raw' => 'Fixed intermittent segfault with pg_trace. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix cross-compilation check in phar generation for FreeBSD.', + 'raw' => 'Fix cross-compilation check in phar generation for FreeBSD. (peter279k)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash).', + 'raw' => 'Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix access on NULL pointer in array_merge_recursive().', + 'raw' => 'Fix access on NULL pointer in array_merge_recursive(). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fix exception handling in array_multisort().', + 'raw' => 'Fix exception handling in array_multisort(). (ilutov)', + ), + ), + ), + ), + '8.1.20' => + array ( + 'date' => '08 Jun 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)).', + 'raw' => 'Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state).', + 'raw' => 'Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state). (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash).', + 'raw' => 'Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash). (Bob)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset).', + 'raw' => 'Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes).', + 'raw' => 'Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)).', + 'raw' => 'Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64539 (FPM status page: query_string not properly JSON encoded).', + 'raw' => 'Fixed bug #64539 (FPM status page: query_string not properly JSON encoded). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed memory leak for invalid primary script file handle.', + 'raw' => 'Fixed memory leak for invalid primary script file handle. (Jakub Zelenka)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments).', + 'raw' => 'Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0).', + 'raw' => 'Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11134 (Incorrect match default branch optimization).', + 'raw' => 'Fixed bug GH-11134 (Incorrect match default branch optimization). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed too wide OR and AND range inference.', + 'raw' => 'Fixed too wide OR and AND range inference. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault).', + 'raw' => 'Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault). (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed parameter parsing of pg_lo_export().', + 'raw' => 'Fixed parameter parsing of pg_lo_export(). (kocsismate)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11099 (Generating phar.php during cross-compile can\'t be done).', + 'raw' => 'Fixed bug GH-11099 (Generating phar.php during cross-compile can\'t be done). (peter279k)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247)', + 'raw' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) (nielsdos, timwolla)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8426 (make test fail while soap extension build).', + 'raw' => 'Fixed bug GH-8426 (make test fail while soap extension build). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)).', + 'raw' => 'Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file).', + 'raw' => 'Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect).', + 'raw' => 'Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data).', + 'raw' => 'Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11175 (Stream Socket Timeout).', + 'raw' => 'Fixed bug GH-11175 (Stream Socket Timeout). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client).', + 'raw' => 'Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client). (nielsdos)', + ), + ), + ), + ), + '8.1.19' => + array ( + 'date' => '11 May 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix inconsistent float negation in constant expressions.', + 'raw' => 'Fix inconsistent float negation in constant expressions. (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8841 (php-cli core dump calling a badly formed function).', + 'raw' => 'Fixed bug GH-8841 (php-cli core dump calling a badly formed function). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c).', + 'raw' => 'Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c). (nielsdos, ElliotNB)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.).', + 'raw' => 'Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=).', + 'raw' => 'Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80602 (Segfault when using DOMChildNode::before()).', + 'raw' => 'Fixed bug #80602 (Segfault when using DOMChildNode::before()). (Nathan Freeman)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect error handling in dom_zvals_to_fragment().', + 'raw' => 'Fixed incorrect error handling in dom_zvals_to_fragment(). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index).', + 'raw' => 'Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11071 (TZData version not displayed anymore).', + 'raw' => 'Fixed bug GH-11071 (TZData version not displayed anymore). (Remi)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10968 (Segfault in preg_replace_callback_array()).', + 'raw' => 'Fixed bug GH-10968 (Segfault in preg_replace_callback_array()). (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10990 (mail() throws TypeError after iterating over $additional_headers array by reference).', + 'raw' => 'Fixed bug GH-10990 (mail() throws TypeError after iterating over $additional_headers array by reference). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9775 (Duplicates returned by array_unique when using enums).', + 'raw' => 'Fixed bug GH-9775 (Duplicates returned by array_unique when using enums). (ilutov)', + ), + ), + ), + ), + '8.1.18' => + array ( + 'date' => '13 Apr 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added optional support for max_execution_time in ZTS/Linux builds', + 'raw' => 'Added optional support for max_execution_time in ZTS/Linux builds (Kévin Dunglas)', + ), + 1 => + array ( + 'message' => 'Fixed use-after-free in recursive AST evaluation.', + 'raw' => 'Fixed use-after-free in recursive AST evaluation. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8646 (Memory leak PHP FPM 8.1).', + 'raw' => 'Fixed bug GH-8646 (Memory leak PHP FPM 8.1). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault).', + 'raw' => 'Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on apache).', + 'raw' => 'Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on apache). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown).', + 'raw' => 'Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()).', + 'raw' => 'Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fix potential memory corruption when mixing __callStatic() and FFI.', + 'raw' => 'Fix potential memory corruption when mixing __callStatic() and FFI. (ilutov)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10583 (DateTime modify with tz pattern should not update linked timezone).', + 'raw' => 'Fixed bug GH-10583 (DateTime modify with tz pattern should not update linked timezone). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10611 (fpm_env_init_main leaks environ).', + 'raw' => 'Fixed bug GH-10611 (fpm_env_init_main leaks environ). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Destroy file_handle in fpm_main.', + 'raw' => 'Destroy file_handle in fpm_main. (Jakub Zelenka, nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when spaces are in path).', + 'raw' => 'Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when spaces are in path). (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Propagate success status of ftp_close().', + 'raw' => 'Propagate success status of ftp_close(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB).', + 'raw' => 'Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB). (nielsdos)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fix build failure with Clang 16.', + 'raw' => 'Fix build failure with Clang 16. (orlitzky)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL connections).', + 'raw' => 'Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL connections). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed build for macOS to cater with pkg-config settings.', + 'raw' => 'Fixed build for macOS to cater with pkg-config settings. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context).', + 'raw' => 'Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Add missing error checks on file writing functions.', + 'raw' => 'Add missing error checks on file writing functions. (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland).', + 'raw' => 'Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland). (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed missing and inconsistent error checks on SQLAllocHandle.', + 'raw' => 'Fixed missing and inconsistent error checks on SQLAllocHandle. (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10766 (PharData archive created with Phar::Zip format does not keep files metadata (datetime)).', + 'raw' => 'Fixed bug GH-10766 (PharData archive created with Phar::Zip format does not keep files metadata (datetime)). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit().', + 'raw' => 'Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit(). (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed typo in the array returned from pg_meta_data (extended mode).', + 'raw' => 'Fixed typo in the array returned from pg_meta_data (extended mode). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10519 (Array Data Address Reference Issue).', + 'raw' => 'Fixed bug GH-10519 (Array Data Address Reference Issue). (Nathan Freeman)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10844 (ArrayIterator allows modification of readonly props).', + 'raw' => 'Fixed bug GH-10844 (ArrayIterator allows modification of readonly props). (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10885 (stream_socket_server context leaks).', + 'raw' => 'Fixed bug GH-10885 (stream_socket_server context leaks). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown (apache2)).', + 'raw' => 'Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown (apache2)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \\0 delimiter and enclosure).', + 'raw' => 'Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \\0 delimiter and enclosure). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed undefined behaviour in unpack().', + 'raw' => 'Fixed undefined behaviour in unpack(). (nielsdos)', + ), + ), + ), + ), + '8.1.17' => + array ( + 'date' => '16 Mar 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect check condition in ZEND_YIELD.', + 'raw' => 'Fixed incorrect check condition in ZEND_YIELD. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect check condition in type inference.', + 'raw' => 'Fixed incorrect check condition in type inference. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed overflow check in OnUpdateMemoryConsumption.', + 'raw' => 'Fixed overflow check in OnUpdateMemoryConsumption. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes).', + 'raw' => 'Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes). (Arnaud)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout).', + 'raw' => 'Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout). (trowski)', + ), + 5 => + array ( + 'message' => 'Fixed SSA object type update for compound assignment opcodes.', + 'raw' => 'Fixed SSA object type update for compound assignment opcodes. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed language scanner generation build.', + 'raw' => 'Fixed language scanner generation build. (Daniel Black)', + ), + 7 => + array ( + 'message' => 'Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type.', + 'raw' => 'Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type. (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name).', + 'raw' => 'Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized.', + 'raw' => 'Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed deprecation warning at compile time.', + 'raw' => 'Fixed deprecation warning at compile time. (Max Kellermann)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback).', + 'raw' => 'Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback). (Pierrick Charron)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10447 (\'p\' format specifier does not yield \'Z\' for 00:00).', + 'raw' => 'Fix GH-10447 (\'p\' format specifier does not yield \'Z\' for 00:00). (Derick)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect bitshifting and masking in ffi bitfield.', + 'raw' => 'Fixed incorrect bitshifting and masking in ffi bitfield. (nielsdos)', + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fixed assembly on alpine x86.', + 'raw' => 'Fixed assembly on alpine x86. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber).', + 'raw' => 'Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber). (Bob, Arnaud)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10315 (FPM unknown child alert not valid).', + 'raw' => 'Fixed bug GH-10315 (FPM unknown child alert not valid). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10385 (FPM successful config test early exit).', + 'raw' => 'Fixed bug GH-10385 (FPM successful config test early exit). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code\'s argument always returning NULL0.', + 'raw' => 'Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code\'s argument always returning NULL0. (Nathan Freeman)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed JSON scanner and parser generation build.', + 'raw' => 'Fixed JSON scanner and parser generation build. (Daniel Black, Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'ext/mbstring: fix new_value length check.', + 'raw' => 'ext/mbstring: fix new_value length check. (Max Kellermann)', + ), + 1 => + array ( + 'message' => 'Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows).', + 'raw' => 'Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect page_size check.', + 'raw' => 'Fix incorrect page_size check. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix readonly modification check when using inc/dec operators on readonly property with JIT.', + 'raw' => 'Fix readonly modification check when using inc/dec operators on readonly property with JIT. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed php_openssl_set_server_dh_param() DH params errors handling.', + 'raw' => 'Fixed php_openssl_set_server_dh_param() DH params errors handling. (nielsdos)', + ), + ), + 'pdo oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars).', + 'raw' => 'Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars). (Michael Voříšek)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10715 (heap buffer overflow on --run option misuse).', + 'raw' => 'Fixed bug GH-10715 (heap buffer overflow on --run option misuse). (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10672 (pg_lo_open segfaults in the strict_types mode).', + 'raw' => 'Fix GH-10672 (pg_lo_open segfaults in the strict_types mode). (girgias)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect check in phar tar parsing.', + 'raw' => 'Fix incorrect check in phar tar parsing. (nielsdos)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments).', + 'raw' => 'Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix Segfault when using ReflectionFiber suspended by an internal function.', + 'raw' => 'Fix Segfault when using ReflectionFiber suspended by an internal function. (danog)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. .', + 'raw' => 'Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. (nielsdos).', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).', + 'raw' => 'Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown). (kocsismate)', + ), + 1 => + array ( + 'message' => 'Fix incorrect check in cs_8559_5 in map_from_unicode().', + 'raw' => 'Fix incorrect check in cs_8559_5 in map_from_unicode(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes', + 'raw' => 'Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes', + ), + 3 => + array ( + 'message' => 'Fix incorrect error check in browsecap for pcre2_match().', + 'raw' => 'Fix incorrect error check in browsecap for pcre2_match(). (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when attempting to open a non-existing file or a file over 4GB.', + 'raw' => 'Fix memory leaks when attempting to open a non-existing file or a file over 4GB. (Girgias)', + ), + 1 => + array ( + 'message' => 'Add missing error check on tidyLoadConfig.', + 'raw' => 'Add missing error check on tidyLoadConfig. (nielsdos)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed output_handler directive value\'s length which counted the string terminator.', + 'raw' => 'Fixed output_handler directive value\'s length which counted the string terminator. (nieldos)', + ), + ), + ), + ), + '8.1.16' => + array ( + 'date' => '14 Feb 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567).', + 'raw' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567). (Tim Düsterhus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568).', + 'raw' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568). (Niels Dossche)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662)', + 'raw' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) (Jakub Zelenka)', + ), + ), + ), + ), + '8.1.15' => + array ( + 'date' => '02 Feb 2023', + 'modules' => + array ( + 'apache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9949 (Partial content on incomplete POST request).', + 'raw' => 'Fixed bug GH-9949 (Partial content on incomplete POST request). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10072 (PHP crashes when execute_ex is overridden and a __call trampoline is used from internal code).', + 'raw' => 'Fixed bug GH-10072 (PHP crashes when execute_ex is overridden and a __call trampoline is used from internal code). (Derick)', + ), + 1 => + array ( + 'message' => 'Fix GH-10251 (Assertion `(flag & (1<<3)) == 0\' failed).', + 'raw' => 'Fix GH-10251 (Assertion `(flag & (1<<3)) == 0\' failed). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix wrong comparison in block optimisation pass after opcode update.', + 'raw' => 'Fix wrong comparison in block optimisation pass after opcode update. (nieldsdos)', + ), + 3 => + array ( + 'message' => 'Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)\' failed).', + 'raw' => 'Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)\' failed). (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9891 (DateTime modify with unixtimestamp (@) must work like setTimestamp).', + 'raw' => 'Fixed bug GH-9891 (DateTime modify with unixtimestamp (@) must work like setTimestamp). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10218 (DateTimeZone fails to parse time zones that contain the "+" character).', + 'raw' => 'Fixed bug GH-10218 (DateTimeZone fails to parse time zones that contain the "+" character). (Derick)', + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fix assertion on stack allocation size.', + 'raw' => 'Fix assertion on stack allocation size. (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9981 (FPM does not reset fastcgi.error_header).', + 'raw' => 'Fixed bug GH-9981 (FPM does not reset fastcgi.error_header). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #67244 (Wrong owner:group for listening unix socket).', + 'raw' => 'Fixed bug #67244 (Wrong owner:group for listening unix socket). (Jakub Zelenka)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Handle exceptions from __toString in XXH3\'s initialization', + 'raw' => 'Handle exceptions from __toString in XXH3\'s initialization (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10112 (LDAP\\Connection::__construct() refers to ldap_create()).', + 'raw' => 'Fixed bug GH-10112 (LDAP\\Connection::__construct() refers to ldap_create()). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed: mb_strlen (and a couple of other mbstring functions) would wrongly treat 0x80, 0xFD, 0xFE, 0xFF, and certain other byte values as the first byte of a 2-byte SJIS character.', + 'raw' => 'Fixed: mb_strlen (and a couple of other mbstring functions) would wrongly treat 0x80, 0xFD, 0xFE, 0xFF, and certain other byte values as the first byte of a 2-byte SJIS character. (Alex Dowad)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix inverted bailout value in zend_runtime_jit() .', + 'raw' => 'Fix inverted bailout value in zend_runtime_jit() (Max Kellermann).', + ), + 1 => + array ( + 'message' => 'Fix access to uninitialized variable in accel_preload().', + 'raw' => 'Fix access to uninitialized variable in accel_preload(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix zend_jit_find_trace() crashes.', + 'raw' => 'Fix zend_jit_find_trace() crashes. (Max Kellermann)', + ), + 3 => + array ( + 'message' => 'Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit.', + 'raw' => 'Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit. (Max Kellermann)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix wrong flags check for compression method in phar_object.c', + 'raw' => 'Fix wrong flags check for compression method in phar_object.c (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix undefined behaviour in phpdbg_load_module_or_extension().', + 'raw' => 'Fix undefined behaviour in phpdbg_load_module_or_extension(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix NULL pointer dereference in phpdbg_create_conditional_breal().', + 'raw' => 'Fix NULL pointer dereference in phpdbg_create_conditional_breal(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix GH-9710: phpdbg memory leaks by option "-h"', + 'raw' => 'Fix GH-9710: phpdbg memory leaks by option "-h" (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix phpdbg segmentation fault in case of malformed input', + 'raw' => 'Fix phpdbg segmentation fault in case of malformed input (nielsdos)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in posix_ttyname()', + 'raw' => 'Fix memory leak in posix_ttyname() (girgias)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10187 (Segfault in stripslashes() with arm64).', + 'raw' => 'Fix GH-10187 (Segfault in stripslashes() with arm64). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix substr_replace with slots in repl_ht being UNDEF.', + 'raw' => 'Fix substr_replace with slots in repl_ht being UNDEF. (nielsdos)', + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Fixed Windows shmget() wrt. IPC_PRIVATE.', + 'raw' => 'Fixed Windows shmget() wrt. IPC_PRIVATE. (Tyson Andre)', + ), + 1 => + array ( + 'message' => 'Fix missing check for xmlTextWriterEndElement', + 'raw' => 'Fix missing check for xmlTextWriterEndElement (nielsdos)', + ), + ), + ), + ), + '8.1.14' => + array ( + 'date' => '05 Jan 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined).', + 'raw' => 'Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file).', + 'raw' => 'Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file). (Akama Hitoshi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9650 (Can\'t initialize heap: [0x000001e7]).', + 'raw' => 'Fixed bug GH-9650 (Can\'t initialize heap: [0x000001e7]). (Michael Voříšek)', + ), + 3 => + array ( + 'message' => 'Fixed potentially undefined behavior in Windows ftok(3) emulation.', + 'raw' => 'Fixed potentially undefined behavior in Windows ftok(3) emulation. (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9699 (DateTimeImmutable::diff differences in 8.1.10 onwards - timezone related).', + 'raw' => 'Fixed bug GH-9699 (DateTimeImmutable::diff differences in 8.1.10 onwards - timezone related). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9700 (DateTime::createFromFormat: Parsing TZID string is too greedy).', + 'raw' => 'Fixed bug GH-9700 (DateTime::createFromFormat: Parsing TZID string is too greedy). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9866 (Time zone bug with \\DateTimeInterface::diff()).', + 'raw' => 'Fixed bug GH-9866 (Time zone bug with \\DateTimeInterface::diff()). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9880 (DateTime diff returns wrong sign on day count when using a timezone).', + 'raw' => 'Fixed bug GH-9880 (DateTime diff returns wrong sign on day count when using a timezone). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694).', + 'raw' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694). (Petr Sumbera)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING).', + 'raw' => 'Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said).', + 'raw' => 'Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said). (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1).', + 'raw' => 'Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1). (Nathan Freeman)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9968 (Segmentation Fault during OPCache Preload).', + 'raw' => 'Fixed bug GH-9968 (Segmentation Fault during OPCache Preload). (Arnaud, michdingpayc)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec).', + 'raw' => 'Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa).', + 'raw' => 'Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa). (Jakub Zelenka)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash).', + 'raw' => 'Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash). (Erki Aring)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird).', + 'raw' => 'Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird). (cmb)', + ), + ), + 'pdo/sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631)', + 'raw' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631) (cmb)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9932 (session name silently fails with . and [).', + 'raw' => 'Fixed GH-9932 (session name silently fails with . and [). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9883 (SplFileObject::__toString() reads next line).', + 'raw' => 'Fixed GH-9883 (SplFileObject::__toString() reads next line). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered).', + 'raw' => 'Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered). (Girgias)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI).', + 'raw' => 'Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI). (cmb)', + ), + ), + ), + ), + '8.1.13' => + array ( + 'date' => '24 Nov 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options).', + 'raw' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options). (Adam Saponara)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params).', + 'raw' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization).', + 'raw' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed potential NULL pointer dereference Windows shm*() functions.', + 'raw' => 'Fixed potential NULL pointer dereference Windows shm*() functions. (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation.', + 'raw' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation. (Arnaud)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9763 (DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100*60 minutes).', + 'raw' => 'Fixed bug GH-9763 (DateTimeZone ctr mishandles input and adds null byte if the argument is an offset larger than 100*60 minutes). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11).', + 'raw' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). (Jakub Zelenka)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode).', + 'raw' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode). (Kamil Tekiela)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed potential heap corruption due to alignment mismatch.', + 'raw' => 'Fixed potential heap corruption due to alignment mismatch. (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build).', + 'raw' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). (Jakub Zelenka, fsbruva)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9720 (Null pointer dereference while serializing the response).', + 'raw' => 'Fixed GH-9720 (Null pointer dereference while serializing the response). (cmb)', + ), + ), + ), + ), + '8.1.12' => + array ( + 'date' => '27 Oct 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixes segfault with Fiber on FreeBSD i386 architecture.', + 'raw' => 'Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files).', + 'raw' => 'Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files). (Anatol)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)', + 'raw' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) (cmb)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)', + 'raw' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454) (nicky at mouha dot be)', + ), + ), + 'mbstring' => + array ( + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added indirect call reduction for jit on x86 architectures.', + 'raw' => 'Added indirect call reduction for jit on x86 architectures. (wxue1)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method).', + 'raw' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method). (Girgias)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set).', + 'raw' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set). (Arnaud)', + ), + ), + ), + ), + '8.1.11' => + array ( + 'date' => '29 Sep 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)', + 'raw' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) (Tim Starling)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9361 (Segmentation fault on script exit #9379).', + 'raw' => 'Fixed bug GH-9361 (Segmentation fault on script exit #9379). (cmb, Christian Schneider)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9447 (Invalid class FQN emitted by AST dump for new and class constants in constant expressions).', + 'raw' => 'Fixed bug GH-9447 (Invalid class FQN emitted by AST dump for new and class constants in constant expressions). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81727: Don\'t mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629).', + 'raw' => 'Fixed bug #81727: Don\'t mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629). (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free).', + 'raw' => 'Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free). (Nathan Freeman)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to error_log after daemon reload).', + 'raw' => 'Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to error_log after daemon reload). (Dmitry Menshikov)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77780 ("Headers already sent..." when previous connection was aborted).', + 'raw' => 'Fixed bug #77780 ("Headers already sent..." when previous connection was aborted). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()).', + 'raw' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()). (Girgias)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).', + 'raw' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). (Girgias)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed pcre.jit on Apple Silicon.', + 'raw' => 'Fixed pcre.jit on Apple Silicon. (Niklas Keller)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).', + 'raw' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). (Yurunsoft)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628).', + 'raw' => 'Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure).', + 'raw' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure). (cmb, Nicolas Grekas)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line).', + 'raw' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line). (cmb, timwolla)', + ), + ), + ), + ), + '8.1.10' => + array ( + 'date' => '01 Sep 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed --CGI-- support of run-tests.php.', + 'raw' => 'Fixed --CGI-- support of run-tests.php. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect double to long casting in latest clang.', + 'raw' => 'Fixed incorrect double to long casting in latest clang. (zeriyoshi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9266 (GC root buffer keeps growing when dtors are present).', + 'raw' => 'Fixed bug GH-9266 (GC root buffer keeps growing when dtors are present). (Michael Olšavský)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of different type).', + 'raw' => 'Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of different type). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8964 (DateTime object comparison after applying delta less than 1 second).', + 'raw' => 'Fixed bug GH-8964 (DateTime object comparison after applying delta less than 1 second). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0).', + 'raw' => 'Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81263 (Wrong result from DateTimeImmutable::diff).', + 'raw' => 'Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed LMDB driver memory leak on DB creation failure', + 'raw' => 'Fixed LMDB driver memory leak on DB creation failure (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9155 (dba_open("non-existing", "c-", "flatfile") segfaults)', + 'raw' => 'Fixed bug GH-9155 (dba_open("non-existing", "c-", "flatfile") segfaults) (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9309 (Segfault when connection is used after imap_close()).', + 'raw' => 'Fixed bug GH-9309 (Segfault when connection is used after imap_close()). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed IntlDateFormatter::formatObject() parameter type.', + 'raw' => 'Fixed IntlDateFormatter::formatObject() parameter type. (Gert de Pagter)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9008 (mb_detect_encoding(): wrong results with null $encodings).', + 'raw' => 'Fixed bug GH-9008 (mb_detect_encoding(): wrong results with null $encodings). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9033 (Loading blacklist file can fail due to negative length).', + 'raw' => 'Fixed bug GH-9033 (Loading blacklist file can fail due to negative length). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy).', + 'raw' => 'Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy). (Arnaud, Sergei Turchanov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9339 (OpenSSL oid_file path check warning contains uninitialized path).', + 'raw' => 'Fixed bug GH-9339 (OpenSSL oid_file path check warning contains uninitialized path). (Jakub Zelenka)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values).', + 'raw' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values).', + 'raw' => 'Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8472 (The resource returned by stream_socket_accept may have incorrect metadata).', + 'raw' => 'Fixed bug GH-8472 (The resource returned by stream_socket_accept may have incorrect metadata). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8409 (SSL handshake timeout leaves persistent connections hanging).', + 'raw' => 'Fixed bug GH-8409 (SSL handshake timeout leaves persistent connections hanging). (Jakub Zelenka, Twosee)', + ), + ), + ), + ), + '8.1.9' => + array ( + 'date' => '04 Aug 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable.', + 'raw' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner)', + ), + 1 => + array ( + 'message' => 'Fixed GH-8952 (Intentionally closing std handles no longer possible).', + 'raw' => 'Fixed GH-8952 (Intentionally closing std handles no longer possible). (Arnaud, cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8923 (error_log on Windows can hold the file write lock).', + 'raw' => 'Fixed bug GH-8923 (error_log on Windows can hold the file write lock). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).', + 'raw' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). (Tobias Bachert)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80047 (DatePeriod doesn\'t warn with custom DateTimeImmutable).', + 'raw' => 'Fixed bug #80047 (DatePeriod doesn\'t warn with custom DateTimeImmutable). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed zlog message prepend, free on incorrect address.', + 'raw' => 'Fixed zlog message prepend, free on incorrect address. (Heiko Weber)', + ), + 1 => + array ( + 'message' => 'Fixed possible double free on configuration loading failure. .', + 'raw' => 'Fixed possible double free on configuration loading failure. (Heiko Weber).', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument).', + 'raw' => 'Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build for ICU 69.x and onwards.', + 'raw' => 'Fixed build for ICU 69.x and onwards. (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file).', + 'raw' => 'Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).', + 'raw' => 'Fixed bug GH-8030 (Segfault with JIT and large match/switch statements). (Arnaud)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8943 (Fixed Reflection::getModifiersNames() with readonly modifier).', + 'raw' => 'Fixed bug GH-8943 (Fixed Reflection::getModifiersNames() with readonly modifier). (Pierrick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8982 (Attribute with TARGET_METHOD is rejected on fake closure of method).', + 'raw' => 'Fixed bug GH-8982 (Attribute with TARGET_METHOD is rejected on fake closure of method). (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed the crypt_sha256/512 api build with clang > 12.', + 'raw' => 'Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. .', + 'raw' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL).', + 'raw' => 'Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL). (Heiko Weber)', + ), + ), + ), + ), + '8.1.8' => + array ( + 'date' => '07 Jul 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8338 (Intel CET is disabled unintentionally).', + 'raw' => 'Fixed bug GH-8338 (Intel CET is disabled unintentionally). (Chen, Hu)', + ), + 1 => + array ( + 'message' => 'Fixed leak in Enum::from/tryFrom for internal enums when using JIT', + 'raw' => 'Fixed leak in Enum::from/tryFrom for internal enums when using JIT (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed calling internal methods with a static return type from extension code.', + 'raw' => 'Fixed calling internal methods with a static return type from extension code. (Sara)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references).', + 'raw' => 'Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references). (Nicolas Grekas)', + ), + 4 => + array ( + 'message' => 'Fixed potential use after free in php_binary_init().', + 'raw' => 'Fixed potential use after free in php_binary_init(). (Heiko Weber)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-7942 (Indirect mutation of readonly properties through references).', + 'raw' => 'Fixed bug GH-7942 (Indirect mutation of readonly properties through references). (ilutov)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-8827 (Intentionally closing std handles no longer possible).', + 'raw' => 'Fixed GH-8827 (Intentionally closing std handles no longer possible). (cmb)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8778 (Integer arithmethic with large number variants fails).', + 'raw' => 'Fixed bug GH-8778 (Integer arithmethic with large number variants fails). (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option.', + 'raw' => 'Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option. (Pierrick)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions).', + 'raw' => 'Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74671 (DST timezone abbreviation has incorrect offset).', + 'raw' => 'Fixed bug #74671 (DST timezone abbreviation has incorrect offset). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #77243 (Weekdays are calculated incorrectly for negative years).', + 'raw' => 'Fixed bug #77243 (Weekdays are calculated incorrectly for negative years). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #78139 (timezone_open accepts invalid timezone string argument).', + 'raw' => 'Fixed bug #78139 (timezone_open accepts invalid timezone string argument). (Derick)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81723 (Heap buffer overflow in finfo_buffer). (CVE-2022-31627)', + 'raw' => 'Fixed bug #81723 (Heap buffer overflow in finfo_buffer). (CVE-2022-31627) (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67764 (fpm: syslog.ident don\'t work).', + 'raw' => 'Fixed bug #67764 (fpm: syslog.ident don\'t work). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed imagecreatefromavif() memory leak.', + 'raw' => 'Fixed imagecreatefromavif() memory leak. (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'mb_detect_encoding recognizes all letters in Czech alphabet', + 'raw' => 'mb_detect_encoding recognizes all letters in Czech alphabet (alexdowad)', + ), + 1 => + array ( + 'message' => 'mb_detect_encoding recognizes all letters in Hungarian alphabet', + 'raw' => 'mb_detect_encoding recognizes all letters in Hungarian alphabet (alexdowad)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8685 (pcre not ready at mbstring startup).', + 'raw' => 'Fixed bug GH-8685 (pcre not ready at mbstring startup). (Remi)', + ), + 3 => + array ( + 'message' => 'Backwards-compatible mappings for 0x5C/0x7E in Shift-JIS are restored, after they had been changed in 8.1.0.', + 'raw' => 'Backwards-compatible mappings for 0x5C/0x7E in Shift-JIS are restored, after they had been changed in 8.1.0. (Alex Dowad)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed handling of single-key connection strings.', + 'raw' => 'Fixed handling of single-key connection strings. (Calvin Buckley)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8591 (tracing JIT crash after private instance method change).', + 'raw' => 'Fixed bug GH-8591 (tracing JIT crash after private instance method change). (Arnaud, Dmitry, Oleg Stepanischev)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50293 (Several openssl functions ignore the VCWD).', + 'raw' => 'Fixed bug #50293 (Several openssl functions ignore the VCWD). (Jakub Zelenka, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81713 (NULL byte injection in several OpenSSL functions working with certificates).', + 'raw' => 'Fixed bug #81713 (NULL byte injection in several OpenSSL functions working with certificates). (Jakub Zelenka)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed handling of single-key connection strings.', + 'raw' => 'Fixed handling of single-key connection strings. (Calvin Buckley)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat cache).', + 'raw' => 'Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat cache). (Remi)', + ), + ), + ), + ), + '8.1.7' => + array ( + 'date' => '09 Jun 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8575 (CLI closes standard streams too early).', + 'raw' => 'Fixed bug GH-8575 (CLI closes standard streams too early). (Levi Morrison)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51934 (strtotime plurals / incorrect time).', + 'raw' => 'Fixed bug #51934 (strtotime plurals / incorrect time). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #51987 (Datetime fails to parse an ISO 8601 ordinal date (extended format)).', + 'raw' => 'Fixed bug #51987 (Datetime fails to parse an ISO 8601 ordinal date (extended format)). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #66019 (DateTime object does not support short ISO 8601 time format - YYYY-MM-DDTHH)', + 'raw' => 'Fixed bug #66019 (DateTime object does not support short ISO 8601 time format - YYYY-MM-DDTHH) (cmb, Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #68549 (Timezones and offsets are not properly used when working with dates)', + 'raw' => 'Fixed bug #68549 (Timezones and offsets are not properly used when working with dates) (Derick, Roel Harbers)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81565 (date parsing fails when provided with timezones including seconds).', + 'raw' => 'Fixed bug #81565 (date parsing fails when provided with timezones including seconds). (Derick)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-7758 (Problems with negative timestamps and fractions).', + 'raw' => 'Fixed bug GH-7758 (Problems with negative timestamps and fractions). (Derick, Ilija)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed ACL build check on MacOS.', + 'raw' => 'Fixed ACL build check on MacOS. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug #72185: php-fpm writes empty fcgi record causing nginx 502.', + 'raw' => 'Fixed bug #72185: php-fpm writes empty fcgi record causing nginx 502. (Jakub Zelenka, loveharmful)', + ), + 2 => + array ( + 'message' => 'Fixes use after free. .', + 'raw' => 'Fixes use after free. (Heiko Weber).', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626)', + 'raw' => 'Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626) (c dot fol at ambionics dot io)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8461 (tracing JIT crash after function/method change).', + 'raw' => 'Fixed bug GH-8461 (tracing JIT crash after function/method change). (Arnaud, Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79589 (error:14095126:SSL routines:ssl3_read_n:unexpected eof while reading).', + 'raw' => 'Fixed bug #79589 (error:14095126:SSL routines:ssl3_read_n:unexpected eof while reading). (Jakub Zelenka)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed Haiku build.', + 'raw' => 'Fixed Haiku build. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625)', + 'raw' => 'Fixed bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625) (cmb)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor).', + 'raw' => 'Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor). (robertnisipeanu)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8538 (SoapClient may strip parts of nmtokens).', + 'raw' => 'Fixed bug GH-8538 (SoapClient may strip parts of nmtokens). (cmb)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8235 (iterator_count() may run indefinitely).', + 'raw' => 'Fixed bug GH-8235 (iterator_count() may run indefinitely). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8185 (Crash during unloading of extension after dl() in ZTS).', + 'raw' => 'Fixed bug GH-8185 (Crash during unloading of extension after dl() in ZTS). (Arnaud)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed type for index in ZipArchive::replaceFile.', + 'raw' => 'Fixed type for index in ZipArchive::replaceFile. (Martin Rehberger)', + ), + ), + ), + ), + '8.1.6' => + array ( + 'date' => '12 May 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8310 (Registry settings are no longer recognized).', + 'raw' => 'Fixed bug GH-8310 (Registry settings are no longer recognized). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed potential race condition during resource ID allocation.', + 'raw' => 'Fixed potential race condition during resource ID allocation. (ryancaicse)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8133 (Preloading of constants containing arrays with enums segfaults).', + 'raw' => 'Fixed bug GH-8133 (Preloading of constants containing arrays with enums segfaults). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed Haiku ZTS builds.', + 'raw' => 'Fixed Haiku ZTS builds. (David Carlier)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7752 (DateTimeZone::getTransitions() returns insufficient data).', + 'raw' => 'Fixed bug GH-7752 (DateTimeZone::getTransitions() returns insufficient data). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8108 (Timezone doesn\'t work as intended).', + 'raw' => 'Fixed bug GH-8108 (Timezone doesn\'t work as intended). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81660 (DateTimeZone::getTransitions() returns invalid data).', + 'raw' => 'Fixed bug #81660 (DateTimeZone::getTransitions() returns invalid data). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8289 (Exceptions thrown within a yielded from iterator are not rethrown into the generator).', + 'raw' => 'Fixed bug GH-8289 (Exceptions thrown within a yielded from iterator are not rethrown into the generator). (Bob)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8433 (Assigning function pointers to structs in FFI leaks).', + 'raw' => 'Fixed bug GH-8433 (Assigning function pointers to structs in FFI leaks). (Bob)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76003 (FPM /status reports wrong number of active processe).', + 'raw' => 'Fixed bug #76003 (FPM /status reports wrong number of active processe). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77023 (FPM cannot shutdown processes).', + 'raw' => 'Fixed bug #77023 (FPM cannot shutdown processes). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed comment in kqueue remove callback log message.', + 'raw' => 'Fixed comment in kqueue remove callback log message. (David Carlier)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81714 (segfault when serializing finalized HashContext).', + 'raw' => 'Fixed bug #81714 (segfault when serializing finalized HashContext). (cmb)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header).', + 'raw' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8364 (msgfmt_format $values may not support references).', + 'raw' => 'Fixed bug GH-8364 (msgfmt_format $values may not support references). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Number of error markers emitted for invalid UTF-8 text matches WHATWG specification. This is a return to the behavior of PHP 8.0 and earlier.', + 'raw' => 'Number of error markers emitted for invalid UTF-8 text matches WHATWG specification. This is a return to the behavior of PHP 8.0 and earlier. (alexdowad)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8267 (MySQLi uses unsupported format specifier on Windows).', + 'raw' => 'Fixed bug GH-8267 (MySQLi uses unsupported format specifier on Windows). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8063 (OPcache breaks autoloading after E_COMPILE_ERROR).', + 'raw' => 'Fixed bug GH-8063 (OPcache breaks autoloading after E_COMPILE_ERROR). (Arnaud)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8366 (ArrayIterator may leak when calling __construct()).', + 'raw' => 'Fixed bug GH-8366 (ArrayIterator may leak when calling __construct()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8273 (SplFileObject: key() returns wrong value).', + 'raw' => 'Fixed bug GH-8273 (SplFileObject: key() returns wrong value). (Girgias)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed php://temp does not preserve file-position when switched to temporary file.', + 'raw' => 'Fixed php://temp does not preserve file-position when switched to temporary file. (Bernd Holzmüller)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header).', + 'raw' => 'Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header). (cmb)', + ), + ), + ), + ), + '8.1.5' => + array ( + 'date' => '14 Apr 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8176 (Enum values in property initializers leak).', + 'raw' => 'Fixed bug GH-8176 (Enum values in property initializers leak). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed freeing of internal attribute arguments.', + 'raw' => 'Fixed freeing of internal attribute arguments. (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8070 (memory leak of internal function attribute hash).', + 'raw' => 'Fixed bug GH-8070 (memory leak of internal function attribute hash). (Tim Düsterhus)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8160 (ZTS support on Alpine is broken).', + 'raw' => 'Fixed bug GH-8160 (ZTS support on Alpine is broken). (Michael Voříšek)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed signedness confusion in php_filter_validate_domain().', + 'raw' => 'Fixed signedness confusion in php_filter_validate_domain(). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8115 (Can\'t catch arg type deprecation when instantiating Intl classes).', + 'raw' => 'Fixed bug GH-8115 (Can\'t catch arg type deprecation when instantiating Intl classes). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8142 (Compilation error on cygwin).', + 'raw' => 'Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7734 (Fix IntlPartsIterator key off-by-one error and first key).', + 'raw' => 'Fixed bug GH-7734 (Fix IntlPartsIterator key off-by-one error and first key). (ilutov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken).', + 'raw' => 'Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties).', + 'raw' => 'Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties). (cmb)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8142 (Compilation error on cygwin).', + 'raw' => 'Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed result_type related stack corruption on LLP64 architectures.', + 'raw' => 'Fixed result_type related stack corruption on LLP64 architectures. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8253 (pg_insert() fails for references).', + 'raw' => 'Fixed bug GH-8253 (pg_insert() fails for references). (cmb)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed Solaris builds.', + 'raw' => 'Fixed Solaris builds. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fix undefined behavior in php_set_inet6_addr.', + 'raw' => 'Fix undefined behavior in php_set_inet6_addr. (ilutov)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8121 (SplFileObject - seek and key with csv file inconsistent).', + 'raw' => 'Fixed bug GH-8121 (SplFileObject - seek and key with csv file inconsistent). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8192 (Cannot override DirectoryIterator::current() without return typehint in 8.1).', + 'raw' => 'Fixed bug GH-8192 (Cannot override DirectoryIterator::current() without return typehint in 8.1). (Nikita)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8048 (Force macOS to use statfs).', + 'raw' => 'Fixed bug GH-8048 (Force macOS to use statfs). (risner)', + ), + ), + ), + ), + '8.1.4' => + array ( + 'date' => '17 Mar 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed Haiku ZTS build.', + 'raw' => 'Fixed Haiku ZTS build. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8059 arginfo not regenerated for extension.', + 'raw' => 'Fixed bug GH-8059 arginfo not regenerated for extension. (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8083 Segfault when dumping uncalled fake closure with static variables.', + 'raw' => 'Fixed bug GH-8083 Segfault when dumping uncalled fake closure with static variables. (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-7958 (Nested CallbackFilterIterator is leaking memory).', + 'raw' => 'Fixed bug GH-7958 (Nested CallbackFilterIterator is leaking memory). (cmb)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-8074 (Wrong type inference of range() result).', + 'raw' => 'Fixed bug GH-8074 (Wrong type inference of range() result). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-8140 (Wrong first class callable by name optimization).', + 'raw' => 'Fixed bug GH-8140 (Wrong first class callable by name optimization). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-8082 (op_arrays with temporary run_time_cache leak memory when observed).', + 'raw' => 'Fixed bug GH-8082 (op_arrays with temporary run_time_cache leak memory when observed). (Bob)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed libpng warning when loading interlaced images.', + 'raw' => 'Fixed libpng warning when loading interlaced images. (Brett)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76109 (Unsafe access to fpm scoreboard).', + 'raw' => 'Fixed bug #76109 (Unsafe access to fpm scoreboard). (Till Backhaus, Jakub Zelenka)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding).', + 'raw' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7980 (Unexpected result for iconv_mime_decode).', + 'raw' => 'Fixed bug GH-7980 (Unexpected result for iconv_mime_decode). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8128 (mb_check_encoding wrong result for 7bit).', + 'raw' => 'Fixed bug GH-8128 (mb_check_encoding wrong result for 7bit). (alexdowad)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8058 (NULL pointer dereference in mysqlnd package).', + 'raw' => 'Fixed bug GH-8058 (NULL pointer dereference in mysqlnd package). (Kamil Tekiela)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8080 (ReflectionClass::getConstants() depends on def. order).', + 'raw' => 'Fixed bug GH-8080 (ReflectionClass::getConstants() depends on def. order). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8444 (Fix ReflectionProperty::__toString() of properties containing instantiated enums).', + 'raw' => 'Fixed bug GH-8444 (Fix ReflectionProperty::__toString() of properties containing instantiated enums). (ilutov)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding).', + 'raw' => 'Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb)', + ), + ), + ), + ), + '8.1.3' => + array ( + 'date' => '03 Feb 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81430 (Attribute instantiation leaves dangling pointer).', + 'raw' => 'Fixed bug #81430 (Attribute instantiation leaves dangling pointer). (beberlei)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7896 (Environment vars may be mangled on Windows).', + 'raw' => 'Fixed bug GH-7896 (Environment vars may be mangled on Windows). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7883 (Segfault when INI file is not readable).', + 'raw' => 'Fixed bug GH-7883 (Segfault when INI file is not readable). (Remi)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7867 (FFI::cast() from pointer to array is broken).', + 'raw' => 'Fixed bug GH-7867 (FFI::cast() from pointer to array is broken). (cmb, dmitry)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fix #81708: UAF due to php_filter_float() failing for ints. (CVE-2021-21708)', + 'raw' => 'Fix #81708: UAF due to php_filter_float() failing for ints. (CVE-2021-21708) (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak on invalid port.', + 'raw' => 'Fixed memory leak on invalid port. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7842 (Invalid OpenMetrics response format returned by FPM status page.', + 'raw' => 'Fixed bug GH-7842 (Invalid OpenMetrics response format returned by FPM status page. (Stefano Arlandini)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7902 (mb_send_mail may delimit headers with LF only).', + 'raw' => 'Fixed bug GH-7902 (mb_send_mail may delimit headers with LF only). (cmb)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7972 (MariaDB version prefix 5.5.5- is not stripped).', + 'raw' => 'Fixed bug GH-7972 (MariaDB version prefix 5.5.5- is not stripped). (Kamil Tekiela)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_rfork build for DragonFlyBSD.', + 'raw' => 'Fixed pcntl_rfork build for DragonFlyBSD. (David Carlier)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7978 (sockets extension compilation errors).', + 'raw' => 'Fixed bug GH-7978 (sockets extension compilation errors). (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7899 (Regression in unpack for negative int value).', + 'raw' => 'Fixed bug GH-7899 (Regression in unpack for negative int value). (Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7875 (mails are sent even if failure to log throws exception).', + 'raw' => 'Fixed bug GH-7875 (mails are sent even if failure to log throws exception). (cmb)', + ), + ), + ), + ), + '8.1.2' => + array ( + 'date' => '20 Jan 2022', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81216 (Nullsafe operator leaks dynamic property name).', + 'raw' => 'Fixed bug #81216 (Nullsafe operator leaks dynamic property name). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81684 (Using null coalesce assignment with $GLOBALS["x"] produces opcode error).', + 'raw' => 'Fixed bug #81684 (Using null coalesce assignment with $GLOBALS["x"] produces opcode error). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81656 (GCC-11 silently ignores -R).', + 'raw' => 'Fixed bug #81656 (GCC-11 silently ignores -R). (Michael Wallner)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81683 (Misleading "access type ... must be public" error message on final or abstract interface methods).', + 'raw' => 'Fixed bug #81683 (Misleading "access type ... must be public" error message on final or abstract interface methods). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81585 (cached_chunks are not counted to real_size on shutdown).', + 'raw' => 'Fixed bug #81585 (cached_chunks are not counted to real_size on shutdown). (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-7757 (Multi-inherited final constant causes fatal error).', + 'raw' => 'Fixed bug GH-7757 (Multi-inherited final constant causes fatal error). (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed zend_fibers.c build with ZEND_FIBER_UCONTEXT.', + 'raw' => 'Fixed zend_fibers.c build with ZEND_FIBER_UCONTEXT. (Petr Sumbera)', + ), + 7 => + array ( + 'message' => 'Added riscv64 support for fibers.', + 'raw' => 'Added riscv64 support for fibers. (Jeremie Courreges-Anglas)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed FILTER_FLAG_NO_RES_RANGE flag.', + 'raw' => 'Fixed FILTER_FLAG_NO_RES_RANGE flag. (Yifan Tong)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7759 (Incorrect return types for hash() and hash_hmac()).', + 'raw' => 'Fixed bug GH-7759 (Incorrect return types for hash() and hash_hmac()). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7826 (Inconsistent argument name in hash_hmac_file and hash_file).', + 'raw' => 'Fixed bug GH-7826 (Inconsistent argument name in hash_hmac_file and hash_file). (cmb)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81693 (mb_check_encoding(7bit) segfaults).', + 'raw' => 'Fixed bug #81693 (mb_check_encoding(7bit) segfaults). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81658 (MYSQL_OPT_LOAD_DATA_LOCAL_DIR not available in MariaDB).', + 'raw' => 'Fixed bug #81658 (MYSQL_OPT_LOAD_DATA_LOCAL_DIR not available in MariaDB). (devnexen)', + ), + 1 => + array ( + 'message' => 'Introduced MYSQLI_IS_MARIADB.', + 'raw' => 'Introduced MYSQLI_IS_MARIADB. (devnexen)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7746 (mysqli_sql_exception->getSqlState()).', + 'raw' => 'Fixed bug GH-7746 (mysqli_sql_exception->getSqlState()). (Kamil Tekiela)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug where large bigints may be truncated.', + 'raw' => 'Fixed bug where large bigints may be truncated. (Nathan Freeman, cmb)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7765 (php_oci_cleanup_global_handles segfaults at second call).', + 'raw' => 'Fixed bug GH-7765 (php_oci_cleanup_global_handles segfaults at second call). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81679 (Tracing JIT crashes on reattaching).', + 'raw' => 'Fixed bug #81679 (Tracing JIT crashes on reattaching). (cmb)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81598 (Cannot input unicode characters in PHP 8 interactive shell).', + 'raw' => 'Fixed bug #81598 (Cannot input unicode characters in PHP 8 interactive shell). (Nikita)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81681 (ReflectionEnum throwing exceptions).', + 'raw' => 'Fixed bug #81681 (ReflectionEnum throwing exceptions). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed error message allocation of PDO PgSQL.', + 'raw' => 'Fixed error message allocation of PDO PgSQL. (SATO Kentaro)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Avoid void* arithmetic in sockets/multicast.c on NetBSD.', + 'raw' => 'Avoid void* arithmetic in sockets/multicast.c on NetBSD. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed ext/sockets build on Haiku.', + 'raw' => 'Fixed ext/sockets build on Haiku. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75917 (SplFileObject::seek broken with CSV flags).', + 'raw' => 'Fixed bug #75917 (SplFileObject::seek broken with CSV flags). (Aliaksandr Bystry)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7809 (Cloning a faked SplFileInfo object may segfault).', + 'raw' => 'Fixed bug GH-7809 (Cloning a faked SplFileInfo object may segfault). (cmb)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7748 (gethostbyaddr outputs binary string).', + 'raw' => 'Fixed bug GH-7748 (gethostbyaddr outputs binary string). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7815 (php_uname doesn\'t recognise latest Windows versions).', + 'raw' => 'Fixed bug GH-7815 (php_uname doesn\'t recognise latest Windows versions). (David Warner)', + ), + ), + ), + ), + '8.1.1' => + array ( + 'date' => '16 Dec 2021', + 'modules' => + array ( + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers).', + 'raw' => 'Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers). (cmb)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Update bundled PCRE2 to 10.39.', + 'raw' => 'Update bundled PCRE2 to 10.39. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74604 (Out of bounds in php_pcre_replace_impl).', + 'raw' => 'Fixed bug #74604 (Out of bounds in php_pcre_replace_impl). (cmb, Dmitry)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate).', + 'raw' => 'Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate). (cmb)', + ), + ), + ), + ), + '8.1.0' => + array ( + 'date' => '25 Nov 2021', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed inclusion order for phpize builds on Windows.', + 'raw' => 'Fixed inclusion order for phpize builds on Windows. (cmb)', + ), + 1 => + array ( + 'message' => 'Added missing hashtable insertion APIs for arr/obj/ref.', + 'raw' => 'Added missing hashtable insertion APIs for arr/obj/ref. (Sara)', + ), + 2 => + array ( + 'message' => 'Implemented FR #77372 (Relative file path is removed from uploaded file).', + 'raw' => 'Implemented FR #77372 (Relative file path is removed from uploaded file). (Björn Tantau)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81607 (CE_CACHE allocation with concurrent access).', + 'raw' => 'Fixed bug #81607 (CE_CACHE allocation with concurrent access). (Nikita, Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81507 (Fiber does not compile on AIX).', + 'raw' => 'Fixed bug #81507 (Fiber does not compile on AIX). (Clément Chigot)', + ), + 5 => + array ( + 'message' => 'Fixed bug #78647 (SEGFAULT in zend_do_perform_implementation_check).', + 'raw' => 'Fixed bug #78647 (SEGFAULT in zend_do_perform_implementation_check). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #81518 (Header injection via default_mimetype / default_charset).', + 'raw' => 'Fixed bug #81518 (Header injection via default_mimetype / default_charset). (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug #75941 (Fix compile failure on Solaris with clang).', + 'raw' => 'Fixed bug #75941 (Fix compile failure on Solaris with clang). (Jaromír Doleček)', + ), + 8 => + array ( + 'message' => 'Fixed bug #81380 (Observer may not be initialized properly).', + 'raw' => 'Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)', + ), + 9 => + array ( + 'message' => 'Fixed bug #81514 (Using Enum as key in WeakMap triggers GC + SegFault).', + 'raw' => 'Fixed bug #81514 (Using Enum as key in WeakMap triggers GC + SegFault). (Nikita)', + ), + 10 => + array ( + 'message' => 'Fixed bug #81520 (TEST_PHP_CGI_EXECUTABLE badly set in run-tests.php).', + 'raw' => 'Fixed bug #81520 (TEST_PHP_CGI_EXECUTABLE badly set in run-tests.php). (Remi)', + ), + 11 => + array ( + 'message' => 'Fixed bug #81377 (unset() of $GLOBALS sub-key yields warning).', + 'raw' => 'Fixed bug #81377 (unset() of $GLOBALS sub-key yields warning). (Nikita)', + ), + 12 => + array ( + 'message' => 'Fixed bug #81342 (New ampersand token parsing depends on new line after it).', + 'raw' => 'Fixed bug #81342 (New ampersand token parsing depends on new line after it). (Nikita)', + ), + 13 => + array ( + 'message' => 'Fixed bug #81280 (Unicode characters in cli.prompt causes segfault).', + 'raw' => 'Fixed bug #81280 (Unicode characters in cli.prompt causes segfault). (krakjoe)', + ), + 14 => + array ( + 'message' => 'Fixed bug #81192 ("Declaration should be compatible with" gives incorrect line number with traits).', + 'raw' => 'Fixed bug #81192 ("Declaration should be compatible with" gives incorrect line number with traits). (Nikita)', + ), + 15 => + array ( + 'message' => 'Fixed bug #78919 (CLI server: insufficient cleanup if request startup fails).', + 'raw' => 'Fixed bug #78919 (CLI server: insufficient cleanup if request startup fails). (cataphract, cmb)', + ), + 16 => + array ( + 'message' => 'Fixed bug #81303 (match error message improvements).', + 'raw' => 'Fixed bug #81303 (match error message improvements). (krakjoe)', + ), + 17 => + array ( + 'message' => 'Fixed bug #81238 (Fiber support missing for Solaris Sparc).', + 'raw' => 'Fixed bug #81238 (Fiber support missing for Solaris Sparc). (trowski)', + ), + 18 => + array ( + 'message' => 'Fixed bug #81237 (Comparison of fake closures doesn\'t work).', + 'raw' => 'Fixed bug #81237 (Comparison of fake closures doesn\'t work). (krakjoe)', + ), + 19 => + array ( + 'message' => 'Fixed bug #81202 (powerpc64 build fails on fibers).', + 'raw' => 'Fixed bug #81202 (powerpc64 build fails on fibers). (krakjoe)', + ), + 20 => + array ( + 'message' => 'Fixed bug #80072 (Cyclic unserialize in TMPVAR operand may leak).', + 'raw' => 'Fixed bug #80072 (Cyclic unserialize in TMPVAR operand may leak). (Nikita)', + ), + 21 => + array ( + 'message' => 'Fixed bug #81163 (__sleep allowed to return non-array).', + 'raw' => 'Fixed bug #81163 (__sleep allowed to return non-array). (krakjoe)', + ), + 22 => + array ( + 'message' => 'Fixed bug #75474 (function scope static variables are not bound to a unique function).', + 'raw' => 'Fixed bug #75474 (function scope static variables are not bound to a unique function). (Nikita)', + ), + 23 => + array ( + 'message' => 'Fixed bug #53826 (__callStatic fired in base class through a parent call if the method is private).', + 'raw' => 'Fixed bug #53826 (__callStatic fired in base class through a parent call if the method is private). (Nikita)', + ), + 24 => + array ( + 'message' => 'Fixed bug #81076 (incorrect debug info on Closures with implicit binds).', + 'raw' => 'Fixed bug #81076 (incorrect debug info on Closures with implicit binds). (krakjoe)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81496 (Server logs incorrect request method).', + 'raw' => 'Fixed bug #81496 (Server logs incorrect request method). (lauri)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT.', + 'raw' => 'Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT. (Dmitry Maksimov)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81085 (Support CURLOPT_SSLCERT_BLOB for cert strings).', + 'raw' => 'Fixed bug #81085 (Support CURLOPT_SSLCERT_BLOB for cert strings). (camporter)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81458 (Regression Incorrect difference after timezone change).', + 'raw' => 'Fixed bug #81458 (Regression Incorrect difference after timezone change). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).', + 'raw' => 'Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81504 (Incorrect timezone transition details for POSIX data).', + 'raw' => 'Fixed bug #81504 (Incorrect timezone transition details for POSIX data). (Derick)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80998 (Missing second with inverted interval).', + 'raw' => 'Fixed bug #80998 (Missing second with inverted interval). (Derick)', + ), + 4 => + array ( + 'message' => 'Speed up finding timezone offset information.', + 'raw' => 'Speed up finding timezone offset information. (Derick)', + ), + 5 => + array ( + 'message' => 'Fixed bug #79580 (date_create_from_format misses leap year).', + 'raw' => 'Fixed bug #79580 (date_create_from_format misses leap year). (Derick)', + ), + 6 => + array ( + 'message' => 'Fixed bug #80963 (DateTimeZone::getTransitions() truncated).', + 'raw' => 'Fixed bug #80963 (DateTimeZone::getTransitions() truncated). (Derick)', + ), + 7 => + array ( + 'message' => 'Fixed bug #80974 (Wrong diff between 2 dates in different timezones).', + 'raw' => 'Fixed bug #80974 (Wrong diff between 2 dates in different timezones). (Derick)', + ), + 8 => + array ( + 'message' => 'Fixed bug #80998 (Missing second with inverted interval).', + 'raw' => 'Fixed bug #80998 (Missing second with inverted interval). (Derick)', + ), + 9 => + array ( + 'message' => 'Fixed bug #81097 (DateTimeZone silently falls back to UTC when providing an offset with seconds).', + 'raw' => 'Fixed bug #81097 (DateTimeZone silently falls back to UTC when providing an offset with seconds). (Derick)', + ), + 10 => + array ( + 'message' => 'Fixed bug #81106 (Regression in 8.1: add() now truncate ->f).', + 'raw' => 'Fixed bug #81106 (Regression in 8.1: add() now truncate ->f). (Derick)', + ), + 11 => + array ( + 'message' => 'Fixed bug #81273 (Date interval calculation not correct).', + 'raw' => 'Fixed bug #81273 (Date interval calculation not correct). (Derick)', + ), + 12 => + array ( + 'message' => 'Fixed bug #52480 (Incorrect difference using DateInterval).', + 'raw' => 'Fixed bug #52480 (Incorrect difference using DateInterval). (Derick)', + ), + 13 => + array ( + 'message' => 'Fixed bug #62326 (date_diff() function returns false result).', + 'raw' => 'Fixed bug #62326 (date_diff() function returns false result). (Derick)', + ), + 14 => + array ( + 'message' => 'Fixed bug #64992 (dst not handled past 2038).', + 'raw' => 'Fixed bug #64992 (dst not handled past 2038). (Derick)', + ), + 15 => + array ( + 'message' => 'Fixed bug #65003 (Wrong date diff).', + 'raw' => 'Fixed bug #65003 (Wrong date diff). (Derick)', + ), + 16 => + array ( + 'message' => 'Fixed bug #66545 (DateTime. diff returns negative values).', + 'raw' => 'Fixed bug #66545 (DateTime. diff returns negative values). (Derick)', + ), + 17 => + array ( + 'message' => 'Fixed bug #68503 (date_diff on two dates with timezone set localised returns wrong results).', + 'raw' => 'Fixed bug #68503 (date_diff on two dates with timezone set localised returns wrong results). (Derick)', + ), + 18 => + array ( + 'message' => 'Fixed bug #69806 (Incorrect date from timestamp).', + 'raw' => 'Fixed bug #69806 (Incorrect date from timestamp). (Derick)', + ), + 19 => + array ( + 'message' => 'Fixed bug #71700 (Extra day on diff between begin and end of march 2016).', + 'raw' => 'Fixed bug #71700 (Extra day on diff between begin and end of march 2016). (Derick)', + ), + 20 => + array ( + 'message' => 'Fixed bug #71826 (DateTime::diff confuse on timezone \'Asia/Tokyo\').', + 'raw' => 'Fixed bug #71826 (DateTime::diff confuse on timezone \'Asia/Tokyo\'). (Derick)', + ), + 21 => + array ( + 'message' => 'Fixed bug #73460 (Datetime add not realising it already applied DST change).', + 'raw' => 'Fixed bug #73460 (Datetime add not realising it already applied DST change). (Derick)', + ), + 22 => + array ( + 'message' => 'Fixed bug #74173 (DateTimeImmutable::getTimestamp() triggers DST switch in incorrect time).', + 'raw' => 'Fixed bug #74173 (DateTimeImmutable::getTimestamp() triggers DST switch in incorrect time). (Derick)', + ), + 23 => + array ( + 'message' => 'Fixed bug #74274 (Handling DST transitions correctly).', + 'raw' => 'Fixed bug #74274 (Handling DST transitions correctly). (Derick)', + ), + 24 => + array ( + 'message' => 'Fixed bug #74524 (Date diff is bad calculated, in same time zone).', + 'raw' => 'Fixed bug #74524 (Date diff is bad calculated, in same time zone). (Derick)', + ), + 25 => + array ( + 'message' => 'Fixed bug #75167 (DateTime::add does only care about backward DST transition, not forward).', + 'raw' => 'Fixed bug #75167 (DateTime::add does only care about backward DST transition, not forward). (Derick)', + ), + 26 => + array ( + 'message' => 'Fixed bug #76032 (DateTime->diff having issues with leap days for timezones ahead of UTC).', + 'raw' => 'Fixed bug #76032 (DateTime->diff having issues with leap days for timezones ahead of UTC). (Derick)', + ), + 27 => + array ( + 'message' => 'Fixed bug #76374 (Date difference varies according day time).', + 'raw' => 'Fixed bug #76374 (Date difference varies according day time). (Derick)', + ), + 28 => + array ( + 'message' => 'Fixed bug #77571 (DateTime\'s diff DateInterval incorrect in timezones from UTC+01:00 to UTC+12:00).', + 'raw' => 'Fixed bug #77571 (DateTime\'s diff DateInterval incorrect in timezones from UTC+01:00 to UTC+12:00). (Derick)', + ), + 29 => + array ( + 'message' => 'Fixed bug #78452 (diff makes wrong in hour for Asia/Tehran).', + 'raw' => 'Fixed bug #78452 (diff makes wrong in hour for Asia/Tehran). (Derick)', + ), + 30 => + array ( + 'message' => 'Fixed bug #79452 (DateTime::diff() generates months differently between time zones).', + 'raw' => 'Fixed bug #79452 (DateTime::diff() generates months differently between time zones). (Derick)', + ), + 31 => + array ( + 'message' => 'Fixed bug #79698 (timelib mishandles future timestamps (triggered by \'zic -b slim\')).', + 'raw' => 'Fixed bug #79698 (timelib mishandles future timestamps (triggered by \'zic -b slim\')). (Derick)', + ), + 32 => + array ( + 'message' => 'Fixed bug #79716 (Invalid date time created (with day "00")).', + 'raw' => 'Fixed bug #79716 (Invalid date time created (with day "00")). (Derick)', + ), + 33 => + array ( + 'message' => 'Fixed bug #80610 (DateTime calculate wrong with DateInterval).', + 'raw' => 'Fixed bug #80610 (DateTime calculate wrong with DateInterval). (Derick)', + ), + 34 => + array ( + 'message' => 'Fixed bug #80664 (DateTime objects behave incorrectly around DST transition).', + 'raw' => 'Fixed bug #80664 (DateTime objects behave incorrectly around DST transition). (Derick)', + ), + 35 => + array ( + 'message' => 'Fixed bug #80913 (DateTime(Immutable)::sub around DST yield incorrect time).', + 'raw' => 'Fixed bug #80913 (DateTime(Immutable)::sub around DST yield incorrect time). (Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81588 (TokyoCabinet driver leaks memory).', + 'raw' => 'Fixed bug #81588 (TokyoCabinet driver leaks memory). (girgias)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID).', + 'raw' => 'Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID). (Viktor Volkov)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined).', + 'raw' => 'Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined). (Dmitry)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).', + 'raw' => 'Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing). (cmb, Nikita)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81513 (Future possibility for heap overflow in FPM zlog).', + 'raw' => 'Fixed bug #81513 (Future possibility for heap overflow in FPM zlog). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703).', + 'raw' => 'Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Added openmetrics status format.', + 'raw' => 'Added openmetrics status format. (Cees-Jan Kiewiet)', + ), + 3 => + array ( + 'message' => 'Enable process renaming on macOS.', + 'raw' => 'Enable process renaming on macOS. (devnexen)', + ), + 4 => + array ( + 'message' => 'Added pm.max_spawn_rate option to configure max spawn child processes rate.', + 'raw' => 'Added pm.max_spawn_rate option to configure max spawn child processes rate. (Paulius Sapragonas)', + ), + 5 => + array ( + 'message' => 'Fixed bug #65800 (Events port mechanism).', + 'raw' => 'Fixed bug #65800 (Events port mechanism). (psumbera)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Convert resource<ftp> to object \\FTP\\Connection.', + 'raw' => 'Convert resource<ftp> to object \\FTP\\Connection. (Sara)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71316 (libpng warning from imagecreatefromstring).', + 'raw' => 'Fixed bug #71316 (libpng warning from imagecreatefromstring). (cmb)', + ), + 1 => + array ( + 'message' => 'Convert resource<gd font> to object \\GdFont.', + 'raw' => 'Convert resource<gd font> to object \\GdFont. (Sara)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #68109 (Add MurmurHash V3).', + 'raw' => 'Implemented FR #68109 (Add MurmurHash V3). (Anatol, Michael)', + ), + 1 => + array ( + 'message' => 'Implemented FR #73385 (Add xxHash support).', + 'raw' => 'Implemented FR #73385 (Add xxHash support). (Anatol)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81532 (Change of $depth behaviour in json_encode() on PHP 8.1).', + 'raw' => 'Fixed bug #81532 (Change of $depth behaviour in json_encode() on PHP 8.1). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8238 (Register JSON_ERROR_NON_BACKED_ENUM constant).', + 'raw' => 'Fixed bug GH-8238 (Register JSON_ERROR_NON_BACKED_ENUM constant). (ilutov)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Convert resource<ldap link> to object \\LDAP\\Connection.', + 'raw' => 'Convert resource<ldap link> to object \\LDAP\\Connection. (Máté)', + ), + 1 => + array ( + 'message' => 'Convert resource<ldap result> to object \\LDAP\\Result.', + 'raw' => 'Convert resource<ldap result> to object \\LDAP\\Result. (Máté)', + ), + 2 => + array ( + 'message' => 'Convert resource<ldap result entry> to object \\LDAP\\ResultEntry.', + 'raw' => 'Convert resource<ldap result entry> to object \\LDAP\\ResultEntry. (Máté)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #76167 (mbstring may use pointer from some previous request).', + 'raw' => 'Fixed bug #76167 (mbstring may use pointer from some previous request). (cmb, cataphract)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81390 (mb_detect_encoding() regression).', + 'raw' => 'Fixed bug #81390 (mb_detect_encoding() regression). (alexdowad)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81349 (mb_detect_encoding misdetcts ASCII in some cases).', + 'raw' => 'Fixed bug #81349 (mb_detect_encoding misdetcts ASCII in some cases). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is specified).', + 'raw' => 'Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is specified). (Nikita)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #70372 (Emulate mysqli_fetch_all() for libmysqlclient).', + 'raw' => 'Fixed bug #70372 (Emulate mysqli_fetch_all() for libmysqlclient). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80330 (Replace language in APIs and source code/docs).', + 'raw' => 'Fixed bug #80330 (Replace language in APIs and source code/docs). (Darek Ślusarczyk)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80329 (Add option to specify LOAD DATA LOCAL white list folder (including libmysql)).', + 'raw' => 'Fixed bug #80329 (Add option to specify LOAD DATA LOCAL white list folder (including libmysql)). (Darek Ślusarczyk)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment).', + 'raw' => 'Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80761 (PDO uses too much memory).', + 'raw' => 'Fixed bug #80761 (PDO uses too much memory). (Nikita)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81409 (Incorrect JIT code for ADD with a reference to array).', + 'raw' => 'Fixed bug #81409 (Incorrect JIT code for ADD with a reference to array). (Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81255 .', + 'raw' => 'Fixed bug #81255 (Memory leak in PHPUnit with functional JIT).', + ), + 2 => + array ( + 'message' => 'Fixed bug #80959 (infinite loop in building cfg during JIT compilation).', + 'raw' => 'Fixed bug #80959 (infinite loop in building cfg during JIT compilation). (Nikita, Dmitry)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81225 (Wrong result with pow operator with JIT enabled).', + 'raw' => 'Fixed bug #81225 (Wrong result with pow operator with JIT enabled). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81249 (Intermittent property assignment failure with JIT enabled).', + 'raw' => 'Fixed bug #81249 (Intermittent property assignment failure with JIT enabled). (Dmitry)', + ), + 5 => + array ( + 'message' => 'Fixed bug #81256 (Assertion `zv != ((void *)0)\' failed for "preload" with JIT).', + 'raw' => 'Fixed bug #81256 (Assertion `zv != ((void *)0)\' failed for "preload" with JIT). (Dmitry)', + ), + 6 => + array ( + 'message' => 'Fixed bug #81133 (building opcache with phpize fails).', + 'raw' => 'Fixed bug #81133 (building opcache with phpize fails). (krakjoe)', + ), + 7 => + array ( + 'message' => 'Fixed bug #81136 (opcache header not installed).', + 'raw' => 'Fixed bug #81136 (opcache header not installed). (krakjoe)', + ), + 8 => + array ( + 'message' => 'Added inheritance cache.', + 'raw' => 'Added inheritance cache. (Dmitry)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81502 ($tag argument of openssl_decrypt() should accept null/empty string).', + 'raw' => 'Fixed bug #81502 ($tag argument of openssl_decrypt() should accept null/empty string). (Nikita)', + ), + 1 => + array ( + 'message' => 'Bump minimal OpenSSL version to 1.0.2.', + 'raw' => 'Bump minimal OpenSSL version to 1.0.2. (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81424 (PCRE2 10.35 JIT performance regression).', + 'raw' => 'Fixed bug #81424 (PCRE2 10.35 JIT performance regression). (cmb)', + ), + 1 => + array ( + 'message' => 'Bundled PCRE2 is 10.37.', + 'raw' => 'Bundled PCRE2 is 10.37.', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #40913 (PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB).', + 'raw' => 'Fixed bug #40913 (PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for fetching a BLOB). (Nikita)', + ), + ), + 'pdo mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80908 (PDO::lastInsertId() return wrong).', + 'raw' => 'Fixed bug #80908 (PDO::lastInsertId() return wrong). (matt)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81037 (PDO discards error message text from prepared statement).', + 'raw' => 'Fixed bug #81037 (PDO discards error message text from prepared statement). (Kamil Tekiela)', + ), + ), + 'pdo oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77120 (Support \'success with info\' at connection).', + 'raw' => 'Fixed bug #77120 (Support \'success with info\' at connection). (Sergei Morozov)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Implement PDO_ATTR_SERVER_VERSION and PDO_ATTR_SERVER_INFO for PDO::getAttribute().', + 'raw' => 'Implement PDO_ATTR_SERVER_VERSION and PDO_ATTR_SERVER_INFO for PDO::getAttribute(). (Calvin Buckley)', + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81343 (pdo_pgsql: Inconsitent boolean conversion after calling closeCursor()).', + 'raw' => 'Fixed bug #81343 (pdo_pgsql: Inconsitent boolean conversion after calling closeCursor()). (Philip Hofstetter)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #38334 (Proper data-type support for PDO_SQLITE).', + 'raw' => 'Fixed bug #38334 (Proper data-type support for PDO_SQLITE). (Nikita)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81509 (pg_end_copy still expects a resource).', + 'raw' => 'Fixed bug #81509 (pg_end_copy still expects a resource). (Matteo)', + ), + 1 => + array ( + 'message' => 'Convert resource<pgsql link> to object \\PgSql\\Connection.', + 'raw' => 'Convert resource<pgsql link> to object \\PgSql\\Connection. (Máté)', + ), + 2 => + array ( + 'message' => 'Convert resource<pgsql result> to object \\PgSql\\Result.', + 'raw' => 'Convert resource<pgsql result> to object \\PgSql\\Result. (Máté)', + ), + 3 => + array ( + 'message' => 'Convert resource<pgsql large object> to object \\PgSql\\Lob.', + 'raw' => 'Convert resource<pgsql large object> to object \\PgSql\\Lob. (Máté)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Use SHA256 by default for signature.', + 'raw' => 'Use SHA256 by default for signature. (remi)', + ), + 1 => + array ( + 'message' => 'Add support for OpenSSL_SHA256 and OpenSSL_SHA512 signature.', + 'raw' => 'Add support for OpenSSL_SHA256 and OpenSSL_SHA512 signature. (remi)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81135 (unknown help topic causes assertion failure).', + 'raw' => 'Fixed bug #81135 (unknown help topic causes assertion failure). (krakjoe)', + ), + ), + 'pspell' => + array ( + 0 => + array ( + 'message' => 'Convert resource<pspell> to object \\PSpell\\Dictionary.', + 'raw' => 'Convert resource<pspell> to object \\PSpell\\Dictionary. (Sara)', + ), + 1 => + array ( + 'message' => 'Convert resource<pspell config> to object \\PSpell\\Config.', + 'raw' => 'Convert resource<pspell config> to object \\PSpell\\Config. (Sara)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72998 (invalid read in readline completion).', + 'raw' => 'Fixed bug #72998 (invalid read in readline completion). (krakjoe)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81611 (ArgumentCountError when getting default value from ReflectionParameter with new).', + 'raw' => 'Fixed bug #81611 (ArgumentCountError when getting default value from ReflectionParameter with new). (Cameron Porter)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81630 (PHP 8.1: ReflectionClass->getTraitAliases() crashes with Internal error).', + 'raw' => 'Fixed bug #81630 (PHP 8.1: ReflectionClass->getTraitAliases() crashes with Internal error). (Nikita)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81457 (Enum: ReflectionMethod->getDeclaringClass() return a ReflectionClass).', + 'raw' => 'Fixed bug #81457 (Enum: ReflectionMethod->getDeclaringClass() return a ReflectionClass). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81474 (Make ReflectionEnum and related class non-final).', + 'raw' => 'Fixed bug #81474 (Make ReflectionEnum and related class non-final). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current value for statics).', + 'raw' => 'Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current value for statics). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80564 (ReflectionProperty::__toString() renders current value, not default value).', + 'raw' => 'Fixed bug #80564 (ReflectionProperty::__toString() renders current value, not default value). (Nikita)', + ), + 6 => + array ( + 'message' => 'Fixed bug #80097 (ReflectionAttribute is not a Reflector).', + 'raw' => 'Fixed bug #80097 (ReflectionAttribute is not a Reflector). (beberlei)', + ), + 7 => + array ( + 'message' => 'Fixed bug #81200 (no way to determine if Closure is static).', + 'raw' => 'Fixed bug #81200 (no way to determine if Closure is static). (krakjoe)', + ), + 8 => + array ( + 'message' => 'Implement ReflectionFunctionAbstract::getClosureUsedVariables.', + 'raw' => 'Implement ReflectionFunctionAbstract::getClosureUsedVariables. (krakjoe)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81407 (shmop_open won\'t attach and causes php to crash).', + 'raw' => 'Fixed bug #81407 (shmop_open won\'t attach and causes php to crash). (cmb)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81325 (Segfault in zif_simplexml_import_dom).', + 'raw' => 'Fixed bug #81325 (Segfault in zif_simplexml_import_dom). (remi)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Implement SHA256 and SHA512 for security protocol.', + 'raw' => 'Implement SHA256 and SHA512 for security protocol. (remi)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Added the XChaCha20 stream cipher functions.', + 'raw' => 'Added the XChaCha20 stream cipher functions. (P.I.E. Security Team)', + ), + 1 => + array ( + 'message' => 'Added the Ristretto255 functions, which are available in libsodium 1.0.18.', + 'raw' => 'Added the Ristretto255 functions, which are available in libsodium 1.0.18. (P.I.E. Security Team)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66588 (SplFileObject::fgetcsv incorrectly returns a row on premature EOF).', + 'raw' => 'Fixed bug #66588 (SplFileObject::fgetcsv incorrectly returns a row on premature EOF). (Aliaksandr Bystry)', + ), + 1 => + array ( + 'message' => 'Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free).', + 'raw' => 'Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free). (cmb, Nikita, Tyson Andre)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1).', + 'raw' => 'Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81112 (Special json_encode behavior for SplFixedArray).', + 'raw' => 'Fixed bug #81112 (Special json_encode behavior for SplFixedArray). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #80945 ("Notice: Undefined index" on unset() ArrayObject non-existing key).', + 'raw' => 'Fixed bug #80945 ("Notice: Undefined index" on unset() ArrayObject non-existing key). (Nikita)', + ), + 5 => + array ( + 'message' => 'Fixed bug #80724 (FilesystemIterator::FOLLOW_SYMLINKS remove KEY_AS_FILE from bitmask).', + 'raw' => 'Fixed bug #80724 (FilesystemIterator::FOLLOW_SYMLINKS remove KEY_AS_FILE from bitmask). (Cameron Porter)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81441 (gethostbyaddr(\'::1\') returns ip instead of name after calling some other method).', + 'raw' => 'Fixed bug #81441 (gethostbyaddr(\'::1\') returns ip instead of name after calling some other method). (Nikita)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81491 (Incorrectly using libsodium for argon2 hashing).', + 'raw' => 'Fixed bug #81491 (Incorrectly using libsodium for argon2 hashing). (Dan Pock)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81142 (PHP 7.3+ memory leak when unserialize() is used on an associative array).', + 'raw' => 'Fixed bug #81142 (PHP 7.3+ memory leak when unserialize() is used on an associative array). (Nikita)', + ), + 3 => + array ( + 'message' => 'Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes with __serialize()).', + 'raw' => 'Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes with __serialize()). (Nikita)', + ), + 4 => + array ( + 'message' => 'Fixed bug #81137 (hrtime breaks build on OSX before Sierra).', + 'raw' => 'Fixed bug #81137 (hrtime breaks build on OSX before Sierra). (krakjoe)', + ), + 5 => + array ( + 'message' => 'Fixed bug #77627 (method_exists on Closure::__invoke inconsistency).', + 'raw' => 'Fixed bug #77627 (method_exists on Closure::__invoke inconsistency). (krakjoe)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper).', + 'raw' => 'Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper). (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79971 (special character is breaking the path in xml function) (CVE-2021-21707).', + 'raw' => 'Fixed bug #79971 (special character is breaking the path in xml function) (CVE-2021-21707). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).', + 'raw' => 'Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace). (Aliaksandr Bystry, cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81490 (ZipArchive::extractTo() may leak memory).', + 'raw' => 'Fixed bug #81490 (ZipArchive::extractTo() may leak memory). (cmb, Remi)', + ), + 1 => + array ( + 'message' => 'Fixed bug #77978 (Dirname ending in colon unzips to wrong dir).', + 'raw' => 'Fixed bug #77978 (Dirname ending in colon unzips to wrong dir). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination) (CVE-2021-21706).', + 'raw' => 'Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination) (CVE-2021-21706). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80833 (ZipArchive::getStream doesn\'t use setPassword).', + 'raw' => 'Fixed bug #80833 (ZipArchive::getStream doesn\'t use setPassword). (Remi)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.2/changelist.inc b/include/releases/8.2/changelist.inc new file mode 100644 index 0000000000..6fc41afbb0 --- /dev/null +++ b/include/releases/8.2/changelist.inc @@ -0,0 +1,6412 @@ +<?php return array ( + '8.2.31' => + array ( + 'date' => NULL, + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility issues with OpenSSL 4.0.', + 'raw' => 'Fix compatibility issues with OpenSSL 4.0. (jordikroon, Remi)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + ), + ), + ), + ), + '8.2.30' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + ), + ), + ), + ), + '8.2.29' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735)', + 'raw' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735) (Jakub Zelenka)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP Extension via Large XML Namespace Prefix). (CVE-2025-6491)', + 'raw' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP Extension via Large XML Namespace Prefix). (CVE-2025-6491) (Lekssays, nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220)', + 'raw' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220) (Jakub Zelenka)', + ), + ), + ), + ), + '8.2.28' => + array ( + 'date' => '13 Mar 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()).', + 'raw' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()). (Arnaud)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + ), + ), + ), + ), + '8.2.27' => + array ( + 'date' => '19 Dec 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jdtogregorian overflow.', + 'raw' => 'Fixed jdtogregorian overflow. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed cal_to_jd julian_days argument overflow.', + 'raw' => 'Fixed cal_to_jd julian_days argument overflow. (David Carlier)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).', + 'raw' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fail early in *nix configuration build script.', + 'raw' => 'Fail early in *nix configuration build script. (hakre)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)).', + 'raw' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469).', + 'raw' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs).', + 'raw' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix is_zend_ptr() huge block comparison.', + 'raw' => 'Fix is_zend_ptr() huge block comparison. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed potential OOB read in zend_dirname() on Windows.', + 'raw' => 'Fixed potential OOB read in zend_dirname() on Windows. (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix various memory leaks in curl mime handling.', + 'raw' => 'Fix various memory leaks in curl mime handling. (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status).', + 'raw' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16776 (imagecreatefromstring overflow).', + 'raw' => 'Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Revert gmp_pow() overly restrictive overflow checks.', + 'raw' => 'Revert gmp_pow() overly restrictive overflow checks. (David Carlier)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16711: Segfault in mhash().', + 'raw' => 'Fixed GH-16711: Segfault in mhash(). (Girgias)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF).', + 'raw' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF). (nielsdos, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).', + 'raw' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). (dktapps)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).', + 'raw' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Prevent unexpected array entry conversion when reading key.', + 'raw' => 'Prevent unexpected array entry conversion when reading key. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix various memory leaks related to openssl exports.', + 'raw' => 'Fix various memory leaks related to openssl exports. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix memory leak in php_openssl_pkey_from_zval().', + 'raw' => 'Fix memory leak in php_openssl_pkey_from_zval(). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak of `setFetchMode()`.', + 'raw' => 'Fixed memory leak of `setFetchMode()`. (SakiTakamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks).', + 'raw' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks). (nielsdos, Hans Krentel)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).', + 'raw' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). (nielsdos)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867).', + 'raw' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input).', + 'raw' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). (nielsdos)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16959 (snmget modifies the object_id array).', + 'raw' => 'Fixed bug GH-16959 (snmget modifies the object_id array). (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties).', + 'raw' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed network connect poll interuption handling.', + 'raw' => 'Fixed network connect poll interuption handling. (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16849 (Error dialog causes process to hang).', + 'raw' => 'Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)', + ), + ), + ), + ), + '8.2.26' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang).', + 'raw' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface).', + 'raw' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface). (nielsdos)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed out of bound writes to SafeArray data.', + 'raw' => 'Fixed out of bound writes to SafeArray data. (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15).', + 'raw' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646).', + 'raw' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline).', + 'raw' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error).', + 'raw' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes).', + 'raw' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16648 (Use-after-free during array sorting).', + 'raw' => 'Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-15915 (overflow with a high value for precision INI).', + 'raw' => 'Fixed bug GH-15915 (overflow with a high value for precision INI). (David Carlier / cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails).', + 'raw' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails). (timwolla)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset).', + 'raw' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16037 (Assertion failure in ext/date/php_date.c).', + 'raw' => 'Fixed bug GH-16037 (Assertion failure in ext/date/php_date.c). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values).', + 'raw' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams).', + 'raw' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly).', + 'raw' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong).', + 'raw' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element).', + 'raw' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16535 (UAF when using document as a child).', + 'raw' => 'Fixed bug GH-16535 (UAF when using document as a child). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild).', + 'raw' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode).', + 'raw' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file).', + 'raw' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file). (nielsdos, cmb)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object).', + 'raw' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object). (nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen).', + 'raw' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement).', + 'raw' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements).', + 'raw' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16427 (Unchecked libavif return values).', + 'raw' => 'Fixed bug GH-16427 (Unchecked libavif return values). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007).', + 'raw' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007). (nielsdos)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16411 (gmp_export() can cause overflow).', + 'raw' => 'Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow).', + 'raw' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed segfaults and other issues related to operator overloading with GMP objects.', + 'raw' => 'Fixed segfaults and other issues related to operator overloading with GMP objects. (Girgias)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932)', + 'raw' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932) (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments).', + 'raw' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments). (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929)', + 'raw' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) (Jakub Zelenka)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays).', + 'raw' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow).', + 'raw' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow). (cmb)', + ), + 2 => + array ( + 'message' => 'Fix various memory leaks on error conditions in openssl_x509_parse().', + 'raw' => 'Fix various memory leaks on error conditions in openssl_x509_parse(). (nielsdos)', + ), + ), + 'pdo dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values).', + 'raw' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values). (cmb)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808).', + 'raw' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev).', + 'raw' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors).', + 'raw' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors). (nielsdos)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params).', + 'raw' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value).', + 'raw' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient).', + 'raw' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with overflow socket_recvfrom $length argument.', + 'raw' => 'Fixed bug with overflow socket_recvfrom $length argument. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16337 (Use-after-free in SplHeap).', + 'raw' => 'Fixed bug GH-16337 (Use-after-free in SplHeap). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()).', + 'raw' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()).', + 'raw' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()).', + 'raw' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16588 (UAF in Observer->serialize).', + 'raw' => 'Fixed bug GH-16588 (UAF in Observer->serialize). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor).', + 'raw' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor). (Girgias)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()).', + 'raw' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance).', + 'raw' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance). (David Carlier)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors).', + 'raw' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()).', + 'raw' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()). (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled).', + 'raw' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled). (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234)', + 'raw' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233)', + 'raw' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) (nielsdos)', + ), + ), + 'sysvmsg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized).', + 'raw' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized). (David Carlier / cmb)', + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16591 (Assertion error in shm_put_var).', + 'raw' => 'Fixed bug GH-16591 (Assertion error in shm_put_var). (nielsdos, cmb)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c).', + 'raw' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). (nielsdos)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.)', + 'raw' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.) (cmb)', + ), + ), + ), + ), + '8.2.25' => + array ( + 'date' => '24 Oct 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16240: jdtounix overflow on argument value.', + 'raw' => 'Fixed GH-16240: jdtounix overflow on argument value. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument.', + 'raw' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed GH-16263: jddayofweek overflow.', + 'raw' => 'Fixed GH-16263: jddayofweek overflow. (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed GH-16234: jewishtojd overflow.', + 'raw' => 'Fixed GH-16234: jewishtojd overflow. (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client.', + 'raw' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client. (David Carlier)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15712: zend_strtod overflow with precision INI set on large value.', + 'raw' => 'Fixed bug GH-15712: zend_strtod overflow with precision INI set on large value. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER).', + 'raw' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception).', + 'raw' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame).', + 'raw' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c).', + 'raw' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline).', + 'raw' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline). (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15582: Crash when not calling parent constructor of DateTimeZone.', + 'raw' => 'Fixed bug GH-15582: Crash when not calling parent constructor of DateTimeZone. (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed regression where signs after the first one were ignored while parsing a signed integer, with the DateTimeInterface::modify() function.', + 'raw' => 'Fixed regression where signs after the first one were ignored while parsing a signed integer, with the DateTimeInterface::modify() function. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value)', + 'raw' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value) (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream). (David Carlier)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()).', + 'raw' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list).', + 'raw' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list). (Girgias)', + ), + 2 => + array ( + 'message' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.).', + 'raw' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.). (Girgias)', + ), + 3 => + array ( + 'message' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary).', + 'raw' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary). (Girgias)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()).', + 'raw' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed stub for openssl_csr_new.', + 'raw' => 'Fixed stub for openssl_csr_new. (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16189 (underflow on offset argument).', + 'raw' => 'Fixed bug GH-16189 (underflow on offset argument). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c).', + 'raw' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs).', + 'raw' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error).', + 'raw' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c). (DanielEScherzer)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request).', + 'raw' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request). (Jakub Zelenka, David Carlier)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).', + 'raw' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument).', + 'raw' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #62900 (Wrong namespace on xsd import error message).', + 'raw' => 'Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer).', + 'raw' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix Soap leaking http_msg on error.', + 'raw' => 'Fix Soap leaking http_msg on error. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460).', + 'raw' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails).', + 'raw' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15613 (overflow on unpack call hex string repeater).', + 'raw' => 'Fixed bug GH-15613 (overflow on unpack call hex string repeater). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15937 (overflow on stream timeout option value).', + 'raw' => 'Fixed bug GH-15937 (overflow on stream timeout option value). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c).', + 'raw' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c). (Arnaud)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).', + 'raw' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c).', + 'raw' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c). (cmb)', + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Prevent closing of unrelated handles.', + 'raw' => 'Prevent closing of unrelated handles. (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15868 (Assertion failure in xml_parse_into_struct after exception).', + 'raw' => 'Fixed bug GH-15868 (Assertion failure in xml_parse_into_struct after exception). (nielsdos)', + ), + ), + ), + ), + '8.2.24' => + array ( + 'date' => '26 Sep 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926)', + 'raw' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927)', + 'raw' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).', + 'raw' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer). (zeriyoshi)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15515 (Configure error grep illegal option q).', + 'raw' => 'Fixed bug GH-15515 (Configure error grep illegal option q). (Peter Kokot)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error).', + 'raw' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error). (Peter Kokot)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found).', + 'raw' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit).', + 'raw' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit). (Bernd Kuhls, Thomas Petazzoni)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15330 (Do not scan generator frames more than once).', + 'raw' => 'Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed uninitialized lineno in constant AST of internal enums.', + 'raw' => 'Fixed uninitialized lineno in constant AST of internal enums. (ilutov)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument).', + 'raw' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument). (David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h).', + 'raw' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument).', + 'raw' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument). (DanielEScherzer)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026)', + 'raw' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) (Jakub Zelenka)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15432 (Heap corruption when querying a vector).', + 'raw' => 'Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb, Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c).', + 'raw' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h).', + 'raw' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h). (nielsdos)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925)', + 'raw' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) (Arnaud)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form).', + 'raw' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c).', + 'raw' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).', + 'raw' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated). (cmb)', + ), + ), + ), + ), + '8.2.23' => + array ( + 'date' => '29 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c).', + 'raw' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c).', + 'raw' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally).', + 'raw' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally). (Peter Kokot)', + ), + 3 => + array ( + 'message' => 'Fix uninitialized memory in network.c.', + 'raw' => 'Fix uninitialized memory in network.c. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown).', + 'raw' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate).', + 'raw' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate). (Arnaud)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed case when curl_error returns an empty string.', + 'raw' => 'Fixed case when curl_error returns an empty string. (David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix UAF when removing doctype and using foreach iteration.', + 'raw' => 'Fix UAF when removing doctype and using foreach iteration. (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak).', + 'raw' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak). (nielsdos, dstogov)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash when converting array data for array in shm in xxh3.', + 'raw' => 'Fix crash when converting array data for array in shm in xxh3. (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional).', + 'raw' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4).', + 'raw' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement).', + 'raw' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement). (Arnaud, nielsdos)', + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re).', + 'raw' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re). (nielsdos)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix bogus fallthrough path in firebird_handle_get_attribute().', + 'raw' => 'Fix bogus fallthrough path in firebird_handle_get_attribute(). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline).', + 'raw' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline). (Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)).', + 'raw' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations.', + 'raw' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations. (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris.', + 'raw' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris. (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55639 (Digest autentication dont work).', + 'raw' => 'Fixed bug #55639 (Digest autentication dont work). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix SoapFault property destruction.', + 'raw' => 'Fix SoapFault property destruction. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option).', + 'raw' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix passing non-finite timeout values in stream functions.', + 'raw' => 'Fix passing non-finite timeout values in stream functions. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GH-14780 p(f)sockopen timeout overflow.', + 'raw' => 'Fixed GH-14780 p(f)sockopen timeout overflow. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed GH-15653 overflow on fgetcsv length parameter.', + 'raw' => 'Fixed GH-15653 overflow on fgetcsv length parameter. (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c).', + 'raw' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB).', + 'raw' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB). (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/tidy basedir restriction code.', + 'raw' => 'Fix memory leaks in ext/tidy basedir restriction code. (nielsdos)', + ), + ), + ), + ), + '8.2.22' => + array ( + 'date' => '01 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1).', + 'raw' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks).', + 'raw' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt.', + 'raw' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #69765.', + 'raw' => 'Fixed OSS-Fuzz #69765. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h).', + 'raw' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()).', + 'raw' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error).', + 'raw' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash).', + 'raw' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support.', + 'raw' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support. (orlitzky)', + ), + 1 => + array ( + 'message' => 'restored warning instead of fata error.', + 'raw' => 'restored warning instead of fata error. (dryabov)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0).', + 'raw' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled).', + 'raw' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled). (nielsdos)', + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer).', + 'raw' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14712 (Crash with PDORow access to null property).', + 'raw' => 'Fixed bug GH-14712 (Crash with PDORow access to null property). (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14603 (null string from zip entry).', + 'raw' => 'Fixed bug GH-14603 (null string from zip entry). (David Carlier)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte).', + 'raw' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte). (nielsdos)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process).', + 'raw' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14638 (null dereference after XML parsing failure).', + 'raw' => 'Fixed bug GH-14638 (null dereference after XML parsing failure). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c).', + 'raw' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix 32-bit wordwrap test failures.', + 'raw' => 'Fix 32-bit wordwrap test failures. (orlitzky)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14774 (time_sleep_until overflow).', + 'raw' => 'Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy_repair_file().', + 'raw' => 'Fix memory leak in tidy_repair_file(). (nielsdos)', + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility with libxml2 2.13.2.', + 'raw' => 'Fix compatibility with libxml2 2.13.2. (nielsdos)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Move away from to-be-deprecated libxml fields.', + 'raw' => 'Move away from to-be-deprecated libxml fields. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used).', + 'raw' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used). (nielsdos)', + ), + ), + ), + ), + '8.2.21' => + array ( + 'date' => '04 Jul 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14315 (Incompatible pointer type warnings).', + 'raw' => 'Fixed bug GH-14315 (Incompatible pointer type warnings). (Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon).', + 'raw' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon). (Manuel Kress)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()).', + 'raw' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor).', + 'raw' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor). (Girgias)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose).', + 'raw' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose). (Ryan Carsten Schmidt)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0).', + 'raw' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). (Girgias)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0).', + 'raw' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14343 (Memory leak in xml and dom).', + 'raw' => 'Fixed bug GH-14343 (Memory leak in xml and dom). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool).', + 'raw' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool). (Wilhansen Li, Pierrick Charron)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix parameter numbers for imagecolorset().', + 'raw' => 'Fix parameter numbers for imagecolorset(). (Giovanni Giacobbi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference handling in SpoofChecker.', + 'raw' => 'Fix reference handling in SpoofChecker. (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).', + 'raw' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime).', + 'raw' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed TLS access in JIT on FreeBSD/amd64.', + 'raw' => 'Fixed TLS access in JIT on FreeBSD/amd64. (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64).', + 'raw' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64). (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC).', + 'raw' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC). (Calvin Buckley)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure).', + 'raw' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47925 (PHPClient can\'t decompress response).', + 'raw' => 'Fixed bug #47925 (PHPClient can\'t decompress response). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix missing error restore code.', + 'raw' => 'Fix missing error restore code. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setObject() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setObject() twice. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setClass() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setClass() twice. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix reading zlib ini settings in ext-soap.', + 'raw' => 'Fix reading zlib ini settings in ext-soap. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix memory leaks with string function name lookups.', + 'raw' => 'Fix memory leaks with string function name lookups. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name).', + 'raw' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon).', + 'raw' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed memory leaks when calling SoapFault::__construct() twice.', + 'raw' => 'Fixed memory leaks when calling SoapFault::__construct() twice. (Girgias)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/sodium on failure of some functions.', + 'raw' => 'Fix memory leaks in ext/sodium on failure of some functions. (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl).', + 'raw' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets).', + 'raw' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets). (Derick)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors).', + 'raw' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors). (nielsdos)', + ), + ), + ), + ), + '8.2.20' => + array ( + 'date' => '06 Jun 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed buffer limit on Windows, replacing read call usage by _read.', + 'raw' => 'Fixed buffer limit on Windows, replacing read call usage by _read. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577)', + 'raw' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.).', + 'raw' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.). (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions).', + 'raw' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14140 (Floating point bug in range operation on Apple Silicon hardware).', + 'raw' => 'Fixed bug GH-14140 (Floating point bug in range operation on Apple Silicon hardware). (Derick, Saki)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when entity declaration is removed while still having entity references.', + 'raw' => 'Fix crashes when entity declaration is removed while still having entity references. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix references not handled correctly in C14N.', + 'raw' => 'Fix references not handled correctly in C14N. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix crash when calling childNodes next() when iterator is exhausted.', + 'raw' => 'Fix crash when calling childNodes next() when iterator is exhausted. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes.', + 'raw' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes. (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14215 (Cannot use FFI::load on CRLF header file with apache2handler).', + 'raw' => 'Fixed bug GH-14215 (Cannot use FFI::load on CRLF header file with apache2handler). (nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458)', + 'raw' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458) (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status).', + 'raw' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status). (Benjamin Cremer)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__`', + 'raw' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` (Saki Takamachi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build regression on systems without C++17 compilers.', + 'raw' => 'Fixed build regression on systems without C++17 compilers. (Calvin Buckley, Peter Kokot)', + ), + ), + 'ini' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14100 (Corrected spelling mistake in php.ini files).', + 'raw' => 'Fixed bug GH-14100 (Corrected spelling mistake in php.ini files). (Marcus Xavier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query).', + 'raw' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query). (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm).', + 'raw' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable.', + 'raw' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. (CVE-2024-2408)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585)', + 'raw' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) (nielsdos)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit).', + 'raw' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit). (nielsdos)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden).', + 'raw' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden). (nielsdos)', + ), + ), + ), + ), + '8.2.19' => + array ( + 'date' => '09 May 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled).', + 'raw' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c).', + 'raw' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations).', + 'raw' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations). (Kévin Dunglas)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters).', + 'raw' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure).', + 'raw' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly).', + 'raw' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly). (ranvis)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-13727 (Missing void keyword).', + 'raw' => 'Fixed bug GH-13727 (Missing void keyword). (Peter Kokot)', + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).', + 'raw' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails).', + 'raw' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails). (Jakub Zelenka)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build for icu 74 and onwards.', + 'raw' => 'Fixed build for icu 74 and onwards. (dunglas)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix shift out of bounds on 32-bit non-fast-path platforms.', + 'raw' => 'Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect assumptions across compilation units for static calls.', + 'raw' => 'Fixed incorrect assumptions across compilation units for static calls. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).', + 'raw' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely). (Jakub Zelenka)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13984 (Buffer size is now checked before memcmp).', + 'raw' => 'Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi)', + ), + 1 => + array ( + 'message' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly).', + 'raw' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly). (Saki Takamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference).', + 'raw' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).', + 'raw' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix potential NULL pointer dereference before calling EVP_SignInit.', + 'raw' => 'Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame).', + 'raw' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame). (nielsdos)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix usage of reentrant functions in ext/posix.', + 'raw' => 'Fix usage of reentrant functions in ext/posix. (Arnaud)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c).', + 'raw' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts).', + 'raw' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts). (nielsdos, kamil-tekiela)', + ), + 2 => + array ( + 'message' => 'Fixed buffer _read/_write size limit on windows for the file mode.', + 'raw' => 'Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument".', + 'raw' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument". (Damian Wójcik)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).', + 'raw' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket).', + 'raw' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64).', + 'raw' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud)', + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix gcc-14 Wcalloc-transposed-args warnings.', + 'raw' => 'Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)', + ), + ), + ), + ), + '8.2.18' => + array ( + 'date' => '11 Apr 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references).', + 'raw' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure).', + 'raw' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor).', + 'raw' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor). (Arnaud)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Add some missing ZPP checks.', + 'raw' => 'Add some missing ZPP checks. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix potential memory leak in XPath evaluation results.', + 'raw' => 'Fix potential memory leak in XPath evaluation results. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix phpdoc for DOMDocument load methods.', + 'raw' => 'Fix phpdoc for DOMDocument load methods. (VincentLanglet)', + ), + 3 => + array ( + 'message' => 'Fixed incorrect check in fpm_shm_free().', + 'raw' => 'Fixed incorrect check in fpm_shm_free(). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests).', + 'raw' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL.', + 'raw' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL. (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]).', + 'raw' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi)', + ), + 1 => + array ( + 'message' => 'Fix incorrect charset length in check_mb_eucjpms().', + 'raw' => 'Fix incorrect charset length in check_mb_eucjpms(). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).', + 'raw' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null). (Arnaud, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded).', + 'raw' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded). (Bob)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix various PDORow bugs.', + 'raw' => 'Fix various PDORow bugs. (Girgias)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes).', + 'raw' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes). (timwolla)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used).', + 'raw' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used). (timwolla)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error).', + 'raw' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13604 (socket_getsockname returns random characters in the end of the socket name).', + 'raw' => 'Fixed bug GH-13604 (socket_getsockname returns random characters in the end of the socket name). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15).', + 'raw' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h).', + 'raw' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11808 (Live filesystem modified by tests).', + 'raw' => 'Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()).', + 'raw' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()). (SakiTakamachi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).', + 'raw' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows). (divinity76)', + ), + 3 => + array ( + 'message' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)', + 'raw' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)', + 'raw' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)', + 'raw' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat).', + 'raw' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat). (nielsdos)', + ), + ), + ), + ), + '8.2.17' => + array ( + 'date' => '14 Mar 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix ZTS persistent resource crashes on shutdown.', + 'raw' => 'Fix ZTS persistent resource crashes on shutdown. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix failing tests due to string changes in libcurl 8.6.0.', + 'raw' => 'Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap.', + 'raw' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap. (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport).', + 'raw' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER).', + 'raw' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (detection of image formats in system gd library).', + 'raw' => 'Fixed bug GH-12019 (detection of image formats in system gd library). (Michael Orlitzky)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set).', + 'raw' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference).', + 'raw' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference). (George Barbarosie)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now).', + 'raw' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now). (A. Slepykh)', + ), + ), + ), + ), + '8.2.16' => + array ( + 'date' => '15 Feb 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed timer leak in zend-max-execution-timers builds.', + 'raw' => 'Fixed timer leak in zend-max-execution-timers builds. (withinboredom)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12349 (linking failure on ARM with mold).', + 'raw' => 'Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception).', + 'raw' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13215 (GCC 14 build failure).', + 'raw' => 'Fixed bug GH-13215 (GCC 14 build failure). (Remi)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix missing error check in curl_multi_init().', + 'raw' => 'Fix missing error check in curl_multi_init(). (divinity76)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path).', + 'raw' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path).', + 'raw' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90).', + 'raw' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90). (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes).', + 'raw' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on).', + 'raw' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. .', + 'raw' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. (David Carlier).', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format).', + 'raw' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format). (SakiTakamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed).', + 'raw' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file).', + 'raw' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines).', + 'raw' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines). (timwolla)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader).', + 'raw' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail).', + 'raw' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail). (nielsdos)', + ), + ), + ), + ), + '8.2.15' => + array ( + 'date' => '18 Jan 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements).', + 'raw' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings).', + 'raw' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings). (Peter Kokot)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13727 (missing void keyword for C generate code for feature test).', + 'raw' => 'Fixed bug GH-13727 (missing void keyword for C generate code for feature test). (Peter Kokot/David Carlier)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time.', + 'raw' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData).', + 'raw' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers).', + 'raw' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*.', + 'raw' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale).', + 'raw' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale). (David Carlier)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB).', + 'raw' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix crash on Apache shutdown with persistent connections.', + 'raw' => 'Fix crash on Apache shutdown with persistent connections. (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result).', + 'raw' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov)', + ), + 1 => + array ( + 'message' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258.', + 'raw' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error).', + 'raw' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). (Jakub Zelenka)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES).', + 'raw' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES). (SakiTakamachi)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()).', + 'raw' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed auto_reset_persistent handling and allow_persistent type.', + 'raw' => 'Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()).', + 'raw' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77432 (Segmentation fault on including phar file).', + 'raw' => 'Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash.', + 'raw' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes).', + 'raw' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes). (nielsdos)', + ), + ), + ), + ), + '8.2.14' => + array ( + 'date' => '21 Dec 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler).', + 'raw' => 'Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious error handler). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed oss-fuzz #64209 (In-place modification of filename in php_message_handler_for_zend).', + 'raw' => 'Fixed oss-fuzz #64209 (In-place modification of filename in php_message_handler_for_zend). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC).', + 'raw' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt)', + ), + 3 => + array ( + 'message' => 'Fix various missing NULL checks.', + 'raw' => 'Fix various missing NULL checks. (nielsdos, dstogov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call).', + 'raw' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call). (ilutov)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed improbably integer overflow while parsing really large (or small) Unix timestamps.', + 'raw' => 'Fixed improbably integer overflow while parsing really large (or small) Unix timestamps. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix).', + 'raw' => 'Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval).', + 'raw' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). (Patrick Prasse)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9348 (FTP & SSL session reuse).', + 'raw' => 'Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1).', + 'raw' => 'Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12702 (libxml2 2.12.0 issue building from src).', + 'raw' => 'Fixed bug GH-12702 (libxml2 2.12.0 issue building from src). (nono303)', + ), + 1 => + array ( + 'message' => 'Fixed test failures for libxml2 2.12.0.', + 'raw' => 'Fixed test failures for libxml2 2.12.0. (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Avoid using uninitialised struct.', + 'raw' => 'Avoid using uninitialised struct. (mikhainin)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code).', + 'raw' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error).', + 'raw' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown).', + 'raw' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown). (Girgias)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs).', + 'raw' => 'Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs). (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux).', + 'raw' => 'Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux). (nielsdos)', + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify()', + 'raw' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12763 wrong argument type for pg_untrace.', + 'raw' => 'Fixed bug GH-12763 wrong argument type for pg_untrace. (degtyarov)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted).', + 'raw' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12721 (SplFileInfo::getFilename() segfault in combination with GlobIterator and no directory separator).', + 'raw' => 'Fixed bug GH-12721 (SplFileInfo::getFilename() segfault in combination with GlobIterator and no directory separator). (nielsdos)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0).', + 'raw' => 'Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0). (SakiTakamachi)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in syslog device handling.', + 'raw' => 'Fix memory leak in syslog device handling. (danog)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12621 (browscap segmentation fault when configured in the vhost).', + 'raw' => 'Fixed bug GH-12621 (browscap segmentation fault when configured in the vhost). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12655 (proc_open() does not take into account references in the descriptor array).', + 'raw' => 'Fixed bug GH-12655 (proc_open() does not take into account references in the descriptor array). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault).', + 'raw' => 'Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault). (Jakub Zelenka)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option Behavior).', + 'raw' => 'Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option Behavior). (Remi)', + ), + ), + ), + ), + '8.2.13' => + array ( + 'date' => '23 Nov 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed double-free of non-interned enum case name.', + 'raw' => 'Fixed double-free of non-interned enum case name. (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12457 (Incorrect result of stripos with single character needle).', + 'raw' => 'Fixed bug GH-12457 (Incorrect result of stripos with single character needle). (SakiTakamachi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12468 (Double-free of doc_comment when overriding static property via trait).', + 'raw' => 'Fixed bug GH-12468 (Double-free of doc_comment when overriding static property via trait). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed segfault caused by weak references to FFI objects.', + 'raw' => 'Fixed segfault caused by weak references to FFI objects. (sj-i)', + ), + 4 => + array ( + 'message' => 'Fixed max_execution_time: don\'t delete an unitialized timer.', + 'raw' => 'Fixed max_execution_time: don\'t delete an unitialized timer. (Kévin Dunglas)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-12558 (Arginfo soft-breaks with namespaced class return type if the class name starts with N).', + 'raw' => 'Fixed bug GH-12558 (Arginfo soft-breaks with namespaced class return type if the class name starts with N). (kocsismate)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix registerNodeClass with abstract class crashing.', + 'raw' => 'Fix registerNodeClass with abstract class crashing. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + ), + 2 => + array ( + 'message' => 'Fix validation logic of php:function() callbacks.', + 'raw' => 'Fix validation logic of php:function() callbacks. (nielsdos)', + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11121 (ReflectionFiber segfault).', + 'raw' => 'Fixed bug GH-11121 (ReflectionFiber segfault). (danog, trowski, bwoebi)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9921 (Loading ext in FPM config does not register module handlers).', + 'raw' => 'Fixed bug GH-9921 (Loading ext in FPM config does not register module handlers). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12232 (FPM: segfault dynamically loading extension without opcache).', + 'raw' => 'Fixed bug GH-12232 (FPM: segfault dynamically loading extension without opcache). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76922 (FastCGI terminates conn after FCGI_GET_VALUES).', + 'raw' => 'Fixed bug #76922 (FastCGI terminates conn after FCGI_GET_VALUES). (Jakub Zelenka)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale.', + 'raw' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added warning when JIT cannot be enabled.', + 'raw' => 'Added warning when JIT cannot be enabled. (danog)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache).', + 'raw' => 'Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache). (turchanov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify).', + 'raw' => 'Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify). (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11374 (Backport upstream fix, Different preg_match result with -d pcre.jit=0).', + 'raw' => 'Fixed bug GH-11374 (Backport upstream fix, Different preg_match result with -d pcre.jit=0). (mvorisek)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes).', + 'raw' => 'Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation Fault).', + 'raw' => 'Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation Fault). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC).', + 'raw' => 'Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix incorrect uri check in SOAP caching.', + 'raw' => 'Fix incorrect uri check in SOAP caching. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix segfault and assertion failure with refcounted props and arrays.', + 'raw' => 'Fix segfault and assertion failure with refcounted props and arrays. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix potential crash with an edge case of persistent encoders.', + 'raw' => 'Fix potential crash with an edge case of persistent encoders. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #75306 (Memleak in SoapClient).', + 'raw' => 'Fixed bug #75306 (Memleak in SoapClient). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers).', + 'raw' => 'Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers). (Jakub Zelenka)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Add missing NULL pointer error check.', + 'raw' => 'Add missing NULL pointer error check. (icy17)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Add missing module dependency.', + 'raw' => 'Add missing module dependency. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix validation logic of php:function() callbacks.', + 'raw' => 'Fix validation logic of php:function() callbacks. (nielsdos)', + ), + ), + ), + ), + '8.2.12' => + array ( + 'date' => '26 Oct 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12207 (memory leak when class using trait with doc block).', + 'raw' => 'Fixed bug GH-12207 (memory leak when class using trait with doc block). (rioderelfte)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom).', + 'raw' => 'Fixed bug GH-12215 (Module entry being overwritten causes type errors in ext/dom). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12273 (__builtin_cpu_init check).', + 'raw' => 'Fixed bug GH-12273 (__builtin_cpu_init check). (Freaky)', + ), + 3 => + array ( + 'message' => 'Fixed bug #80092 (ZTS + preload = segfault on shutdown).', + 'raw' => 'Fixed bug #80092 (ZTS + preload = segfault on shutdown). (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Ensure a single Date header is present.', + 'raw' => 'Ensure a single Date header is present. (coppolafab)', + ), + ), + 'ctype' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater).', + 'raw' => 'Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Restore old namespace reconciliation behaviour.', + 'raw' => 'Restore old namespace reconciliation behaviour. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1).', + 'raw' => 'Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11891 (fileinfo returns text/xml for some svg files).', + 'raw' => 'Fixed bug GH-11891 (fileinfo returns text/xml for some svg files). (usarise)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK', + 'raw' => 'Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK (ilutov)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext).', + 'raw' => 'Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext). (MaxSem)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12243 (segfault on IntlDateFormatter::construct).', + 'raw' => 'Fixed bug GH-12243 (segfault on IntlDateFormatter::construct). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale).', + 'raw' => 'Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception on an invalid locale). (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) \'mysqlnd.so\' in Unknown on line).', + 'raw' => 'Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) \'mysqlnd.so\' in Unknown on line). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed opcache_invalidate() on deleted file.', + 'raw' => 'Fixed opcache_invalidate() on deleted file. (mikhainin)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class).', + 'raw' => 'Fixed bug GH-12380 (JIT+private array property access inside closure accesses private property in child class). (nielsdos)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result).', + 'raw' => 'Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with JIT enabled gives different result). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12170 (Can\'t use xpath with comments in SimpleXML).', + 'raw' => 'Fixed bug GH-12170 (Can\'t use xpath with comments in SimpleXML). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r).', + 'raw' => 'Fixed bug GH-12223 (Entity reference produces infinite loop in var_dump/print_r). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML).', + 'raw' => 'Fixed bug GH-12167 (Unable to get processing instruction contents in SimpleXML). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12169 (Unable to get comment contents in SimpleXML).', + 'raw' => 'Fixed bug GH-12169 (Unable to get comment contents in SimpleXML). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12190 (binding ipv4 address with both address and port at 0).', + 'raw' => 'Fixed bug GH-12190 (binding ipv4 address with both address and port at 0). (David Carlier)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fix return type of stub of xml_parse_into_struct().', + 'raw' => 'Fix return type of stub of xml_parse_into_struct(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when calling xml_parse_into_struct() twice.', + 'raw' => 'Fix memory leak when calling xml_parse_into_struct() twice. (nielsdos)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML.', + 'raw' => 'Fix type error on XSLTProcessor::transformToDoc return value with SimpleXML. (nielsdos)', + ), + ), + ), + ), + '8.2.11' => + array ( + 'date' => '28 Sep 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11937 (Constant ASTs containing objects).', + 'raw' => 'Fixed bug GH-11937 (Constant ASTs containing objects). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11790 (On riscv64 require libatomic if actually needed).', + 'raw' => 'Fixed bug GH-11790 (On riscv64 require libatomic if actually needed). (Jeremie Courreges-Anglas)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11876: ini_parse_quantity() accepts invalid quantities.', + 'raw' => 'Fixed bug GH-11876: ini_parse_quantity() accepts invalid quantities. (Girgias)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures).', + 'raw' => 'Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12060 (Internal iterator rewind handler is called twice).', + 'raw' => 'Fixed bug GH-12060 (Internal iterator rewind handler is called twice). (ju1ius)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call).', + 'raw' => 'Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting an invalid DOMDocument encoding.', + 'raw' => 'Fix memory leak when setting an invalid DOMDocument encoding. (nielsdos)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed build for NetBSD which still uses the old iconv signature.', + 'raw' => 'Fixed build for NetBSD which still uses the old iconv signature. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12020 (intl_get_error_message() broken after MessageFormatter::formatMessage() fails).', + 'raw' => 'Fixed bug GH-12020 (intl_get_error_message() broken after MessageFormatter::formatMessage() fails). (Girgias)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10270 (Invalid error message when connection via SSL fails: "trying to connect via (null)").', + 'raw' => 'Fixed bug GH-10270 (Invalid error message when connection via SSL fails: "trying to connect via (null)"). (Kamil Tekiela)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak with failed SQLPrepare.', + 'raw' => 'Fixed memory leak with failed SQLPrepare. (NattyNarwhal)', + ), + 1 => + array ( + 'message' => 'Fixed persistent procedural ODBC connections not getting closed.', + 'raw' => 'Fixed persistent procedural ODBC connections not getting closed. (NattyNarwhal)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #52751 (XPath processing-instruction() function is not supported).', + 'raw' => 'Fixed bug #52751 (XPath processing-instruction() function is not supported). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18).', + 'raw' => 'Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18). (nielsdos)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array).', + 'raw' => 'Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array). (nielsdos, arnaud-lb)', + ), + ), + ), + ), + '8.2.10' => + array ( + 'date' => '31 Aug 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with ZEND_RC_DEBUG=1). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10964 (Improve man page about the built-in server).', + 'raw' => 'Fixed bug GH-10964 (Improve man page about the built-in server). (Alexandre Daubois)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11416 (Crash with DatePeriod when uninitialised objects are passed in).', + 'raw' => 'Fixed bug GH-11416 (Crash with DatePeriod when uninitialised objects are passed in). (Derick)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed strerror_r detection at configuration time.', + 'raw' => 'Fixed strerror_r detection at configuration time. (Kévin Dunglas)', + ), + 1 => + array ( + 'message' => 'Fixed trait typed properties using a DNF type not being correctly bound.', + 'raw' => 'Fixed trait typed properties using a DNF type not being correctly bound. (Girgias)', + ), + 2 => + array ( + 'message' => 'Fixed trait property types not being arena allocated if copied from an internal trait.', + 'raw' => 'Fixed trait property types not being arena allocated if copied from an internal trait. (Girgias)', + ), + 3 => + array ( + 'message' => 'Fixed deep copy of property DNF type during lazy class load.', + 'raw' => 'Fixed deep copy of property DNF type during lazy class load. (Girgias, ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed memory freeing of DNF types for non arena allocated types.', + 'raw' => 'Fixed memory freeing of DNF types for non arena allocated types. (Girgias, ju1ius)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix DOMEntity field getter bugs.', + 'raw' => 'Fix DOMEntity field getter bugs. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS.', + 'raw' => 'Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix DOMCharacterData::replaceWith() with itself.', + 'raw' => 'Fix DOMCharacterData::replaceWith() with itself. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix empty argument cases for DOMParentNode methods.', + 'raw' => 'Fix empty argument cases for DOMParentNode methods. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone).', + 'raw' => 'Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix json_encode result on DOMDocument.', + 'raw' => 'Fix json_encode result on DOMDocument. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fix manually calling __construct() on DOM classes.', + 'raw' => 'Fix manually calling __construct() on DOM classes. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-11830 (ParentNode methods should perform their checks upfront).', + 'raw' => 'Fixed bug GH-11830 (ParentNode methods should perform their checks upfront). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fix viable next sibling search for replaceWith.', + 'raw' => 'Fix viable next sibling search for replaceWith. (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fix segfault when DOMParentNode::prepend() is called when the child disappears.', + 'raw' => 'Fix segfault when DOMParentNode::prepend() is called when the child disappears. (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix leaking definitions when using FFI::cdef()->new(...).', + 'raw' => 'Fix leaking definitions when using FFI::cdef()->new(...). (ilutov)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature.', + 'raw' => 'Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options parameter in signature. (ilutov)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL).', + 'raw' => 'Fixed bug GH-11440 (authentication to a sha256_password account fails over SSL). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters).', + 'raw' => 'Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters). (nielsdos, Kamil Tekiela)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault).', + 'raw' => 'Fixed bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault). (Yurunsoft)', + ), + 3 => + array ( + 'message' => 'Fixed invalid error message "Malformed packet" when connection is dropped.', + 'raw' => 'Fixed invalid error message "Malformed packet" when connection is dropped. (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong).', + 'raw' => 'Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress.', + 'raw' => 'Avoid adding an unnecessary read-lock when loading script from shm if restart is in progress. (mikhainin)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22.', + 'raw' => 'Revert behaviour of receiving SIGCHLD signals back to the behaviour before 8.1.22. (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free).', + 'raw' => 'Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Prevent int overflow on $decimals in number_format.', + 'raw' => 'Prevent int overflow on $decimals in number_format. (Marc Bennewitz)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix)', + 'raw' => 'Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) (athos-ribeiro)', + ), + ), + ), + ), + '8.2.9' => + array ( + 'date' => '03 Aug 2023', + 'modules' => + array ( + 'build' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11522 (PHP version check fails with \'-\' separator).', + 'raw' => 'Fixed bug GH-11522 (PHP version check fails with \'-\' separator). (SVGAnimate)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix interrupted CLI output causing the process to exit.', + 'raw' => 'Fix interrupted CLI output causing the process to exit. (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator).', + 'raw' => 'Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed line number of JMP instruction over else block.', + 'raw' => 'Fixed line number of JMP instruction over else block. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed use-of-uninitialized-value with ??= on assert.', + 'raw' => 'Fixed use-of-uninitialized-value with ??= on assert. (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions).', + 'raw' => 'Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed build for FreeBSD before the 11.0 releases.', + 'raw' => 'Fixed build for FreeBSD before the 11.0 releases. (David Carlier)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION.', + 'raw' => 'Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION. (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11368 (Date modify returns invalid datetime).', + 'raw' => 'Fixed bug GH-11368 (Date modify returns invalid datetime). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11600 (Can\'t parse time strings which include (narrow) non-breaking space characters).', + 'raw' => 'Fixed bug GH-11600 (Can\'t parse time strings which include (narrow) non-breaking space characters). (Derick)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with extra space).', + 'raw' => 'Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with extra space). (nielsdos, Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11625 (DOMElement::replaceWith() doesn\'t replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version).', + 'raw' => 'Fixed bug GH-11625 (DOMElement::replaceWith() doesn\'t replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11298 (finfo returns wrong mime type for xz files).', + 'raw' => 'Fixed bug GH-11298 (finfo returns wrong mime type for xz files). (Anatol)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix context option check for "overwrite".', + 'raw' => 'Fix context option check for "overwrite". (JonasQuinten)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget).', + 'raw' => 'Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix most of the external libgd test failures.', + 'raw' => 'Fix most of the external libgd test failures. (Michael Orlitzky)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in MessageFormatter::format() on failure.', + 'raw' => 'Fix memory leak in MessageFormatter::format() on failure. (Girgias)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823)', + 'raw' => 'Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11300 (license issue: restricted unicode license headers).', + 'raw' => 'Fix GH-11300 (license issue: restricted unicode license headers). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault).', + 'raw' => 'Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Prevent potential deadlock if accelerated globals cannot be allocated.', + 'raw' => 'Prevent potential deadlock if accelerated globals cannot be allocated. (nielsdos)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open).', + 'raw' => 'Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled).', + 'raw' => 'Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled). (SakiTakamachi)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt).', + 'raw' => 'Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt). (KapitanOczywisty, CViniciusSDias)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing check on EVP_VerifyUpdate() in phar util.', + 'raw' => 'Add missing check on EVP_VerifyUpdate() in phar util. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824)', + 'raw' => 'Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). (CVE-2023-3824) (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9669 (phpdbg -h options doesn\'t list the -z option).', + 'raw' => 'Fixed bug GH-9669 (phpdbg -h options doesn\'t list the -z option). (adsr)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Removed broken url support for transferring session ID.', + 'raw' => 'Removed broken url support for transferring session ID. (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix serialization of RC1 objects appearing in object graph twice.', + 'raw' => 'Fix serialization of RC1 objects appearing in object graph twice. (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper from itself).', + 'raw' => 'Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper from itself). (ilutov)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fix replaced error handling in SQLite3Stmt::__construct.', + 'raw' => 'Fix replaced error handling in SQLite3Stmt::__construct. (nielsdos)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active).', + 'raw' => 'Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active). (Bob)', + ), + ), + ), + ), + '8.2.8' => + array ( + 'date' => '06 Jul 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS).', + 'raw' => 'Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS). (James Lucas)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed build for the riscv64 architecture/GCC 12.', + 'raw' => 'Fixed build for the riscv64 architecture/GCC 12. (Daniil Gentili)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL).', + 'raw' => 'Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL). (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11455 (Segmentation fault with custom object date properties).', + 'raw' => 'Fixed bug GH-11455 (Segmentation fault with custom object date properties). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith).', + 'raw' => 'Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value).', + 'raw' => 'Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix return value in stub file for DOMNodeList::item.', + 'raw' => 'Fix return value in stub file for DOMNodeList::item. (divinity76)', + ), + 3 => + array ( + 'message' => 'Fix spec compliance error with \'*\' namespace for DOMDocument::getElementsByTagNameNS.', + 'raw' => 'Fix spec compliance error with \'*\' namespace for DOMDocument::getElementsByTagNameNS. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix DOMElement::append() and DOMElement::prepend() hierarchy checks.', + 'raw' => 'Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query).', + 'raw' => 'Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces).', + 'raw' => 'Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself).', + 'raw' => 'Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed bug #77686 (Removed elements are still returned by getElementById).', + 'raw' => 'Fixed bug #77686 (Removed elements are still returned by getElementById). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()).', + 'raw' => 'Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Fixed bug #78577 (Crash in DOMNameSpace debug info handlers).', + 'raw' => 'Fixed bug #78577 (Crash in DOMNameSpace debug info handlers). (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fix lifetime issue with getAttributeNodeNS().', + 'raw' => 'Fix lifetime issue with getAttributeNodeNS(). (nielsdos)', + ), + 12 => + array ( + 'message' => 'Fix "invalid state error" with cloned namespace declarations.', + 'raw' => 'Fix "invalid state error" with cloned namespace declarations. (nielsdos)', + ), + 13 => + array ( + 'message' => 'Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues).', + 'raw' => 'Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues). (nielsdos)', + ), + 14 => + array ( + 'message' => 'Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap).', + 'raw' => 'Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix allocation loop in zend_shared_alloc_startup().', + 'raw' => 'Fix allocation loop in zend_shared_alloc_startup(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Access violation on smm_shared_globals with ALLOC_FALLBACK.', + 'raw' => 'Access violation on smm_shared_globals with ALLOC_FALLBACK. (KoudelkaB)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked).', + 'raw' => 'Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames .', + 'raw' => 'Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames (James Lucas, Jakub Zelenka).', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fix preg_replace_callback_array() pattern validation.', + 'raw' => 'Fix preg_replace_callback_array() pattern validation. (ilutov)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed intermittent segfault with pg_trace.', + 'raw' => 'Fixed intermittent segfault with pg_trace. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix cross-compilation check in phar generation for FreeBSD.', + 'raw' => 'Fix cross-compilation check in phar generation for FreeBSD. (peter279k)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash).', + 'raw' => 'Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix access on NULL pointer in array_merge_recursive().', + 'raw' => 'Fix access on NULL pointer in array_merge_recursive(). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fix exception handling in array_multisort().', + 'raw' => 'Fix exception handling in array_multisort(). (ilutov)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11451 (Invalid associative array containing duplicate keys).', + 'raw' => 'Fixed bug GH-11451 (Invalid associative array containing duplicate keys). (nielsdos)', + ), + ), + ), + ), + '8.2.7' => + array ( + 'date' => '08 Jun 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11152 (Unable to alias namespaces containing reserved class names).', + 'raw' => 'Fixed bug GH-11152 (Unable to alias namespaces containing reserved class names). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)).', + 'raw' => 'Fixed bug GH-9068 (Conditional jump or move depends on uninitialised value(s)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state).', + 'raw' => 'Fixed bug GH-11189 (Exceeding memory limit in zend_hash_do_resize leaves the array in an invalid state). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11063 (Compilation error on old GCC versions).', + 'raw' => 'Fixed bug GH-11063 (Compilation error on old GCC versions). (ingamedeo)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash).', + 'raw' => 'Fixed bug GH-11222 (foreach by-ref may jump over keys during a rehash). (Bob)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset).', + 'raw' => 'Fixed bug GH-11281 (DateTimeZone::getName() does not include seconds in offset). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes).', + 'raw' => 'Fixed bug GH-10834 (exif_read_data() cannot read smaller stream wrapper chunk sizes). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)).', + 'raw' => 'Fixed bug GH-10461 (PHP-FPM segfault due to after free usage of child->ev_std(out|err)). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64539 (FPM status page: query_string not properly JSON encoded).', + 'raw' => 'Fixed bug #64539 (FPM status page: query_string not properly JSON encoded). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed memory leak for invalid primary script file handle.', + 'raw' => 'Fixed memory leak for invalid primary script file handle. (Jakub Zelenka)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments).', + 'raw' => 'Fixed bug GH-11180 (hash_file() appears to be restricted to 3 arguments). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0).', + 'raw' => 'Fixed bug GH-11160 (Few tests failed building with new libxml 2.11.0). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-11217 (Segfault in mb_strrpos / mb_strripos when using negative offset and ASCII encoding).', + 'raw' => 'Fix bug GH-11217 (Segfault in mb_strrpos / mb_strripos when using negative offset and ASCII encoding). (ilutov)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11134 (Incorrect match default branch optimization).', + 'raw' => 'Fixed bug GH-11134 (Incorrect match default branch optimization). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed too wide OR and AND range inference.', + 'raw' => 'Fixed too wide OR and AND range inference. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed missing class redeclaration error with OPcache enabled.', + 'raw' => 'Fixed missing class redeclaration error with OPcache enabled. (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault).', + 'raw' => 'Fixed bug GH-11245 (In some specific cases SWITCH with one default statement will cause segfault). (nielsdos)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed maximum argument count of pcntl_forkx().', + 'raw' => 'Fixed maximum argument count of pcntl_forkx(). (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed parameter parsing of pg_lo_export().', + 'raw' => 'Fixed parameter parsing of pg_lo_export(). (kocsismate)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11099 (Generating phar.php during cross-compile can\'t be done).', + 'raw' => 'Fixed bug GH-11099 (Generating phar.php during cross-compile can\'t be done). (peter279k)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247)', + 'raw' => 'Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random bytes in HTTP Digest authentication for SOAP). (CVE-2023-3247) (nielsdos, timwolla)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8426 (make test fail while soap extension build).', + 'raw' => 'Fixed bug GH-8426 (make test fail while soap extension build). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)).', + 'raw' => 'Fixed bug GH-11178 (Segmentation fault in spl_array_it_get_current_data (PHP 8.1.18)). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file).', + 'raw' => 'Fixed bug GH-11138 (move_uploaded_file() emits open_basedir warning for source file). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect).', + 'raw' => 'Fixed bug GH-11274 (POST/PATCH request switches to GET after a HTTP 308 redirect). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data).', + 'raw' => 'Fixed bug GH-10031 ([Stream] STREAM_NOTIFY_PROGRESS over HTTP emitted irregularly for last chunk of data). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11175 (Stream Socket Timeout).', + 'raw' => 'Fixed bug GH-11175 (Stream Socket Timeout). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client).', + 'raw' => 'Fixed bug GH-11177 (ASAN UndefinedBehaviorSanitizer when timeout = -1 passed to stream_socket_accept/stream_socket_client). (nielsdos)', + ), + ), + ), + ), + '8.2.6' => + array ( + 'date' => '11 May 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix inconsistent float negation in constant expressions.', + 'raw' => 'Fix inconsistent float negation in constant expressions. (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8841 (php-cli core dump calling a badly formed function).', + 'raw' => 'Fixed bug GH-8841 (php-cli core dump calling a badly formed function). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c).', + 'raw' => 'Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c). (nielsdos, ElliotNB)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.).', + 'raw' => 'Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=).', + 'raw' => 'Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=). (ilutov)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug where the diff() method would not return the right result around DST changeover for date/times associated with a timezone identifier.', + 'raw' => 'Fixed bug where the diff() method would not return the right result around DST changeover for date/times associated with a timezone identifier. (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed out-of-range bug when converting to/from around the LONG_MIN unix timestamp.', + 'raw' => 'Fixed out-of-range bug when converting to/from around the LONG_MIN unix timestamp. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80602 (Segfault when using DOMChildNode::before()).', + 'raw' => 'Fixed bug #80602 (Segfault when using DOMChildNode::before()). (Nathan Freeman)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect error handling in dom_zvals_to_fragment().', + 'raw' => 'Fixed incorrect error handling in dom_zvals_to_fragment(). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index).', + 'raw' => 'Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11071 (TZData version not displayed anymore).', + 'raw' => 'Fixed bug GH-11071 (TZData version not displayed anymore). (Remi)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10968 (Segfault in preg_replace_callback_array()).', + 'raw' => 'Fixed bug GH-10968 (Segfault in preg_replace_callback_array()). (ilutov)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10983 (State-dependant segfault in ReflectionObject::getProperties).', + 'raw' => 'Fixed bug GH-10983 (State-dependant segfault in ReflectionObject::getProperties). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Handle indirect zvals and use up-to-date properties in SplFixedArray::__serialize.', + 'raw' => 'Handle indirect zvals and use up-to-date properties in SplFixedArray::__serialize. (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10990 (mail() throws TypeError after iterating over $additional_headers array by reference).', + 'raw' => 'Fixed bug GH-10990 (mail() throws TypeError after iterating over $additional_headers array by reference). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9775 (Duplicates returned by array_unique when using enums).', + 'raw' => 'Fixed bug GH-9775 (Duplicates returned by array_unique when using enums). (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10406 (feof() behavior change for UNIX based socket resources).', + 'raw' => 'Fixed bug GH-10406 (feof() behavior change for UNIX based socket resources). (Jakub Zelenka)', + ), + ), + ), + ), + '8.2.5' => + array ( + 'date' => '13 Apr 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added optional support for max_execution_time in ZTS/Linux builds', + 'raw' => 'Added optional support for max_execution_time in ZTS/Linux builds (Kévin Dunglas)', + ), + 1 => + array ( + 'message' => 'Fixed use-after-free in recursive AST evaluation.', + 'raw' => 'Fixed use-after-free in recursive AST evaluation. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8646 (Memory leak PHP FPM 8.1).', + 'raw' => 'Fixed bug GH-8646 (Memory leak PHP FPM 8.1). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Re-add some CTE functions that were removed from being CTE by a mistake.', + 'raw' => 'Re-add some CTE functions that were removed from being CTE by a mistake. (mvorisek)', + ), + 4 => + array ( + 'message' => 'Remove CTE flag from array_diff_ukey(), which was added by mistake.', + 'raw' => 'Remove CTE flag from array_diff_ukey(), which was added by mistake. (mvorisek)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault).', + 'raw' => 'Fixed bug GH-10801 (Named arguments in CTE functions cause a segfault). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on apache).', + 'raw' => 'Fixed bug GH-8789 (PHP 8.0.20 (ZTS) zend_signal_handler_defer crashes on apache). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown).', + 'raw' => 'Fixed bug GH-10015 (zend_signal_handler_defer crashes on apache shutdown). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()).', + 'raw' => 'Fixed bug GH-10810 (Fix NUL byte terminating Exception::__toString()). (ilutov)', + ), + 9 => + array ( + 'message' => 'Fix potential memory corruption when mixing __callStatic() and FFI.', + 'raw' => 'Fix potential memory corruption when mixing __callStatic() and FFI. (ilutov)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10747 (Private and protected properties in serialized Date* objects throw).', + 'raw' => 'Fixed bug GH-10747 (Private and protected properties in serialized Date* objects throw). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10611 (fpm_env_init_main leaks environ).', + 'raw' => 'Fixed bug GH-10611 (fpm_env_init_main leaks environ). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Destroy file_handle in fpm_main.', + 'raw' => 'Destroy file_handle in fpm_main. (Jakub Zelenka, nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when spaces are in path).', + 'raw' => 'Fixed bug #74129 (Incorrect SCRIPT_NAME with apache ProxyPassMatch when spaces are in path). (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Propagate success status of ftp_close().', + 'raw' => 'Propagate success status of ftp_close(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB).', + 'raw' => 'Fixed bug GH-10521 (ftp_get/ftp_nb_get resumepos offset is maximum 10GB). (nielsdos)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fix build failure with Clang 16.', + 'raw' => 'Fix build failure with Clang 16. (orlitzky)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL connections).', + 'raw' => 'Fixed bug GH-8979 (Possible Memory Leak with SSL-enabled MySQL connections). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed build for macOS to cater with pkg-config settings.', + 'raw' => 'Fixed build for macOS to cater with pkg-config settings. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context).', + 'raw' => 'Fixed bug GH-8065 (opcache.consistency_checks > 0 causes segfaults in PHP >= 8.1.5 in fpm context). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Add missing error checks on file writing functions.', + 'raw' => 'Add missing error checks on file writing functions. (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland).', + 'raw' => 'Fixed bug GH-10908 (Bus error with PDO Firebird on RPI with 64 bit kernel and 32 bit userland). (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10766 (PharData archive created with Phar::Zip format does not keep files metadata (datetime)).', + 'raw' => 'Fixed bug GH-10766 (PharData archive created with Phar::Zip format does not keep files metadata (datetime)). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit().', + 'raw' => 'Add missing error checks on EVP_MD_CTX_create() and EVP_VerifyInit(). (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed missing and inconsistent error checks on SQLAllocHandle.', + 'raw' => 'Fixed missing and inconsistent error checks on SQLAllocHandle. (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed typo in the array returned from pg_meta_data (extended mode).', + 'raw' => 'Fixed typo in the array returned from pg_meta_data (extended mode). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10519 (Array Data Address Reference Issue).', + 'raw' => 'Fixed bug GH-10519 (Array Data Address Reference Issue). (Nathan Freeman)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10907 (Unable to serialize processed SplFixedArrays in PHP 8.2.4).', + 'raw' => 'Fixed bug GH-10907 (Unable to serialize processed SplFixedArrays in PHP 8.2.4). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10844 (ArrayIterator allows modification of readonly props).', + 'raw' => 'Fixed bug GH-10844 (ArrayIterator allows modification of readonly props). (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10885 (stream_socket_server context leaks).', + 'raw' => 'Fixed bug GH-10885 (stream_socket_server context leaks). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown (apache2)).', + 'raw' => 'Fixed bug GH-10052 (Browscap crashes PHP 8.1.12 on request shutdown (apache2)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \\0 delimiter and enclosure).', + 'raw' => 'Fixed oss-fuzz #57392 (Buffer-overflow in php_fgetcsv() with \\0 delimiter and enclosure). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed undefined behaviour in unpack().', + 'raw' => 'Fixed undefined behaviour in unpack(). (nielsdos)', + ), + ), + ), + ), + '8.2.4' => + array ( + 'date' => '16 Mar 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect check condition in ZEND_YIELD.', + 'raw' => 'Fixed incorrect check condition in ZEND_YIELD. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect check condition in type inference.', + 'raw' => 'Fixed incorrect check condition in type inference. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix incorrect check in zend_internal_call_should_throw().', + 'raw' => 'Fix incorrect check in zend_internal_call_should_throw(). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed overflow check in OnUpdateMemoryConsumption.', + 'raw' => 'Fixed overflow check in OnUpdateMemoryConsumption. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes).', + 'raw' => 'Fixed bug GH-9916 (Entering shutdown sequence with a fiber suspended in a Generator emits an unavoidable fatal error or crashes). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout).', + 'raw' => 'Fixed bug GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout). (trowski)', + ), + 6 => + array ( + 'message' => 'Fixed SSA object type update for compound assignment opcodes.', + 'raw' => 'Fixed SSA object type update for compound assignment opcodes. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed language scanner generation build.', + 'raw' => 'Fixed language scanner generation build. (Daniel Black)', + ), + 8 => + array ( + 'message' => 'Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type.', + 'raw' => 'Fixed zend_update_static_property() calling zend_update_static_property_ex() misleadingly with the wrong return type. (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name).', + 'raw' => 'Fix bug GH-10570 (Fixed unknown string hash on property fetch with integer constant name). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized.', + 'raw' => 'Fixed php_fopen_primary_script() call resulted on zend_destroy_file_handle() freeing dangling pointers on the handle as it was uninitialized. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed deprecation warning at compile time.', + 'raw' => 'Fixed deprecation warning at compile time. (Max Kellermann)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback).', + 'raw' => 'Fixed bug GH-10270 (Unable to return CURL_READFUNC_PAUSE in readfunc callback). (Pierrick Charron)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10447 (\'p\' format specifier does not yield \'Z\' for 00:00).', + 'raw' => 'Fix GH-10447 (\'p\' format specifier does not yield \'Z\' for 00:00). (Derick)', + ), + 1 => + array ( + 'message' => 'Fix GH-10152 (Custom properties of Date\'s child classes are not serialised).', + 'raw' => 'Fix GH-10152 (Custom properties of Date\'s child classes are not serialised). (Derick)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed incorrect bitshifting and masking in ffi bitfield.', + 'raw' => 'Fixed incorrect bitshifting and masking in ffi bitfield. (nielsdos)', + ), + ), + 'fiber' => + array ( + 0 => + array ( + 'message' => 'Fixed assembly on alpine x86.', + 'raw' => 'Fixed assembly on alpine x86. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber).', + 'raw' => 'Fixed bug GH-10496 (segfault when garbage collector is invoked inside of fiber). (Bob, Arnaud)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10315 (FPM unknown child alert not valid).', + 'raw' => 'Fixed bug GH-10315 (FPM unknown child alert not valid). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10385 (FPM successful config test early exit).', + 'raw' => 'Fixed bug GH-10385 (FPM successful config test early exit). (nielsdos)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Properly implement GMP::__construct().', + 'raw' => 'Properly implement GMP::__construct(). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code\'s argument always returning NULL0.', + 'raw' => 'Fixed bug GH-10647 (Spoolchecker isSuspicious/areConfusable methods error code\'s argument always returning NULL0. (Nathan Freeman)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed JSON scanner and parser generation build.', + 'raw' => 'Fixed JSON scanner and parser generation build. (Daniel Black, Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'ext/mbstring: fix new_value length check.', + 'raw' => 'ext/mbstring: fix new_value length check. (Max Kellermann)', + ), + 1 => + array ( + 'message' => 'Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows).', + 'raw' => 'Fix bug GH-10627 (mb_convert_encoding crashes PHP on Windows). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect page_size check.', + 'raw' => 'Fix incorrect page_size check. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix readonly modification check when using inc/dec operators on readonly property with JIT.', + 'raw' => 'Fix readonly modification check when using inc/dec operators on readonly property with JIT. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed php_openssl_set_server_dh_param() DH params errors handling.', + 'raw' => 'Fixed php_openssl_set_server_dh_param() DH params errors handling. (nielsdos)', + ), + ), + 'pdo oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars).', + 'raw' => 'Fixed bug #60994 (Reading a multibyte CLOB caps at 8192 chars). (Michael Voříšek)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10715 (heap buffer overflow on --run option misuse).', + 'raw' => 'Fixed bug GH-10715 (heap buffer overflow on --run option misuse). (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10672 (pg_lo_open segfaults in the strict_types mode).', + 'raw' => 'Fix GH-10672 (pg_lo_open segfaults in the strict_types mode). (girgias)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect check in phar tar parsing.', + 'raw' => 'Fix incorrect check in phar tar parsing. (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10390 (Do not trust arc4random_buf() on glibc).', + 'raw' => 'Fix GH-10390 (Do not trust arc4random_buf() on glibc). (timwolla)', + ), + 1 => + array ( + 'message' => 'Fix GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).', + 'raw' => 'Fix GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown). (kocsismate)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments).', + 'raw' => 'Fixed bug GH-10623 (Reflection::getClosureUsedVariables opcode fix with variadic arguments). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix Segfault when using ReflectionFiber suspended by an internal function.', + 'raw' => 'Fix Segfault when using ReflectionFiber suspended by an internal function. (danog)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. .', + 'raw' => 'Fixed ps_files_cleanup_dir() on failure code paths with -1 instead of 0 as the latter was considered success by callers. (nielsdos).', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8086 (Introduce mail.mixed_lf_and_crlf INI).', + 'raw' => 'Fixed bug GH-8086 (Introduce mail.mixed_lf_and_crlf INI). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown).', + 'raw' => 'Fixed bug GH-10292 (Made the default value of the first param of srand() and mt_srand() unknown). (kocsismate)', + ), + 2 => + array ( + 'message' => 'Fix incorrect check in cs_8559_5 in map_from_unicode().', + 'raw' => 'Fix incorrect check in cs_8559_5 in map_from_unicode(). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes', + 'raw' => 'Fix bug GH-9697 for reset/end/next/prev() attempting to move pointer of properties table for certain internal classes such as FFI classes', + ), + 4 => + array ( + 'message' => 'Fix incorrect error check in browsecap for pcre2_match().', + 'raw' => 'Fix incorrect error check in browsecap for pcre2_match(). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10370 (File corruption in _php_stream_copy_to_stream_ex when using copy_file_range).', + 'raw' => 'Fixed bug GH-10370 (File corruption in _php_stream_copy_to_stream_ex when using copy_file_range). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10548 (copy() fails on cifs mounts because of incorrect copy_file_range() len).', + 'raw' => 'Fixed bug GH-10548 (copy() fails on cifs mounts because of incorrect copy_file_range() len). (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when attempting to open a non-existing file or a file over 4GB.', + 'raw' => 'Fix memory leaks when attempting to open a non-existing file or a file over 4GB. (Girgias)', + ), + 1 => + array ( + 'message' => 'Add missing error check on tidyLoadConfig.', + 'raw' => 'Add missing error check on tidyLoadConfig. (nielsdos)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed output_handler directive value\'s length which counted the string terminator.', + 'raw' => 'Fixed output_handler directive value\'s length which counted the string terminator. (nieldos)', + ), + ), + ), + ), + '8.2.3' => + array ( + 'date' => '14 Feb 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567).', + 'raw' => 'Fixed bug #81744 (Password_verify() always return true with some hash). (CVE-2023-0567). (Tim Düsterhus)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568).', + 'raw' => 'Fixed bug #81746 (1-byte array overrun in common path resolve code). (CVE-2023-0568). (Niels Dossche)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662)', + 'raw' => 'Fixed bug GHSA-54hq-v5wp-fqgv (DOS vulnerability when parsing multipart request body). (CVE-2023-0662) (Jakub Zelenka)', + ), + ), + ), + ), + '8.2.2' => + array ( + 'date' => '02 Feb 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10200 (zif_get_object_vars: Assertion `!(((__ht)->u.flags & (1<<2)) != 0)\' failed).', + 'raw' => 'Fixed bug GH-10200 (zif_get_object_vars: Assertion `!(((__ht)->u.flags & (1<<2)) != 0)\' failed). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix GH-10251 (Assertion `(flag & (1<<3)) == 0\' failed).', + 'raw' => 'Fix GH-10251 (Assertion `(flag & (1<<3)) == 0\' failed). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix GH-10240 (Assertion failure when adding more than 2**30 elements to an unpacked array).', + 'raw' => 'Fix GH-10240 (Assertion failure when adding more than 2**30 elements to an unpacked array). (Arnaud)', + ), + 3 => + array ( + 'message' => 'Fix GH-9735 (Fiber stack variables do not participate in cycle collector).', + 'raw' => 'Fix GH-9735 (Fiber stack variables do not participate in cycle collector). (Arnaud)', + ), + 4 => + array ( + 'message' => 'Fix GH-9675 (Broken run_time_cache init for internal enum methods).', + 'raw' => 'Fix GH-9675 (Broken run_time_cache init for internal enum methods). (Petar Obradović, Bob)', + ), + 5 => + array ( + 'message' => 'Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)\' failed).', + 'raw' => 'Fix GH-10248 (Assertion `!(zval_get_type(&(*(property))) == 10)\' failed). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77106 (Missing separator in FPM FastCGI errors).', + 'raw' => 'Fixed bug #77106 (Missing separator in FPM FastCGI errors). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9981 (FPM does not reset fastcgi.error_header).', + 'raw' => 'Fixed bug GH-9981 (FPM does not reset fastcgi.error_header). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #68591 (Configuration test does not perform UID lookups).', + 'raw' => 'Fixed bug #68591 (Configuration test does not perform UID lookups). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed memory leak when running FPM config test.', + 'raw' => 'Fixed memory leak when running FPM config test. (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed bug #67244 (Wrong owner:group for listening unix socket).', + 'raw' => 'Fixed bug #67244 (Wrong owner:group for listening unix socket). (Jakub Zelenka)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Handle exceptions from __toString in XXH3\'s initialization', + 'raw' => 'Handle exceptions from __toString in XXH3\'s initialization (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10112 (LDAP\\Connection::__construct() refers to ldap_create()).', + 'raw' => 'Fixed bug GH-10112 (LDAP\\Connection::__construct() refers to ldap_create()). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fix inverted bailout value in zend_runtime_jit() .', + 'raw' => 'Fix inverted bailout value in zend_runtime_jit() (Max Kellermann).', + ), + 1 => + array ( + 'message' => 'Fix access to uninitialized variable in accel_preload().', + 'raw' => 'Fix access to uninitialized variable in accel_preload(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix zend_jit_find_trace() crashes.', + 'raw' => 'Fix zend_jit_find_trace() crashes. (Max Kellermann)', + ), + 3 => + array ( + 'message' => 'Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit.', + 'raw' => 'Added missing lock for EXIT_INVALIDATE in zend_jit_trace_exit. (Max Kellermann)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix wrong flags check for compression method in phar_object.c', + 'raw' => 'Fix wrong flags check for compression method in phar_object.c (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix undefined behaviour in phpdbg_load_module_or_extension().', + 'raw' => 'Fix undefined behaviour in phpdbg_load_module_or_extension(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix NULL pointer dereference in phpdbg_create_conditional_breal().', + 'raw' => 'Fix NULL pointer dereference in phpdbg_create_conditional_breal(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix GH-9710: phpdbg memory leaks by option "-h"', + 'raw' => 'Fix GH-9710: phpdbg memory leaks by option "-h" (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix phpdbg segmentation fault in case of malformed input', + 'raw' => 'Fix phpdbg segmentation fault in case of malformed input (nielsdos)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in posix_ttyname()', + 'raw' => 'Fix memory leak in posix_ttyname() (girgias)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10247 (Theoretical file descriptor leak for /dev/urandom).', + 'raw' => 'Fixed bug GH-10247 (Theoretical file descriptor leak for /dev/urandom). (timwolla)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix GH-10187 (Segfault in stripslashes() with arm64).', + 'raw' => 'Fix GH-10187 (Segfault in stripslashes() with arm64). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10214 (Incomplete validation of object syntax during unserialize()).', + 'raw' => 'Fixed bug GH-10214 (Incomplete validation of object syntax during unserialize()). (timwolla)', + ), + 2 => + array ( + 'message' => 'Fix substr_replace with slots in repl_ht being UNDEF.', + 'raw' => 'Fix substr_replace with slots in repl_ht being UNDEF. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix missing check for xmlTextWriterEndElement', + 'raw' => 'Fix missing check for xmlTextWriterEndElement (nielsdos)', + ), + ), + ), + ), + '8.2.1' => + array ( + 'date' => '05 Jan 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined).', + 'raw' => 'Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file).', + 'raw' => 'Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file). (Akama Hitoshi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9890 (OpenSSL legacy providers not available on Windows).', + 'raw' => 'Fixed bug GH-9890 (OpenSSL legacy providers not available on Windows). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9650 (Can\'t initialize heap: [0x000001e7]).', + 'raw' => 'Fixed bug GH-9650 (Can\'t initialize heap: [0x000001e7]). (Michael Voříšek)', + ), + 4 => + array ( + 'message' => 'Fixed potentially undefined behavior in Windows ftok(3) emulation.', + 'raw' => 'Fixed potentially undefined behavior in Windows ftok(3) emulation. (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed GH-9769 (Misleading error message for unpacking of objects).', + 'raw' => 'Fixed GH-9769 (Misleading error message for unpacking of objects). (jhdxr)', + ), + ), + 'apache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9949 (Partial content on incomplete POST request).', + 'raw' => 'Fixed bug GH-9949 (Partial content on incomplete POST request). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694).', + 'raw' => 'Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694). (Petr Sumbera)', + ), + 1 => + array ( + 'message' => 'Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING).', + 'raw' => 'Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #80669 (FPM numeric user fails to set groups).', + 'raw' => 'Fixed bug #80669 (FPM numeric user fails to set groups). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said).', + 'raw' => 'Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said). (Jakub Zelenka)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10051 (IMAP: there\'s no way to check if a IMAP\\Connection is still open).', + 'raw' => 'Fixed bug GH-10051 (IMAP: there\'s no way to check if a IMAP\\Connection is still open). (Girgias)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1).', + 'raw' => 'Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1). (Nathan Freeman)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9968 (Segmentation Fault during OPCache Preload).', + 'raw' => 'Fixed bug GH-9968 (Segmentation Fault during OPCache Preload). (Arnaud, michdingpayc)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9997 (OpenSSL engine clean up segfault).', + 'raw' => 'Fixed bug GH-9997 (OpenSSL engine clean up segfault). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec).', + 'raw' => 'Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa).', + 'raw' => 'Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa). (Jakub Zelenka)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash).', + 'raw' => 'Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash). (Erki Aring)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird).', + 'raw' => 'Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird). (cmb)', + ), + ), + 'pdo/sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631)', + 'raw' => 'Fixed bug #81740 (PDO::quote() may return unquoted string). (CVE-2022-31631) (cmb)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9932 (session name silently fails with . and [).', + 'raw' => 'Fixed GH-9932 (session name silently fails with . and [). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-9883 (SplFileObject::__toString() reads next line).', + 'raw' => 'Fixed GH-9883 (SplFileObject::__toString() reads next line). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered).', + 'raw' => 'Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered). (Girgias)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI).', + 'raw' => 'Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI). (cmb)', + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Fixed Windows shmget() wrt. IPC_PRIVATE.', + 'raw' => 'Fixed Windows shmget() wrt. IPC_PRIVATE. (Tyson Andre)', + ), + ), + ), + ), + '8.2.0' => + array ( + 'date' => '08 Dec 2022', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81496 (Server logs incorrect request method).', + 'raw' => 'Fixed bug #81496 (Server logs incorrect request method). (lauri)', + ), + 1 => + array ( + 'message' => 'Updated the mime-type table for the builtin-server.', + 'raw' => 'Updated the mime-type table for the builtin-server. (Ayesh Karunaratne)', + ), + 2 => + array ( + 'message' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable.', + 'raw' => 'Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner)', + ), + 3 => + array ( + 'message' => 'Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource destruction.', + 'raw' => 'Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource destruction. (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Implement built-in web server responding without body to HEAD request on a static resource.', + 'raw' => 'Implement built-in web server responding without body to HEAD request on a static resource. (Vedran Miletic, Marin Martuslovic)', + ), + 5 => + array ( + 'message' => 'Implement built-in web server responding with HTTP status 405 to DELETE/PUT/PATCH request on a static resource.', + 'raw' => 'Implement built-in web server responding with HTTP status 405 to DELETE/PUT/PATCH request on a static resource. (Vedran Miletic, Marin Martuslovic)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options).', + 'raw' => 'Fixed bug GH-9709 (Null pointer dereference with -w/-s options). (Adam Saponara)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8750 (Can not create VT_ERROR variant type).', + 'raw' => 'Fixed bug GH-8750 (Can not create VT_ERROR variant type). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81380 (Observer may not be initialized properly).', + 'raw' => 'Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-7771 (Fix filename/lineno of constant expressions).', + 'raw' => 'Fixed bug GH-7771 (Fix filename/lineno of constant expressions). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7792 (Improve class type in error messages).', + 'raw' => 'Fixed bug GH-7792 (Improve class type in error messages). (ilutov)', + ), + 3 => + array ( + 'message' => 'Support huge pages on MacOS.', + 'raw' => 'Support huge pages on MacOS. (David CARLIER)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references).', + 'raw' => 'Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1 references). (Nicolas Grekas)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable warning).', + 'raw' => 'Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable warning). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-7821 and GH-8418 (Allow arbitrary const expressions in backed enums).', + 'raw' => 'Fixed bug GH-7821 and GH-8418 (Allow arbitrary const expressions in backed enums). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function calls).', + 'raw' => 'Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function calls). (ilutov)', + ), + 8 => + array ( + 'message' => 'Optimised code path for newly created file with the stream plain wrapper.', + 'raw' => 'Optimised code path for newly created file with the stream plain wrapper. (Max Kellermann)', + ), + 9 => + array ( + 'message' => 'Uses safe_perealloc instead of perealloc for the ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows.', + 'raw' => 'Uses safe_perealloc instead of perealloc for the ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows. (David Carlier)', + ), + 10 => + array ( + 'message' => 'Reduced the memory footprint of strings returned by var_export(), json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(), http_build_query(), strstr(), Reflection*::__toString().', + 'raw' => 'Reduced the memory footprint of strings returned by var_export(), json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(), http_build_query(), strstr(), Reflection*::__toString(). (Arnaud)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).', + 'raw' => 'Fixed bug GH-8995 (WeakMap object reference offset causing TypeError). (Tobias Bachert)', + ), + 12 => + array ( + 'message' => 'Added error_log_mode ini setting.', + 'raw' => 'Added error_log_mode ini setting. (Mikhail Galanin)', + ), + 13 => + array ( + 'message' => 'Updated request startup messages.', + 'raw' => 'Updated request startup messages. (Eric Norris)', + ), + 14 => + array ( + 'message' => 'Fixed bug GH-7900 (Arrow function with never return type compile-time errors).', + 'raw' => 'Fixed bug GH-7900 (Arrow function with never return type compile-time errors). (ilutov)', + ), + 15 => + array ( + 'message' => 'Fixed incorrect double to long casting in latest clang.', + 'raw' => 'Fixed incorrect double to long casting in latest clang. (zeriyoshi)', + ), + 16 => + array ( + 'message' => 'Added support for defining constants in traits.', + 'raw' => 'Added support for defining constants in traits. (sj-i)', + ), + 17 => + array ( + 'message' => 'Stop incorrectly emitting false positive deprecation notice alongside unsupported syntax fatal error for `"{$g{\'h\'}}"`.', + 'raw' => 'Stop incorrectly emitting false positive deprecation notice alongside unsupported syntax fatal error for `"{$g{\'h\'}}"`. (TysonAndre)', + ), + 18 => + array ( + 'message' => 'Fix unexpected deprecated dynamic property warning, which occurred when exit() in finally block after an exception was thrown without catching.', + 'raw' => 'Fix unexpected deprecated dynamic property warning, which occurred when exit() in finally block after an exception was thrown without catching. (Twosee)', + ), + 19 => + array ( + 'message' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)', + 'raw' => 'Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function) (Tim Starling)', + ), + 20 => + array ( + 'message' => 'Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored).', + 'raw' => 'Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored). (cmb)', + ), + 21 => + array ( + 'message' => 'Fixed bug GH-9285 (Traits cannot be used in readonly classes).', + 'raw' => 'Fixed bug GH-9285 (Traits cannot be used in readonly classes). (kocsismate)', + ), + 22 => + array ( + 'message' => 'Fixed bug GH-9186 (@strict-properties can be bypassed using unserialization).', + 'raw' => 'Fixed bug GH-9186 (@strict-properties can be bypassed using unserialization). (kocsismate)', + ), + 23 => + array ( + 'message' => 'Fixed bug GH-9500 (Using dnf type with parentheses after readonly keyword results in a parse error).', + 'raw' => 'Fixed bug GH-9500 (Using dnf type with parentheses after readonly keyword results in a parse error). (ilutov)', + ), + 24 => + array ( + 'message' => 'Fixed bug GH-9516 ((A&B)|D as a param should allow AB or D. Not just A).', + 'raw' => 'Fixed bug GH-9516 ((A&B)|D as a param should allow AB or D. Not just A). (Girgias)', + ), + 25 => + array ( + 'message' => 'Fixed observer class notify with Opcache file_cache_only=1.', + 'raw' => 'Fixed observer class notify with Opcache file_cache_only=1. (ilutov)', + ), + 26 => + array ( + 'message' => 'Fixes segfault with Fiber on FreeBSD i386 architecture.', + 'raw' => 'Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier)', + ), + 27 => + array ( + 'message' => 'Fixed bug GH-9655 (Pure intersection types cannot be implicitly nullable)', + 'raw' => 'Fixed bug GH-9655 (Pure intersection types cannot be implicitly nullable) (Girgias)', + ), + 28 => + array ( + 'message' => 'Fixed bug GH-9589 (dl() segfaults when module is already loaded).', + 'raw' => 'Fixed bug GH-9589 (dl() segfaults when module is already loaded). (cmb, Arnaud)', + ), + 29 => + array ( + 'message' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params).', + 'raw' => 'Fixed bug GH-9752 (Generator crashes when interrupted during argument evaluation with extra named params). (Arnaud)', + ), + 30 => + array ( + 'message' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization).', + 'raw' => 'Fixed bug GH-9801 (Generator crashes when memory limit is exceeded during initialization). (Arnaud)', + ), + 31 => + array ( + 'message' => 'Fixed a bug with preloaded enums possibly segfaulting.', + 'raw' => 'Fixed a bug with preloaded enums possibly segfaulting. (Bob)', + ), + 32 => + array ( + 'message' => 'Fixed bug GH-9823 (Don’t reset func in zend_closure_internal_handler).', + 'raw' => 'Fixed bug GH-9823 (Don’t reset func in zend_closure_internal_handler). (Florian Sowade)', + ), + 33 => + array ( + 'message' => 'Fixed potential NULL pointer dereference Windows shm*() functions.', + 'raw' => 'Fixed potential NULL pointer dereference Windows shm*() functions. (cmb)', + ), + 34 => + array ( + 'message' => 'Fix target validation for internal attributes with constructor property promotion.', + 'raw' => 'Fix target validation for internal attributes with constructor property promotion. (kooldev)', + ), + 35 => + array ( + 'message' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation.', + 'raw' => 'Fixed bug GH-9750 (Generator memory leak when interrupted during argument evaluation. (Arnaud)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Added support for CURLOPT_XFERINFOFUNCTION.', + 'raw' => 'Added support for CURLOPT_XFERINFOFUNCTION. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added support for CURLOPT_MAXFILESIZE_LARGE.', + 'raw' => 'Added support for CURLOPT_MAXFILESIZE_LARGE. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added new constants from cURL 7.62 to 7.80.', + 'raw' => 'Added new constants from cURL 7.62 to 7.80. (Pierrick)', + ), + 3 => + array ( + 'message' => 'New function curl_upkeep().', + 'raw' => 'New function curl_upkeep(). (Pierrick)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-8458 (DateInterval::createFromDateString does not throw if non-relative items are present).', + 'raw' => 'Fixed GH-8458 (DateInterval::createFromDateString does not throw if non-relative items are present). (Derick)', + ), + 1 => + array ( + 'message' => 'Fixed bug #52015 (Allow including end date in DatePeriod iterations)', + 'raw' => 'Fixed bug #52015 (Allow including end date in DatePeriod iterations) (Daniel Egeberg, Derick)', + ), + 2 => + array ( + 'message' => 'idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO Year).', + 'raw' => 'idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO Year). (Pavel Djundik)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of different type).', + 'raw' => 'Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of different type). (Derick)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-8964 (DateTime object comparison after applying delta less than 1 second).', + 'raw' => 'Fixed bug GH-8964 (DateTime object comparison after applying delta less than 1 second). (Derick)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0).', + 'raw' => 'Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded down since PHP 8.1.0). (Derick)', + ), + 6 => + array ( + 'message' => 'Fixed bug #75035 (Datetime fails to unserialize "extreme" dates).', + 'raw' => 'Fixed bug #75035 (Datetime fails to unserialize "extreme" dates). (Derick)', + ), + 7 => + array ( + 'message' => 'Fixed bug #80483 (DateTime Object with 5-digit year can\'t unserialized).', + 'raw' => 'Fixed bug #80483 (DateTime Object with 5-digit year can\'t unserialized). (Derick)', + ), + 8 => + array ( + 'message' => 'Fixed bug #81263 (Wrong result from DateTimeImmutable::diff).', + 'raw' => 'Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no errors/warnings).', + 'raw' => 'Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no errors/warnings). (Derick)', + ), + 10 => + array ( + 'message' => 'Fixed bug with parsing large negative numbers with the @ notation.', + 'raw' => 'Fixed bug with parsing large negative numbers with the @ notation. (Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed LMDB driver hanging when attempting to delete a non-existing key', + 'raw' => 'Fixed LMDB driver hanging when attempting to delete a non-existing key (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed LMDB driver memory leak on DB creation failure', + 'raw' => 'Fixed LMDB driver memory leak on DB creation failure (Girgias)', + ), + 2 => + array ( + 'message' => 'Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag).', + 'raw' => 'Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag). (Girgias)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9090 (Support assigning function pointers in FFI).', + 'raw' => 'Fixed bug GH-9090 (Support assigning function pointers in FFI). (Adam Saponara)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files).', + 'raw' => 'Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files). (Anatol)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs.', + 'raw' => 'Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs. (vnsavage)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Emit error for invalid port setting.', + 'raw' => 'Emit error for invalid port setting. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added extra check for FPM proc dumpable on SELinux based systems.', + 'raw' => 'Added extra check for FPM proc dumpable on SELinux based systems. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added support for listening queue on macOS.', + 'raw' => 'Added support for listening queue on macOS. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Changed default for listen.backlog on Linux to -1.', + 'raw' => 'Changed default for listen.backlog on Linux to -1. (Cristian Rodríguez)', + ), + 4 => + array ( + 'message' => 'Added listen.setfib pool option to set route FIB on FreeBSD.', + 'raw' => 'Added listen.setfib pool option to set route FIB on FreeBSD. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added access.suppress_path pool option to filter access log entries.', + 'raw' => 'Added access.suppress_path pool option to filter access log entries. (Mark Gallagher)', + ), + 6 => + array ( + 'message' => 'Fixed on fpm scoreboard occasional warning on acquisition failure.', + 'raw' => 'Fixed on fpm scoreboard occasional warning on acquisition failure. (Felix Wiedemann)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11).', + 'raw' => 'Fixed bug GH-9754 (SaltStack (using Python subprocess) hangs when running php-fpm 8.1.11). (Jakub Zelenka)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix datetime format string to follow POSIX spec in ftp_mdtm().', + 'raw' => 'Fix datetime format string to follow POSIX spec in ftp_mdtm(). (Jihwan Kim)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)', + 'raw' => 'Fixed bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630) (cmb)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()).', + 'raw' => 'Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to gmp_init()). (Girgias)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)', + 'raw' => 'Fixed bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454) (nicky at mouha dot be)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10077: Fix compilation on RHEL 7 ppc64le.', + 'raw' => 'Fixed bug GH-10077: Fix compilation on RHEL 7 ppc64le. (Mattias Ellert)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Update all grandfathered language tags with preferred values', + 'raw' => 'Update all grandfathered language tags with preferred values', + ), + 1 => + array ( + 'message' => 'Fixed GH-7939 (Cannot unserialize IntlTimeZone objects).', + 'raw' => 'Fixed GH-7939 (Cannot unserialize IntlTimeZone objects). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed build for ICU 69.x and onwards.', + 'raw' => 'Fixed build for ICU 69.x and onwards. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Declared Transliterator::$id as readonly to unlock subclassing it.', + 'raw' => 'Declared Transliterator::$id as readonly to unlock subclassing it. (Nicolas Grekas)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).', + 'raw' => 'Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter). (Girgias)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()).', + 'raw' => 'Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()). (cmb)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode).', + 'raw' => 'Fixed bug GH-9841 (mysqli_query throws warning despite using silenced error mode). (Kamil Tekiela)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed potential heap corruption due to alignment mismatch.', + 'raw' => 'Fixed potential heap corruption due to alignment mismatch. (cmb)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Added oci8.prefetch_lob_size directive to tune LOB query performance', + 'raw' => 'Added oci8.prefetch_lob_size directive to tune LOB query performance', + ), + 1 => + array ( + 'message' => 'Support for building against Oracle Client libraries 10.1 and 10.2 has been dropped. Oracle Client libraries 11.2 or newer are now required.', + 'raw' => 'Support for building against Oracle Client libraries 10.1 and 10.2 has been dropped. Oracle Client libraries 11.2 or newer are now required.', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8300 (User input not escaped when building connection string).', + 'raw' => 'Fixed bug GH-8300 (User input not escaped when building connection string). (Calvin Buckley)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate).', + 'raw' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin Buckley)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Allocate JIT buffer close to PHP .text segemnt to allow using direct IP-relative calls and jumps.', + 'raw' => 'Allocate JIT buffer close to PHP .text segemnt to allow using direct IP-relative calls and jumps. (Su Tao, Wang Xue, Chen Hu, Lizhen Lizhen, Dmitry)', + ), + 1 => + array ( + 'message' => 'Added initial support for JIT performance profiling generation for macOs Instrument.', + 'raw' => 'Added initial support for JIT performance profiling generation for macOs Instrument. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).', + 'raw' => 'Fixed bug GH-8030 (Segfault with JIT and large match/switch statements). (Arnaud)', + ), + 3 => + array ( + 'message' => 'Added JIT support improvement for macOs for segments and executable permission bit handling.', + 'raw' => 'Added JIT support improvement for macOs for segments and executable permission bit handling. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added JIT buffer allocation near the .text section on FreeNSD.', + 'raw' => 'Added JIT buffer allocation near the .text section on FreeNSD. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9371 (Crash with JIT on mac arm64)', + 'raw' => 'Fixed bug GH-9371 (Crash with JIT on mac arm64) (jdp1024/David Carlier)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9259 (opcache.interned_strings_buffer setting integer overflow).', + 'raw' => 'Fixed bug GH-9259 (opcache.interned_strings_buffer setting integer overflow). (Arnaud)', + ), + 7 => + array ( + 'message' => 'Added indirect call reduction for jit on x86 architectures.', + 'raw' => 'Added indirect call reduction for jit on x86 architectures. (wxue1)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy).', + 'raw' => 'Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy). (Arnaud, Sergei Turchanov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT.', + 'raw' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9310 (SSL local_cert and local_pk do not respect open_basedir).', + 'raw' => 'Fixed bug GH-9310 (SSL local_cert and local_pk do not respect open_basedir). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like AEAD).', + 'raw' => 'Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like AEAD). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Added openssl_cipher_key_length function.', + 'raw' => 'Added openssl_cipher_key_length function. (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9517 (Compilation error openssl extension related to PR GH-9366).', + 'raw' => 'Fixed bug GH-9517 (Compilation error openssl extension related to PR GH-9366). (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Fixed missing clean up of OpenSSL engine list - attempt to fix GH-8620.', + 'raw' => 'Fixed missing clean up of OpenSSL engine list - attempt to fix GH-8620. (Jakub Zelenka)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build).', + 'raw' => 'Fixed bug GH-8430 (OpenSSL compiled with no-md2, no-md4 or no-rmd160 does not build). (Jakub Zelenka, fsbruva)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_(get|set)priority error handling for MacOS.', + 'raw' => 'Fixed pcntl_(get|set)priority error handling for MacOS. (Juan Morales)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Implemented FR #77726 (Allow null character in regex patterns).', + 'raw' => 'Implemented FR #77726 (Allow null character in regex patterns). (tobil4sk)', + ), + 1 => + array ( + 'message' => 'Updated bundled libpcre to 10.40.', + 'raw' => 'Updated bundled libpcre to 10.40. (cmb)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9818 (Initialize run time cache in PDO methods).', + 'raw' => 'Fixed bug GH-9818 (Initialize run time cache in PDO methods). (Florian Sowade)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8).', + 'raw' => 'Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8). (cmb)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80909 (crash with persistent connections in PDO_ODBC).', + 'raw' => 'Fixed bug #80909 (crash with persistent connections in PDO_ODBC). (Calvin Buckley)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8300 (User input not escaped when building connection string).', + 'raw' => 'Fixed bug GH-8300 (User input not escaped when building connection string). (Calvin Buckley)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate).', + 'raw' => 'Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin Buckley)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9372 (HY010 when binding overlong parameter).', + 'raw' => 'Fixed bug GH-9372 (HY010 when binding overlong parameter). (cmb)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).', + 'raw' => 'Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed). (Yurunsoft)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Added new random extension.', + 'raw' => 'Added new random extension. (Go Kudo)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-9067 (random extension is not thread safe).', + 'raw' => 'Fixed bug GH-9067 (random extension is not thread safe). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9055 (segmentation fault if user engine throws).', + 'raw' => 'Fixed bug GH-9055 (segmentation fault if user engine throws). (timwolla)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9066 (signed integer overflow).', + 'raw' => 'Fixed bug GH-9066 (signed integer overflow). (zeriyoshi)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9083 (undefined behavior during shifting).', + 'raw' => 'Fixed bug GH-9083 (undefined behavior during shifting). (timwolla)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when generating uniform integers within a given range).', + 'raw' => 'Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when generating uniform integers within a given range). (timwolla)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct() call twice).', + 'raw' => 'Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct() call twice). (zeriyoshi)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative $advance).', + 'raw' => 'Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative $advance). (Anton Smirnov)', + ), + 8 => + array ( + 'message' => 'Changed Mt19937 to throw a ValueError instead of InvalidArgumentException for invalid $mode.', + 'raw' => 'Changed Mt19937 to throw a ValueError instead of InvalidArgumentException for invalid $mode. (timwolla)', + ), + 9 => + array ( + 'message' => 'Splitted Random\\Randomizer::getInt() (without arguments) to Random\\Randomizer::nextInt().', + 'raw' => 'Splitted Random\\Randomizer::getInt() (without arguments) to Random\\Randomizer::nextInt(). (zeriyoshi)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-9235 (non-existant $sequence parameter in stub for PcgOneseq128XslRr64::__construct()).', + 'raw' => 'Fixed bug GH-9235 (non-existant $sequence parameter in stub for PcgOneseq128XslRr64::__construct()). (timwolla)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when handling large ranges).', + 'raw' => 'Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when handling large ranges). (timwolla)', + ), + 12 => + array ( + 'message' => 'Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid all-zero state).', + 'raw' => 'Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid all-zero state). (timwolla)', + ), + 13 => + array ( + 'message' => 'Removed redundant RuntimeExceptions from Randomizer methods. The exceptions thrown by the engines will be exposed directly.', + 'raw' => 'Removed redundant RuntimeExceptions from Randomizer methods. The exceptions thrown by the engines will be exposed directly. (timwolla)', + ), + 14 => + array ( + 'message' => 'Added extension specific Exceptions/Errors (RandomException, RandomError, BrokenRandomEngineError).', + 'raw' => 'Added extension specific Exceptions/Errors (RandomException, RandomError, BrokenRandomEngineError). (timwolla)', + ), + 15 => + array ( + 'message' => 'Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937 always returns 1).', + 'raw' => 'Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937 always returns 1). (timwolla)', + ), + 16 => + array ( + 'message' => 'Fixed Randomizer::getInt() consistency for 32-bit engines.', + 'raw' => 'Fixed Randomizer::getInt() consistency for 32-bit engines. (timwolla)', + ), + 17 => + array ( + 'message' => 'Fixed bug GH-9464 (build on older macOs releases).', + 'raw' => 'Fixed bug GH-9464 (build on older macOs releases). (David Bohman)', + ), + 18 => + array ( + 'message' => 'Fixed bug GH-9839 (Pre-PHP 8.2 output compatibility for non-mt_rand() functions for MT_RAND_PHP).', + 'raw' => 'Fixed bug GH-9839 (Pre-PHP 8.2 output compatibility for non-mt_rand() functions for MT_RAND_PHP). (timwolla)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Added ReflectionFunction::isAnonymous().', + 'raw' => 'Added ReflectionFunction::isAnonymous(). (Nicolas Grekas)', + ), + 1 => + array ( + 'message' => 'Added ReflectionMethod::hasPrototype().', + 'raw' => 'Added ReflectionMethod::hasPrototype(). (Ollie Read)', + ), + 2 => + array ( + 'message' => 'Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType.', + 'raw' => 'Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType. (SamMousa)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure).', + 'raw' => 'Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure). (cmb, Nicolas Grekas)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-7787 (Improve session write failure message for user error handlers).', + 'raw' => 'Fixed bug GH-7787 (Improve session write failure message for user error handlers). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed GH-9200 (setcookie has an obsolete expires date format).', + 'raw' => 'Fixed GH-9200 (setcookie has an obsolete expires date format). (timwolla)', + ), + 2 => + array ( + 'message' => 'Fixed GH-9584 (Avoid memory corruption when not unregistering custom session handler).', + 'raw' => 'Fixed GH-9584 (Avoid memory corruption when not unregistering custom session handler). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method).', + 'raw' => 'Fixed bug GH-9583 (session_create_id() fails with user defined save handler that doesn\'t have a validateId() method). (Girgias)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9720 (Null pointer dereference while serializing the response).', + 'raw' => 'Fixed bug GH-9720 (Null pointer dereference while serializing the response). (cmb)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added TCP_NOTSENT_LOWAT socket option.', + 'raw' => 'Added TCP_NOTSENT_LOWAT socket option. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added SO_MEMINFO socket option.', + 'raw' => 'Added SO_MEMINFO socket option. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added SO_RTABLE socket option (OpenBSD), equivalent of SO_MARK (Linux).', + 'raw' => 'Added SO_RTABLE socket option (OpenBSD), equivalent of SO_MARK (Linux). (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added TCP_KEEPALIVE, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT socket options.', + 'raw' => 'Added TCP_KEEPALIVE, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT socket options. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added ancillary data support for FreeBSD.', + 'raw' => 'Added ancillary data support for FreeBSD. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added ancillary data support for NetBSD.', + 'raw' => 'Added ancillary data support for NetBSD. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Added SO_BPF_EXTENSIONS socket option.', + 'raw' => 'Added SO_BPF_EXTENSIONS socket option. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added SO_SETFIB socket option.', + 'raw' => 'Added SO_SETFIB socket option. (David Carlier)', + ), + 8 => + array ( + 'message' => 'Added TCP_CONGESTION socket option.', + 'raw' => 'Added TCP_CONGESTION socket option. (David Carlier)', + ), + 9 => + array ( + 'message' => 'Added SO_ZEROCOPY/MSG_ZEROCOPY options.', + 'raw' => 'Added SO_ZEROCOPY/MSG_ZEROCOPY options. (David Carlier)', + ), + 10 => + array ( + 'message' => 'Added SOL_FILTER socket option for Solaris.', + 'raw' => 'Added SOL_FILTER socket option for Solaris. (David Carlier)', + ), + 11 => + array ( + 'message' => 'Fixed socket constants regression as of PHP 8.2.0beta3.', + 'raw' => 'Fixed socket constants regression as of PHP 8.2.0beta3. (Bruce Dou)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Added sodium_crypto_stream_xchacha20_xor_ic().', + 'raw' => 'Added sodium_crypto_stream_xchacha20_xor_ic(). (Scott)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Uses safe_erealloc instead of erealloc to handle heap growth for the SplHeap::insert method to avoid possible overflows.', + 'raw' => 'Uses safe_erealloc instead of erealloc to handle heap growth for the SplHeap::insert method to avoid possible overflows. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Widen iterator_to_array() and iterator_count()\'s $iterator parameter to iterable.', + 'raw' => 'Widen iterator_to_array() and iterator_count()\'s $iterator parameter to iterable. (timwolla)', + ), + 2 => + array ( + 'message' => 'Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields).', + 'raw' => 'Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields). (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check).', + 'raw' => 'Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check). (Jakub Zelenka)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER.', + 'raw' => 'Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER. (bohwaz)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'net_get_interfaces() also reports wireless network interfaces on Windows.', + 'raw' => 'net_get_interfaces() also reports wireless network interfaces on Windows. (Yurun)', + ), + 1 => + array ( + 'message' => 'Finished AVIF support in getimagesize().', + 'raw' => 'Finished AVIF support in getimagesize(). (Yannis Guyon)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-7847 (stripos with large haystack has bad performance).', + 'raw' => 'Fixed bug GH-7847 (stripos with large haystack has bad performance). (ilutov)', + ), + 3 => + array ( + 'message' => 'New function memory_reset_peak_usage().', + 'raw' => 'New function memory_reset_peak_usage(). (Patrick Allaert)', + ), + 4 => + array ( + 'message' => 'Fixed parse_url(): can not recognize port without scheme.', + 'raw' => 'Fixed parse_url(): can not recognize port without scheme. (pandaLIU)', + ), + 5 => + array ( + 'message' => 'Deprecated utf8_encode() and utf8_decode().', + 'raw' => 'Deprecated utf8_encode() and utf8_decode(). (Rowan Tommins)', + ), + 6 => + array ( + 'message' => 'Fixed the crypt_sha256/512 api build with clang > 12.', + 'raw' => 'Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Uses safe_erealloc instead of erealloc to handle options in getopt to avoid possible overflows.', + 'raw' => 'Uses safe_erealloc instead of erealloc to handle options in getopt to avoid possible overflows. (David Carlier)', + ), + 8 => + array ( + 'message' => 'Implemented FR GH-8924 (str_split should return empty array for empty string).', + 'raw' => 'Implemented FR GH-8924 (str_split should return empty array for empty string). (Michael Vorisek)', + ), + 9 => + array ( + 'message' => 'Added ini_parse_quantity function to convert ini quantities shorthand notation to int.', + 'raw' => 'Added ini_parse_quantity function to convert ini quantities shorthand notation to int. (Dennis Snell)', + ), + 10 => + array ( + 'message' => 'Enable arc4random_buf for Linux glibc 2.36 and onwards for the random_bytes.', + 'raw' => 'Enable arc4random_buf for Linux glibc 2.36 and onwards for the random_bytes. (Cristian Rodriguez)', + ), + 11 => + array ( + 'message' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. .', + 'raw' => 'Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).', + ), + 12 => + array ( + 'message' => 'Fixed bug #65489 (glob() basedir check is inconsistent).', + 'raw' => 'Fixed bug #65489 (glob() basedir check is inconsistent). (Jakub Zelenka)', + ), + 13 => + array ( + 'message' => 'Fixed GH-9200 (setcookie has an obsolete expires date format).', + 'raw' => 'Fixed GH-9200 (setcookie has an obsolete expires date format). (Derick)', + ), + 14 => + array ( + 'message' => 'Fixed GH-9244 (Segfault with array_multisort + array_shift).', + 'raw' => 'Fixed GH-9244 (Segfault with array_multisort + array_shift). (cmb)', + ), + 15 => + array ( + 'message' => 'Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys).', + 'raw' => 'Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys). (Denis Vaksman)', + ), + 16 => + array ( + 'message' => 'Marked crypt()\'s $string parameter as #[\\SensitiveParameter].', + 'raw' => 'Marked crypt()\'s $string parameter as #[\\SensitiveParameter]. (timwolla)', + ), + 17 => + array ( + 'message' => 'Fixed bug GH-9464 (build on older macOs releases).', + 'raw' => 'Fixed bug GH-9464 (build on older macOs releases). (David Bohman)', + ), + 18 => + array ( + 'message' => 'Fixed bug GH-9518 (Disabling IPv6 support disables unrelated constants).', + 'raw' => 'Fixed bug GH-9518 (Disabling IPv6 support disables unrelated constants). (cmb)', + ), + 19 => + array ( + 'message' => 'Revert "Fixed parse_url(): can not recognize port without scheme."', + 'raw' => 'Revert "Fixed parse_url(): can not recognize port without scheme." (andypost)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host.', + 'raw' => 'Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host. (Cristian Rodríguez)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory).', + 'raw' => 'Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory). (ilutov)', + ), + 2 => + array ( + 'message' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT.', + 'raw' => 'Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line).', + 'raw' => 'Fixed bug GH-9316 ($http_response_header is wrong for long status line). (cmb, timwolla)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set).', + 'raw' => 'Fixed bug GH-9590 (stream_select does not abort upon exception or empty valid fd set). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-9653 (file copy between different filesystems).', + 'raw' => 'Fixed bug GH-9653 (file copy between different filesystems). (David Carlier)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-9779 (stream_copy_to_stream fails if dest in append mode).', + 'raw' => 'Fixed bug GH-9779 (stream_copy_to_stream fails if dest in append mode). (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Added preliminary support for (cross-)building for ARM64.', + 'raw' => 'Added preliminary support for (cross-)building for ARM64. (Yun Dou)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Added libxml_get_external_entity_loader() function.', + 'raw' => 'Added libxml_get_external_entity_loader() function. (Tim Starling)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'add ZipArchive::clearError() method', + 'raw' => 'add ZipArchive::clearError() method', + ), + 1 => + array ( + 'message' => 'add ZipArchive::getStreamName() method', + 'raw' => 'add ZipArchive::getStreamName() method', + ), + 2 => + array ( + 'message' => 'add ZipArchive::getStreamIndex() method', + 'raw' => 'add ZipArchive::getStreamIndex() method', + ), + 3 => + array ( + 'message' => 'On Windows, the Zip extension is now built as shared library (DLL) by default.', + 'raw' => 'On Windows, the Zip extension is now built as shared library (DLL) by default. (cmb)', + ), + 4 => + array ( + 'message' => 'Implement fseek for zip stream when possible with libzip 1.9.1.', + 'raw' => 'Implement fseek for zip stream when possible with libzip 1.9.1. (Remi)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.3/changelist.inc b/include/releases/8.3/changelist.inc new file mode 100644 index 0000000000..e6cb7b8d0d --- /dev/null +++ b/include/releases/8.3/changelist.inc @@ -0,0 +1,6703 @@ +<?php return array ( + '8.3.31' => + array ( + 'date' => NULL, + 'modules' => + array ( + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility issues with OpenSSL 4.0.', + 'raw' => 'Fix compatibility issues with OpenSSL 4.0. (jordikroon, Remi)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + ), + ), + ), + ), + '8.3.30' => + array ( + 'date' => '15 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).', + 'raw' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).', + 'raw' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator).', + 'raw' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).', + 'raw' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation). (ndossche)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20620 (bzcompress overflow on large source size).', + 'raw' => 'Fixed bug GH-20620 (bzcompress overflow on large source size). (David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).', + 'raw' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects). (ndossche)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow).', + 'raw' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix leak in umsg_format_helper().', + 'raw' => 'Fix leak in umsg_format_helper(). (ndossche)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in ldap_set_options().', + 'raw' => 'Fix memory leak in ldap_set_options(). (ndossche)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).', + 'raw' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator). (Yuya Hamada)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).', + 'raw' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix SplFileInfo::openFile() in write mode.', + 'raw' => 'Fix SplFileInfo::openFile() in write mode. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix build on legacy OpenSSL 1.1.0 systems.', + 'raw' => 'Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed crash on posix groups to php array creation on macos.', + 'raw' => 'Fixed crash on posix groups to php array creation on macos. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()).', + 'raw' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()). (David Carlier)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).', + 'raw' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned). (ndossche, plusminmax)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix error check for proc_open() command.', + 'raw' => 'Fix error check for proc_open() command. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).', + 'raw' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed). (ndossche)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix OOB gzseek() causing assertion failure.', + 'raw' => 'Fix OOB gzseek() causing assertion failure. (ndossche)', + ), + ), + ), + ), + '8.3.29' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Sync all boost.context files with release 1.86.0.', + 'raw' => 'Sync all boost.context files with release 1.86.0. (mvorisek)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter).', + 'raw' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()).', + 'raw' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()). (ndossche, David Carlier)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors.', + 'raw' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors. (ndossche)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix missing NUL byte check on C14NFile().', + 'raw' => 'Fix missing NUL byte check on C14NFile(). (ndossche)', + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).', + 'raw' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value). (David Carlier)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout).', + 'raw' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout). (David Carlier)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values).', + 'raw' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20602 (imagescale overflow with large height values).', + 'raw' => 'Fixed bug GH-20602 (imagescale overflow with large height values). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).', + 'raw' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants). (DanielEScherzer)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling.', + 'raw' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling. (ndossche)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma).', + 'raw' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings).', + 'raw' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings). (ndossche)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Make mysqli_begin_transaction() report errors properly.', + 'raw' => 'Make mysqli_begin_transaction() report errors properly. (Kamil Tekiela)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).', + 'raw' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets). (Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).', + 'raw' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer). (Arnaud)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).', + 'raw' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub). (ndossche, TimWolla)', + ), + 1 => + array ( + 'message' => 'Fix broken return value of fflush() for phar file entries.', + 'raw' => 'Fix broken return value of fflush() for phar file entries. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix assertion failure when fseeking a phar file out of bounds.', + 'raw' => 'Fix assertion failure when fseeking a phar file out of bounds. (ndossche)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().', + 'raw' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog(). (Girgias)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).', + 'raw' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in array_diff() with custom type checks.', + 'raw' => 'Fix memory leak in array_diff() with custom type checks. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).', + 'raw' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + ), + 4 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags).', + 'raw' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags). (ndossche)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).', + 'raw' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback). (ndossche)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix crash in property existence test.', + 'raw' => 'Fix crash in property existence test. (ndossche)', + ), + 1 => + array ( + 'message' => 'Don\'t truncate return value of zip_fread() with user sizes.', + 'raw' => 'Don\'t truncate return value of zip_fread() with user sizes. (ndossche)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + ), + ), + ), + ), + '8.3.28' => + array ( + 'date' => '20 Nov 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).', + 'raw' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference).', + 'raw' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown).', + 'raw' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).', + 'raw' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).', + 'raw' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fix possible memory leak when tag is empty.', + 'raw' => 'Fix possible memory leak when tag is empty. (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution).', + 'raw' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution). (Jakub Zelenka, txuna)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes).', + 'raw' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided).', + 'raw' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided). (Girgias)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on error in locale_filter_matches().', + 'raw' => 'Fix memory leak on error in locale_filter_matches(). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix not thread safe schema/relaxng calls.', + 'raw' => 'Fix not thread safe schema/relaxng calls. (SpencerMalone, nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)).', + 'raw' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL).', + 'raw' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()).', + 'raw' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).', + 'raw' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15). (Arnaud, Shivam Mathur)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when first string conversion fails.', + 'raw' => 'Fix memory leak when first string conversion fails. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name.', + 'raw' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name. (Girgias, nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of argument in webPhar.', + 'raw' => 'Fix memory leak of argument in webPhar. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when setAlias() fails.', + 'raw' => 'Fix memory leak when setAlias() fails. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling.', + 'raw' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix file descriptor/memory leak when opening central fp fails.', + 'raw' => 'Fix file descriptor/memory leak when opening central fp fails. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails.', + 'raw' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t.', + 'raw' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t. (Girgias)', + ), + 6 => + array ( + 'message' => 'Fix memory leak when openssl polyfill returns garbage.', + 'raw' => 'Fix memory leak when openssl polyfill returns garbage. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fix file descriptor leak in phar_zip_flush() on failure.', + 'raw' => 'Fix file descriptor leak in phar_zip_flush() on failure. (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive.', + 'raw' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive. (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects).', + 'raw' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects). (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs.', + 'raw' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs. (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix shm corruption with coercion in options of unserialize().', + 'raw' => 'Fix shm corruption with coercion in options of unserialize(). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.', + 'raw' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints).', + 'raw' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints). (alexandre-daubois)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19021 (improved tidyOptGetCategory detection).', + 'raw' => 'Fixed GH-19021 (improved tidyOptGetCategory detection). (arjendekorte, David Carlier, Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fix UAF in tidy when tidySetErrorBuffer() fails.', + 'raw' => 'Fix UAF in tidy when tidySetErrorBuffer() fails. (nielsdos)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available.', + 'raw' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available. (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).', + 'raw' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket). (dktapps)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when passing enc_method/enc_password is passed as option for ZipArchive::addGlob()/addPattern() and with consecutive calls.', + 'raw' => 'Fix memory leak when passing enc_method/enc_password is passed as option for ZipArchive::addGlob()/addPattern() and with consecutive calls. (David Carlier)', + ), + ), + ), + ), + '8.3.27' => + array ( + 'date' => '23 Oct 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).', + 'raw' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks). (timwolla)', + ), + 1 => + array ( + 'message' => 'Fixed hard_timeout with --enable-zend-max-execution-timers.', + 'raw' => 'Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered).', + 'raw' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash).', + 'raw' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash). (nielsdos, Arnaud, Bob)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).', + 'raw' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).', + 'raw' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN).', + 'raw' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.', + 'raw' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS. (leotaku)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.', + 'raw' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle. (timwolla)', + ), + 1 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.', + 'raw' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals. (nielsdos)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19885 (dba_fetch() overflow on skip argument).', + 'raw' => 'Fixed GH-19885 (dba_fetch() overflow on skip argument). (David Carlier)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19955 (imagefttext() memory leak).', + 'raw' => 'Fixed GH-19955 (imagefttext() memory leak). (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter).', + 'raw' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter). (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak and invalid continuation after tar header writing fails.', + 'raw' => 'Fix memory leak and invalid continuation after tar header writing fails. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leaks when creating temp file fails when applying zip signature.', + 'raw' => 'Fix memory leaks when creating temp file fails when applying zip signature. (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)).', + 'raw' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19784 (SoapServer memory leak).', + 'raw' => 'Fixed bug GH-19784 (SoapServer memory leak). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash).', + 'raw' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion).', + 'raw' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data).', + 'raw' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).', + 'raw' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort).', + 'raw' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).', + 'raw' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set). (alexandre-daubois)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null).', + 'raw' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null). (nielsdos, divinity76)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main).', + 'raw' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed).', + 'raw' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream.', + 'raw' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream. (bukka/David Carlier)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure).', + 'raw' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()).', + 'raw' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()).', + 'raw' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()). (David Carlier)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19922 (Double free on gzopen).', + 'raw' => 'Fixed bug GH-19922 (Double free on gzopen). (David Carlier)', + ), + ), + ), + ), + '8.3.26' => + array ( + 'date' => '25 Sep 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).', + 'raw' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning). (ilutov)', + ), + 1 => + array ( + 'message' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow).', + 'raw' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).', + 'raw' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references). (Arnaud, timwolla)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19613 (Stale array iterator pointer).', + 'raw' => 'Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).', + 'raw' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).', + 'raw' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant).', + 'raw' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant). (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).', + 'raw' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address). (alexandre-daubois)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.', + 'raw' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset. (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug).', + 'raw' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed failed debug assertion when php_admin_value setting fails.', + 'raw' => 'Fixed failed debug assertion when php_admin_value setting fails. (ilutov)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19579 (imagefilledellipse underflow on width argument).', + 'raw' => 'Fixed bug GH-19579 (imagefilledellipse underflow on width argument). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).', + 'raw' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter). (alexandre-daubois)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure).', + 'raw' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure). (Jakub Zelenka)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections).', + 'raw' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections). (Mark Karpeles)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks when verifying OpenSSL signature.', + 'raw' => 'Fixed memory leaks when verifying OpenSSL signature. (Girgias)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in phar tar temporary file error handling code.', + 'raw' => 'Fix memory leak in phar tar temporary file error handling code. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix metadata leak when phar convert logic fails.', + 'raw' => 'Fix metadata leak when phar convert logic fails. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix memory leak on failure in phar_convert_to_other().', + 'raw' => 'Fix memory leak on failure in phar_convert_to_other(). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF).', + 'raw' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16649 (UAF during array_splice).', + 'raw' => 'Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).', + 'raw' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator). (alexandre-daubois)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().', + 'raw' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #385993744.', + 'raw' => 'Fix OSS-Fuzz #385993744. (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19021 build issue with libtidy in regard of tidyOptIsReadonly deprecation and TidyInternalCategory being available later than tidyOptGetCategory.', + 'raw' => 'Fixed GH-19021 build issue with libtidy in regard of tidyOptIsReadonly deprecation and TidyInternalCategory being available later than tidyOptGetCategory. (arjendekorte)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in zip when encountering empty glob result.', + 'raw' => 'Fix memory leak in zip when encountering empty glob result. (nielsdos)', + ), + ), + ), + ), + '8.3.25' => + array ( + 'date' => '28 Aug 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro.', + 'raw' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro. (psumbera)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking).', + 'raw' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr).', + 'raw' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19305 (Operands may be being released during comparison).', + 'raw' => 'Fixed bug GH-19305 (Operands may be being released during comparison). (Arnaud)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure).', + 'raw' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).', + 'raw' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).', + 'raw' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes). (Arnaud)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally).', + 'raw' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally). (ilutov)', + ), + 8 => + array ( + 'message' => 'Fixed zend call stack size for macOs/arm64.', + 'raw' => 'Fixed zend call stack size for macOs/arm64. (David Carlier)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming).', + 'raw' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming). (nielsdos, Arnaud)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19371 (integer overflow in calendar.c).', + 'raw' => 'Fixed bug GH-19371 (integer overflow in calendar.c). (nielsdos)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect comparison with result of php_stream_can_cast().', + 'raw' => 'Fix incorrect comparison with result of php_stream_can_cast(). (Girgias)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash on clone failure.', + 'raw' => 'Fix crash on clone failure. (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19261: msgfmt_parse_message leaks on message creation failure.', + 'raw' => 'Fixed GH-19261: msgfmt_parse_message leaks on message creation failure. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fix return value on failure for resourcebundle count handler.', + 'raw' => 'Fix return value on failure for resourcebundle count handler. (Girgias)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (additional inheriting of TLS int options).', + 'raw' => 'Fixed bug GH-18529 (additional inheriting of TLS int options). (Jakub Zelenka)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free).', + 'raw' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown).', + 'raw' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check).', + 'raw' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check). (nielsdos, botovq)', + ), + 1 => + array ( + 'message' => 'Fix error return check of EVP_CIPHER_CTX_ctrl().', + 'raw' => 'Fix error return check of EVP_CIPHER_CTX_ctrl(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param).', + 'raw' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param). (Jakub Zelenka)', + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper.', + 'raw' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper. (dixyes)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19250 and bug #51360 (Invalid conftest for rl_pending_input).', + 'raw' => 'Fixed bug GH-19250 and bug #51360 (Invalid conftest for rl_pending_input). (petk, nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref).', + 'raw' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fix some potential crashes on incorrect argument value.', + 'raw' => 'Fix some potential crashes on incorrect argument value. (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache).', + 'raw' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks).', + 'raw' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks). (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Free opened_path when opened_path_len >= MAXPATHLEN.', + 'raw' => 'Free opened_path when opened_path_len >= MAXPATHLEN. (dixyes)', + ), + ), + ), + ), + '8.3.24' => + array ( + 'date' => '31 Jul 2025', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jewishtojd overflow on year argument.', + 'raw' => 'Fixed jewishtojd overflow on year argument. (David Carlier)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order).', + 'raw' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order). (Daniil Gentili)', + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #427814456.', + 'raw' => 'Fix OSS-Fuzz #427814456. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #428983568 and #428760800.', + 'raw' => 'Fix OSS-Fuzz #428983568 and #428760800. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17204 -Wuseless-escape warnings emitted by re2c.', + 'raw' => 'Fixed bug GH-17204 -Wuseless-escape warnings emitted by re2c. (Peter Kokot)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when returning refcounted value from curl callback.', + 'raw' => 'Fix memory leaks when returning refcounted value from curl callback. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Remove incorrect string release.', + 'raw' => 'Remove incorrect string release. (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memleak on failure in collator_get_sort_key().', + 'raw' => 'Fix memleak on failure in collator_get_sort_key(). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID.', + 'raw' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID. (David Carlier)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18901 (integer overflow mb_split).', + 'raw' => 'Fixed bug GH-18901 (integer overflow mb_split). (nielsdos)', + ), + ), + 'oci8' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18873 (OCI_RETURN_LOBS flag causes oci8 to leak memory).', + 'raw' => 'Fixed bug GH-18873 (OCI_RETURN_LOBS flag causes oci8 to leak memory). (Saki Takamachi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT).', + 'raw' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c).', + 'raw' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server).', + 'raw' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server). (Jakub Zelenka)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers).', + 'raw' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers). (Arnaud)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix stream double free in phar.', + 'raw' => 'Fix stream double free in phar. (nielsdos, dixyes)', + ), + 1 => + array ( + 'message' => 'Fix phar crash and file corruption with SplFileObject.', + 'raw' => 'Fix phar crash and file corruption with SplFileObject. (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction).', + 'raw' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when URL parsing fails in redirect.', + 'raw' => 'Fix memory leak when URL parsing fails in redirect. (Girgias)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash).', + 'raw' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix misleading errors in printf().', + 'raw' => 'Fix misleading errors in printf(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix RCN violations in array functions.', + 'raw' => 'Fix RCN violations in array functions. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value.', + 'raw' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value. (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error).', + 'raw' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error). (Jakub Zelenka)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix leak when path is too long in ZipArchive::extractTo().', + 'raw' => 'Fix leak when path is too long in ZipArchive::extractTo(). (nielsdos)', + ), + ), + ), + ), + '8.3.23' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved).', + 'raw' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved). (Oleg Efimov)', + ), + 1 => + array ( + 'message' => 'Do not delete main chunk in zend_gc.', + 'raw' => 'Do not delete main chunk in zend_gc. (danog, Arnaud)', + ), + 2 => + array ( + 'message' => 'Fix compile issues with zend_alloc and some non-default options.', + 'raw' => 'Fix compile issues with zend_alloc and some non-default options. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting a list via curl_setopt fails.', + 'raw' => 'Fix memory leak when setting a list via curl_setopt fails. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix incorrect OpenSSL version detection.', + 'raw' => 'Fix incorrect OpenSSL version detection. (Peter Kokot)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix leaks with multiple calls to DatePeriod iterator current().', + 'raw' => 'Fix leaks with multiple calls to DatePeriod iterator current(). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18662 (fpm_get_status segfault).', + 'raw' => 'Fixed GH-18662 (fpm_get_status segfault). (txuna)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14551 (PGO build fails with xxhash).', + 'raw' => 'Fixed bug GH-14551 (PGO build fails with xxhash). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in intl_datetime_decompose() on failure.', + 'raw' => 'Fix memory leak in intl_datetime_decompose() on failure. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in locale lookup on failure.', + 'raw' => 'Fix memory leak in locale lookup on failure. (nielsdos)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on php_odbc_fetch_hash() failure.', + 'raw' => 'Fix memory leak on php_odbc_fetch_hash() failure. (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22).', + 'raw' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22). (nielsdos, Arnaud)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure.', + 'raw' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74796 (Requests through http proxy set peer name).', + 'raw' => 'Fixed bug #74796 (Requests through http proxy set peer name). (Jakub Zelenka)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing filter cleanups on phar failure.', + 'raw' => 'Add missing filter cleanups on phar failure. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek).', + 'raw' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0.', + 'raw' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0. (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak if WideCharToMultiByte() fails.', + 'raw' => 'Fix memory leak if WideCharToMultiByte() fails. (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query().', + 'raw' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query(). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735)', + 'raw' => 'Fixed GHSA-hrwm-9436-5mv3 (pgsql extension does not check for errors during escaping). (CVE-2025-1735) (Jakub Zelenka)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix reference type confusion and leak in user random engine.', + 'raw' => 'Fix reference type confusion and leak in user random engine. (nielsdos, timwolla)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when calloc() fails in php_readline_completion_cb().', + 'raw' => 'Fix memory leak when calloc() fails in php_readline_completion_cb(). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in php_http.c when call_user_function() fails.', + 'raw' => 'Fix memory leaks in php_http.c when call_user_function() fails. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP ExtensionAdd commentMore actions via Large XML Namespace Prefix). (CVE-2025-6491)', + 'raw' => 'Fixed GHSA-453j-q27h-5p8x (NULL Pointer Dereference in PHP SOAP ExtensionAdd commentMore actions via Large XML Namespace Prefix). (CVE-2025-6491) (Lekssays, nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220)', + 'raw' => 'Fixed GHSA-3cr5-j632-f35r (Null byte termination in hostnames). (CVE-2025-1220) (Jakub Zelenka)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy output handler on error.', + 'raw' => 'Fix memory leak in tidy output handler on error. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory.', + 'raw' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory. (David Carlier)', + ), + ), + ), + ), + '8.3.22' => + array ( + 'date' => '05 Jun 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments).', + 'raw' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments). (nielsdos/David Carlier)', + ), + 1 => + array ( + 'message' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow).', + 'raw' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed OSS-Fuzz #417078295.', + 'raw' => 'Fixed OSS-Fuzz #417078295. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #418106144.', + 'raw' => 'Fixed OSS-Fuzz #418106144. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL).', + 'raw' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL). (David Carlier)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) .', + 'raw' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) (JiriJozif).', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset).', + 'raw' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset). (nielsdos/David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix various reference issues.', + 'raw' => 'Fix various reference issues. (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()).', + 'raw' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()). (Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size).', + 'raw' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure).', + 'raw' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix leak of accel_globals->key.', + 'raw' => 'Fix leak of accel_globals->key. (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix missing checks against php_set_blocking() in xp_ssl.c.', + 'raw' => 'Fix missing checks against php_set_blocking() in xp_ssl.c. (nielsdos)', + ), + ), + 'pdo_oci' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18494 (PDO OCI segfault in statement GC).', + 'raw' => 'Fixed bug GH-18494 (PDO OCI segfault in statement GC). (nielsdos)', + ), + ), + 'sockets' => + array ( + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator).', + 'raw' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails).', + 'raw' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions).', + 'raw' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions). (timwolla)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix leak+crash with sapi_windows_set_ctrl_handler().', + 'raw' => 'Fix leak+crash with sapi_windows_set_ctrl_handler(). (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work).', + 'raw' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern).', + 'raw' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern). (nielsdos)', + ), + ), + ), + ), + '8.3.21' => + array ( + 'date' => '08 May 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault).', + 'raw' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix some leaks in php_scandir.', + 'raw' => 'Fix some leaks in php_scandir. (nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18309 (ipv6 filter integer overflow).', + 'raw' => 'Fixed bug GH-18309 (ipv6 filter integer overflow). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop().', + 'raw' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop(). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value.', + 'raw' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference support for intltz_get_offset().', + 'raw' => 'Fix reference support for intltz_get_offset(). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden).', + 'raw' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden). (Remi)', + ), + 1 => + array ( + 'message' => 'Fix NULL deref on high modification key.', + 'raw' => 'Fix NULL deref on high modification key. (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message.', + 'raw' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message. (Girgias)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in openssl_sign() when passing invalid algorithm.', + 'raw' => 'Fix memory leak in openssl_sign() when passing invalid algorithm. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix potential leaks when writing to BIO fails.', + 'raw' => 'Fix potential leaks when writing to BIO fails. (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18276 - persistent connection - "zend_mm_heap corrupted" with setAttribute() .', + 'raw' => 'Fixed GH-18276 - persistent connection - "zend_mm_heap corrupted" with setAttribute() (SakiTakamachi).', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory).', + 'raw' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()).', + 'raw' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS).', + 'raw' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18212 (fseek with SEEK_CUR whence value and negative offset leads to negative stream position).', + 'raw' => 'Fixed bug GH-18212 (fseek with SEEK_CUR whence value and negative offset leads to negative stream position). (David Carlier)', + ), + 3 => + array ( + 'message' => 'Fix resource leak in iptcembed() on error.', + 'raw' => 'Fix resource leak in iptcembed() on error. (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix uouv when handling empty options in ZipArchive::addGlob().', + 'raw' => 'Fix uouv when handling empty options in ZipArchive::addGlob(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob().', + 'raw' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob(). (nielsdos)', + ), + ), + ), + ), + '8.3.20' => + array ( + 'date' => '10 Apr 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction).', + 'raw' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown).', + 'raw' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\').', + 'raw' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\'). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix weird unpack behaviour in DOM.', + 'raw' => 'Fix weird unpack behaviour in DOM. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix xinclude destruction of live attributes.', + 'raw' => 'Fix xinclude destruction of live attributes. (nielsdos)', + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8533 (Unable to link dynamic libphp on Mac).', + 'raw' => 'Fixed bug GH-8533 (Unable to link dynamic libphp on Mac). (Kévin Dunglas)', + ), + ), + 'fuzzer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI).', + 'raw' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI). (Lung-Alexandra)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17984 (calls with arguments as array with references).', + 'raw' => 'Fixed bug GH-17984 (calls with arguments as array with references). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix locale_compose and locale_lookup to work with their array argument with values as references.', + 'raw' => 'Fix locale_compose and locale_lookup to work with their array argument with values as references. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fix dateformat_format when the time is an array of references.', + 'raw' => 'Fix dateformat_format when the time is an array of references. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fix UConverter::transcode with substitutes as references.', + 'raw' => 'Fix UConverter::transcode with substitutes as references. (David Carlier)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes).', + 'raw' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18112 (NULL access with preloading and INI option).', + 'raw' => 'Fixed bug GH-18112 (NULL access with preloading and INI option). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table).', + 'raw' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when destroying PDORow.', + 'raw' => 'Fix memory leak when destroying PDORow. (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) .', + 'raw' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) . (Remi)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject).', + 'raw' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject). (nielsdos)', + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()).', + 'raw' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()). (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings).', + 'raw' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings). (DanielEScherzer)', + ), + ), + ), + ), + '8.3.19' => + array ( + 'date' => '13 Mar 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17398 (bcmul memory leak).', + 'raw' => 'Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation).', + 'raw' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account).', + 'raw' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account). (timwolla)', + ), + 2 => + array ( + 'message' => 'Fix fallback paths in fast_long_{add,sub}_function.', + 'raw' => 'Fix fallback paths in fast_long_{add,sub}_function. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed).', + 'raw' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed). (timwolla)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17797 (zend_test_compile_string crash on invalid script path).', + 'raw' => 'Fixed bug GH-17797 (zend_test_compile_string crash on invalid script path). (David Carlier)', + ), + 5 => + array ( + 'message' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235)', + 'raw' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235) (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17847 (xinclude destroys live node).', + 'raw' => 'Fixed bug GH-17847 (xinclude destroys live node). (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix FFI Parsing of Pointer Declaration Lists.', + 'raw' => 'Fix FFI Parsing of Pointer Declaration Lists. (davnotdev)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).', + 'raw' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).', + 'raw' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M). (David Carlier)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys).', + 'raw' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys). (nielsdos, 7u83)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).', + 'raw' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash).', + 'raw' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17577 (JIT packed type guard crash).', + 'raw' => 'Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17899 (zend_test_compile_string with invalid path when opcache is enabled).', + 'raw' => 'Fixed bug GH-17899 (zend_test_compile_string with invalid path when opcache is enabled). (David Carlier)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT).', + 'raw' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT). (nielsdos)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).', + 'raw' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults). (cmb)', + ), + 1 => + array ( + 'message' => 'Fix cycle leak in sqlite3 setAuthorizer().', + 'raw' => 'Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17808: PharFileInfo refcount bug.', + 'raw' => 'Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer).', + 'raw' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in phpdbg calling registered function.', + 'raw' => 'Fix memory leak in phpdbg calling registered function. (nielsdos)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c). (DanielEScherzer)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17921 (socket_read/socket_recv overflow on buffer size).', + 'raw' => 'Fixed bug GH-17921 (socket_read/socket_recv overflow on buffer size). (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths).', + 'raw' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths). (Jakub Zelenka)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c).', + 'raw' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak on overflow in _php_stream_scandir().', + 'raw' => 'Fix memory leak on overflow in _php_stream_scandir(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + ), + 1 => + array ( + 'message' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).', + 'raw' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib). (cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).', + 'raw' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when encoding check fails.', + 'raw' => 'Fix memory leak when encoding check fails. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix zlib support for large files.', + 'raw' => 'Fix zlib support for large files. (nielsdos)', + ), + ), + ), + ), + '8.3.17' => + array ( + 'date' => '13 Feb 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b).', + 'raw' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0).', + 'raw' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final).', + 'raw' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed NULL arithmetic during system program execution on Windows.', + 'raw' => 'Fixed NULL arithmetic during system program execution on Windows. (cmb, nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed potential OOB when checking for trailing spaces on Windows.', + 'raw' => 'Fixed potential OOB when checking for trailing spaces on Windows. (cmb)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c). (nielsdos, ilutov)', + ), + 6 => + array ( + 'message' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK.', + 'raw' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fix NULL arithmetic in System V shared memory emulation for Windows.', + 'raw' => 'Fix NULL arithmetic in System V shared memory emulation for Windows. (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype).', + 'raw' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype). (nielsdos)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in enchant when passing null bytes.', + 'raw' => 'Fix crashes in enchant when passing null bytes. (nielsdos)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR).', + 'raw' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency).', + 'raw' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images).', + 'raw' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images). (cmb)', + ), + 2 => + array ( + 'message' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate).', + 'raw' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate). (cmb)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11874 (intl causing segfault in docker images).', + 'raw' => 'Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17469 (UConverter::transcode always emit E_WARNING on invalid encoding).', + 'raw' => 'Fixed bug GH-17469 (UConverter::transcode always emit E_WARNING on invalid encoding). (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17307 (Internal closure causes JIT failure).', + 'raw' => 'Fixed bug GH-17307 (Internal closure causes JIT failure). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding).', + 'raw' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding). (ilutov)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed a memory leak when the GC is used to free a PDOStatment.', + 'raw' => 'Fixed a memory leak when the GC is used to free a PDOStatment. (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed a crash in the PDO Firebird Statement destructor.', + 'raw' => 'Fixed a crash in the PDO Firebird Statement destructor. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed UAFs when changing default fetch class ctor args.', + 'raw' => 'Fixed UAFs when changing default fetch class ctor args. (Girgias, nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17518 (offset overflow phar extractTo()).', + 'raw' => 'Fixed bug GH-17518 (offset overflow phar extractTo()). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in function registration + test.', + 'raw' => 'Fix crashes in function registration + test. (nielsdos, Girgias)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fix type confusion with session SID constant.', + 'raw' => 'Fix type confusion with session SID constant. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset).', + 'raw' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset). (Girgias)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730).', + 'raw' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730). (nielsdos)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session).', + 'raw' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17463 (crash on SplTempFileObject::ftruncate with negative value).', + 'raw' => 'Fixed bug GH-17463 (crash on SplTempFileObject::ftruncate with negative value). (David Carlier)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry).', + 'raw' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry). (nielsdos)', + ), + ), + ), + ), + '8.3.16' => + array ( + 'date' => '16 Jan 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization).', + 'raw' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF).', + 'raw' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly).', + 'raw' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()).', + 'raw' => 'Fixed bug GH-17211 (observer segfault on function loaded with dl()). (Arnaud)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17216 (Trampoline crash on error).', + 'raw' => 'Fixed bug GH-17216 (Trampoline crash on error). (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14709 DatePeriod::__construct() overflow on recurrences.', + 'raw' => 'Fixed bug GH-14709 DatePeriod::__construct() overflow on recurrences. (David Carlier)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Skip test if inifile is disabled.', + 'raw' => 'Skip test if inifile is disabled. (orlitzky)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17224 (UAF in importNode).', + 'raw' => 'Fixed bug GH-17224 (UAF in importNode). (nielsdos)', + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Make build command for program using embed portable.', + 'raw' => 'Make build command for program using embed portable. (dunglas)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79075 (FFI header parser chokes on comments).', + 'raw' => 'Fixed bug #79075 (FFI header parser chokes on comments). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure.', + 'raw' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues).', + 'raw' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues). (Dmitry, nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16944 (Fix filtering special IPv4 and IPv6 ranges, by using information from RFC 6890).', + 'raw' => 'Fixed bug GH-16944 (Fix filtering special IPv4 and IPv6 ranges, by using information from RFC 6890). (Derick)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)).', + 'raw' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (cmb, nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits).', + 'raw' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c).', + 'raw' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c). (nielsdos, cmb)', + ), + 1 => + array ( + 'message' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs).', + 'raw' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs). (cmb)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()).', + 'raw' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()). (Michael Orlitzky)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17047 (UAF on iconv filter failure).', + 'raw' => 'Fixed bug GH-17047 (UAF on iconv filter failure). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes).', + 'raw' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling).', + 'raw' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (nielsdos, cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'opcache_get_configuration() properly reports jit_prof_threshold.', + 'raw' => 'opcache_get_configuration() properly reports jit_prof_threshold. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17246 (GC during SCCP causes segfault).', + 'raw' => 'Fixed bug GH-17246 (GC during SCCP causes segfault). (Dmitry)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry.', + 'raw' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry. (Girgias)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument).', + 'raw' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed further ArgumentCountError for calls with flexible number of arguments.', + 'raw' => 'Fixed further ArgumentCountError for calls with flexible number of arguments. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c).', + 'raw' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects).', + 'raw' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document).', + 'raw' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN).', + 'raw' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN). (David Carlier / cmb)', + ), + 1 => + array ( + 'message' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option().', + 'raw' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option(). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c).', + 'raw' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling).', + 'raw' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value).', + 'raw' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds).', + 'raw' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds). (cmb)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Hardened proc_open() against cmd.exe hijacking.', + 'raw' => 'Hardened proc_open() against cmd.exe hijacking. (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-1718 (unreachable program point in zend_hash).', + 'raw' => 'Fixed bug GH-1718 (unreachable program point in zend_hash). (nielsdos)', + ), + ), + ), + ), + '8.3.15' => + array ( + 'date' => '19 Dec 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jdtogregorian overflow.', + 'raw' => 'Fixed jdtogregorian overflow. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed cal_to_jd julian_days argument overflow.', + 'raw' => 'Fixed cal_to_jd julian_days argument overflow. (David Carlier)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).', + 'raw' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fail early in *nix configuration build script.', + 'raw' => 'Fail early in *nix configuration build script. (hakre)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)).', + 'raw' => 'Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm (frankenphp)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469).', + 'raw' => 'Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs).', + 'raw' => 'Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix is_zend_ptr() huge block comparison.', + 'raw' => 'Fix is_zend_ptr() huge block comparison. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed potential OOB read in zend_dirname() on Windows.', + 'raw' => 'Fixed potential OOB read in zend_dirname() on Windows. (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16802 (open_basedir bypass using curl extension).', + 'raw' => 'Fixed bug GH-16802 (open_basedir bypass using curl extension). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix various memory leaks in curl mime handling.', + 'raw' => 'Fix various memory leaks in curl mime handling. (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16777 (Calling the constructor again on a DOM object after it is in a document causes UAF).', + 'raw' => 'Fixed bug GH-16777 (Calling the constructor again on a DOM object after it is in a document causes UAF). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator).', + 'raw' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status).', + 'raw' => 'Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16776 (imagecreatefromstring overflow).', + 'raw' => 'Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)).', + 'raw' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)). (cmb)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16711: Segfault in mhash().', + 'raw' => 'Fixed GH-16711: Segfault in mhash(). (Girgias)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF).', + 'raw' => 'Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF). (nielsdos, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).', + 'raw' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). (dktapps)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).', + 'raw' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Prevent unexpected array entry conversion when reading key.', + 'raw' => 'Prevent unexpected array entry conversion when reading key. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix various memory leaks related to openssl exports.', + 'raw' => 'Fix various memory leaks related to openssl exports. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix memory leak in php_openssl_pkey_from_zval().', + 'raw' => 'Fix memory leak in php_openssl_pkey_from_zval(). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak of `setFetchMode()`.', + 'raw' => 'Fixed memory leak of `setFetchMode()`. (SakiTakamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks).', + 'raw' => 'Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks). (nielsdos, Hans Krentel)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).', + 'raw' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). (nielsdos)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867).', + 'raw' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input).', + 'raw' => 'Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator ->current() with a xml element input). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fix make check being invoked in ext/soap.', + 'raw' => 'Fix make check being invoked in ext/soap. (Ma27)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties).', + 'raw' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array).', + 'raw' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed network connect poll interuption handling.', + 'raw' => 'Fixed network connect poll interuption handling. (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16849 (Error dialog causes process to hang).', + 'raw' => 'Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)', + ), + ), + ), + ), + '8.3.14' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang).', + 'raw' => 'Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server started through shebang). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface).', + 'raw' => 'Fixed bug GHSA-4w77-75f9-2c8w (Heap-Use-After-Free in sapi_read_post_data Processing in CLI SAPI Interface). (nielsdos)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed out of bound writes to SafeArray data.', + 'raw' => 'Fixed out of bound writes to SafeArray data. (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15).', + 'raw' => 'Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646).', + 'raw' => 'Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline).', + 'raw' => 'Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error).', + 'raw' => 'Fixed bug GH-16509 (Incorrect line number in function redeclaration error). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes).', + 'raw' => 'Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed early bound classes). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16648 (Use-after-free during array sorting).', + 'raw' => 'Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-15915 (overflow with a high value for precision INI).', + 'raw' => 'Fixed bug GH-15915 (overflow with a high value for precision INI). (David Carlier / cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails).', + 'raw' => 'Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if curl_multi_add_handle fails). (timwolla)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset).', + 'raw' => 'Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values).', + 'raw' => 'Fixed bug GH-14732 (date_sun_info() fails for non-finite values). (cmb)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams).', + 'raw' => 'Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams). (cmb)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly).', + 'raw' => 'Fixed bug GH-16316 (DOMXPath breaks when not initialized properly). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add missing hierarchy checks to replaceChild.', + 'raw' => 'Add missing hierarchy checks to replaceChild. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16336 (Attribute intern document mismanagement).', + 'raw' => 'Fixed bug GH-16336 (Attribute intern document mismanagement). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16338 (Null-dereference in ext/dom/node.c).', + 'raw' => 'Fixed bug GH-16338 (Null-dereference in ext/dom/node.c). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong).', + 'raw' => 'Fixed bug GH-16473 (dom_import_simplexml stub is wrong). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element).', + 'raw' => 'Fixed bug GH-16533 (Segfault when adding attribute to parent that is not an element). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16535 (UAF when using document as a child).', + 'raw' => 'Fixed bug GH-16535 (UAF when using document as a child). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild).', + 'raw' => 'Fixed bug GH-16593 (Assertion failure in DOM->replaceChild). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode).', + 'raw' => 'Fixed bug GH-16595 (Another UAF in DOM -> cloneNode). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file).', + 'raw' => 'Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a real file). (nielsdos, cmb)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object).', + 'raw' => 'Fixed bug GH-16397 (Segmentation fault when comparing FFI object). (nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen).', + 'raw' => 'Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen). (cmb)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement).', + 'raw' => 'Fixed bug GH-16628 (FPM logs are getting corrupted with this log statement). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements).', + 'raw' => 'Fixed bug GH-16334 (imageaffine overflow on matrix elements). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16427 (Unchecked libavif return values).', + 'raw' => 'Fixed bug GH-16427 (Unchecked libavif return values). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007).', + 'raw' => 'Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007). (nielsdos)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed floating point exception bug with gmp_pow when using large exposant values. .', + 'raw' => 'Fixed floating point exception bug with gmp_pow when using large exposant values. (David Carlier).', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16411 (gmp_export() can cause overflow).', + 'raw' => 'Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow).', + 'raw' => 'Fixed bug GH-16501 (gmp_random_bits() can cause overflow). (David Carlier)', + ), + 3 => + array ( + 'message' => 'Fixed gmp_pow() overflow bug with large base/exponents.', + 'raw' => 'Fixed gmp_pow() overflow bug with large base/exponents. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Fixed segfaults and other issues related to operator overloading with GMP objects.', + 'raw' => 'Fixed segfaults and other issues related to operator overloading with GMP objects. (Girgias)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932)', + 'raw' => 'Fixed bug GHSA-g665-fm4p-vhff (OOB access in ldap_escape). (CVE-2024-8932) (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments).', + 'raw' => 'Fixed bug GH-16361 (mb_substr overflow on start/length arguments). (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929)', + 'raw' => 'Fixed bug GHSA-h35g-vwh6-m678 (Leak partial content of the heap through heap buffer over-read). (CVE-2024-8929) (Jakub Zelenka)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16408 (Array to string conversion warning emitted in optimizer).', + 'raw' => 'Fixed bug GH-16408 (Array to string conversion warning emitted in optimizer). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays).', + 'raw' => 'Fixed bug GH-16357 (openssl may modify member types of certificate arrays). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow).', + 'raw' => 'Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow). (cmb)', + ), + 2 => + array ( + 'message' => 'Fix various memory leaks on error conditions in openssl_x509_parse().', + 'raw' => 'Fix various memory leaks on error conditions in openssl_x509_parse(). (nielsdos)', + ), + ), + 'pdo dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the dblib quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236)', + 'raw' => 'Fixed bug GHSA-5hqh-c84r-qjcv (Integer overflow in the firebird quoter causing OOB writes). (CVE-2024-11236) (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values).', + 'raw' => 'Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values). (cmb)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808).', + 'raw' => 'Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev).', + 'raw' => 'Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors).', + 'raw' => 'Fixed bug GH-16601 (Memory leak in Reflection constructors). (nielsdos)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params).', + 'raw' => 'Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value).', + 'raw' => 'Fixed bug GH-16290 (overflow on cookie_lifetime ini value). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16318 (Recursive array segfaults soap encoding).', + 'raw' => 'Fixed bug GH-16318 (Recursive array segfaults soap encoding). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient).', + 'raw' => 'Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with overflow socket_recvfrom $length argument.', + 'raw' => 'Fixed bug with overflow socket_recvfrom $length argument. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16337 (Use-after-free in SplHeap).', + 'raw' => 'Fixed bug GH-16337 (Use-after-free in SplHeap). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()).', + 'raw' => 'Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()).', + 'raw' => 'Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()).', + 'raw' => 'Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16588 (UAF in Observer->serialize).', + 'raw' => 'Fixed bug GH-16588 (UAF in Observer->serialize). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor).', + 'raw' => 'Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed SplFileObject::__constructor). (Girgias)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()).', + 'raw' => 'Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance).', + 'raw' => 'Fixed bug GH-14687 (segfault on SplObjectIterator instance). (David Carlier)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors).', + 'raw' => 'Fixed bug GH-16604 (Memory leaks in SPL constructors). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()).', + 'raw' => 'Fixed bug GH-16646 (UAF in ArrayObject::unset() and ArrayObject::exchangeArray()). (ilutov)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled).', + 'raw' => 'Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with bail enabled). (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234)', + 'raw' => 'Fixed bug GHSA-c5f2-jwm7-mmq2 (Configuring a proxy in a stream context might allow for CRLF injection in URIs). (CVE-2024-11234) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233)', + 'raw' => 'Fixed bug GHSA-r977-prxv-hc43 (Single byte overread with convert.quoted-printable-decode filter). (CVE-2024-11233) (nielsdos)', + ), + ), + 'sysvmsg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized).', + 'raw' => 'Fixed bug GH-16592 (msg_send() crashes when a type does not properly serialized). (David Carlier / cmb)', + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16591 (Assertion error in shm_put_var).', + 'raw' => 'Fixed bug GH-16591 (Assertion error in shm_put_var). (nielsdos, cmb)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c).', + 'raw' => 'Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c). (nielsdos)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.)', + 'raw' => 'Fixed bug GH-16326 (Memory management is broken for bad dictionaries.) (cmb)', + ), + ), + ), + ), + '8.3.13' => + array ( + 'date' => '24 Oct 2024', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-16240: jdtounix overflow on argument value.', + 'raw' => 'Fixed GH-16240: jdtounix overflow on argument value. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument.', + 'raw' => 'Fixed GH-16241: easter_days/easter_date overflow on year argument. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed GH-16263: jddayofweek overflow.', + 'raw' => 'Fixed GH-16263: jddayofweek overflow. (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed GH-16234: jewishtojd overflow.', + 'raw' => 'Fixed GH-16234: jewishtojd overflow. (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client.', + 'raw' => 'Fixed bug GH-16137: duplicate http headers when set several times by the client. (David Carlier)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16054 (Segmentation fault when resizing hash table iterator list while adding).', + 'raw' => 'Fixed bug GH-16054 (Segmentation fault when resizing hash table iterator list while adding). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER).', + 'raw' => 'Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER). (cmb)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception).', + 'raw' => 'Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to exception). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame).', + 'raw' => 'Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of nested generator frame). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c).', + 'raw' => 'Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline).', + 'raw' => 'Fixed bug GH-16233 (Observer segfault when calling user function in internal function via trampoline). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16039 (Segmentation fault (access null pointer) in ext/dom/parentnode/tree.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16149 (Null pointer dereference in DOMElement->getAttributeNames()).', + 'raw' => 'Fixed bug GH-16149 (Null pointer dereference in DOMElement->getAttributeNames()). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c).', + 'raw' => 'Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16150 (Use after free in php_dom.c).', + 'raw' => 'Fixed bug GH-16150 (Use after free in php_dom.c). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-16152 (Memory leak in DOMProcessingInstruction/DOMDocument).', + 'raw' => 'Fixed bug GH-16152 (Memory leak in DOMProcessingInstruction/DOMDocument). (nielsdos)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15168 (stack overflow in json_encode()).', + 'raw' => 'Fixed bug GH-15168 (stack overflow in json_encode()). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16232 (bitshift overflow on wbmp file content reading / fix backport from upstream). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value)', + 'raw' => 'Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value) (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream).', + 'raw' => 'Fixed bug GH-16274 (imagescale underflow on RBG channels / fix backport from upstream). (David Carlier)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()).', + 'raw' => 'Fixed bug GH-16032 (Various NULL pointer dereferencements in ldap_modify_batch()). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list).', + 'raw' => 'Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search() when LDAPs array is not a list). (Girgias)', + ), + 2 => + array ( + 'message' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.).', + 'raw' => 'Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated by ZMM.). (Girgias)', + ), + 3 => + array ( + 'message' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary).', + 'raw' => 'Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a proper dictionary). (Girgias)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()).', + 'raw' => 'Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed stub for openssl_csr_new.', + 'raw' => 'Fixed stub for openssl_csr_new. (Jakub Zelenka)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16189 (underflow on offset argument).', + 'raw' => 'Fixed bug GH-16189 (underflow on offset argument). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c).', + 'raw' => 'Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs).', + 'raw' => 'Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error).', + 'raw' => 'Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error). (cmb)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c). (DanielEScherzer)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request).', + 'raw' => 'Fixed bug GH-15395 (php-fpm: zend_mm_heap corrupted with cgi-fcgi request). (Jakub Zelenka, David Carlier)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).', + 'raw' => 'Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument).', + 'raw' => 'Fixed bug GH-16267 (socket_strerror overflow on errno argument). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form).', + 'raw' => 'Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP headers in array form). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #62900 (Wrong namespace on xsd import error message).', + 'raw' => 'Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15711 (SoapClient can\'t convert BackedEnum to scalar value).', + 'raw' => 'Fixed bug GH-15711 (SoapClient can\'t convert BackedEnum to scalar value). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer).', + 'raw' => 'Fixed bug GH-16237 (Segmentation fault when cloning SoapServer). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix Soap leaking http_msg on error.', + 'raw' => 'Fix Soap leaking http_msg on error. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460).', + 'raw' => 'Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails).', + 'raw' => 'Fixed bug GH-16259 (Soap segfault when classmap instantiation fails). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c).', + 'raw' => 'Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c).', + 'raw' => 'Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15169 (stack overflow when var serialization in ext/standard/var).', + 'raw' => 'Fixed bug GH-15169 (stack overflow when var serialization in ext/standard/var). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).', + 'raw' => 'Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c).', + 'raw' => 'Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c). (cmb)', + ), + ), + 'tsrm' => + array ( + 0 => + array ( + 'message' => 'Prevent closing of unrelated handles.', + 'raw' => 'Prevent closing of unrelated handles. (cmb)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed minimal Windows version.', + 'raw' => 'Fixed minimal Windows version. (cmb)', + ), + ), + ), + ), + '8.3.12' => + array ( + 'date' => '26 Sep 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926)', + 'raw' => 'Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection Vulnerability). (CVE-2024-8926) (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927)', + 'raw' => 'Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is bypassable due to the environment variable collision). (CVE-2024-8927) (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).', + 'raw' => 'Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer). (zeriyoshi)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15515 (Configure error grep illegal option q).', + 'raw' => 'Fixed bug GH-15515 (Configure error grep illegal option q). (Peter Kokot)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error).', + 'raw' => 'Fixed bug GH-15514 (Configure error: genif.sh: syntax error). (Peter Kokot)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found).', + 'raw' => 'Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit).', + 'raw' => 'Fixed bug GH-15587 (CRC32 API build error on arm 32-bit). (Bernd Kuhls, Thomas Petazzoni)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15330 (Do not scan generator frames more than once).', + 'raw' => 'Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed uninitialized lineno in constant AST of internal enums.', + 'raw' => 'Fixed uninitialized lineno in constant AST of internal enums. (ilutov)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument).', + 'raw' => 'FIxed bug GH-15547 (curl_multi_select overflow on timeout argument). (David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h).', + 'raw' => 'Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c).', + 'raw' => 'Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument).', + 'raw' => 'Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument). (DanielEScherzer)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026)', + 'raw' => 'Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered). (CVE-2024-9026) (Jakub Zelenka)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15432 (Heap corruption when querying a vector).', + 'raw' => 'Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb, Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c).', + 'raw' => 'Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h).', + 'raw' => 'Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h). (nielsdos)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925)', + 'raw' => 'Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data). (CVE-2024-8925) (Arnaud)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c).', + 'raw' => 'Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).', + 'raw' => 'Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated). (cmb)', + ), + ), + ), + ), + '8.3.11' => + array ( + 'date' => '29 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c).', + 'raw' => 'Fixed bug GH-15020 (Memory leak in Zend/Optimizer/escape_analysis.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c).', + 'raw' => 'Fixed bug GH-15023 (Memory leak in Zend/zend_ini.c). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally).', + 'raw' => 'Fixed bug GH-13330 (Append -Wno-implicit-fallthrough flag conditionally). (Peter Kokot)', + ), + 3 => + array ( + 'message' => 'Fix uninitialized memory in network.c.', + 'raw' => 'Fix uninitialized memory in network.c. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown).', + 'raw' => 'Fixed bug GH-15108 (Segfault when destroying generator during shutdown). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate).', + 'raw' => 'Fixed bug GH-15275 (Crash during GC of suspended generator delegate). (Arnaud)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed case when curl_error returns an empty string.', + 'raw' => 'Fixed case when curl_error returns an empty string. (David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix UAF when removing doctype and using foreach iteration.', + 'raw' => 'Fix UAF when removing doctype and using foreach iteration. (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak).', + 'raw' => 'Fixed bug GH-14286 (ffi enum type (when enum has no name) make memory leak). (nielsdos, dstogov)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash when converting array data for array in shm in xxh3.', + 'raw' => 'Fix crash when converting array data for array in shm in xxh3. (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional).', + 'raw' => 'Fixed bug GH-15087 (IntlChar::foldCase()\'s $option is not optional). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4).', + 'raw' => 'Fixed bug GH-13817 (Segmentation fault for enabled observers after pass 4). (Bob)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement).', + 'raw' => 'Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement). (Arnaud, nielsdos)', + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re).', + 'raw' => 'Fixed bug GH-15179 (Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re). (nielsdos)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix bogus fallthrough path in firebird_handle_get_attribute().', + 'raw' => 'Fix bogus fallthrough path in firebird_handle_get_attribute(). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline).', + 'raw' => 'Fixed bug GH-13199 (EOF emits redundant prompt in phpdbg local console mode with libedit/readline). (Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)).', + 'raw' => 'Fixed bug GH-15268 (heap buffer overflow in phpdbg (zend_hash_num_elements() Zend/zend_hash.h)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations.', + 'raw' => 'Fixed bug GH-15210 use-after-free on watchpoint allocations. (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris.', + 'raw' => 'Fixed part of bug GH-15381, checking getrandom availability on solaris. (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #55639 (Digest autentication dont work).', + 'raw' => 'Fixed bug #55639 (Digest autentication dont work). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix SoapFault property destruction.', + 'raw' => 'Fix SoapFault property destruction. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option).', + 'raw' => 'Fixed bug GH-15252 (SOAP XML broken since PHP 8.3.9 when using classmap constructor option). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix passing non-finite timeout values in stream functions.', + 'raw' => 'Fix passing non-finite timeout values in stream functions. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GH-14780 p(f)sockopen timeout overflow.', + 'raw' => 'Fixed GH-14780 p(f)sockopen timeout overflow. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed GH-15653 overflow on fgetcsv length parameter.', + 'raw' => 'Fixed GH-15653 overflow on fgetcsv length parameter. (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c).', + 'raw' => 'Fixed bug GH-15028 (Memory leak in ext/phar/stream.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB).', + 'raw' => 'Fixed bug GH-15034 (Integer overflow on stream_notification_callback byte_max parameter with files bigger than 2GB). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Reverted fix for GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters).', + 'raw' => 'Reverted fix for GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters). (Jakub Zelenka)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/tidy basedir restriction code.', + 'raw' => 'Fix memory leaks in ext/tidy basedir restriction code. (nielsdos)', + ), + ), + ), + ), + '8.3.10' => + array ( + 'date' => '01 Aug 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1).', + 'raw' => 'Fixed bug GH-13922 (Fixed support for systems with sysconf(_SC_GETPW_R_SIZE_MAX) == -1). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks).', + 'raw' => 'Fixed bug GH-14626 (Fix is_zend_ptr() for huge blocks). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt.', + 'raw' => 'Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #69765.', + 'raw' => 'Fixed OSS-Fuzz #69765. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h).', + 'raw' => 'Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()).', + 'raw' => 'Fixed bug GH-14969 (Use-after-free in property coercion with __toString()). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error).', + 'raw' => 'Fixed bug GH-14961 (Comment between -> and keyword results in parse error). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash).', + 'raw' => 'Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14888 (README.REDIST.BINS refers to non-existing LICENSE).', + 'raw' => 'Fixed bug GH-14888 (README.REDIST.BINS refers to non-existing LICENSE). (cmb)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support.', + 'raw' => 'ext/gd/tests/gh10614.phpt: skip if no PNG support. (orlitzky)', + ), + 1 => + array ( + 'message' => 'restored warning instead of fata error.', + 'raw' => 'restored warning instead of fata error. (dryabov)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0).', + 'raw' => 'Fixed bug GH-14563 (Build failure with libxml2 v2.13.0). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled).', + 'raw' => 'Fixed bug GH-14550 (No warning message when Zend DTrace is enabled that opcache.jit is implictly disabled). (nielsdos)', + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer).', + 'raw' => 'Fixed bug GH-14808 (Unexpected null pointer in Zend/zend_string.h with empty output buffer). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14712 (Crash with PDORow access to null property).', + 'raw' => 'Fixed bug GH-14712 (Crash with PDORow access to null property). (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14603 (null string from zip entry).', + 'raw' => 'Fixed bug GH-14603 (null string from zip entry). (David Carlier)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1).', + 'raw' => 'Fixed bug GH-14596 (crashes with ASAN and ZEND_RC_DEBUG=1). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte).', + 'raw' => 'Fixed bug GH-14553 (echo output trimmed at NULL byte). (nielsdos)', + ), + ), + 'shmop' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process).', + 'raw' => 'Fixed bug GH-14537 (shmop Windows 11 crashes the process). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c).', + 'raw' => 'Fixed bug GH-14639 (Member access within null pointer in ext/spl/spl_observer.c). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14775 (range function overflow with negative step argument).', + 'raw' => 'Fixed bug GH-14775 (range function overflow with negative step argument). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fix 32-bit wordwrap test failures.', + 'raw' => 'Fix 32-bit wordwrap test failures. (orlitzky)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14774 (time_sleep_until overflow).', + 'raw' => 'Fixed bug GH-14774 (time_sleep_until overflow). (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters in PHP 8.3).', + 'raw' => 'Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to 255 characters in PHP 8.3). (Joe Cai)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy_repair_file().', + 'raw' => 'Fix memory leak in tidy_repair_file(). (nielsdos)', + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix compatibility with libxml2 2.13.2.', + 'raw' => 'Fix compatibility with libxml2 2.13.2. (nielsdos)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Move away from to-be-deprecated libxml fields.', + 'raw' => 'Move away from to-be-deprecated libxml fields. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used).', + 'raw' => 'Fixed bug GH-14834 (Error installing PHP when --with-pear is used). (nielsdos)', + ), + ), + ), + ), + '8.3.9' => + array ( + 'date' => '04 Jul 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14315 (Incompatible pointer type warnings).', + 'raw' => 'Fixed bug GH-14315 (Incompatible pointer type warnings). (Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon).', + 'raw' => 'Fixed bug GH-12814 (max_execution_time reached too early on MacOS 14 when running on Apple Silicon). (Manuel Kress)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()).', + 'raw' => 'Fixed bug GH-14387 (Crash when stack walking in destructor of yielded from values during Generator->throw()). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor).', + 'raw' => 'Fixed bug GH-14456 (Attempting to initialize class with private constructor calls destructor). (Girgias)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14510 (memleak due to missing pthread_attr_destroy()-call).', + 'raw' => 'Fixed bug GH-14510 (memleak due to missing pthread_attr_destroy()-call). (Florian Engelhardt)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose).', + 'raw' => 'Fixed bug GH-14549 (Incompatible function pointer type for fclose). (Ryan Carsten Schmidt)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0).', + 'raw' => 'Fixed bug (bcpowmod() with mod = -1 returns 1 when it must be 0). (Girgias)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0).', + 'raw' => 'Fixed bug GH-14307 (Test curl_basic_024 fails with curl 8.8.0). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14343 (Memory leak in xml and dom).', + 'raw' => 'Fixed bug GH-14343 (Memory leak in xml and dom). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool).', + 'raw' => 'Fixed bug GH-14037 (PHP-FPM ping.path and ping.response config vars are ignored in status pool). (Wilhansen Li, Pierrick Charron)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix parameter numbers for imagecolorset().', + 'raw' => 'Fix parameter numbers for imagecolorset(). (Giovanni Giacobbi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference handling in SpoofChecker.', + 'raw' => 'Fix reference handling in SpoofChecker. (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).', + 'raw' => 'Partially fix bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime).', + 'raw' => 'Fixed bug GH-14267 (opcache.jit=off does not allow enabling JIT at runtime). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed TLS access in JIT on FreeBSD/amd64.', + 'raw' => 'Fixed TLS access in JIT on FreeBSD/amd64. (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64).', + 'raw' => 'Fixed bug GH-11188 (Error when building TSRM in ARM64). (nielsdos)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC).', + 'raw' => 'Fixed bug GH-14367 (incompatible SDWORD type with iODBC). (Calvin Buckley)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure).', + 'raw' => 'Fixed bug GH-13681 (segfault on watchpoint addition failure). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #47925 (PHPClient can\'t decompress response).', + 'raw' => 'Fixed bug #47925 (PHPClient can\'t decompress response). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix missing error restore code.', + 'raw' => 'Fix missing error restore code. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setObject() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setObject() twice. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix memory leak if calling SoapServer::setClass() twice.', + 'raw' => 'Fix memory leak if calling SoapServer::setClass() twice. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix reading zlib ini settings in ext-soap.', + 'raw' => 'Fix reading zlib ini settings in ext-soap. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix memory leaks with string function name lookups.', + 'raw' => 'Fix memory leaks with string function name lookups. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name).', + 'raw' => 'Fixed bug #69280 (SoapClient classmap doesn\'t support fully qualified class name). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon).', + 'raw' => 'Fixed bug #76232 (SoapClient Cookie Header Semicolon). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed memory leaks when calling SoapFault::__construct() twice.', + 'raw' => 'Fixed memory leaks when calling SoapFault::__construct() twice. (Girgias)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in ext/sodium on failure of some functions.', + 'raw' => 'Fix memory leaks in ext/sodium on failure of some functions. (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl).', + 'raw' => 'Fixed bug GH-14290 (Member access within null pointer in extension spl). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets).', + 'raw' => 'Fixed bug GH-14483 (Fixed off-by-one error in checking length of abstract namespace Unix sockets). (Derick)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors).', + 'raw' => 'Fixed bug GH-11078 (PHP Fatal error triggers pointer being freed was not allocated and malloc: double free for ptr errors). (nielsdos)', + ), + ), + ), + ), + '8.3.8' => + array ( + 'date' => '06 Jun 2024', + 'modules' => + array ( + 'cgi' => + array ( + 0 => + array ( + 'message' => 'Fixed buffer limit on Windows, replacing read call usage by _read.', + 'raw' => 'Fixed buffer limit on Windows, replacing read call usage by _read. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577)', + 'raw' => 'Fixed bug GHSA-3qgc-jrrr-25jv (Bypass of CVE-2012-1823, Argument Injection in PHP-CGI). (CVE-2024-4577) (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.).', + 'raw' => 'Fixed bug GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.). (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions).', + 'raw' => 'Fixed bug GH-13970 (Incorrect validation of #[Attribute] flags type for non-compile-time expressions). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when entity declaration is removed while still having entity references.', + 'raw' => 'Fix crashes when entity declaration is removed while still having entity references. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix references not handled correctly in C14N.', + 'raw' => 'Fix references not handled correctly in C14N. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix crash when calling childNodes next() when iterator is exhausted.', + 'raw' => 'Fix crash when calling childNodes next() when iterator is exhausted. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes.', + 'raw' => 'Fix crash in ParentNode::append() when dealing with a fragment containing text nodes. (nielsdos)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458)', + 'raw' => 'Fixed bug GHSA-w8qr-v226-r27w (Filter bypass in filter_var FILTER_VALIDATE_URL). (CVE-2024-5458) (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status).', + 'raw' => 'Fix bug GH-14175 (Show decimal number instead of scientific notation in systemd status). (Benjamin Cremer)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__`', + 'raw' => 'ext/hash: Swap the checking order of `__has_builtin` and `__GNUC__` (Saki Takamachi)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build regression on systems without C++17 compilers.', + 'raw' => 'Fixed build regression on systems without C++17 compilers. (Calvin Buckley, Peter Kokot)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query).', + 'raw' => 'Fix bug GH-14255 (mysqli_fetch_assoc reports error from nested query). (Kamil Tekiela)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm).', + 'raw' => 'Fixed bug GH-14109 (Fix accidental persisting of internal class constant in shm). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable.', + 'raw' => 'The openssl_private_decrypt function in PHP, when using PKCS1 padding (OPENSSL_PKCS1_PADDING, which is the default), is vulnerable to the Marvin Attack unless it is used with an OpenSSL version that includes the changes from this pull request: https://github.com/openssl/openssl/pull/13817 (rsa_pkcs1_implicit_rejection). These changes are part of OpenSSL 3.2 and have also been backported to stable versions of various Linux distributions, as well as to the PHP builds provided for Windows since the previous release. All distributors and builders should ensure that this version is used to prevent PHP from being vulnerable. (CVE-2024-2408)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585)', + 'raw' => 'Fixed bug GHSA-9fcc-425m-g385 (Bypass of CVE-2024-1874). (CVE-2024-5585) (nielsdos)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit).', + 'raw' => 'Fixed bug GH-14124 (Segmentation fault with XML extension under certain memory limit). (nielsdos)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden).', + 'raw' => 'Fixed bug GH-14183 (XMLReader::open() can\'t be overridden). (nielsdos)', + ), + ), + ), + ), + '8.3.7' => + array ( + 'date' => '09 May 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed zend_call_stack build with Linux/uclibc-ng without thread support.', + 'raw' => 'Fixed zend_call_stack build with Linux/uclibc-ng without thread support. (Fabrice Fontaine)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled).', + 'raw' => 'Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall handlers when JIT is enabled). (Bob)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c).', + 'raw' => 'Fixed bug GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations).', + 'raw' => 'Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with other timeout implementations). (Kévin Dunglas)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters).', + 'raw' => 'Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert parameters). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure).', + 'raw' => 'Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly).', + 'raw' => 'Fixed bug GH-10232 (If autoloading occurs during constant resolution filename and lineno are identified incorrectly). (ranvis)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-13727 (Missing void keyword).', + 'raw' => 'Fixed bug GH-13727 (Missing void keyword). (Peter Kokot)', + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).', + 'raw' => 'Fixed bug GH-13903 (ASAN false positive underflow when executing copy()). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on big-endian PPC).', + 'raw' => 'Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on big-endian PPC). (orlitzky)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails).', + 'raw' => 'Fixed bug GH-13563 (Setting bool values via env in FPM config fails). (Jakub Zelenka)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed build for icu 74 and onwards.', + 'raw' => 'Fixed build for icu 74 and onwards. (dunglas)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix shift out of bounds on 32-bit non-fast-path platforms.', + 'raw' => 'Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when using opcache.preload).', + 'raw' => 'Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when using opcache.preload). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect assumptions across compilation units for static calls.', + 'raw' => 'Fixed incorrect assumptions across compilation units for static calls. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).', + 'raw' => 'Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely). (Jakub Zelenka)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13984 (Buffer size is now checked before memcmp).', + 'raw' => 'Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi)', + ), + 1 => + array ( + 'message' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly).', + 'raw' => 'Fix GH-13998 (Manage refcount of agg_context->val correctly). (Saki Takamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference).', + 'raw' => 'Fixed bug GH-13836 (Renaming a file in a Phar to an already existing filename causes a NULL pointer dereference). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).', + 'raw' => 'Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix potential NULL pointer dereference before calling EVP_SignInit.', + 'raw' => 'Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame).', + 'raw' => 'Fixed bug GH-13827 (Null pointer access of type \'zval\' in phpdbg_frame). (nielsdos)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fix usage of reentrant functions in ext/posix.', + 'raw' => 'Fix usage of reentrant functions in ext/posix. (Arnaud)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c).', + 'raw' => 'Fixed bug GH-13856 (Member access within null pointer of type \'ps_files\' in ext/session/mod_files.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts).', + 'raw' => 'Fixed bug GH-13891 (memleak and segfault when using ini_set with session.trans_sid_hosts). (nielsdos, kamil-tekiela)', + ), + 2 => + array ( + 'message' => 'Fixed buffer _read/_write size limit on windows for the file mode.', + 'raw' => 'Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument".', + 'raw' => 'Fixed file_get_contents() on Windows fails with "errno=22 Invalid argument". (Damian Wójcik)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).', + 'raw' => 'Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket).', + 'raw' => 'Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64).', + 'raw' => 'Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud)', + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fix gcc-14 Wcalloc-transposed-args warnings.', + 'raw' => 'Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)', + ), + ), + ), + ), + '8.3.6' => + array ( + 'date' => '11 Apr 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when scanning WeakMaps).', + 'raw' => 'Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when scanning WeakMaps). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references).', + 'raw' => 'Fixed bug GH-13612 (Corrupted memory in destructor with weak references). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13446 (Restore exception handler after it finishes).', + 'raw' => 'Fixed bug GH-13446 (Restore exception handler after it finishes). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure).', + 'raw' => 'Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor).', + 'raw' => 'Fixed bug GH-13670 (GC does not scale well with a lot of objects created in destructor). (Arnaud)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Add some missing ZPP checks.', + 'raw' => 'Add some missing ZPP checks. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix potential memory leak in XPath evaluation results.', + 'raw' => 'Fix potential memory leak in XPath evaluation results. (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11086 (FPM: config test runs twice in daemonised mode).', + 'raw' => 'Fixed GH-11086 (FPM: config test runs twice in daemonised mode). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed incorrect check in fpm_shm_free().', + 'raw' => 'Fixed incorrect check in fpm_shm_free(). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests).', + 'raw' => 'Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL.', + 'raw' => 'Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 with category set to LC_ALL. (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]).', + 'raw' => 'Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi)', + ), + 1 => + array ( + 'message' => 'Fix incorrect charset length in check_mb_eucjpms().', + 'raw' => 'Fix incorrect charset length in check_mb_eucjpms(). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).', + 'raw' => 'Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null). (Arnaud, Dmitry)', + ), + 1 => + array ( + 'message' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded).', + 'raw' => 'Fixed GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded). (Bob)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes).', + 'raw' => 'Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown modes). (timwolla)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used).', + 'raw' => 'Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between requests when MT_RAND_PHP is used). (timwolla)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error).', + 'raw' => 'Fixed bug GH-13680 (Segfault with session_decode and compilation error). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h).', + 'raw' => 'Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11808 (Live filesystem modified by tests).', + 'raw' => 'Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()).', + 'raw' => 'Fixed GH-13402 (Added validation of `\\n` in $additional_headers of mail()). (SakiTakamachi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).', + 'raw' => 'Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows). (divinity76)', + ), + 3 => + array ( + 'message' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874)', + 'raw' => 'Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756)', + 'raw' => 'Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096)', + 'raw' => 'Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)', + ), + 6 => + array ( + 'message' => 'Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some inputs). (CVE-2024-2757)', + 'raw' => 'Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some inputs). (CVE-2024-2757) (Alex Dowad)', + ), + ), + ), + ), + '8.3.4' => + array ( + 'date' => '14 Mar 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix ZTS persistent resource crashes on shutdown.', + 'raw' => 'Fix ZTS persistent resource crashes on shutdown. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix failing tests due to string changes in libcurl 8.6.0.', + 'raw' => 'Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix unlikely memory leak in case of namespace removal with extremely deep trees.', + 'raw' => 'Fix unlikely memory leak in case of namespace removal with extremely deep trees. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap.', + 'raw' => 'Fix reference access in dimensions for DOMNodeList and DOMNodeMap. (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport).', + 'raw' => 'Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), backport). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER).', + 'raw' => 'Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12019 (detection of image formats in system gd library).', + 'raw' => 'Fixed bug GH-12019 (detection of image formats in system gd library). (Michael Orlitzky)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set).', + 'raw' => 'Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix various PDORow bugs.', + 'raw' => 'Fix various PDORow bugs. (Girgias)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference).', + 'raw' => 'Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute with null value passed by reference). (George Barbarosie)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15).', + 'raw' => 'Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13279 (Instable array during in-place modification in uksort).', + 'raw' => 'Fixed bug GH-13279 (Instable array during in-place modification in uksort). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now).', + 'raw' => 'Fixed array key as hash to string (case insensitive) comparison typo for the second operand buffer size (albeit unused for now). (A. Slepykh)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat).', + 'raw' => 'Fixed bug GH-13517 (Multiple test failures when building with --with-expat). (nielsdos)', + ), + ), + ), + ), + '8.3.3' => + array ( + 'date' => '15 Feb 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed timer leak in zend-max-execution-timers builds.', + 'raw' => 'Fixed timer leak in zend-max-execution-timers builds. (withinboredom)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12349 (linking failure on ARM with mold).', + 'raw' => 'Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception).', + 'raw' => 'Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed when used in trait).', + 'raw' => 'Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed when used in trait). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-13215 (GCC 14 build failure).', + 'raw' => 'Fixed bug GH-13215 (GCC 14 build failure). (Remi)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix missing error check in curl_multi_init().', + 'raw' => 'Fix missing error check in curl_multi_init(). (divinity76)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path).', + 'raw' => 'Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path).', + 'raw' => 'Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90).', + 'raw' => 'Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix crashes with entity references and predefined entities.', + 'raw' => 'Fix crashes with entity references and predefined entities. (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes).', + 'raw' => 'Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13145 (strtok() is not comptime).', + 'raw' => 'Fixed bug GH-13145 (strtok() is not comptime). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed type inference of range().', + 'raw' => 'Fixed type inference of range(). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on).', + 'raw' => 'Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. .', + 'raw' => 'Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. (David Carlier).', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format).', + 'raw' => 'Fix GH-13119 (Changed to convert float and double values into strings using `H` format). (SakiTakamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed).', + 'raw' => 'Fixed bug #71465 (PHAR doesn\'t know about litespeed). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file).', + 'raw' => 'Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines).', + 'raw' => 'Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines). (timwolla)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader).', + 'raw' => 'Fixed bug GH-12504 (Corrupted session written when there\'s a fatal error in autoloader). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13094 (range(9.9, \'0\') causes segmentation fault).', + 'raw' => 'Fixed bug GH-13094 (range(9.9, \'0\') causes segmentation fault). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail).', + 'raw' => 'Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail). (nielsdos)', + ), + ), + ), + ), + '8.3.2' => + array ( + 'date' => '18 Jan 2024', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements).', + 'raw' => 'Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported).', + 'raw' => 'Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported). (rainerjung)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings).', + 'raw' => 'Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn\'t emit warnings). (Peter Kokot)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly report visibility in Reflection).', + 'raw' => 'Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly report visibility in Reflection). (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time.', + 'raw' => 'Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException).', + 'raw' => 'Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix crash when toggleAttribute() is used without a document.', + 'raw' => 'Fix crash when toggleAttribute() is used without a document. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix crash in adoptNode with attribute references.', + 'raw' => 'Fix crash in adoptNode with attribute references. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute order is different).', + 'raw' => 'Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute order is different). (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData).', + 'raw' => 'Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\\CData). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers).', + 'raw' => 'Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*.', + 'raw' => 'Fixed GH-13082 undefined behavior with GdFont instances handling with imageload* and imagechar*. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale).', + 'raw' => 'Fixed GH-12943 (IntlDateFormatter::__construct accepts \'C\' as valid locale). (David Carlier)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB).', + 'raw' => 'Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'When operating on a string with invalid encoding, mb_substr (as well as mb_strstr and its variants) defines character indices in the same way as other mbstring functions such as mb_strpos.', + 'raw' => 'When operating on a string with invalid encoding, mb_substr (as well as mb_strstr and its variants) defines character indices in the same way as other mbstring functions such as mb_strpos. (Alex Dowad)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix crash on Apache shutdown with persistent connections.', + 'raw' => 'Fix crash on Apache shutdown with persistent connections. (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result).', + 'raw' => 'Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov)', + ), + 1 => + array ( + 'message' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258.', + 'raw' => 'Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error).', + 'raw' => 'Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). (Jakub Zelenka)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES).', + 'raw' => 'Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES). (SakiTakamachi)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()).', + 'raw' => 'Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed auto_reset_persistent handling and allow_persistent type.', + 'raw' => 'Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()).', + 'raw' => 'Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #77432 (Segmentation fault on including phar file).', + 'raw' => 'Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c).', + 'raw' => 'Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash.', + 'raw' => 'Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can segfault).', + 'raw' => 'Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can segfault). (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes).', + 'raw' => 'Fixed bug GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes). (nielsdos)', + ), + ), + ), + ), + '8.3.1' => + array ( + 'date' => '21 Dec 2023', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC).', + 'raw' => 'Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt)', + ), + 1 => + array ( + 'message' => 'Fix various missing NULL checks.', + 'raw' => 'Fix various missing NULL checks. (nielsdos, dstogov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call).', + 'raw' => 'Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-12826 (Weird pointers issue in nested loops).', + 'raw' => 'Fixed bug GH-12826 (Weird pointers issue in nested loops). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval).', + 'raw' => 'Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). (Patrick Prasse)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-9348 (FTP & SSL session reuse).', + 'raw' => 'Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed test failures for libxml2 2.12.0.', + 'raw' => 'Fixed test failures for libxml2 2.12.0. (nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Avoid using uninitialised struct.', + 'raw' => 'Avoid using uninitialised struct. (mikhainin)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code).', + 'raw' => 'Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error).', + 'raw' => 'Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown).', + 'raw' => 'Fixed JIT bug (JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown). (Girgias)', + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify()', + 'raw' => 'Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted).', + 'raw' => 'Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GH-12745 (http_build_query() default null argument for $arg_separator is implicitly coerced to string).', + 'raw' => 'Fixed GH-12745 (http_build_query() default null argument for $arg_separator is implicitly coerced to string). (Girgias)', + ), + ), + ), + ), + '8.3.0' => + array ( + 'date' => '23 Nov 2023', + 'modules' => + array ( + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11761 (removing trailing zeros from numbers)', + 'raw' => 'Fixed GH-11761 (removing trailing zeros from numbers) (jorgsowa)', + ), + 1 => + array ( + 'message' => 'Added pdeathsig to builtin server to terminate workers when the master process is killed.', + 'raw' => 'Added pdeathsig to builtin server to terminate workers when the master process is killed. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without a script).', + 'raw' => 'Fixed bug GH-11104 (STDIN/STDOUT/STDERR is not available for CLI without a script). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Implement GH-10024 (support linting multiple files at once using php -l).', + 'raw' => 'Implement GH-10024 (support linting multiple files at once using php -l). (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait).', + 'raw' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure).', + 'raw' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-9388 (Improve unset property and __get type incompatibility error message).', + 'raw' => 'Fixed bug GH-9388 (Improve unset property and __get type incompatibility error message). (ilutov)', + ), + 3 => + array ( + 'message' => 'SA_ONSTACK is now set for signal handlers to be friendlier to other in-process code such as Go\'s cgo.', + 'raw' => 'SA_ONSTACK is now set for signal handlers to be friendlier to other in-process code such as Go\'s cgo. (Kévin Dunglas)', + ), + 4 => + array ( + 'message' => 'SA_ONSTACK is now set when signals are disabled.', + 'raw' => 'SA_ONSTACK is now set when signals are disabled. (Kévin Dunglas)', + ), + 5 => + array ( + 'message' => 'Fix GH-9649: Signal handlers now do a no-op instead of crashing when executed on threads not managed by TSRM.', + 'raw' => 'Fix GH-9649: Signal handlers now do a no-op instead of crashing when executed on threads not managed by TSRM. (Kévin Dunglas)', + ), + 6 => + array ( + 'message' => 'Added shadow stack support for fibers.', + 'raw' => 'Added shadow stack support for fibers. (Chen Hu)', + ), + 7 => + array ( + 'message' => 'Fix bug GH-9965 (Fix accidental caching of default arguments with side effects).', + 'raw' => 'Fix bug GH-9965 (Fix accidental caching of default arguments with side effects). (ilutov)', + ), + 8 => + array ( + 'message' => 'Implement GH-10217 (Use strlen() for determining the class_name length).', + 'raw' => 'Implement GH-10217 (Use strlen() for determining the class_name length). (Dennis Buteyn)', + ), + 9 => + array ( + 'message' => 'Fix bug GH-8821 (Improve line numbers for errors in constant expressions).', + 'raw' => 'Fix bug GH-8821 (Improve line numbers for errors in constant expressions). (ilutov)', + ), + 10 => + array ( + 'message' => 'Fix bug GH-10083 (Allow comments between & and parameter).', + 'raw' => 'Fix bug GH-10083 (Allow comments between & and parameter). (ilutov)', + ), + 11 => + array ( + 'message' => 'Zend Max Execution Timers is now enabled by default for ZTS builds on Linux.', + 'raw' => 'Zend Max Execution Timers is now enabled by default for ZTS builds on Linux. (Kévin Dunglas)', + ), + 12 => + array ( + 'message' => 'Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime).', + 'raw' => 'Fix bug GH-10469 (Disallow .. in open_basedir paths set at runtime). (ilutov)', + ), + 13 => + array ( + 'message' => 'Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return values).', + 'raw' => 'Fix bug GH-10168, GH-10582 (Various segfaults with destructors and VM return values). (dstogov, nielsdos, ilutov)', + ), + 14 => + array ( + 'message' => 'Fix bug GH-10935 (Use of trait doesn\'t redeclare static property if class has inherited it from its parent).', + 'raw' => 'Fix bug GH-10935 (Use of trait doesn\'t redeclare static property if class has inherited it from its parent). (ilutov)', + ), + 15 => + array ( + 'message' => 'Fix bug GH-11154 (Negative indices on empty array don\'t affect next chosen index).', + 'raw' => 'Fix bug GH-11154 (Negative indices on empty array don\'t affect next chosen index). (ColinHDev)', + ), + 16 => + array ( + 'message' => 'Fix bug GH-8846 (Implement delayed early binding for classes without parents).', + 'raw' => 'Fix bug GH-8846 (Implement delayed early binding for classes without parents). (ilutov)', + ), + 17 => + array ( + 'message' => 'Fix bug #79836 (Segfault in concat_function).', + 'raw' => 'Fix bug #79836 (Segfault in concat_function). (nielsdos)', + ), + 18 => + array ( + 'message' => 'Fix bug #81705 (type confusion/UAF on set_error_handler with concat operation).', + 'raw' => 'Fix bug #81705 (type confusion/UAF on set_error_handler with concat operation). (nielsdos)', + ), + 19 => + array ( + 'message' => 'Fix GH-11348 (Closure created from magic method does not accept named arguments).', + 'raw' => 'Fix GH-11348 (Closure created from magic method does not accept named arguments). (nielsdos)', + ), + 20 => + array ( + 'message' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait).', + 'raw' => 'Fix GH-11388 (Allow "final" modifier when importing a method from a trait). (nielsdos)', + ), + 21 => + array ( + 'message' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure).', + 'raw' => 'Fixed bug GH-11406 (segfault with unpacking and magic method closure). (nielsdos)', + ), + 22 => + array ( + 'message' => 'Fixed bug GH-11507 (String concatenation performance regression in 8.3).', + 'raw' => 'Fixed bug GH-11507 (String concatenation performance regression in 8.3). (nielsdos)', + ), + 23 => + array ( + 'message' => 'Fixed GH-11488 (Missing "Optional parameter before required" deprecation on union null type).', + 'raw' => 'Fixed GH-11488 (Missing "Optional parameter before required" deprecation on union null type). (ilutov)', + ), + 24 => + array ( + 'message' => 'Implement the #[\\Override] attribute RFC.', + 'raw' => 'Implement the #[\\Override] attribute RFC. (timwolla)', + ), + 25 => + array ( + 'message' => 'Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit exceptions).', + 'raw' => 'Fixed bug GH-11601 (Incorrect handling of unwind and graceful exit exceptions). (ilutov)', + ), + 26 => + array ( + 'message' => 'Added zend_call_stack_get implementation for OpenBSD.', + 'raw' => 'Added zend_call_stack_get implementation for OpenBSD. (David Carlier)', + ), + 27 => + array ( + 'message' => 'Add stack limit check in zend_eval_const_expr().', + 'raw' => 'Add stack limit check in zend_eval_const_expr(). (Arnaud)', + ), + 28 => + array ( + 'message' => 'Expose time spent collecting cycles in gc_status().', + 'raw' => 'Expose time spent collecting cycles in gc_status(). (Arnaud)', + ), + 29 => + array ( + 'message' => 'Remove WeakMap entries whose key is only reachable through the entry value.', + 'raw' => 'Remove WeakMap entries whose key is only reachable through the entry value. (Arnaud)', + ), + 30 => + array ( + 'message' => 'Resolve open_basedir paths on INI update.', + 'raw' => 'Resolve open_basedir paths on INI update. (ilutov)', + ), + 31 => + array ( + 'message' => 'Fixed oss-fuzz #60741 (Leak in open_basedir).', + 'raw' => 'Fixed oss-fuzz #60741 (Leak in open_basedir). (ilutov)', + ), + 32 => + array ( + 'message' => 'Fixed segfault during freeing of some incompletely initialized objects due to OOM error (PDO, SPL, XSL).', + 'raw' => 'Fixed segfault during freeing of some incompletely initialized objects due to OOM error (PDO, SPL, XSL). (ilutov)', + ), + 33 => + array ( + 'message' => 'Introduced Zend guard recursion protection to fix __debugInfo issue.', + 'raw' => 'Introduced Zend guard recursion protection to fix __debugInfo issue. (Jakub Zelenka)', + ), + 34 => + array ( + 'message' => 'Fixed oss-fuzz #61712 (assertion failure with error handler during binary op).', + 'raw' => 'Fixed oss-fuzz #61712 (assertion failure with error handler during binary op). (nielsdos)', + ), + 35 => + array ( + 'message' => 'Fixed GH-11847 (DTrace enabled build is broken).', + 'raw' => 'Fixed GH-11847 (DTrace enabled build is broken). (Filip Zrůst)', + ), + 36 => + array ( + 'message' => 'Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property that is unset in error handler).', + 'raw' => 'Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property that is unset in error handler). (Girgias)', + ), + 37 => + array ( + 'message' => 'Fixed warning emitted when checking if a user stream is castable.', + 'raw' => 'Fixed warning emitted when checking if a user stream is castable. (Girgias)', + ), + 38 => + array ( + 'message' => 'Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX).', + 'raw' => 'Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX). (kocsismate)', + ), + 39 => + array ( + 'message' => 'Fixed bug GH-12189 (#[Override] attribute in trait does not check for parent class implementations).', + 'raw' => 'Fixed bug GH-12189 (#[Override] attribute in trait does not check for parent class implementations). (timwolla)', + ), + 40 => + array ( + 'message' => 'Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable warning).', + 'raw' => 'Fixed OSS Fuzz #62294 (Unsetting variable after ++/-- on string variable warning). (Girgias)', + ), + 41 => + array ( + 'message' => 'Fixed buffer underflow when compiling memoized expression.', + 'raw' => 'Fixed buffer underflow when compiling memoized expression. (ilutov)', + ), + 42 => + array ( + 'message' => 'Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec).', + 'raw' => 'Fixed oss-fuzz #63802 (OP1 leak in error path of post inc/dec). (ilutov)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Added Curl options and constants up to (including) version 7.87.', + 'raw' => 'Added Curl options and constants up to (including) version 7.87. (nielsdos, adoy)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Implement More Appropriate Date/Time Exceptions RFC.', + 'raw' => 'Implement More Appropriate Date/Time Exceptions RFC. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix bug GH-8388 (DOMAttr unescapes character reference).', + 'raw' => 'Fix bug GH-8388 (DOMAttr unescapes character reference). (Tim Starling)', + ), + 1 => + array ( + 'message' => 'Fix bug GH-11308 (getElementsByTagName() is O(N^2)).', + 'raw' => 'Fix bug GH-11308 (getElementsByTagName() is O(N^2)). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix #79700 (wrong use of libxml oldNs leads to performance problem).', + 'raw' => 'Fix #79700 (wrong use of libxml oldNs leads to performance problem). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after normalisation).', + 'raw' => 'Fix #77894 (DOMNode::C14N() very slow on generated DOMDocuments even after normalisation). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion.', + 'raw' => 'Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-11500 (Namespace reuse in createElementNS() generates wrong output).', + 'raw' => 'Fixed bug GH-11500 (Namespace reuse in createElementNS() generates wrong output). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Implemented DOMDocument::adoptNode(). Previously this always threw a "not yet implemented" exception.', + 'raw' => 'Implemented DOMDocument::adoptNode(). Previously this always threw a "not yet implemented" exception. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-9628 (Implicitly removing nodes from \\DOMDocument breaks existing references).', + 'raw' => 'Fixed bug GH-9628 (Implicitly removing nodes from \\DOMDocument breaks existing references). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Added DOMNode::contains() and DOMNameSpaceNode::contains().', + 'raw' => 'Added DOMNode::contains() and DOMNameSpaceNode::contains(). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Added DOMElement::getAttributeNames().', + 'raw' => 'Added DOMElement::getAttributeNames(). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Added DOMNode::getRootNode().', + 'raw' => 'Added DOMNode::getRootNode(). (nielsdos)', + ), + 11 => + array ( + 'message' => 'Added DOMElement::className and DOMElement::id.', + 'raw' => 'Added DOMElement::className and DOMElement::id. (nielsdos)', + ), + 12 => + array ( + 'message' => 'Added DOMParentNode::replaceChildren().', + 'raw' => 'Added DOMParentNode::replaceChildren(). (nielsdos)', + ), + 13 => + array ( + 'message' => 'Added DOMNode::isConnected and DOMNameSpaceNode::isConnected.', + 'raw' => 'Added DOMNode::isConnected and DOMNameSpaceNode::isConnected. (nielsdos)', + ), + 14 => + array ( + 'message' => 'Added DOMNode::parentElement and DOMNameSpaceNode::parentElement.', + 'raw' => 'Added DOMNode::parentElement and DOMNameSpaceNode::parentElement. (nielsdos)', + ), + 15 => + array ( + 'message' => 'Added DOMNode::isEqualNode().', + 'raw' => 'Added DOMNode::isEqualNode(). (nielsdos)', + ), + 16 => + array ( + 'message' => 'Added DOMElement::insertAdjacentElement() and DOMElement::insertAdjacentText().', + 'raw' => 'Added DOMElement::insertAdjacentElement() and DOMElement::insertAdjacentText(). (nielsdos)', + ), + 17 => + array ( + 'message' => 'Added DOMElement::toggleAttribute().', + 'raw' => 'Added DOMElement::toggleAttribute(). (nielsdos)', + ), + 18 => + array ( + 'message' => 'Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken).', + 'raw' => 'Fixed bug GH-11792 (LIBXML_NOXMLDECL is not implemented or broken). (nielsdos)', + ), + 19 => + array ( + 'message' => 'adoptNode now respects the strict error checking property.', + 'raw' => 'adoptNode now respects the strict error checking property. (nielsdos)', + ), + 20 => + array ( + 'message' => 'Align DOMChildNode parent checks with spec.', + 'raw' => 'Align DOMChildNode parent checks with spec. (nielsdos)', + ), + 21 => + array ( + 'message' => 'Fixed bug #80927 (Removing documentElement after creating attribute node: possible use-after-free).', + 'raw' => 'Fixed bug #80927 (Removing documentElement after creating attribute node: possible use-after-free). (nielsdos)', + ), + 22 => + array ( + 'message' => 'Fix various namespace prefix conflict resolution bugs.', + 'raw' => 'Fix various namespace prefix conflict resolution bugs. (nielsdos)', + ), + 23 => + array ( + 'message' => 'Fix calling createAttributeNS() without prefix causing the default namespace of the element to change.', + 'raw' => 'Fix calling createAttributeNS() without prefix causing the default namespace of the element to change. (nielsdos)', + ), + 24 => + array ( + 'message' => 'Fixed GH-11952 (Confusing warning when blocking entity loading via libxml_set_external_entity_loader).', + 'raw' => 'Fixed GH-11952 (Confusing warning when blocking entity loading via libxml_set_external_entity_loader). (nielsdos)', + ), + 25 => + array ( + 'message' => 'Fix broken cache invalidation with deallocated and reallocated document node.', + 'raw' => 'Fix broken cache invalidation with deallocated and reallocated document node. (nielsdos)', + ), + 26 => + array ( + 'message' => 'Fix compile error when php_libxml.h header is included in C++.', + 'raw' => 'Fix compile error when php_libxml.h header is included in C++. (Remi, nielsdos)', + ), + 27 => + array ( + 'message' => 'Fixed bug #47531 (No way of removing redundant xmlns: declarations).', + 'raw' => 'Fixed bug #47531 (No way of removing redundant xmlns: declarations). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Removed unneeded codepaths in exif_process_TIFF_in_JPEG().', + 'raw' => 'Removed unneeded codepaths in exif_process_TIFF_in_JPEG(). (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Implement GH-11934 (Allow to pass CData into struct and/or union fields).', + 'raw' => 'Implement GH-11934 (Allow to pass CData into struct and/or union fields). (nielsdos, KapitanOczywisty)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled libmagic to 5.43.', + 'raw' => 'Upgrade bundled libmagic to 5.43. (Anatol)', + ), + 1 => + array ( + 'message' => 'Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension).', + 'raw' => 'Fix GH-11408 (Unable to build PHP 8.3.0 alpha 1 / fileinfo extension). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'The status.listen shared pool now uses the same php_values (including expose_php) and php_admin_value as the pool it is shared with.', + 'raw' => 'The status.listen shared pool now uses the same php_values (including expose_php) and php_admin_value as the pool it is shared with. (dwxh)', + ), + 1 => + array ( + 'message' => 'Added warning to log when fpm socket was not registered on the expected path.', + 'raw' => 'Added warning to log when fpm socket was not registered on the expected path. (Joshua Behrens, Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug #76067 (system() function call leaks php-fpm listening sockets).', + 'raw' => 'Fixed bug #76067 (system() function call leaks php-fpm listening sockets). (Mikhail Galanin, Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed GH-12077 (PHP 8.3.0RC1 borked socket-close-on-exec.phpt).', + 'raw' => 'Fixed GH-12077 (PHP 8.3.0RC1 borked socket-close-on-exec.phpt). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Removed imagerotate "ignore_transparent" argument since it has no effect.', + 'raw' => 'Removed imagerotate "ignore_transparent" argument since it has no effect. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Added pattern format error infos for numfmt_set_pattern.', + 'raw' => 'Added pattern format error infos for numfmt_set_pattern. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for the Spoofchecker\'s class.', + 'raw' => 'Added MIXED_NUMBERS and HIDDEN_OVERLAY constants for the Spoofchecker\'s class. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type. .', + 'raw' => 'Updated datefmt_set_timezone/IntlDateformatter::setTimezone returns type. (David Carlier).', + ), + 3 => + array ( + 'message' => 'Updated IntlBreakInterator::setText return type.', + 'raw' => 'Updated IntlBreakInterator::setText return type. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Updated IntlChar::enumCharNames return type.', + 'raw' => 'Updated IntlChar::enumCharNames return type. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale.', + 'raw' => 'Removed the BC break on IntlDateFormatter::construct which threw an exception with an invalid locale. (David Carlier)', + ), + ), + 'json' => + array ( + 0 => + array ( + 'message' => 'Added json_validate().', + 'raw' => 'Added json_validate(). (Juan Morales)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Deprecate calling ldap_connect() with separate hostname and port.', + 'raw' => 'Deprecate calling ldap_connect() with separate hostname and port. (heiglandreas)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2.', + 'raw' => 'Fix compile error with -Werror=incompatible-function-pointer-types and old libxml2. (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'mb_detect_encoding is better able to identify the correct encoding for Turkish text.', + 'raw' => 'mb_detect_encoding is better able to identify the correct encoding for Turkish text. (Alex Dowad)', + ), + 1 => + array ( + 'message' => 'mb_detect_encoding\'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned."', + 'raw' => 'mb_detect_encoding\'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned." (Alex Dowad)', + ), + 2 => + array ( + 'message' => 'mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional casing rules for the Greek letter sigma. For mb_convert_case, conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.', + 'raw' => 'mb_strtolower, mb_strtotitle, and mb_convert_case implement conditional casing rules for the Greek letter sigma. For mb_convert_case, conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE. (Alex Dowad)', + ), + 3 => + array ( + 'message' => 'mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings with a byte-order mark.', + 'raw' => 'mb_detect_encoding is better able to identify UTF-8 and UTF-16 strings with a byte-order mark. (Alex Dowad)', + ), + 4 => + array ( + 'message' => 'mb_decode_mimeheader interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words.', + 'raw' => 'mb_decode_mimeheader interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words. (Alex Dowad)', + ), + 5 => + array ( + 'message' => 'mb_encode_mimeheader no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader.', + 'raw' => 'mb_encode_mimeheader no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader. (Alex Dowad)', + ), + 6 => + array ( + 'message' => 'Implement mb_str_pad() RFC.', + 'raw' => 'Implement mb_str_pad() RFC. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled).', + 'raw' => 'Fixed bug GH-11514 (PHP 8.3 build fails with --enable-mbstring enabled). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fix use-after-free of mb_list_encodings() return value.', + 'raw' => 'Fix use-after-free of mb_list_encodings() return value. (ilutov)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-11992 (utf_encodings.phpt fails on Windows 32-bit).', + 'raw' => 'Fixed bug GH-11992 (utf_encodings.phpt fails on Windows 32-bit). (nielsdos)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'mysqli_fetch_object raises a ValueError instead of an Exception.', + 'raw' => 'mysqli_fetch_object raises a ValueError instead of an Exception. (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added start, restart and force restart time to opcache\'s phpinfo section.', + 'raw' => 'Added start, restart and force restart time to opcache\'s phpinfo section. (Mikhail Galanin)', + ), + 1 => + array ( + 'message' => 'Fix GH-9139: Allow FFI in opcache.preload when opcache.preload_user=root.', + 'raw' => 'Fix GH-9139: Allow FFI in opcache.preload when opcache.preload_user=root. (Arnaud, Kapitan Oczywisty)', + ), + 2 => + array ( + 'message' => 'Made opcache.preload_user always optional in the cli and phpdbg SAPIs.', + 'raw' => 'Made opcache.preload_user always optional in the cli and phpdbg SAPIs. (Arnaud)', + ), + 3 => + array ( + 'message' => 'Allows W/X bits on page creation on FreeBSD despite system settings.', + 'raw' => 'Allows W/X bits on page creation on FreeBSD despite system settings. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added memfd api usage, on Linux, for zend_shared_alloc_create_lock() to create an abstract anonymous file for the opcache\'s lock.', + 'raw' => 'Added memfd api usage, on Linux, for zend_shared_alloc_create_lock() to create an abstract anonymous file for the opcache\'s lock. (Max Kellermann)', + ), + 5 => + array ( + 'message' => 'Avoid resetting JIT counter handlers from multiple processes/threads.', + 'raw' => 'Avoid resetting JIT counter handlers from multiple processes/threads. (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed COPY_TMP type inference for references.', + 'raw' => 'Fixed COPY_TMP type inference for references. (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch between mime content types.', + 'raw' => 'Added OPENSSL_CMS_OLDMIMETYPE and PKCS7_NOOLDMIMETYPE contants to switch between mime content types. (Daniel Kesselberg)', + ), + 1 => + array ( + 'message' => 'Fixed GH-11054: Reset OpenSSL errors when using a PEM public key.', + 'raw' => 'Fixed GH-11054: Reset OpenSSL errors when using a PEM public key. (Florian Moser)', + ), + 2 => + array ( + 'message' => 'Added support for additional EC parameters in openssl_pkey_new.', + 'raw' => 'Added support for additional EC parameters in openssl_pkey_new. (Eno-CN)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'SA_ONSTACK is now set for pcntl_signal.', + 'raw' => 'SA_ONSTACK is now set for pcntl_signal. (Kévin Dunglas)', + ), + 1 => + array ( + 'message' => 'Added SIGINFO constant.', + 'raw' => 'Added SIGINFO constant. (David Carlier)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Update bundled libpcre2 to 10.42.', + 'raw' => 'Update bundled libpcre2 to 10.42. (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'pg_fetch_object raises a ValueError instead of an Exception.', + 'raw' => 'pg_fetch_object raises a ValueError instead of an Exception. (David Carlier)', + ), + 1 => + array ( + 'message' => 'pg_cancel use thread safe PQcancel api instead.', + 'raw' => 'pg_cancel use thread safe PQcancel api instead. (David Carlier)', + ), + 2 => + array ( + 'message' => 'pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE contants support.', + 'raw' => 'pg_trace new PGSQL_TRACE_SUPPRESS_TIMESTAMPS/PGSQL_TRACE_REGRESS_MODE contants support. (David Carlier)', + ), + 3 => + array ( + 'message' => 'pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant.', + 'raw' => 'pg_set_error_verbosity adding PGSQL_ERRORS_STATE constant. (David Carlier)', + ), + 4 => + array ( + 'message' => 'pg_convert/pg_insert E_WARNING on type errors had been converted to ValueError/TypeError exceptions.', + 'raw' => 'pg_convert/pg_insert E_WARNING on type errors had been converted to ValueError/TypeError exceptions. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added pg_set_error_context_visibility to set the context\'s visibility within the error messages.', + 'raw' => 'Added pg_set_error_context_visibility to set the context\'s visibility within the error messages. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in phar_rename_archive().', + 'raw' => 'Fix memory leak in phar_rename_archive(). (stkeke)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Added posix_sysconf.', + 'raw' => 'Added posix_sysconf. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added posix_pathconf.', + 'raw' => 'Added posix_pathconf. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added posix_fpathconf.', + 'raw' => 'Added posix_fpathconf. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Fixed zend_parse_arg_long\'s bool pointer argument assignment.', + 'raw' => 'Fixed zend_parse_arg_long\'s bool pointer argument assignment. (Cristian Rodriguez)', + ), + 4 => + array ( + 'message' => 'Added posix_eaccess.', + 'raw' => 'Added posix_eaccess. (David Carlier)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Added Randomizer::getBytesFromString().', + 'raw' => 'Added Randomizer::getBytesFromString(). (Joshua Rüsweg)', + ), + 1 => + array ( + 'message' => 'Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary.', + 'raw' => 'Added Randomizer::nextFloat(), ::getFloat(), and IntervalBoundary. (timwolla)', + ), + 2 => + array ( + 'message' => 'Enable getrandom() for NetBSD (from 10.x).', + 'raw' => 'Enable getrandom() for NetBSD (from 10.x). (David Carlier)', + ), + 3 => + array ( + 'message' => 'Deprecate MT_RAND_PHP.', + 'raw' => 'Deprecate MT_RAND_PHP. (timwolla)', + ), + 4 => + array ( + 'message' => 'Fix Randomizer::getFloat() returning incorrect results under certain circumstances.', + 'raw' => 'Fix Randomizer::getFloat() returning incorrect results under certain circumstances. (timwolla)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fix GH-9470 (ReflectionMethod constructor should not find private parent method).', + 'raw' => 'Fix GH-9470 (ReflectionMethod constructor should not find private parent method). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fix GH-10259 (ReflectionClass::getStaticProperties doesn\'t need null return type).', + 'raw' => 'Fix GH-10259 (ReflectionClass::getStaticProperties doesn\'t need null return type). (kocsismate)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11141 (Could not open input file: should be sent to stderr).', + 'raw' => 'Fixed GH-11141 (Could not open input file: should be sent to stderr). (nielsdos)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11529 (Crash after dealing with an Apache request).', + 'raw' => 'Fixed bug GH-11529 (Crash after dealing with an Apache request). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called within foreach).', + 'raw' => 'Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called within foreach). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a foreach).', + 'raw' => 'Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a foreach). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug #55098 (SimpleXML iteration produces infinite loop).', + 'raw' => 'Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control over socket binding for a cpu core.', + 'raw' => 'Added SO_ATTACH_REUSEPORT_CBPF socket option, to give tighter control over socket binding for a cpu core. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added SKF_AD_QUEUE for cbpf filters.', + 'raw' => 'Added SKF_AD_QUEUE for cbpf filters. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added socket_atmark if send/recv needs using MSG_OOB.', + 'raw' => 'Added socket_atmark if send/recv needs using MSG_OOB. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added TCP_QUICKACK constant, to give tigher control over ACK delays.', + 'raw' => 'Added TCP_QUICKACK constant, to give tigher control over ACK delays. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added DONTFRAGMENT support for path MTU discovery purpose.', + 'raw' => 'Added DONTFRAGMENT support for path MTU discovery purpose. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added AF_DIVERT for raw socket for divert ports.', + 'raw' => 'Added AF_DIVERT for raw socket for divert ports. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite protocol support.', + 'raw' => 'Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite protocol support. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants.', + 'raw' => 'Added SO_RERROR, SO_ZEROIZE and SO_SPLICE netbsd and openbsd constants. (David Carlier)', + ), + 8 => + array ( + 'message' => 'Added TCP_REPAIR for quietly close a connection.', + 'raw' => 'Added TCP_REPAIR for quietly close a connection. (David Carlier)', + ), + 9 => + array ( + 'message' => 'Added SO_REUSEPORT_LB freebsd constant.', + 'raw' => 'Added SO_REUSEPORT_LB freebsd constant. (David Carlier)', + ), + 10 => + array ( + 'message' => 'Added IP_BIND_ADDRESS_NO_PORT.', + 'raw' => 'Added IP_BIND_ADDRESS_NO_PORT. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow).', + 'raw' => 'Fixed GH-11573 (RecursiveDirectoryIterator::hasChildren is slow). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'E_NOTICEs emitted by unserialize() have been promoted to E_WARNING.', + 'raw' => 'E_NOTICEs emitted by unserialize() have been promoted to E_WARNING. (timwolla)', + ), + 1 => + array ( + 'message' => 'unserialize() now emits a new E_WARNING if the input contains unconsumed bytes.', + 'raw' => 'unserialize() now emits a new E_WARNING if the input contains unconsumed bytes. (timwolla)', + ), + 2 => + array ( + 'message' => 'Make array_pad\'s $length warning less confusing.', + 'raw' => 'Make array_pad\'s $length warning less confusing. (nielsdos)', + ), + 3 => + array ( + 'message' => 'E_WARNING emitted by strtok in the caase both arguments are not provided when starting tokenisation.', + 'raw' => 'E_WARNING emitted by strtok in the caase both arguments are not provided when starting tokenisation. (David Carlier)', + ), + 4 => + array ( + 'message' => 'password_hash() will now chain the original RandomException to the ValueError on salt generation failure.', + 'raw' => 'password_hash() will now chain the original RandomException to the ValueError on salt generation failure. (timwolla)', + ), + 5 => + array ( + 'message' => 'Fix GH-10239 (proc_close after proc_get_status always returns -1).', + 'raw' => 'Fix GH-10239 (proc_close after proc_get_status always returns -1). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Improve the warning message for unpack() in case not enough values were provided.', + 'raw' => 'Improve the warning message for unpack() in case not enough values were provided. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted strings starting with numbers when the INI_SCANNER_TYPED flag is specified).', + 'raw' => 'Fix GH-11010 (parse_ini_string() now preserves formatting of unquoted strings starting with numbers when the INI_SCANNER_TYPED flag is specified). (ilutov)', + ), + 8 => + array ( + 'message' => 'Fix GH-10742 (http_response_code emits no error when headers were already sent).', + 'raw' => 'Fix GH-10742 (http_response_code emits no error when headers were already sent). (NattyNarwhal)', + ), + 9 => + array ( + 'message' => 'Added support for rounding negative places in number_format().', + 'raw' => 'Added support for rounding negative places in number_format(). (Marc Bennewitz)', + ), + 10 => + array ( + 'message' => 'Prevent precision loss on formatting decimal integers in number_format().', + 'raw' => 'Prevent precision loss on formatting decimal integers in number_format(). (Marc Bennewitz)', + ), + 11 => + array ( + 'message' => 'Added usage of posix_spawn for proc_open when supported by OS.', + 'raw' => 'Added usage of posix_spawn for proc_open when supported by OS. (Cristian Rodriguez)', + ), + 12 => + array ( + 'message' => 'Added $before_needle argument to strrchr().', + 'raw' => 'Added $before_needle argument to strrchr(). (HypeMC)', + ), + 13 => + array ( + 'message' => 'Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure).', + 'raw' => 'Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure). (Jakub Zelenka)', + ), + 14 => + array ( + 'message' => 'Fixed str_decrement() on "1".', + 'raw' => 'Fixed str_decrement() on "1". (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #51056: blocking fread() will block even if data is available.', + 'raw' => 'Fixed bug #51056: blocking fread() will block even if data is available. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Added storing of the original path used to open xport stream.', + 'raw' => 'Added storing of the original path used to open xport stream. (Luc Vieillescazes)', + ), + 2 => + array ( + 'message' => 'Implement GH-8641 (STREAM_NOTIFY_COMPLETED over HTTP never emitted).', + 'raw' => 'Implement GH-8641 (STREAM_NOTIFY_COMPLETED over HTTP never emitted). (nielsdos, Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fix bug GH-10406 (fgets on a redis socket connection fails on PHP 8.3).', + 'raw' => 'Fix bug GH-10406 (fgets on a redis socket connection fails on PHP 8.3). (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum length without allocating a buffer of that size).', + 'raw' => 'Implemented GH-11242 (_php_stream_copy_to_mem: Allow specifying a maximum length without allocating a buffer of that size). (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Fixed bug #52335 (fseek() on memory stream behavior different than file).', + 'raw' => 'Fixed bug #52335 (fseek() on memory stream behavior different than file). (Jakub Zelenka)', + ), + 6 => + array ( + 'message' => 'Fixed bug #76857 (Can read "non-existant" files).', + 'raw' => 'Fixed bug #76857 (Can read "non-existant" files). (Jakub Zelenka)', + ), + ), + 'xsltprocessor' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #69168 (DomNode::getNodePath() returns invalid path).', + 'raw' => 'Fixed bug #69168 (DomNode::getNodePath() returns invalid path). (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'zip extension version 1.22.0 for libzip 1.10.0.', + 'raw' => 'zip extension version 1.22.0 for libzip 1.10.0. (Remi)', + ), + 1 => + array ( + 'message' => 'add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED).', + 'raw' => 'add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED). (Remi)', + ), + 2 => + array ( + 'message' => 'add new archive global flags (ER_AFL_*).', + 'raw' => 'add new archive global flags (ER_AFL_*). (Remi)', + ), + 3 => + array ( + 'message' => 'add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods.', + 'raw' => 'add ZipArchive::setArchiveFlag and ZipArchive::getArchiveFlag methods. (Remi)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.4/changelist.inc b/include/releases/8.4/changelist.inc new file mode 100644 index 0000000000..124dea2df6 --- /dev/null +++ b/include/releases/8.4/changelist.inc @@ -0,0 +1,6089 @@ +<?php return array ( + '8.4.21' => + array ( + 'date' => NULL, + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors).', + 'raw' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors). (iliaal)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies).', + 'raw' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies). (iliaal)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21605 (Missing addref for Countable::count()).', + 'raw' => 'Fixed bug GH-21605 (Missing addref for Countable::count()). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws).', + 'raw' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws). (macoaure)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21603 (Missing addref for __unset).', + 'raw' => 'Fixed bug GH-21603 (Missing addref for __unset). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV).', + 'raw' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV). (Pratik Bhujel)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings).', + 'raw' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings). (DanielEScherzer)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263)', + 'raw' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263) (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21688 (segmentation fault on empty HTMLDocument).', + 'raw' => 'Fixed bug GH-21688 (segmentation fault on empty HTMLDocument). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079)', + 'raw' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079) (ndossche, ilutov)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17399 (iconv memory leak on bailout).', + 'raw' => 'Fixed bug GH-17399 (iconv memory leak on bailout). (iliaal)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104)', + 'raw' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104) (ilutov)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg).', + 'raw' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch).', + 'raw' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21460 (COND optimization regression).', + 'raw' => 'Fixed bug GH-21460 (COND optimization regression). (Dmitry, Arnaud)', + ), + 3 => + array ( + 'message' => 'Fixed faulty returns out of zend_try block in zend_jit_trace().', + 'raw' => 'Fixed faulty returns out of zend_try block in zend_jit_trace(). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix a bunch of memory leaks and crashes on edge cases.', + 'raw' => 'Fix a bunch of memory leaks and crashes on edge cases. (ndossche)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Restore is_link handler in phar_intercept_functions_shutdown.', + 'raw' => 'Restore is_link handler in phar_intercept_functions_shutdown. (iliaal)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment).', + 'raw' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment). (iliaal)', + ), + 2 => + array ( + 'message' => 'Fix memory leak in Phar::offsetGet().', + 'raw' => 'Fix memory leak in Phar::offsetGet(). (iliaal)', + ), + 3 => + array ( + 'message' => 'Fix memory leak in phar_add_file().', + 'raw' => 'Fix memory leak in phar_add_file(). (iliaal)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close).', + 'raw' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close). (iliaal)', + ), + 5 => + array ( + 'message' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid.', + 'raw' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid. (JarneClauw)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state).', + 'raw' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state). (iliaal)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak when session GC callback return a refcounted value.', + 'raw' => 'Fixed memory leak when session GC callback return a refcounted value. (jorgsowa)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free).', + 'raw' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fix concurrent iteration and deletion issues in SplObjectStorage.', + 'raw' => 'Fix concurrent iteration and deletion issues in SplObjectStorage. (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set).', + 'raw' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set). (ndossche)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21600 (Segfault on module shutdown).', + 'raw' => 'Fixed bug GH-21600 (Segfault on module shutdown). (David Carlier)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21698 (memory leak with ZipArchive::addGlob() early return statements).', + 'raw' => 'Fixed bug GH-21698 (memory leak with ZipArchive::addGlob() early return statements). (David Carlier)', + ), + ), + ), + ), + '8.4.20' => + array ( + 'date' => '09 Apr 2026', + 'modules' => + array ( + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix truncation of total output size causing erroneous errors.', + 'raw' => 'Fix truncation of total output size causing erroneous errors. (ndossche)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies).', + 'raw' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies). (iliaal)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes).', + 'raw' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes). (ndossche)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure.', + 'raw' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure. (David Carlier)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support).', + 'raw' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support). (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results).', + 'raw' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results). (Dmitry, iliaal)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context).', + 'raw' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context). (Dmitry, iliaal)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21395 (uaf in jit).', + 'raw' => 'Fixed bug GH-21395 (uaf in jit). (ndossche)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys).', + 'raw' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys). (iliaal)', + ), + 1 => + array ( + 'message' => 'Fix missing error propagation for BIO_printf() calls.', + 'raw' => 'Fix missing error propagation for BIO_printf() calls. (ndossche)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl.', + 'raw' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl. (David Carlier)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed preprocessor silently guarding PGSQL_SUPPRESS_TIMESTAMPS support due to a typo.', + 'raw' => 'Fixed preprocessor silently guarding PGSQL_SUPPRESS_TIMESTAMPS support due to a typo. (KentarouTakeda)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments).', + 'raw' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes.', + 'raw' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap).', + 'raw' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers).', + 'raw' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize).', + 'raw' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize). (y-guyon)', + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in shm_get_var() when variable is corrupted.', + 'raw' => 'Fix memory leak in shm_get_var() when variable is corrupted. (ndossche)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument).', + 'raw' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage).', + 'raw' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage). (David Carlier/ndossche)', + ), + ), + ), + ), + '8.4.19' => + array ( + 'date' => '12 Mar 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds).', + 'raw' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()).', + 'raw' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()).', + 'raw' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()). (Arnaud)', + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value).', + 'raw' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21215 (Build fails with -std=).', + 'raw' => 'Fixed bug GH-21215 (Build fails with -std=). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool).', + 'raw' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool). (Michael Orlitzky)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21023 (CURLOPT_XFERINFOFUNCTION crash with a null callback).', + 'raw' => 'Fixed bug GH-21023 (CURLOPT_XFERINFOFUNCTION crash with a null callback). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Don\'t truncate length.', + 'raw' => 'Don\'t truncate length. (ndossche)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start).', + 'raw' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix timezone offset with seconds losing precision.', + 'raw' => 'Fix timezone offset with seconds losing precision. (ndossche)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError).', + 'raw' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError).', + 'raw' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError). (ndossche)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries).', + 'raw' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries). (Jordi Kroon)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris).', + 'raw' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris). (Petr Sumbera)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object).', + 'raw' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script).', + 'raw' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix a bunch of leaks and error propagation.', + 'raw' => 'Fix a bunch of leaks and error propagation. (ndossche)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_setns() internal errors handling regarding errnos.', + 'raw' => 'Fixed pcntl_setns() internal errors handling regarding errnos. (David Carlier/ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID on NetBSD/Solaris platforms.', + 'raw' => 'Fixed cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID on NetBSD/Solaris platforms. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed pcntl_signal() signal table registering the callback first OS-wise before the internal list.', + 'raw' => 'Fixed pcntl_signal() signal table registering the callback first OS-wise before the internal list. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Fixed pcntl_signal_dispatch() stale pointer and exception handling.', + 'raw' => 'Fixed pcntl_signal_dispatch() stale pointer and exception handling. (David Carlier)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed preg_match memory leak with invalid regexes.', + 'raw' => 'Fixed preg_match memory leak with invalid regexes. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed pcre2_code leak when pcre2_pattern_info() fails after a successful pcre2_compile(), and match_sets/match_data/marks leaks in php_pcre_match_impl().', + 'raw' => 'Fixed pcre2_code leak when pcre2_pattern_info() fails after a successful pcre2_compile(), and match_sets/match_data/marks leaks in php_pcre_match_impl(). (David Carlier)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21055 (connection attribute status typo for GSS negotiation).', + 'raw' => 'Fixed bug GH-21055 (connection attribute status typo for GSS negotiation). (lsaos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21162 (pg_connect() memory leak on error).', + 'raw' => 'Fixed bug GH-21162 (pg_connect() memory leak on error). (David Carlier)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21161 (socket_set_option() crash with array \'addr\' entry as null).', + 'raw' => 'Fixed bug GH-21161 (socket_set_option() crash with array \'addr\' entry as null). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed possible addr length overflow with socket_connect() and AF_UNIX family sockets.', + 'raw' => 'Fixed possible addr length overflow with socket_connect() and AF_UNIX family sockets. (David Carlier)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed compilation with clang (missing intrin.h include).', + 'raw' => 'Fixed compilation with clang (missing intrin.h include). (Kévin Dunglas)', + ), + ), + ), + ), + '8.4.18' => + array ( + 'date' => '12 Feb 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()).', + 'raw' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()). (timwolla)', + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber).', + 'raw' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization).', + 'raw' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-GH-20914 (Internal enums can be cloned and compared).', + 'raw' => 'Fixed bug GH-GH-20914 (Internal enums can be cloned and compared). (Arnaud)', + ), + 4 => + array ( + 'message' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value).', + 'raw' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction).', + 'raw' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction). (Bob)', + ), + 6 => + array ( + 'message' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value).', + 'raw' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf).', + 'raw' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf). (ilutov)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion).', + 'raw' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion). (ilutov)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-20479 (Hooked object properties overflow).', + 'raw' => 'Fixed bug GH-20479 (Hooked object properties overflow). (ndossche)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Update timelib to 2022.16.', + 'raw' => 'Update timelib to 2022.16. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts).', + 'raw' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts). (lexborisov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding).', + 'raw' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references).', + 'raw' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references). (alexandre-daubois)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference).', + 'raw' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference). (khasinski)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when sk_X509_new_null() fails.', + 'raw' => 'Fix memory leaks when sk_X509_new_null() fails. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails.', + 'raw' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails.', + 'raw' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails. (ndossche)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory).', + 'raw' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory). (ndossche)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB.', + 'raw' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB. (David Carlier)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()).', + 'raw' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()). (ndossche)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration).', + 'raw' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS)', + 'raw' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20843 (var_dump() crash with nested objects)', + 'raw' => 'Fixed bug GH-20843 (var_dump() crash with nested objects) (David Carlier)', + ), + ), + ), + ), + '8.4.17' => + array ( + 'date' => '15 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).', + 'raw' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).', + 'raw' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator).', + 'raw' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).', + 'raw' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation). (ndossche)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20620 (bzcompress overflow on large source size).', + 'raw' => 'Fixed bug GH-20620 (bzcompress overflow on large source size). (David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).', + 'raw' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()).', + 'raw' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()). (ndossche)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow).', + 'raw' => 'Fixed bug GH-20622 (imagestring/imagestringup overflow). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix leak in umsg_format_helper().', + 'raw' => 'Fix leak in umsg_format_helper(). (ndossche)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in ldap_set_options().', + 'raw' => 'Fix memory leak in ldap_set_options(). (ndossche)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).', + 'raw' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator). (Yuya Hamada)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options).', + 'raw' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options). (David Carlier)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling.', + 'raw' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).', + 'raw' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix SplFileInfo::openFile() in write mode.', + 'raw' => 'Fix SplFileInfo::openFile() in write mode. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix build on legacy OpenSSL 1.1.0 systems.', + 'raw' => 'Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74154 (Phar extractTo creates empty files).', + 'raw' => 'Fixed bug #74154 (Phar extractTo creates empty files). (ndossche)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Fixed crash on posix groups to php array creation on macos.', + 'raw' => 'Fixed crash on posix groups to php array creation on macos. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()).', + 'raw' => 'Fixed bug GH-20678 (resource created by GlobIterator crashes with fclose()). (David Carlier)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).', + 'raw' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned). (ndossche, plusminmax)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix error check for proc_open() command.', + 'raw' => 'Fix error check for proc_open() command. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in mail() when header key is numeric.', + 'raw' => 'Fix memory leak in mail() when header key is numeric. (Girgias)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).', + 'raw' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed). (ndossche)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix OOB gzseek() causing assertion failure.', + 'raw' => 'Fix OOB gzseek() causing assertion failure. (ndossche)', + ), + ), + ), + ), + '8.4.16' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Sync all boost.context files with release 1.86.0.', + 'raw' => 'Sync all boost.context files with release 1.86.0. (mvorisek)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter).', + 'raw' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()).', + 'raw' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()). (ndossche, David Carlier)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors.', + 'raw' => 'Fix crashes when trying to instantiate uninstantiable classes via date static constructors. (ndossche)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when edge case is hit when registering xpath callback.', + 'raw' => 'Fix memory leak when edge case is hit when registering xpath callback. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase).', + 'raw' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix missing NUL byte check on C14NFile().', + 'raw' => 'Fix missing NUL byte check on C14NFile(). (ndossche)', + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).', + 'raw' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value). (David Carlier)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout).', + 'raw' => 'Fixed bug GH-20601 (ftp_connect overflow on timeout). (David Carlier)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values).', + 'raw' => 'Fixed bug GH-20511 (imagegammacorrect out of range input/output values). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20602 (imagescale overflow with large height values).', + 'raw' => 'Fixed bug GH-20602 (imagescale overflow with large height values). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).', + 'raw' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants). (DanielEScherzer)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling.', + 'raw' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling. (ndossche)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma).', + 'raw' => 'Fixed bug GH-20491 (SLES15 compile error with mbstring oniguruma). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings).', + 'raw' => 'Fixed bug GH-20492 (mbstring compile warning due to non-strings). (ndossche)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Make mysqli_begin_transaction() report errors properly.', + 'raw' => 'Make mysqli_begin_transaction() report errors properly. (Kamil Tekiela)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).', + 'raw' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets). (Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).', + 'raw' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer). (Arnaud)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).', + 'raw' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub). (ndossche, TimWolla)', + ), + 1 => + array ( + 'message' => 'Fix broken return value of fflush() for phar file entries.', + 'raw' => 'Fix broken return value of fflush() for phar file entries. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix assertion failure when fseeking a phar file out of bounds.', + 'raw' => 'Fix assertion failure when fseeking a phar file out of bounds. (ndossche)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().', + 'raw' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog(). (Girgias)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).', + 'raw' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in array_diff() with custom type checks.', + 'raw' => 'Fix memory leak in array_diff() with custom type checks. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).', + 'raw' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + ), + 4 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints).', + 'raw' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints). (alexandre-daubois)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags).', + 'raw' => 'Fixed bug GH-20374 (PHP with tidy and custom-tags). (ndossche)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).', + 'raw' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback). (ndossche)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix crash in property existence test.', + 'raw' => 'Fix crash in property existence test. (ndossche)', + ), + 1 => + array ( + 'message' => 'Don\'t truncate return value of zip_fread() with user sizes.', + 'raw' => 'Don\'t truncate return value of zip_fread() with user sizes. (ndossche)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + ), + ), + ), + ), + '8.4.15' => + array ( + 'date' => '20 Nov 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).', + 'raw' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference).', + 'raw' => 'Fixed bug GH-20073 (Assertion failure in WeakMap offset operations on reference). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20085 (Assertion failure when combining lazy object get_properties exception with foreach loop).', + 'raw' => 'Fixed bug GH-20085 (Assertion failure when combining lazy object get_properties exception with foreach loop). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown).', + 'raw' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).', + 'raw' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20270 (Broken parent hook call with named arguments).', + 'raw' => 'Fixed bug GH-20270 (Broken parent hook call with named arguments). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).', + 'raw' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval). (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (DOM classes do not allow __debugInfo() overrides to work). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20281 (\\Dom\\Document::getElementById() is inconsistent after nodes are removed).', + 'raw' => 'Fixed bug GH-20281 (\\Dom\\Document::getElementById() is inconsistent after nodes are removed). (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fix possible memory leak when tag is empty.', + 'raw' => 'Fix possible memory leak when tag is empty. (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution).', + 'raw' => 'Fixed bug GH-19974 (fpm_status_export_to_zval segfault for parallel execution). (Jakub Zelenka, txuna)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes).', + 'raw' => 'Fixed bug GH-20240 (FTP with SSL: ftp_fput(): Connection timed out on successful writes). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided).', + 'raw' => 'Fixed bug GH-20070 (Return type violation in imagefilter when an invalid filter is provided). (Girgias)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on error in locale_filter_matches().', + 'raw' => 'Fix memory leak on error in locale_filter_matches(). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix not thread safe schema/relaxng calls.', + 'raw' => 'Fix not thread safe schema/relaxng calls. (SpencerMalone, nielsdos)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)).', + 'raw' => 'Fixed bug GH-8978 (SSL certificate verification fails (port doubled)). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL).', + 'raw' => 'Fixed bug GH-20122 (getColumnMeta() for JSON-column in MySQL). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()).', + 'raw' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).', + 'raw' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15). (Arnaud, Shivam Mathur)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess).', + 'raw' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess). (Arnaud)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20012 (heap buffer overflow in jit).', + 'raw' => 'Fixed bug GH-20012 (heap buffer overflow in jit). (Arnaud)', + ), + 4 => + array ( + 'message' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments).', + 'raw' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments). (ilutov)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when first string conversion fails.', + 'raw' => 'Fix memory leak when first string conversion fails. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name.', + 'raw' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name. (Girgias, nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of argument in webPhar.', + 'raw' => 'Fix memory leak of argument in webPhar. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when setAlias() fails.', + 'raw' => 'Fix memory leak when setAlias() fails. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling.', + 'raw' => 'Fix a bunch of memory leaks in phar_parse_zipfile() error handling. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix file descriptor/memory leak when opening central fp fails.', + 'raw' => 'Fix file descriptor/memory leak when opening central fp fails. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails.', + 'raw' => 'Fix memleak+UAF when opening temp stream in buildFromDirectory() fails. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t.', + 'raw' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t. (Girgias)', + ), + 6 => + array ( + 'message' => 'Fix memory leak when openssl polyfill returns garbage.', + 'raw' => 'Fix memory leak when openssl polyfill returns garbage. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fix file descriptor leak in phar_zip_flush() on failure.', + 'raw' => 'Fix file descriptor leak in phar_zip_flush() on failure. (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive.', + 'raw' => 'Fix memory leak when opening temp file fails while trying to open gzip-compressed archive. (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects).', + 'raw' => 'Fixed bug GH-20302 (Freeing a phar alias may invalidate PharFileInfo objects). (nielsdos)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs.', + 'raw' => 'Fix Randomizer::__serialize() w.r.t. INDIRECTs. (nielsdos)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks).', + 'raw' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks). (alexandre-daubois)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work).', + 'raw' => 'Partially fixed bug GH-16317 (SimpleXML does not allow __debugInfo() overrides to work). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.', + 'raw' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64. (Jakub Zelenka)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19021 (improved tidyOptGetCategory detection).', + 'raw' => 'Fixed GH-19021 (improved tidyOptGetCategory detection). (arjendekorte, David Carlier, Peter Kokot)', + ), + 1 => + array ( + 'message' => 'Fix UAF in tidy when tidySetErrorBuffer() fails.', + 'raw' => 'Fix UAF in tidy when tidySetErrorBuffer() fails. (nielsdos)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available.', + 'raw' => 'Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available. (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).', + 'raw' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket). (dktapps)', + ), + ), + ), + ), + '8.4.14' => + array ( + 'date' => '09 Oct 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).', + 'raw' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks). (timwolla)', + ), + 1 => + array ( + 'message' => 'Fixed hard_timeout with --enable-zend-max-execution-timers.', + 'raw' => 'Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered).', + 'raw' => 'Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and exception are triggered). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash).', + 'raw' => 'Fixed bug GH-19653 (Closure named argument unpacking between temporary closures can cause a crash). (nielsdos, Arnaud, Bob)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).', + 'raw' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).', + 'raw' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN).', + 'raw' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.', + 'raw' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS. (leotaku)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.', + 'raw' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle. (timwolla)', + ), + 1 => + array ( + 'message' => 'Fix curl build and test failures with version 8.16.', + 'raw' => 'Fix curl build and test failures with version 8.16. (nielsdos, ilutov, Jakub Zelenka)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.', + 'raw' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals. (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix macro name clash on macOS.', + 'raw' => 'Fix macro name clash on macOS. (Ruoyu Zhong)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20022 (docker-php-ext-install DOM failed).', + 'raw' => 'Fixed bug GH-20022 (docker-php-ext-install DOM failed). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19955 (imagefttext() memory leak).', + 'raw' => 'Fixed GH-19955 (imagefttext() memory leak). (David Carlier)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter).', + 'raw' => 'Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress as parameter). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).', + 'raw' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19831 (function JIT may not deref property value).', + 'raw' => 'Fixed bug GH-19831 (function JIT may not deref property value). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()).', + 'raw' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()). (Arnaud)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak and invalid continuation after tar header writing fails.', + 'raw' => 'Fix memory leak and invalid continuation after tar header writing fails. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leaks when creating temp file fails when applying zip signature.', + 'raw' => 'Fix memory leaks when creating temp file fails when applying zip signature. (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)).', + 'raw' => 'Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19784 (SoapServer memory leak).', + 'raw' => 'Fixed bug GH-19784 (SoapServer memory leak). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash).', + 'raw' => 'Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion).', + 'raw' => 'Fixed bug GH-12265 (Cloning an object breaks serialization recursion). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data).', + 'raw' => 'Fixed bug GH-19701 (Serialize/deserialize loses some data). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).', + 'raw' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort).', + 'raw' => 'Fixed bug GH-20043 (array_unique assertion failure with RC1 array causing an exception on sort). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).', + 'raw' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set). (alexandre-daubois)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null).', + 'raw' => 'Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null). (nielsdos, divinity76)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main).', + 'raw' => 'Fixed bug GH-19248 (Use strerror_r instead of strerror in main). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed).', + 'raw' => 'Fixed bug GH-17345 (Bug #35916 was not completely fixed). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream.', + 'raw' => 'Fixed bug GH-19705 (segmentation when attempting to flush on non seekable stream. (bukka/David Carlier)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure).', + 'raw' => 'Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()).', + 'raw' => 'Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()).', + 'raw' => 'Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()). (David Carlier)', + ), + ), + ), + ), + '8.4.13' => + array ( + 'date' => '25 Sep 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).', + 'raw' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning). (ilutov)', + ), + 1 => + array ( + 'message' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow).', + 'raw' => 'Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).', + 'raw' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references). (Arnaud, timwolla)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-19613 (Stale array iterator pointer).', + 'raw' => 'Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).', + 'raw' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).', + 'raw' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant).', + 'raw' => 'Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant). (nielsdos)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).', + 'raw' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address). (alexandre-daubois)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.', + 'raw' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset. (ilutov)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19706 (dba stream resource mismanagement).', + 'raw' => 'Fixed bug GH-19706 (dba stream resource mismanagement). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug).', + 'raw' => 'Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed failed debug assertion when php_admin_value setting fails.', + 'raw' => 'Fixed failed debug assertion when php_admin_value setting fails. (ilutov)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).', + 'raw' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter). (alexandre-daubois)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD).', + 'raw' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD). (Arnaud)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure).', + 'raw' => 'Fixed bug GH-19245 (Success error message on TLS stream accept failure). (Jakub Zelenka)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections).', + 'raw' => 'Fixed bug GH-19485 (potential use after free when using persistent pgsql connections). (Mark Karpeles)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leaks when verifying OpenSSL signature.', + 'raw' => 'Fixed memory leaks when verifying OpenSSL signature. (Girgias)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in phar tar temporary file error handling code.', + 'raw' => 'Fix memory leak in phar tar temporary file error handling code. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix metadata leak when phar convert logic fails.', + 'raw' => 'Fix metadata leak when phar convert logic fails. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix memory leak on failure in phar_convert_to_other().', + 'raw' => 'Fix memory leak on failure in phar_convert_to_other(). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF).', + 'raw' => 'Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16649 (UAF during array_splice).', + 'raw' => 'Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).', + 'raw' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator). (alexandre-daubois)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().', + 'raw' => 'Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix OSS-Fuzz #385993744.', + 'raw' => 'Fix OSS-Fuzz #385993744. (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in zip when encountering empty glob result.', + 'raw' => 'Fix memory leak in zip when encountering empty glob result. (nielsdos)', + ), + ), + ), + ), + '8.4.12' => + array ( + 'date' => '28 Aug 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro.', + 'raw' => 'Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro. (psumbera)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19053 (Duplicate property slot with hooks and interface property).', + 'raw' => 'Fixed bug GH-19053 (Duplicate property slot with hooks and interface property). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19044 (Protected properties are not scoped according to their prototype).', + 'raw' => 'Fixed bug GH-19044 (Protected properties are not scoped according to their prototype). (Bob)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking).', + 'raw' => 'Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument unpacking). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr).', + 'raw' => 'Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in binary const expr). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19305 (Operands may be being released during comparison).', + 'raw' => 'Fixed bug GH-19305 (Operands may be being released during comparison). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure).', + 'raw' => 'Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array causes assertion failure). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).', + 'raw' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator). (Arnaud)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).', + 'raw' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes). (Arnaud)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-19280 (Stale array iterator position on rehashing).', + 'raw' => 'Fixed bug GH-19280 (Stale array iterator position on rehashing). (ilutov)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally).', + 'raw' => 'Fixed bug GH-18736 (Circumvented type check with return by ref + finally). (ilutov)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming).', + 'raw' => 'Fixed bug GH-19065 (Long match statement can segfault compiler during recursive SSA renaming). (nielsdos, Arnaud)', + ), + ), + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19371 (integer overflow in calendar.c).', + 'raw' => 'Fixed bug GH-19371 (integer overflow in calendar.c). (nielsdos)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix incorrect comparison with result of php_stream_can_cast().', + 'raw' => 'Fix incorrect comparison with result of php_stream_can_cast(). (Girgias)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fix crash on clone failure.', + 'raw' => 'Fix crash on clone failure. (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memleak on failure in collator_get_sort_key().', + 'raw' => 'Fix memleak on failure in collator_get_sort_key(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix return value on failure for resourcebundle count handler.', + 'raw' => 'Fix return value on failure for resourcebundle count handler. (Girgias)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (additional inheriting of TLS int options).', + 'raw' => 'Fixed bug GH-18529 (additional inheriting of TLS int options). (Jakub Zelenka)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free).', + 'raw' => 'Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by php_libxml_node_free). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown).', + 'raw' => 'Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Reset global pointers to prevent use-after-free in zend_jit_status().', + 'raw' => 'Reset global pointers to prevent use-after-free in zend_jit_status(). (Florian Engelhardt)', + ), + 1 => + array ( + 'message' => 'Fix issue with JIT restart and hooks.', + 'raw' => 'Fix issue with JIT restart and hooks. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix crash with dynamic function defs in hooks during preload.', + 'raw' => 'Fix crash with dynamic function defs in hooks during preload. (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check).', + 'raw' => 'Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() return value check). (nielsdos, botovq)', + ), + 1 => + array ( + 'message' => 'Fix error return check of EVP_CIPHER_CTX_ctrl().', + 'raw' => 'Fix error return check of EVP_CIPHER_CTX_ctrl(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param).', + 'raw' => 'Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low key_length param). (Jakub Zelenka)', + ), + ), + 'pdo pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper.', + 'raw' => 'Fixed dangling pointer access on _pdo_pgsql_trim_message helper. (dixyes)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref).', + 'raw' => 'Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 in soap_check_zval_ref). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fix some potential crashes on incorrect argument value.', + 'raw' => 'Fix some potential crashes on incorrect argument value. (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache).', + 'raw' => 'Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fix theoretical issues with hrtime() not being available.', + 'raw' => 'Fix theoretical issues with hrtime() not being available. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks).', + 'raw' => 'Fixed bug GH-19300 (Nested array_multisort invocation with error breaks). (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Free opened_path when opened_path_len >= MAXPATHLEN.', + 'raw' => 'Free opened_path when opened_path_len >= MAXPATHLEN. (dixyes)', + ), + ), + ), + ), + '8.4.11' => + array ( + 'date' => '31 Jul 2025', + 'modules' => + array ( + 'calendar' => + array ( + 0 => + array ( + 'message' => 'Fixed jewishtojd overflow on year argument.', + 'raw' => 'Fixed jewishtojd overflow on year argument. (David Carlier)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order).', + 'raw' => 'Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction order). (Daniil Gentili)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18907 (Leak when creating cycle in hook).', + 'raw' => 'Fixed bug GH-18907 (Leak when creating cycle in hook). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #427814456.', + 'raw' => 'Fix OSS-Fuzz #427814456. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix OSS-Fuzz #428983568 and #428760800.', + 'raw' => 'Fix OSS-Fuzz #428983568 and #428760800. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when returning refcounted value from curl callback.', + 'raw' => 'Fix memory leaks when returning refcounted value from curl callback. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Remove incorrect string release.', + 'raw' => 'Remove incorrect string release. (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18979 (Dom\\XMLDocument::createComment() triggers undefined behavior with null byte).', + 'raw' => 'Fixed bug GH-18979 (Dom\\XMLDocument::createComment() triggers undefined behavior with null byte). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID.', + 'raw' => 'Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty request OID. (David Carlier)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18901 (integer overflow mb_split).', + 'raw' => 'Fixed bug GH-18901 (integer overflow mb_split). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT).', + 'raw' => 'Fixed bug GH-18639 (Internal class aliases can break preloading + JIT). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18899 (JIT function crash when emitting undefined variable warning and opline is not set yet).', + 'raw' => 'Fixed bug GH-18899 (JIT function crash when emitting undefined variable warning and opline is not set yet). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c).', + 'raw' => 'Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 in ext/opcache/jit/zend_jit.c). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18898 (SEGV zend_jit_op_array_hot with property hooks and preloading).', + 'raw' => 'Fixed bug GH-18898 (SEGV zend_jit_op_array_hot with property hooks and preloading). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server).', + 'raw' => 'Fixed bug #80770 (It is not possible to get client peer certificate with stream_socket_server). (Jakub Zelenka)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers).', + 'raw' => 'Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or pcntl_forkx() with zend-max-execution-timers). (Arnaud)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix stream double free in phar.', + 'raw' => 'Fix stream double free in phar. (nielsdos, dixyes)', + ), + 1 => + array ( + 'message' => 'Fix phar crash and file corruption with SplFileObject.', + 'raw' => 'Fix phar crash and file corruption with SplFileObject. (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction).', + 'raw' => 'Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing on object destruction). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when URL parsing fails in redirect.', + 'raw' => 'Fix memory leak when URL parsing fails in redirect. (Girgias)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash).', + 'raw' => 'Fixed bug GH-19094 (Attaching class with no Iterator implementation to MultipleIterator causes crash). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix misleading errors in printf().', + 'raw' => 'Fix misleading errors in printf(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix RCN violations in array functions.', + 'raw' => 'Fix RCN violations in array functions. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value.', + 'raw' => 'Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value. (David Carlier)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error).', + 'raw' => 'Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter fatal error). (Jakub Zelenka)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix leak when path is too long in ZipArchive::extractTo().', + 'raw' => 'Fix leak when path is too long in ZipArchive::extractTo(). (nielsdos)', + ), + ), + ), + ), + '8.4.10' => + array ( + 'date' => '03 Jul 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18641 (Accessing a BcMath\\Number property by ref crashes).', + 'raw' => 'Fixed bug GH-18641 (Accessing a BcMath\\Number property by ref crashes). (nielsdos)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-17711 and GH-18022 (Infinite recursion on deprecated attribute evaluation) and GH-18464 (Recursion protection for deprecation constants not released on bailout).', + 'raw' => 'Fixed bugs GH-17711 and GH-18022 (Infinite recursion on deprecated attribute evaluation) and GH-18464 (Recursion protection for deprecation constants not released on bailout). (DanielEScherzer and ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved).', + 'raw' => 'Fixed GH-18695 (zend_ast_export() - float number is not preserved). (Oleg Efimov)', + ), + 2 => + array ( + 'message' => 'Fix handling of references in zval_try_get_long().', + 'raw' => 'Fix handling of references in zval_try_get_long(). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Do not delete main chunk in zend_gc.', + 'raw' => 'Do not delete main chunk in zend_gc. (danog, Arnaud)', + ), + 4 => + array ( + 'message' => 'Fix compile issues with zend_alloc and some non-default options.', + 'raw' => 'Fix compile issues with zend_alloc and some non-default options. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when setting a list via curl_setopt fails.', + 'raw' => 'Fix memory leak when setting a list via curl_setopt fails. (nielsdos)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix leaks with multiple calls to DatePeriod iterator current().', + 'raw' => 'Fix leaks with multiple calls to DatePeriod iterator current(). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18744 (classList works not correctly if copy HTMLElement by clone keyword).', + 'raw' => 'Fixed bug GH-18744 (classList works not correctly if copy HTMLElement by clone keyword). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18662 (fpm_get_status segfault).', + 'raw' => 'Fixed GH-18662 (fpm_get_status segfault). (txuna)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-14551 (PGO build fails with xxhash).', + 'raw' => 'Fixed bug GH-14551 (PGO build fails with xxhash). (nielsdos)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in intl_datetime_decompose() on failure.', + 'raw' => 'Fix memory leak in intl_datetime_decompose() on failure. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in locale lookup on failure.', + 'raw' => 'Fix memory leak in locale lookup on failure. (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22).', + 'raw' => 'Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22). (nielsdos, Arnaud)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on php_odbc_fetch_hash() failure.', + 'raw' => 'Fix memory leak on php_odbc_fetch_hash() failure. (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure.', + 'raw' => 'Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #74796 (Requests through http proxy set peer name).', + 'raw' => 'Fixed bug #74796 (Requests through http proxy set peer name). (Jakub Zelenka)', + ), + ), + 'pdo odbc' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak if WideCharToMultiByte() fails.', + 'raw' => 'Fix memory leak if WideCharToMultiByte() fails. (nielsdos)', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak with Pdo_Sqlite::createCollation when the callback has an incorrect return type.', + 'raw' => 'Fixed memory leak with Pdo_Sqlite::createCollation when the callback has an incorrect return type. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Add missing filter cleanups on phar failure.', + 'raw' => 'Add missing filter cleanups on phar failure. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek).', + 'raw' => 'Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0.', + 'raw' => 'Fix \'phpdbg --help\' segfault on shutdown with USE_ZEND_ALLOC=0. (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query().', + 'raw' => 'Fix warning not being emitted when failure to cancel a query with pg_cancel_query(). (Girgias)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fix reference type confusion and leak in user random engine.', + 'raw' => 'Fix reference type confusion and leak in user random engine. (nielsdos, timwolla)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when calloc() fails in php_readline_completion_cb().', + 'raw' => 'Fix memory leak when calloc() fails in php_readline_completion_cb(). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18597 (Heap-buffer-overflow in zend_alloc.c when assigning string with UTF-8 bytes).', + 'raw' => 'Fixed bug GH-18597 (Heap-buffer-overflow in zend_alloc.c when assigning string with UTF-8 bytes). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in php_http.c when call_user_function() fails.', + 'raw' => 'Fix memory leaks in php_http.c when call_user_function() fails. (nielsdos)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in tidy output handler on error.', + 'raw' => 'Fix memory leak in tidy output handler on error. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory.', + 'raw' => 'Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory. (David Carlier)', + ), + ), + ), + ), + '8.4.8' => + array ( + 'date' => '06 Jun 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments).', + 'raw' => 'Fixed GH-18480 (array_splice with large values for offset/length arguments). (nielsdos/David Carlier)', + ), + 1 => + array ( + 'message' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow).', + 'raw' => 'Partially fixed GH-18572 (nested object comparisons leading to stack overflow). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed OSS-Fuzz #417078295.', + 'raw' => 'Fixed OSS-Fuzz #417078295. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed OSS-Fuzz #418106144.', + 'raw' => 'Fixed OSS-Fuzz #418106144. (nielsdos)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL).', + 'raw' => 'Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL). (David Carlier)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) .', + 'raw' => 'Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct) (JiriJozif).', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset).', + 'raw' => 'Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset). (nielsdos/David Carlier)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Backport lexbor/lexbor#274.', + 'raw' => 'Backport lexbor/lexbor#274. (nielsdos, alexpeattie)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix various reference issues.', + 'raw' => 'Fix various reference issues. (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()).', + 'raw' => 'Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()). (Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size).', + 'raw' => 'Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18297 (Exception not handled when jit guard is triggered).', + 'raw' => 'Fixed bug GH-18297 (Exception not handled when jit guard is triggered). (Arnaud)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18408 (Snapshotted poly_func / poly_this may be spilled).', + 'raw' => 'Fixed bug GH-18408 (Snapshotted poly_func / poly_this may be spilled). (Arnaud)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure).', + 'raw' => 'Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-18534 (FPM exit code 70 with enabled opcache and hooked properties in traits).', + 'raw' => 'Fixed bug GH-18534 (FPM exit code 70 with enabled opcache and hooked properties in traits). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fix leak of accel_globals->key.', + 'raw' => 'Fix leak of accel_globals->key. (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix missing checks against php_set_blocking() in xp_ssl.c.', + 'raw' => 'Fix missing checks against php_set_blocking() in xp_ssl.c. (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator).', + 'raw' => 'Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails).', + 'raw' => 'Fixed bug GH-17403 (Potential deadlock when putenv fails). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18400 (http_build_query type error is inaccurate).', + 'raw' => 'Fixed bug GH-18400 (http_build_query type error is inaccurate). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions).', + 'raw' => 'Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions). (timwolla)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fix leak+crash with sapi_windows_set_ctrl_handler().', + 'raw' => 'Fix leak+crash with sapi_windows_set_ctrl_handler(). (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work).', + 'raw' => 'Fixed bug GH-18431 (Registering ZIP progress callback twice doesn\'t work). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern).', + 'raw' => 'Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern). (nielsdos)', + ), + ), + ), + ), + '8.4.7' => + array ( + 'date' => '24 Apr 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18038 (Lazy proxy calls magic methods twice).', + 'raw' => 'Fixed bug GH-18038 (Lazy proxy calls magic methods twice). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS).', + 'raw' => 'Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18268 (Segfault in array_walk() on object with added property hooks).', + 'raw' => 'Fixed bug GH-18268 (Segfault in array_walk() on object with added property hooks). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault).', + 'raw' => 'Fixed bug GH-18304 (Changing the properties of a DateInterval through dynamic properties triggers a SegFault). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix some leaks in php_scandir.', + 'raw' => 'Fix some leaks in php_scandir. (nielsdos)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'FIxed bug GH-18247 dba_popen() memory leak on invalid path.', + 'raw' => 'FIxed bug GH-18247 dba_popen() memory leak on invalid path. (David Carlier)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18309 (ipv6 filter integer overflow).', + 'raw' => 'Fixed bug GH-18309 (ipv6 filter integer overflow). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop().', + 'raw' => 'Fixed imagecrop() overflow with rect argument with x/width y/heigh usage in gdImageCrop(). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value.', + 'raw' => 'Fixed GH-18243 imagettftext() overflow/underflow on font size value. (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix reference support for intltz_get_offset().', + 'raw' => 'Fix reference support for intltz_get_offset(). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden).', + 'raw' => 'Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can\'t be overridden). (Remi)', + ), + 1 => + array ( + 'message' => 'Fix NULL deref on high modification key.', + 'raw' => 'Fix NULL deref on high modification key. (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message.', + 'raw' => 'Fixed custom external entity loader returning an invalid resource leading to a confusing TypeError message. (Girgias)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18294 (assertion failure zend_jit_ir.c).', + 'raw' => 'Fixed bug GH-18294 (assertion failure zend_jit_ir.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-18289 (Fix segfault in JIT).', + 'raw' => 'Fixed bug GH-18289 (Fix segfault in JIT). (Florian Engelhardt)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18136 (tracing JIT floating point register clobbering on Windows and ARM64).', + 'raw' => 'Fixed bug GH-18136 (tracing JIT floating point register clobbering on Windows and ARM64). (nielsdos)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in openssl_sign() when passing invalid algorithm.', + 'raw' => 'Fix memory leak in openssl_sign() when passing invalid algorithm. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix potential leaks when writing to BIO fails.', + 'raw' => 'Fix potential leaks when writing to BIO fails. (nielsdos)', + ), + ), + 'pdo firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18276 (persistent connection - "zend_mm_heap corrupted" with setAttribute()) .', + 'raw' => 'Fixed bug GH-18276 (persistent connection - "zend_mm_heap corrupted" with setAttribute()) (SakiTakamachi).', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17383 (PDOException has wrong code and message since PHP 8.4) .', + 'raw' => 'Fixed bug GH-17383 (PDOException has wrong code and message since PHP 8.4) (SakiTakamachi).', + ), + ), + 'pdo sqlite' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak on error return of collation callback.', + 'raw' => 'Fix memory leak on error return of collation callback. (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fix uouv in pg_put_copy_end().', + 'raw' => 'Fix uouv in pg_put_copy_end(). (nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory).', + 'raw' => 'Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()).', + 'raw' => 'Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fix resource leak in iptcembed() on error.', + 'raw' => 'Fix resource leak in iptcembed() on error. (nielsdos)', + ), + ), + 'tests' => + array ( + 0 => + array ( + 'message' => 'Address deprecated PHP 8.4 session options to prevent test failures.', + 'raw' => 'Address deprecated PHP 8.4 session options to prevent test failures. (willvar)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix uouv when handling empty options in ZipArchive::addGlob().', + 'raw' => 'Fix uouv when handling empty options in ZipArchive::addGlob(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob().', + 'raw' => 'Fix memory leak when handling a too long path in ZipArchive::addGlob(). (nielsdos)', + ), + ), + ), + ), + '8.4.6' => + array ( + 'date' => '10 Apr 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed pointer subtraction for scale.', + 'raw' => 'Fixed pointer subtraction for scale. (SakiTakamachi)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed property hook backing value access in multi-level inheritance.', + 'raw' => 'Fixed property hook backing value access in multi-level inheritance. (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed accidentally inherited default value in overridden virtual properties.', + 'raw' => 'Fixed accidentally inherited default value in overridden virtual properties. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class).', + 'raw' => 'Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17913 (ReflectionFunction::isDeprecated() returns incorrect results for closures created from magic __call()).', + 'raw' => 'Fixed bug GH-17913 (ReflectionFunction::isDeprecated() returns incorrect results for closures created from magic __call()). (timwolla)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks).', + 'raw' => 'Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in get_object_vars()).', + 'raw' => 'Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in get_object_vars()). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache).', + 'raw' => 'Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again).', + 'raw' => 'Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again). (ilutov)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction).', + 'raw' => 'Fixed bug GH-17961 (use-after-free during dl()\'ed module class destruction). (Arnaud)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown).', + 'raw' => 'Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown). (Arnaud)', + ), + 10 => + array ( + 'message' => 'Fixed OSS-Fuzz #403308724.', + 'raw' => 'Fixed OSS-Fuzz #403308724. (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\').', + 'raw' => 'Fixed bug GH-13193 again (Significant performance degradation in \'foreach\'). (nielsdos)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed assertion violation when opening the same file with dba_open multiple times.', + 'raw' => 'Fixed assertion violation when opening the same file with dba_open multiple times. (chschneider)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17991 (Assertion failure dom_attr_value_write).', + 'raw' => 'Fixed bug GH-17991 (Assertion failure dom_attr_value_write). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix weird unpack behaviour in DOM.', + 'raw' => 'Fix weird unpack behaviour in DOM. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased).', + 'raw' => 'Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix xinclude destruction of live attributes.', + 'raw' => 'Fix xinclude destruction of live attributes. (nielsdos)', + ), + ), + 'fuzzer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI).', + 'raw' => 'Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI). (Lung-Alexandra)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17984 (calls with arguments as array with references).', + 'raw' => 'Fixed bug GH-17984 (calls with arguments as array with references). (David Carlier)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing).', + 'raw' => 'Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes).', + 'raw' => 'Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT).', + 'raw' => 'Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17966 (Symfony JIT 1205 assertion failure).', + 'raw' => 'Fixed bug GH-17966 (Symfony JIT 1205 assertion failure). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-18037 (SEGV Zend/zend_execute.c).', + 'raw' => 'Fixed bug GH-18037 (SEGV Zend/zend_execute.c). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken).', + 'raw' => 'Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c).', + 'raw' => 'Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-18112 (NULL access with preloading and INI option).', + 'raw' => 'Fixed bug GH-18112 (NULL access with preloading and INI option). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table).', + 'raw' => 'Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when destroying PDORow.', + 'raw' => 'Fix memory leak when destroying PDORow. (nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18148 (pg_copy_from() regression with explicit \\n terminator due to wrong offset check).', + 'raw' => 'Fixed bug GH-18148 (pg_copy_from() regression with explicit \\n terminator due to wrong offset check). (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks in array_any() / array_all().', + 'raw' => 'Fix memory leaks in array_any() / array_all(). (nielsdos)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) .', + 'raw' => 'Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault) . (Remi)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject).', + 'raw' => 'Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject). (nielsdos)', + ), + ), + 'treewide' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()).', + 'raw' => 'Fixed bug GH-17736 (Assertion failure zend_reference_destroy()). (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings).', + 'raw' => 'Fixed bug GH-17836 (zend_vm_gen.php shouldn\'t break on Windows line endings). (DanielEScherzer)', + ), + ), + ), + ), + '8.4.5' => + array ( + 'date' => '27 Feb 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17398 (bcmul memory leak).', + 'raw' => 'Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation).', + 'raw' => 'Fixed bug GH-17623 (Broken stack overflow detection for variable compilation). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account).', + 'raw' => 'Fixed bug GH-17618 (UnhandledMatchError does not take zend.exception_ignore_args=1 into account). (timwolla)', + ), + 2 => + array ( + 'message' => 'Fix fallback paths in fast_long_{add,sub}_function.', + 'raw' => 'Fix fallback paths in fast_long_{add,sub}_function. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value by reference).', + 'raw' => 'Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value by reference). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed).', + 'raw' => 'Fixed bug GH-17718 (Calling static methods on an interface that has `__callStatic` is allowed). (timwolla)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods may call hooks of overridden properties).', + 'raw' => 'Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods may call hooks of overridden properties). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-17916 (Final abstract properties should error).', + 'raw' => 'Fixed bug GH-17916 (Final abstract properties should error). (DanielEScherzer)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from 8.4.3 to 8.4.4).', + 'raw' => 'Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from 8.4.3 to 8.4.4). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235)', + 'raw' => 'Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown causes Use-After-Free). (CVE-2024-11235) (ilutov)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17609 (Typo in error message: Dom\\NO_DEFAULT_NS instead of Dom\\HTML_NO_DEFAULT_NS).', + 'raw' => 'Fixed bug GH-17609 (Typo in error message: Dom\\NO_DEFAULT_NS instead of Dom\\HTML_NO_DEFAULT_NS). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17802 (\\Dom\\HTMLDocument querySelector attribute name is case sensitive in HTML).', + 'raw' => 'Fixed bug GH-17802 (\\Dom\\HTMLDocument querySelector attribute name is case sensitive in HTML). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17847 (xinclude destroys live node).', + 'raw' => 'Fixed bug GH-17847 (xinclude destroys live node). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix using Dom\\Node with Dom\\XPath callbacks.', + 'raw' => 'Fix using Dom\\Node with Dom\\XPath callbacks. (nielsdos)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fix FFI Parsing of Pointer Declaration Lists.', + 'raw' => 'Fix FFI Parsing of Pointer Declaration Lists. (davnotdev)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).', + 'raw' => 'Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17703 (imagescale with both width and height negative values triggers only an Exception on width).', + 'raw' => 'Fixed bug GH-17703 (imagescale with both width and height negative values triggers only an Exception on width). (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).', + 'raw' => 'Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M). (David Carlier)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys).', + 'raw' => 'Fixed bug GH-17704 (ldap_search fails when $attributes contains a non-packed array with numerical keys). (nielsdos, 7u83)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714).', + 'raw' => 'Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219)', + 'raw' => 'Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header when requesting a redirected resource). (CVE-2025-1219) (timwolla)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).', + 'raw' => 'Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash).', + 'raw' => 'Fixed bug GH-17654 (Multiple classes using same trait causes function JIT crash). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17577 (JIT packed type guard crash).', + 'raw' => 'Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17747 (Exception on reading property in register-based FETCH_OBJ_R breaks JIT).', + 'raw' => 'Fixed bug GH-17747 (Exception on reading property in register-based FETCH_OBJ_R breaks JIT). (Dmitry, nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17715 (Null pointer deref in observer API when calling cases() method on preloaded enum).', + 'raw' => 'Fixed bug GH-17715 (Null pointer deref in observer API when calling cases() method on preloaded enum). (Bob)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4).', + 'raw' => 'Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4). (nielsdos)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).', + 'raw' => 'Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults). (cmb)', + ), + 1 => + array ( + 'message' => 'Fix cycle leak in sqlite3 setAuthorizer().', + 'raw' => 'Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix memory leaks in pdo_sqlite callback registration.', + 'raw' => 'Fix memory leaks in pdo_sqlite callback registration. (nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17808: PharFileInfo refcount bug.', + 'raw' => 'Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer).', + 'raw' => 'Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in phpdbg calling registered function.', + 'raw' => 'Fix memory leak in phpdbg calling registered function. (nielsdos)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).', + 'raw' => 'Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c). (DanielEScherzer)', + ), + 1 => + array ( + 'message' => 'Fixed missing final and abstract flags when dumping properties.', + 'raw' => 'Fixed missing final and abstract flags when dumping properties. (DanielEScherzer)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths).', + 'raw' => 'Fixed bug #72666 (stat cache clearing inconsistent between file:// paths and plain paths). (Jakub Zelenka)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c).', + 'raw' => 'Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak on overflow in _php_stream_scandir().', + 'raw' => 'Fix memory leak on overflow in _php_stream_scandir(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736)', + 'raw' => 'Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit basic auth header). (CVE-2025-1736) (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861)', + 'raw' => 'Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734)', + 'raw' => 'Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers without colon). (CVE-2025-1734) (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217)', + 'raw' => 'Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not handle folded headers). (CVE-2025-1217) (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed phpize for Windows 11 (24H2).', + 'raw' => 'Fixed phpize for Windows 11 (24H2). (bwoebi)', + ), + 1 => + array ( + 'message' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).', + 'raw' => 'Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib). (cmb)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).', + 'raw' => 'Fixed bug GH-17745 (zlib extension incorrectly handles object arguments). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak when encoding check fails.', + 'raw' => 'Fix memory leak when encoding check fails. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix zlib support for large files.', + 'raw' => 'Fix zlib support for large files. (nielsdos)', + ), + ), + ), + ), + '8.4.4' => + array ( + 'date' => '13 Feb 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17234 (Numeric parent hook call fails with assertion).', + 'raw' => 'Fixed bug GH-17234 (Numeric parent hook call fails with assertion). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b).', + 'raw' => 'Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting with 0x0b). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0).', + 'raw' => 'Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17222 (__PROPERTY__ magic constant does not work in all constant expression contexts).', + 'raw' => 'Fixed bug GH-17222 (__PROPERTY__ magic constant does not work in all constant expression contexts). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final).', + 'raw' => 'Fixed bug GH-17214 (Relax final+private warning for trait methods with inherited final). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed NULL arithmetic during system program execution on Windows.', + 'raw' => 'Fixed NULL arithmetic during system program execution on Windows. (cmb, nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed potential OOB when checking for trailing spaces on Windows.', + 'raw' => 'Fixed potential OOB when checking for trailing spaces on Windows. (cmb)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c).', + 'raw' => 'Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c). (nielsdos, ilutov)', + ), + 8 => + array ( + 'message' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK.', + 'raw' => 'Fix may_have_extra_named_args flag for ZEND_AST_UNPACK. (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fix NULL arithmetic in System V shared memory emulation for Windows.', + 'raw' => 'Fix NULL arithmetic in System V shared memory emulation for Windows. (cmb)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-17597 (#[\\Deprecated] does not work for __call() and __callStatic()).', + 'raw' => 'Fixed bug GH-17597 (#[\\Deprecated] does not work for __call() and __callStatic()). (timwolla)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17397 (Assertion failure ext/dom/php_dom.c).', + 'raw' => 'Fixed bug GH-17397 (Assertion failure ext/dom/php_dom.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17486 (Incorrect error line numbers reported in Dom\\HTMLDocument::createFromString).', + 'raw' => 'Fixed bug GH-17486 (Incorrect error line numbers reported in Dom\\HTMLDocument::createFromString). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17481 (UTF-8 corruption in \\Dom\\HTMLDocument).', + 'raw' => 'Fixed bug GH-17481 (UTF-8 corruption in \\Dom\\HTMLDocument). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype).', + 'raw' => 'Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17485 (upstream fix, Self-closing tag on void elements shouldn\'t be a parse error/warning in \\Dom\\HTMLDocument).', + 'raw' => 'Fixed bug GH-17485 (upstream fix, Self-closing tag on void elements shouldn\'t be a parse error/warning in \\Dom\\HTMLDocument). (lexborisov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17572 (getElementsByTagName returns collections with tagName-based indexing).', + 'raw' => 'Fixed bug GH-17572 (getElementsByTagName returns collections with tagName-based indexing). (nielsdos)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in enchant when passing null bytes.', + 'raw' => 'Fix crashes in enchant when passing null bytes. (nielsdos)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR).', + 'raw' => 'Fixed bug GH-16800 (ftp functions can abort with EINTR). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency).', + 'raw' => 'Fixed bug GH-17349 (Tiled truecolor filling looses single color transparency). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images).', + 'raw' => 'Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette images). (cmb)', + ), + 2 => + array ( + 'message' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate).', + 'raw' => 'Ported fix for libgd 223 (gdImageRotateGeneric() does not properly interpolate). (cmb)', + ), + 3 => + array ( + 'message' => 'Added support for reading GIFs without colormap to bundled libgd.', + 'raw' => 'Added support for reading GIFs without colormap to bundled libgd. (Andrew Burley, cmb)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17400 (bindtextdomain SEGV on invalid domain).', + 'raw' => 'Fixed bug GH-17400 (bindtextdomain SEGV on invalid domain). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-11874 (intl causing segfault in docker images).', + 'raw' => 'Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT).', + 'raw' => 'Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17307 (Internal closure causes JIT failure).', + 'raw' => 'Fixed bug GH-17307 (Internal closure causes JIT failure). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940).', + 'raw' => 'Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding).', + 'raw' => 'Fixed bug GH-17564 (Potential UB when reading from / writing to struct padding). (ilutov)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for the cpu mask argument with entries type different than int/string.', + 'raw' => 'Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for the cpu mask argument with entries type different than int/string. (David Carlier)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17122 (memory leak in regex).', + 'raw' => 'Fixed bug GH-17122 (memory leak in regex). (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed a memory leak when the GC is used to free a PDOStatment.', + 'raw' => 'Fixed a memory leak when the GC is used to free a PDOStatment. (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed a crash in the PDO Firebird Statement destructor.', + 'raw' => 'Fixed a crash in the PDO Firebird Statement destructor. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed UAFs when changing default fetch class ctor args.', + 'raw' => 'Fixed UAFs when changing default fetch class ctor args. (Girgias, nielsdos)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed build failure when the constant PGRES_TUPLES_CHUNK is not present in the system.', + 'raw' => 'Fixed build failure when the constant PGRES_TUPLES_CHUNK is not present in the system. (chschneider)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17518 (offset overflow phar extractTo()).', + 'raw' => 'Fixed bug GH-17518 (offset overflow phar extractTo()). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fix crashes in function registration + test.', + 'raw' => 'Fix crashes in function registration + test. (nielsdos, Girgias)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fix type confusion with session SID constant.', + 'raw' => 'Fix type confusion with session SID constant. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset).', + 'raw' => 'Fixed bug GH-17541 (ext/session NULL pointer dereferencement during ID reset). (Girgias)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730).', + 'raw' => 'Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730). (nielsdos)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session).', + 'raw' => 'Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15833 (Segmentation fault (access null pointer) in ext/spl/spl_array.c).', + 'raw' => 'Fixed bug GH-15833 (Segmentation fault (access null pointer) in ext/spl/spl_array.c). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17516 (SplFileTempObject::getPathInfo() Undefined behavior on invalid class).', + 'raw' => 'Fixed bug GH-17516 (SplFileTempObject::getPathInfo() Undefined behavior on invalid class). (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17447 (Assertion failure when array popping a self addressing variable).', + 'raw' => 'Fixed bug GH-17447 (Assertion failure when array popping a self addressing variable). (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed clang compiler detection.', + 'raw' => 'Fixed clang compiler detection. (cmb)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry).', + 'raw' => 'Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry). (nielsdos)', + ), + ), + ), + ), + '8.4.3' => + array ( + 'date' => '16 Jan 2025', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17049 (Correctly compare 0 and -0).', + 'raw' => 'Fixed bug GH-17049 (Correctly compare 0 and -0). (Saki Takamachi)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17061 (Now Number::round() does not remove trailing zeros).', + 'raw' => 'Fixed bug GH-17061 (Now Number::round() does not remove trailing zeros). (Saki Takamachi)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17064 (Correctly round rounding mode with zero edge case).', + 'raw' => 'Fixed bug GH-17064 (Correctly round rounding mode with zero edge case). (Saki Takamachi)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17275 (Fixed the calculation logic of dividend scale).', + 'raw' => 'Fixed bug GH-17275 (Fixed the calculation logic of dividend scale). (Saki Takamachi)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table).', + 'raw' => 'Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object iterator properties table). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed unstable get_iterator pointer for hooked classes in shm on Windows.', + 'raw' => 'Fixed unstable get_iterator pointer for hooked classes in shm on Windows. (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization).', + 'raw' => 'Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF).', + 'raw' => 'Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly).', + 'raw' => 'Fixed bug GH-17101 (AST->string does not reproduce constructor property promotion correctly). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator).', + 'raw' => 'Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator). (ilutov)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-17216 (Trampoline crash on error).', + 'raw' => 'Fixed bug GH-17216 (Trampoline crash on error). (nielsdos)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Skip test if inifile is disabled.', + 'raw' => 'Skip test if inifile is disabled. (orlitzky)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17145 (DOM memory leak).', + 'raw' => 'Fixed bug GH-17145 (DOM memory leak). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17201 (Dom\\TokenList issues with interned string replace).', + 'raw' => 'Fixed bug GH-17201 (Dom\\TokenList issues with interned string replace). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17224 (UAF in importNode).', + 'raw' => 'Fixed bug GH-17224 (UAF in importNode). (nielsdos)', + ), + ), + 'embed' => + array ( + 0 => + array ( + 'message' => 'Make build command for program using embed portable.', + 'raw' => 'Make build command for program using embed portable. (dunglas)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #79075 (FFI header parser chokes on comments).', + 'raw' => 'Fixed bug #79075 (FFI header parser chokes on comments). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure.', + 'raw' => 'Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues).', + 'raw' => 'Fixed bug GH-16013 and bug #80857 (Big endian issues). (Dmitry, nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type).', + 'raw' => 'Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)).', + 'raw' => 'Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already locked)). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (cmb, nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits).', + 'raw' => 'Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c).', + 'raw' => 'Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c). (nielsdos, cmb)', + ), + 1 => + array ( + 'message' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs).', + 'raw' => 'Ported fix for libgd bug 276 (Sometimes pixels are missing when storing images as BMPs). (cmb)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()).', + 'raw' => 'Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c bindtextdomain()). (Michael Orlitzky)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17047 (UAF on iconv filter failure).', + 'raw' => 'Fixed bug GH-17047 (UAF on iconv filter failure). (nielsdos)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes).', + 'raw' => 'Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes). (nielsdos)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling).', + 'raw' => 'Fixed bug GH-17223 (Memory leak in libxml encoding handling). (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17112 (Macro redefinitions).', + 'raw' => 'Fixed bug GH-17112 (Macro redefinitions). (nielsdos, cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'opcache_get_configuration() properly reports jit_prof_threshold.', + 'raw' => 'opcache_get_configuration() properly reports jit_prof_threshold. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17140 (Assertion failure in JIT trace exit with ZEND_FETCH_DIM_FUNC_ARG).', + 'raw' => 'Fixed bug GH-17140 (Assertion failure in JIT trace exit with ZEND_FETCH_DIM_FUNC_ARG). (nielsdos, Dmitry)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL).', + 'raw' => 'Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and INIT_METHOD_CALL). (Dmitry, ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-17246 (GC during SCCP causes segfault).', + 'raw' => 'Fixed bug GH-17246 (GC during SCCP causes segfault). (Dmitry)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c).', + 'raw' => 'Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c). (nielsdos, Dmitry)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry.', + 'raw' => 'Fix memory leak in cleanup code of pcntl_exec() when a non stringable value is encountered past the first entry. (Girgias)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument).', + 'raw' => 'Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError Message when Called With 1 Argument). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed further ArgumentCountError for calls with flexible number of arguments.', + 'raw' => 'Fixed further ArgumentCountError for calls with flexible number of arguments. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c).', + 'raw' => 'Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects).', + 'raw' => 'Fixed bug GH-17040 (SimpleXML\'s unset can break DOM objects). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document).', + 'raw' => 'Fixed bug GH-17153 (SimpleXML crash when using autovivification on document). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN).', + 'raw' => 'Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN). (David Carlier / cmb)', + ), + 1 => + array ( + 'message' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option().', + 'raw' => 'Fixed overflow on SO_LINGER values setting, strengthening values check on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option(). (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars).', + 'raw' => 'Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c).', + 'raw' => 'Fixed bug GH-17225 (NULL deref in spl_directory.c). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling).', + 'raw' => 'Fixed bug GH-17037 (UAF in user filter when adding existing filter name due to incorrect error handling). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value).', + 'raw' => 'Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds).', + 'raw' => 'Fixed bug GH-17067 (glob:// wrapper doesn\'t cater to CWD for ZTS builds). (cmb)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Hardened proc_open() against cmd.exe hijacking.', + 'raw' => 'Hardened proc_open() against cmd.exe hijacking. (cmb)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-1718 (unreachable program point in zend_hash).', + 'raw' => 'Fixed bug GH-1718 (unreachable program point in zend_hash). (nielsdos)', + ), + ), + ), + ), + '8.4.2' => + array ( + 'date' => '19 Dec 2024', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros).', + 'raw' => 'Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros). (Saki Takamachi)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).', + 'raw' => 'Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). (cmb)', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and skipLazyInitialization() may change initialized proxy).', + 'raw' => 'Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and skipLazyInitialization() may change initialized proxy). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fix is_zend_ptr() huge block comparison.', + 'raw' => 'Fix is_zend_ptr() huge block comparison. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed potential OOB read in zend_dirname() on Windows.', + 'raw' => 'Fixed potential OOB read in zend_dirname() on Windows. (cmb)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15964 (printf() can strip sign of -INF).', + 'raw' => 'Fixed bug GH-15964 (printf() can strip sign of -INF). (divinity76, cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Fix various memory leaks in curl mime handling.', + 'raw' => 'Fix various memory leaks in curl mime handling. (nielsdos)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using resource ids)', + 'raw' => 'Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using resource ids) (kocsismate)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator).', + 'raw' => 'Fixed bug GH-16906 (Reloading document can cause UAF in iterator). (nielsdos)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16932 (wrong FPM status output).', + 'raw' => 'Fixed bug GH-16932 (wrong FPM status output). (Jakub Zelenka, James Lucas)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)).', + 'raw' => 'Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)). (cmb)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).', + 'raw' => 'Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). (dktapps)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64).', + 'raw' => 'Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16879 (JIT dead code skipping does not update call_level).', + 'raw' => 'Fixed bug GH-16879 (JIT dead code skipping does not update call_level). (nielsdos)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867).', + 'raw' => 'Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).', + 'raw' => 'Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). (nielsdos)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties).', + 'raw' => 'Fixed bug GH-16905 (Internal iterator functions can\'t handle UNDEF properties). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array).', + 'raw' => 'Fixed bug GH-16957 (Assertion failure in array_shift with self-referencing array). (nielsdos)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed network connect poll interuption handling.', + 'raw' => 'Fixed network connect poll interuption handling. (Jakub Zelenka)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16849 (Error dialog causes process to hang).', + 'raw' => 'Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)', + ), + 1 => + array ( + 'message' => 'Windows Server 2025 is now properly reported.', + 'raw' => 'Windows Server 2025 is now properly reported. (cmb)', + ), + ), + ), + ), + '8.4.1' => + array ( + 'date' => '21 Nov 2024', + 'modules' => + array ( + 'bcmath' => + array ( + 0 => + array ( + 'message' => '[RFC] Add bcfloor, bcceil and bcround to BCMath.', + 'raw' => '[RFC] Add bcfloor, bcceil and bcround to BCMath. (Saki Takamachi)', + ), + 1 => + array ( + 'message' => 'Improve performance.', + 'raw' => 'Improve performance. (Saki Takamachi, nielsdos)', + ), + 2 => + array ( + 'message' => 'Adjust bcround()\'s $mode parameter to only accept the RoundingMode enum.', + 'raw' => 'Adjust bcround()\'s $mode parameter to only accept the RoundingMode enum. (timwolla, saki)', + ), + 3 => + array ( + 'message' => 'Fixed LONG_MAX in BCMath ext.', + 'raw' => 'Fixed LONG_MAX in BCMath ext. (Saki Takamachi)', + ), + 4 => + array ( + 'message' => 'Fixed bcdiv() div by one.', + 'raw' => 'Fixed bcdiv() div by one. (Saki Takamachi)', + ), + 5 => + array ( + 'message' => '[RFC] Support object types in BCMath.', + 'raw' => '[RFC] Support object types in BCMath. (Saki Takamachi)', + ), + 6 => + array ( + 'message' => 'bcpow() performance improvement.', + 'raw' => 'bcpow() performance improvement. (Jorg Sowa)', + ), + 7 => + array ( + 'message' => 'ext/bcmath: Check for scale overflow.', + 'raw' => 'ext/bcmath: Check for scale overflow. (SakiTakamachi)', + ), + 8 => + array ( + 'message' => '[RFC] ext/bcmath: Added bcdivmod.', + 'raw' => '[RFC] ext/bcmath: Added bcdivmod. (SakiTakamachi)', + ), + 9 => + array ( + 'message' => 'Fix GH-15968 (Avoid converting objects to strings in operator calculations).', + 'raw' => 'Fix GH-15968 (Avoid converting objects to strings in operator calculations). (SakiTakamachi)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-16265 (Added early return case when result is 0) .', + 'raw' => 'Fixed bug GH-16265 (Added early return case when result is 0) (Saki Takamachi).', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-16262 (Fixed a bug where size_t underflows) .', + 'raw' => 'Fixed bug GH-16262 (Fixed a bug where size_t underflows) (Saki Takamachi).', + ), + 12 => + array ( + 'message' => 'Fixed GH-16236 (Fixed a bug in BcMath\\Number::pow() and bcpow() when raising negative powers of 0) .', + 'raw' => 'Fixed GH-16236 (Fixed a bug in BcMath\\Number::pow() and bcpow() when raising negative powers of 0) (Saki Takamachi).', + ), + ), + 'core' => + array ( + 0 => + array ( + 'message' => 'Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku.', + 'raw' => 'Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris and Haiku. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Enabled ifunc checks on FreeBSD from the 12.x releases.', + 'raw' => 'Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky)', + ), + 2 => + array ( + 'message' => 'Changed the type of PHP_DEBUG and PHP_ZTS constants to bool.', + 'raw' => 'Changed the type of PHP_DEBUG and PHP_ZTS constants to bool. (haszi)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13142 (Undefined variable name is shortened when contains \\0).', + 'raw' => 'Fixed bug GH-13142 (Undefined variable name is shortened when contains \\0). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-13178 (Iterator positions incorrect when converting packed array to hashed).', + 'raw' => 'Fixed bug GH-13178 (Iterator positions incorrect when converting packed array to hashed). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed zend fiber build for solaris default mode (32 bits).', + 'raw' => 'Fixed zend fiber build for solaris default mode (32 bits). (David Carlier)', + ), + 6 => + array ( + 'message' => 'Fixed zend call stack size for macOs/arm64.', + 'raw' => 'Fixed zend call stack size for macOs/arm64. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added support for Zend Max Execution Timers on FreeBSD.', + 'raw' => 'Added support for Zend Max Execution Timers on FreeBSD. (Kévin Dunglas)', + ), + 8 => + array ( + 'message' => 'Ensure fiber stack is not backed by THP.', + 'raw' => 'Ensure fiber stack is not backed by THP. (crrodriguez)', + ), + 9 => + array ( + 'message' => 'Implement GH-13609 (Dump wrapped object in WeakReference class).', + 'raw' => 'Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Added sparc64 arch assembly support for zend fiber.', + 'raw' => 'Added sparc64 arch assembly support for zend fiber. (Claudio Jeker)', + ), + 11 => + array ( + 'message' => 'Fixed GH-13581 no space available for TLS on NetBSD.', + 'raw' => 'Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke)', + ), + 12 => + array ( + 'message' => 'Added fiber Sys-V loongarch64 support.', + 'raw' => 'Added fiber Sys-V loongarch64 support. (qiangxuhui)', + ), + 13 => + array ( + 'message' => 'Adjusted closure names to include the parent function\'s name.', + 'raw' => 'Adjusted closure names to include the parent function\'s name. (timwolla)', + ), + 14 => + array ( + 'message' => 'Improve randomness of uploaded file names and files created by tempnam().', + 'raw' => 'Improve randomness of uploaded file names and files created by tempnam(). (Arnaud)', + ), + 15 => + array ( + 'message' => 'Added gc and shutdown callbacks to zend_mm custom handlers.', + 'raw' => 'Added gc and shutdown callbacks to zend_mm custom handlers. (Florian Engelhardt)', + ), + 16 => + array ( + 'message' => 'Fixed bug GH-14650 (Compute the size of pages before allocating memory).', + 'raw' => 'Fixed bug GH-14650 (Compute the size of pages before allocating memory). (Julien Voisin)', + ), + 17 => + array ( + 'message' => 'Fixed bug GH-11928 (The --enable-re2c-cgoto doesn\'t add the -g flag).', + 'raw' => 'Fixed bug GH-11928 (The --enable-re2c-cgoto doesn\'t add the -g flag). (Peter Kokot)', + ), + 18 => + array ( + 'message' => 'Added the #[\\Deprecated] attribute.', + 'raw' => 'Added the #[\\Deprecated] attribute. (beberlei, timwolla)', + ), + 19 => + array ( + 'message' => 'Fixed GH-11389 (Allow suspending fibers in destructors).', + 'raw' => 'Fixed GH-11389 (Allow suspending fibers in destructors). (Arnaud, trowski)', + ), + 20 => + array ( + 'message' => 'Fixed bug GH-14801 (Fix build for armv7).', + 'raw' => 'Fixed bug GH-14801 (Fix build for armv7). (andypost)', + ), + 21 => + array ( + 'message' => 'Implemented property hooks RFC.', + 'raw' => 'Implemented property hooks RFC. (ilutov)', + ), + 22 => + array ( + 'message' => 'Fix GH-14978 (The xmlreader extension phpize build).', + 'raw' => 'Fix GH-14978 (The xmlreader extension phpize build). (Peter Kokot)', + ), + 23 => + array ( + 'message' => 'Throw Error exception when encountering recursion during comparison, rather than fatal error.', + 'raw' => 'Throw Error exception when encountering recursion during comparison, rather than fatal error. (ilutov)', + ), + 24 => + array ( + 'message' => 'Added missing cstddef include for C++ builds.', + 'raw' => 'Added missing cstddef include for C++ builds. (cmb)', + ), + 25 => + array ( + 'message' => 'Updated build system scripts config.guess to 2024-07-27 and config.sub to 2024-05-27.', + 'raw' => 'Updated build system scripts config.guess to 2024-07-27 and config.sub to 2024-05-27. (Peter Kokot)', + ), + 26 => + array ( + 'message' => 'Fixed bug GH-15240 (Infinite recursion in trait hook).', + 'raw' => 'Fixed bug GH-15240 (Infinite recursion in trait hook). (ilutov)', + ), + 27 => + array ( + 'message' => 'Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric type).', + 'raw' => 'Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric type). (ilutov)', + ), + 28 => + array ( + 'message' => 'Fixed bug GH-15181 (Disabled output handler is flushed again).', + 'raw' => 'Fixed bug GH-15181 (Disabled output handler is flushed again). (cmb)', + ), + 29 => + array ( + 'message' => 'Passing E_USER_ERROR to trigger_error() is now deprecated.', + 'raw' => 'Passing E_USER_ERROR to trigger_error() is now deprecated. (Girgias)', + ), + 30 => + array ( + 'message' => 'Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC).', + 'raw' => 'Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC). (nielsdos)', + ), + 31 => + array ( + 'message' => 'Using "_" as a class name is now deprecated.', + 'raw' => 'Using "_" as a class name is now deprecated. (Girgias)', + ), + 32 => + array ( + 'message' => 'Exiting a namespace now clears seen symbols.', + 'raw' => 'Exiting a namespace now clears seen symbols. (ilutov)', + ), + 33 => + array ( + 'message' => 'The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown.', + 'raw' => 'The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown. (Girgias)', + ), + 34 => + array ( + 'message' => 'Fixed bug GH-15438 (Hooks on constructor promoted properties without visibility are ignored).', + 'raw' => 'Fixed bug GH-15438 (Hooks on constructor promoted properties without visibility are ignored). (ilutov)', + ), + 35 => + array ( + 'message' => 'Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly classes).', + 'raw' => 'Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly classes). (ilutov)', + ), + 36 => + array ( + 'message' => 'Fixed bug GH-15187 (Various hooked object iterator issues).', + 'raw' => 'Fixed bug GH-15187 (Various hooked object iterator issues). (ilutov)', + ), + 37 => + array ( + 'message' => 'Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties).', + 'raw' => 'Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties). (ilutov)', + ), + 38 => + array ( + 'message' => 'Fixed bug GH-15501 (Windows HAVE_<header>_H macros defined to 1 or undefined).', + 'raw' => 'Fixed bug GH-15501 (Windows HAVE_<header>_H macros defined to 1 or undefined). (Peter Kokot)', + ), + 39 => + array ( + 'message' => 'Implemented asymmetric visibility for properties.', + 'raw' => 'Implemented asymmetric visibility for properties. (ilutov)', + ), + 40 => + array ( + 'message' => 'Fixed bug GH-15644 (Asymmetric visibility doesn\'t work with hooks).', + 'raw' => 'Fixed bug GH-15644 (Asymmetric visibility doesn\'t work with hooks). (ilutov)', + ), + 41 => + array ( + 'message' => 'Implemented lazy objects RFC.', + 'raw' => 'Implemented lazy objects RFC. (Arnaud)', + ), + 42 => + array ( + 'message' => 'Fixed bug GH-15686 (Building shared iconv with external iconv library).', + 'raw' => 'Fixed bug GH-15686 (Building shared iconv with external iconv library). (Peter Kokot, zeriyoshi)', + ), + 43 => + array ( + 'message' => 'Fixed missing error when adding asymmetric visibility to unilateral virtual property.', + 'raw' => 'Fixed missing error when adding asymmetric visibility to unilateral virtual property. (ilutov)', + ), + 44 => + array ( + 'message' => 'Fixed bug GH-15693 (Unnecessary include in main.c bloats binary).', + 'raw' => 'Fixed bug GH-15693 (Unnecessary include in main.c bloats binary). (nielsdos)', + ), + 45 => + array ( + 'message' => 'Fixed bug GH-15731 (AllowDynamicProperties validation should error on enums).', + 'raw' => 'Fixed bug GH-15731 (AllowDynamicProperties validation should error on enums). (DanielEScherzer)', + ), + 46 => + array ( + 'message' => 'Fixed bug GH-16040 (Use-after-free of object released in hook).', + 'raw' => 'Fixed bug GH-16040 (Use-after-free of object released in hook). (ilutov)', + ), + 47 => + array ( + 'message' => 'Fixed bug GH-16026 (Reuse of dtor fiber during shutdown).', + 'raw' => 'Fixed bug GH-16026 (Reuse of dtor fiber during shutdown). (Arnaud)', + ), + 48 => + array ( + 'message' => 'Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy objects).', + 'raw' => 'Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy objects). (Arnaud)', + ), + 49 => + array ( + 'message' => 'Fixed bug GH-15960 (Foreach edge cases with lazy objects).', + 'raw' => 'Fixed bug GH-15960 (Foreach edge cases with lazy objects). (Arnaud)', + ), + 50 => + array ( + 'message' => 'Fixed bug GH-16185 (Various hooked object iterator issues).', + 'raw' => 'Fixed bug GH-16185 (Various hooked object iterator issues). (ilutov)', + ), + 51 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free).', + 'raw' => 'Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free). (nielsdos)', + ), + 52 => + array ( + 'message' => 'Fixed missing error when adding asymmetric visibility to static properties.', + 'raw' => 'Fixed missing error when adding asymmetric visibility to static properties. (ilutov)', + ), + 53 => + array ( + 'message' => 'Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in zend_lazy_object_clone).', + 'raw' => 'Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in zend_lazy_object_clone). (Arnaud)', + ), + 54 => + array ( + 'message' => 'Fixed bug GH-16574 (Incorrect error "undefined method" messages).', + 'raw' => 'Fixed bug GH-16574 (Incorrect error "undefined method" messages). (nielsdos)', + ), + 55 => + array ( + 'message' => 'Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload).', + 'raw' => 'Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload). (nielsdos)', + ), + 56 => + array ( + 'message' => 'Fixed bug GH-16615 (Assertion failure in zend_std_read_property).', + 'raw' => 'Fixed bug GH-16615 (Assertion failure in zend_std_read_property). (Arnaud)', + ), + 57 => + array ( + 'message' => 'Fixed bug GH-16342 (Added ReflectionProperty::isLazy()).', + 'raw' => 'Fixed bug GH-16342 (Added ReflectionProperty::isLazy()). (Arnaud)', + ), + 58 => + array ( + 'message' => 'Fixed bug GH-16725 (Incorrect access check for non-hooked props in hooked object iterator).', + 'raw' => 'Fixed bug GH-16725 (Incorrect access check for non-hooked props in hooked object iterator). (ilutov)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Deprecated the CURLOPT_BINARYTRANSFER constant.', + 'raw' => 'Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76)', + ), + 1 => + array ( + 'message' => 'Bumped required libcurl version to 7.61.0.', + 'raw' => 'Bumped required libcurl version to 7.61.0. (Ayesh)', + ), + 2 => + array ( + 'message' => 'Added feature_list key to the curl_version() return value.', + 'raw' => 'Added feature_list key to the curl_version() return value. (Ayesh)', + ), + 3 => + array ( + 'message' => 'Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY (libcurl 7.88) as options for CURLOPT_HTTP_VERSION', + 'raw' => 'Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY (libcurl 7.88) as options for CURLOPT_HTTP_VERSION (Ayesh Karunaratne)', + ), + 4 => + array ( + 'message' => 'Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before dropping the connection.', + 'raw' => 'Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before dropping the connection. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback after the connection is established, but before the request is performed.', + 'raw' => 'Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback after the connection is established, but before the request is performed. (Ayesh Karunaratne)', + ), + 6 => + array ( + 'message' => 'Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as CURLOPT_FTP_RESPONSE_TIMEOUT.', + 'raw' => 'Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as CURLOPT_FTP_RESPONSE_TIMEOUT. (Ayesh Karunaratne)', + ), + 7 => + array ( + 'message' => 'The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored.', + 'raw' => 'The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored. (Ayesh Karunaratne)', + ), + 8 => + array ( + 'message' => 'Added CURLOPT_DEBUGFUNCTION as a Curl option.', + 'raw' => 'Added CURLOPT_DEBUGFUNCTION as a Curl option. (Ayesh Karunaratne)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION without null callback).', + 'raw' => 'Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION without null callback). (David Carlier)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues).', + 'raw' => 'Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues). (cmb)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Added DateTime[Immutable]::createFromTimestamp.', + 'raw' => 'Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz)', + ), + 1 => + array ( + 'message' => 'Added DateTime[Immutable]::[get|set]Microsecond.', + 'raw' => 'Added DateTime[Immutable]::[get|set]Microsecond. (Marc Bennewitz)', + ), + 2 => + array ( + 'message' => 'Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE are now deprecated.', + 'raw' => 'Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE are now deprecated. (Jorg Sowa)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end date).', + 'raw' => 'Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end date). (Mark Bennewitz, Derick)', + ), + ), + 'dba' => + array ( + 0 => + array ( + 'message' => 'Passing null or false to dba_key_split() is deprecated.', + 'raw' => 'Passing null or false to dba_key_split() is deprecated. (Grigias)', + ), + ), + 'debugging' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15923 (GDB: Python Exception <class \'TypeError\'>: exceptions must derive from BaseException).', + 'raw' => 'Fixed bug GH-15923 (GDB: Python Exception <class \'TypeError\'>: exceptions must derive from BaseException). (nielsdos)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Added DOMNode::compareDocumentPosition().', + 'raw' => 'Added DOMNode::compareDocumentPosition(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents).', + 'raw' => 'Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix cloning attribute with namespace disappearing namespace.', + 'raw' => 'Fix cloning attribute with namespace disappearing namespace. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Implement DOM HTML5 parsing and serialization RFC.', + 'raw' => 'Implement DOM HTML5 parsing and serialization RFC. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix DOMElement->prefix with empty string creates bogus prefix.', + 'raw' => 'Fix DOMElement->prefix with empty string creates bogus prefix. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Handle OOM more consistently.', + 'raw' => 'Handle OOM more consistently. (nielsdos)', + ), + 6 => + array ( + 'message' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC.', + 'raw' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)', + ), + 7 => + array ( + 'message' => 'Added DOMXPath::quote() static method.', + 'raw' => 'Added DOMXPath::quote() static method. (divinity76)', + ), + 8 => + array ( + 'message' => 'Implemented opt-in ext/dom spec compliance RFC.', + 'raw' => 'Implemented opt-in ext/dom spec compliance RFC. (nielsdos)', + ), + 9 => + array ( + 'message' => 'Fixed bug #79701 (getElementById does not correctly work with duplicate definitions).', + 'raw' => 'Fixed bug #79701 (getElementById does not correctly work with duplicate definitions). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Implemented "New ext-dom features in PHP 8.4" RFC.', + 'raw' => 'Implemented "New ext-dom features in PHP 8.4" RFC. (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fixed GH-14698 (segfault on DOM node dereference).', + 'raw' => 'Fixed GH-14698 (segfault on DOM node dereference). (David Carlier)', + ), + 12 => + array ( + 'message' => 'Improve support for template elements.', + 'raw' => 'Improve support for template elements. (nielsdos)', + ), + 13 => + array ( + 'message' => 'Fix trampoline leak in xpath callables.', + 'raw' => 'Fix trampoline leak in xpath callables. (nielsdos)', + ), + 14 => + array ( + 'message' => 'Throw instead of silently failing when creating a too long text node in (DOM)ParentNode and (DOM)ChildNode.', + 'raw' => 'Throw instead of silently failing when creating a too long text node in (DOM)ParentNode and (DOM)ChildNode. (nielsdos)', + ), + 15 => + array ( + 'message' => 'Fixed bug GH-15192 (Segmentation fault in dom extension (html5_serializer)).', + 'raw' => 'Fixed bug GH-15192 (Segmentation fault in dom extension (html5_serializer)). (nielsdos)', + ), + 16 => + array ( + 'message' => 'Deprecated DOM_PHP_ERR constant.', + 'raw' => 'Deprecated DOM_PHP_ERR constant. (nielsdos)', + ), + 17 => + array ( + 'message' => 'Removed DOMImplementation::getFeature().', + 'raw' => 'Removed DOMImplementation::getFeature(). (nielsdos)', + ), + 18 => + array ( + 'message' => 'Fixed bug GH-15331 (Element::$substitutedNodeValue test failed).', + 'raw' => 'Fixed bug GH-15331 (Element::$substitutedNodeValue test failed). (nielsdos)', + ), + 19 => + array ( + 'message' => 'Fixed bug GH-15570 (Segmentation fault (access null pointer) in ext/dom/html5_serializer.c).', + 'raw' => 'Fixed bug GH-15570 (Segmentation fault (access null pointer) in ext/dom/html5_serializer.c). (nielsdos)', + ), + 20 => + array ( + 'message' => 'Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0).', + 'raw' => 'Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0). (nielsdos)', + ), + 21 => + array ( + 'message' => 'Fix XML serializer errata: xmlns="" serialization should be allowed.', + 'raw' => 'Fix XML serializer errata: xmlns="" serialization should be allowed. (nielsdos)', + ), + 22 => + array ( + 'message' => 'Fixed bug GH-15910 (Assertion failure in ext/dom/element.c).', + 'raw' => 'Fixed bug GH-15910 (Assertion failure in ext/dom/element.c). (nielsdos)', + ), + 23 => + array ( + 'message' => 'Fix unsetting DOM properties.', + 'raw' => 'Fix unsetting DOM properties. (nielsdos)', + ), + 24 => + array ( + 'message' => 'Fixed bug GH-16190 (Using reflection to call Dom\\Node::__construct causes assertion failure).', + 'raw' => 'Fixed bug GH-16190 (Using reflection to call Dom\\Node::__construct causes assertion failure). (nielsdos)', + ), + 25 => + array ( + 'message' => 'Fix edge-case in DOM parsing decoding.', + 'raw' => 'Fix edge-case in DOM parsing decoding. (nielsdos)', + ), + 26 => + array ( + 'message' => 'Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName).', + 'raw' => 'Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName). (nielsdos)', + ), + 27 => + array ( + 'message' => 'Fixed bug GH-16594 (Assertion failure in DOM -> before).', + 'raw' => 'Fixed bug GH-16594 (Assertion failure in DOM -> before). (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'Update to libmagic 5.45.', + 'raw' => 'Update to libmagic 5.45. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #65106 (PHP fails to compile ext/fileinfo).', + 'raw' => 'Fixed bug #65106 (PHP fails to compile ext/fileinfo). (Guillaume Outters)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Implement GH-12385 (flush headers without body when calling flush()).', + 'raw' => 'Implement GH-12385 (flush headers without body when calling flush()). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT to SOMAXCONN.', + 'raw' => 'Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT to SOMAXCONN. (David Carlier)', + ), + 2 => + array ( + 'message' => '/dev/poll events.mechanism for Solaris/Illumos setting had been retired.', + 'raw' => '/dev/poll events.mechanism for Solaris/Illumos setting had been retired. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added memory peak to the scoreboard / status page.', + 'raw' => 'Added memory peak to the scoreboard / status page. (Flávio Heleno)', + ), + ), + 'ftp' => + array ( + 0 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug #63937 (Upload speed 10 times slower with PHP).', + 'raw' => 'Fixed bug #63937 (Upload speed 10 times slower with PHP). (nielsdos)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fix parameter numbers and missing alpha check for imagecolorset().', + 'raw' => 'Fix parameter numbers and missing alpha check for imagecolorset(). (Giovanni Giacobbi)', + ), + 1 => + array ( + 'message' => 'imagepng/imagejpeg/imagewep/imageavif now throw an exception on invalid quality parameter.', + 'raw' => 'imagepng/imagejpeg/imagewep/imageavif now throw an exception on invalid quality parameter. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Check overflow/underflow for imagescale/imagefilter.', + 'raw' => 'Check overflow/underflow for imagescale/imagefilter. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added gdImageClone to bundled libgd.', + 'raw' => 'Added gdImageClone to bundled libgd. (David Carlier)', + ), + ), + 'gettext' => + array ( + 0 => + array ( + 'message' => 'bind_textdomain_codeset, textdomain and d(*)gettext functions now throw an exception on empty domain.', + 'raw' => 'bind_textdomain_codeset, textdomain and d(*)gettext functions now throw an exception on empty domain. (David Carlier)', + ), + ), + 'gmp' => + array ( + 0 => + array ( + 'message' => 'The GMP class is now final and cannot be extended anymore.', + 'raw' => 'The GMP class is now final and cannot be extended anymore. (Girgias)', + ), + 1 => + array ( + 'message' => 'RFC: Change GMP bool cast behavior.', + 'raw' => 'RFC: Change GMP bool cast behavior. (Saki Takamachi)', + ), + ), + 'hash' => + array ( + 0 => + array ( + 'message' => 'Changed return type of hash_update() to true.', + 'raw' => 'Changed return type of hash_update() to true. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Added HashContext::__debugInfo().', + 'raw' => 'Added HashContext::__debugInfo(). (timwolla)', + ), + 2 => + array ( + 'message' => 'Deprecated passing incorrect data types for options to ext/hash functions.', + 'raw' => 'Deprecated passing incorrect data types for options to ext/hash functions. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Added SSE2 and SHA-NI implementation of SHA-256.', + 'raw' => 'Added SSE2 and SHA-NI implementation of SHA-256. (timwolla, Colin Percival, Graham Percival)', + ), + 4 => + array ( + 'message' => 'Fix GH-15384 (Build fails on Alpine / Musl for amd64).', + 'raw' => 'Fix GH-15384 (Build fails on Alpine / Musl for amd64). (timwolla)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-15742 (php_hash_sha.h incompatible with C++).', + 'raw' => 'Fixed bug GH-15742 (php_hash_sha.h incompatible with C++). (cmb)', + ), + ), + 'imap' => + array ( + 0 => + array ( + 'message' => 'Moved to PECL.', + 'raw' => 'Moved to PECL. (Derick Rethans)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Added IntlDateFormatter::PATTERN constant.', + 'raw' => 'Added IntlDateFormatter::PATTERN constant. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed Numberformatter::__construct when the locale is invalid, now throws an exception.', + 'raw' => 'Fixed Numberformatter::__construct when the locale is invalid, now throws an exception. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as aliases for ::ROUND_DOWN and ::ROUND_UP.', + 'raw' => 'Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as aliases for ::ROUND_DOWN and ::ROUND_UP. (Jorg Sowa)', + ), + 3 => + array ( + 'message' => 'Added NumberFormatter::ROUND_HALFODD.', + 'raw' => 'Added NumberFormatter::ROUND_HALFODD. (Ayesh Karunaratne)', + ), + 4 => + array ( + 'message' => 'Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and PROPERTY_ID_COMPAT_MATH_CONTINUE constants.', + 'raw' => 'Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and PROPERTY_ID_COMPAT_MATH_CONTINUE constants. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function.', + 'raw' => 'Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Set to C++17 standard for icu 74 and onwards.', + 'raw' => 'Set to C++17 standard for icu 74 and onwards. (David Carlier)', + ), + 7 => + array ( + 'message' => 'resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a ResourceBundle object now throw: - TypeError for invalid offset types - ValueError for an empty string - ValueError if the integer index does not fit in a signed 32 bit integer', + 'raw' => 'resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a ResourceBundle object now throw: - TypeError for invalid offset types - ValueError for an empty string - ValueError if the integer index does not fit in a signed 32 bit integer', + ), + 8 => + array ( + 'message' => 'ResourceBundle::get() now has a tentative return type of: ResourceBundle|array|string|int|null', + 'raw' => 'ResourceBundle::get() now has a tentative return type of: ResourceBundle|array|string|int|null', + ), + 9 => + array ( + 'message' => 'Added the new Grapheme function grapheme_str_split.', + 'raw' => 'Added the new Grapheme function grapheme_str_split. (youkidearitai)', + ), + 10 => + array ( + 'message' => 'Added IntlDateFormatter::parseToCalendar.', + 'raw' => 'Added IntlDateFormatter::parseToCalendar. (David Carlier)', + ), + 11 => + array ( + 'message' => 'Added SpoofChecker::setAllowedChars to set unicode chars ranges.', + 'raw' => 'Added SpoofChecker::setAllowedChars to set unicode chars ranges. (David Carlier)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 constants.', + 'raw' => 'Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 constants. (StephenWall)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Added LIBXML_RECOVER constant.', + 'raw' => 'Added LIBXML_RECOVER constant. (nielsdos)', + ), + 1 => + array ( + 'message' => 'libxml_set_streams_context() now throws immediately on an invalid context instead of at the use-site.', + 'raw' => 'libxml_set_streams_context() now throws immediately on an invalid context instead of at the use-site. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Added LIBXML_NO_XXE constant.', + 'raw' => 'Added LIBXML_NO_XXE constant. (nielsdos)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Added mb_trim, mb_ltrim and mb_rtrim.', + 'raw' => 'Added mb_trim, mb_ltrim and mb_rtrim. (Yuya Hamada)', + ), + 1 => + array ( + 'message' => 'Added mb_ucfirst and mb_lcfirst.', + 'raw' => 'Added mb_ucfirst and mb_lcfirst. (Yuya Hamada)', + ), + 2 => + array ( + 'message' => 'Updated Unicode data tables to Unicode 15.1.', + 'raw' => 'Updated Unicode data tables to Unicode 15.1. (Ayesh Karunaratne)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains invalid encoding "UTF8").', + 'raw' => 'Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains invalid encoding "UTF8"). (Yuya Hamada)', + ), + 4 => + array ( + 'message' => 'Updated Unicode data tables to Unicode 16.0.', + 'raw' => 'Updated Unicode data tables to Unicode 16.0. (Ayesh Karunaratne)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'The mysqli_ping() function and mysqli::ping() method are now deprecated, as the reconnect feature was removed in PHP 8.2.', + 'raw' => 'The mysqli_ping() function and mysqli::ping() method are now deprecated, as the reconnect feature was removed in PHP 8.2. (Kamil Tekiela)', + ), + 1 => + array ( + 'message' => 'The mysqli_kill() function and mysqli::kill() method are now deprecated. If this functionality is needed a SQL "KILL" command can be used instead.', + 'raw' => 'The mysqli_kill() function and mysqli::kill() method are now deprecated. If this functionality is needed a SQL "KILL" command can be used instead. (Kamil Tekiela)', + ), + 2 => + array ( + 'message' => 'The mysqli_refresh() function and mysqli::refresh() method are now deprecated. If this functionality is needed a SQL "FLUSH" command can be used instead.', + 'raw' => 'The mysqli_refresh() function and mysqli::refresh() method are now deprecated. If this functionality is needed a SQL "FLUSH" command can be used instead. (Kamil Tekiela)', + ), + 3 => + array ( + 'message' => 'Passing explicitly the $mode parameter to mysqli_store_result() has been deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in conjunction with this function it has also been deprecated.', + 'raw' => 'Passing explicitly the $mode parameter to mysqli_store_result() has been deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in conjunction with this function it has also been deprecated. (Girgias)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-13440 (PDO quote bottleneck).', + 'raw' => 'Fixed bug GH-13440 (PDO quote bottleneck). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection).', + 'raw' => 'Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing anonymous function inside a class with an active mysqli connection). (nielsdos)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Added large shared segments support for FreeBSD.', + 'raw' => 'Added large shared segments support for FreeBSD. (David Carlier)', + ), + 1 => + array ( + 'message' => 'If JIT is enabled, PHP will now exit with a fatal error on startup in case of JIT startup initialization issues.', + 'raw' => 'If JIT is enabled, PHP will now exit with a fatal error on startup in case of JIT startup initialization issues. (danog)', + ), + 2 => + array ( + 'message' => 'Increased the maximum value of opcache.interned_strings_buffer to 32767 on 64bit archs.', + 'raw' => 'Increased the maximum value of opcache.interned_strings_buffer to 32767 on 64bit archs. (Arnaud)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in zend_jit.c).', + 'raw' => 'Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in zend_jit.c). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault).', + 'raw' => 'Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer).', + 'raw' => 'Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols).', + 'raw' => 'Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-15178 (Assertion in tracing JIT on hooks).', + 'raw' => 'Fixed bug GH-15178 (Assertion in tracing JIT on hooks). (ilutov)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-15657 (Segmentation fault in dasm_x86.h).', + 'raw' => 'Fixed bug GH-15657 (Segmentation fault in dasm_x86.h). (nielsdos)', + ), + 9 => + array ( + 'message' => 'Added opcache_jit_blacklist() function.', + 'raw' => 'Added opcache_jit_blacklist() function. (Bob)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-16009 (Segmentation fault with frameless functions and undefined CVs).', + 'raw' => 'Fixed bug GH-16009 (Segmentation fault with frameless functions and undefined CVs). (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c).', + 'raw' => 'Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c). (Arnaud)', + ), + 12 => + array ( + 'message' => 'Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT).', + 'raw' => 'Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT). (nielsdos)', + ), + 13 => + array ( + 'message' => 'Fixed GH-16839 (Error on building Opcache JIT for Windows ARM64).', + 'raw' => 'Fixed GH-16839 (Error on building Opcache JIT for Windows ARM64). (cmb)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter).', + 'raw' => 'Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Implement request #48520 (openssl_csr_new - allow multiple values in DN).', + 'raw' => 'Implement request #48520 (openssl_csr_new - allow multiple values in DN). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Introduced new serial_hex parameter to openssl_csr_sign.', + 'raw' => 'Introduced new serial_hex parameter to openssl_csr_sign. (Jakub Zelenka, Florian Sowade)', + ), + 3 => + array ( + 'message' => 'Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.', + 'raw' => 'Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants. (Vincent Jardin)', + ), + 4 => + array ( + 'message' => 'Bumped minimum required OpenSSL version to 1.1.1.', + 'raw' => 'Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne)', + ), + 5 => + array ( + 'message' => 'Added compile-time option --with-openssl-legacy-provider to enable legacy provider.', + 'raw' => 'Added compile-time option --with-openssl-legacy-provider to enable legacy provider. (Adam Saponara)', + ), + 6 => + array ( + 'message' => 'Added support for Curve25519 + Curve448 based keys.', + 'raw' => 'Added support for Curve25519 + Curve448 based keys. (Manuel Mausz)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in UTCTimes).', + 'raw' => 'Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in UTCTimes). (Jakub Zelenka)', + ), + 8 => + array ( + 'message' => 'Bumped minimum required OpenSSL version to 1.1.0.', + 'raw' => 'Bumped minimum required OpenSSL version to 1.1.0. (cmb)', + ), + 9 => + array ( + 'message' => 'Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2.', + 'raw' => 'Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2. (Remi)', + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Clear output handler status flags during handler initialization.', + 'raw' => 'Clear output handler status flags during handler initialization. (haszi)', + ), + 1 => + array ( + 'message' => 'Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var().', + 'raw' => 'Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var(). (haszi)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Added pcntl_setns for Linux.', + 'raw' => 'Added pcntl_setns for Linux. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added pcntl_getcpuaffinity/pcntl_setcpuaffinity.', + 'raw' => 'Added pcntl_getcpuaffinity/pcntl_setcpuaffinity. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Updated pcntl_get_signal_handler signal id upper limit to be more in line with platforms limits.', + 'raw' => 'Updated pcntl_get_signal_handler signal id upper limit to be more in line with platforms limits. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos.', + 'raw' => 'Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added pcntl_getqos_class/pcntl_setqos_class for macOs.', + 'raw' => 'Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD.', + 'raw' => 'Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Added FreeBSD\'s SIGTRAP handling to pcntl_siginfo_to_zval.', + 'raw' => 'Added FreeBSD\'s SIGTRAP handling to pcntl_siginfo_to_zval. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added POSIX pcntl_waitid.', + 'raw' => 'Added POSIX pcntl_waitid. (Vladimir Vrzić)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value as reference).', + 'raw' => 'Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value as reference). (David Carlier)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Upgrade bundled pcre2lib to version 10.43.', + 'raw' => 'Upgrade bundled pcre2lib to version 10.43. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add "/r" modifier.', + 'raw' => 'Add "/r" modifier. (Ayesh)', + ), + 2 => + array ( + 'message' => 'Upgrade bundled pcre2lib to version 10.44.', + 'raw' => 'Upgrade bundled pcre2lib to version 10.44. (Ayesh)', + ), + 3 => + array ( + 'message' => 'Fixed GH-16189 (underflow on offset argument).', + 'raw' => 'Fixed GH-16189 (underflow on offset argument). (David Carlier)', + ), + 4 => + array ( + 'message' => 'Fix UAF issues with PCRE after request shutdown.', + 'raw' => 'Fix UAF issues with PCRE after request shutdown. (nielsdos)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + ), + 1 => + array ( + 'message' => 'Implemented PDO driver-specific subclasses RFC.', + 'raw' => 'Implemented PDO driver-specific subclasses RFC. (danack, kocsismate)', + ), + 2 => + array ( + 'message' => 'Added support for PDO driver-specific SQL parsers.', + 'raw' => 'Added support for PDO driver-specific SQL parsers. (Matteo Beccati)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-14792 (Compilation failure on pdo_* extensions).', + 'raw' => 'Fixed bug GH-14792 (Compilation failure on pdo_* extensions). (Peter Kokot)', + ), + 4 => + array ( + 'message' => 'mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT.', + 'raw' => 'mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT. (Appla)', + ), + 5 => + array ( + 'message' => 'The internal header php_pdo_int.h is no longer installed; it is not supposed to be used by PDO drivers.', + 'raw' => 'The internal header php_pdo_int.h is no longer installed; it is not supposed to be used by PDO drivers. (cmb)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN).', + 'raw' => 'Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN). (kocsismate)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-16314 ("Pdo\\Mysql object is uninitialized" when opening a persistent connection).', + 'raw' => 'Fixed bug GH-16314 ("Pdo\\Mysql object is uninitialized" when opening a persistent connection). (kocsismate)', + ), + ), + 'pdo_dblib' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + ), + 1 => + array ( + 'message' => 'Added class Pdo\\DbLib.', + 'raw' => 'Added class Pdo\\DbLib. (danack, kocsismate)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + ), + 1 => + array ( + 'message' => 'Feature: Add transaction isolation level and mode settings to pdo_firebird.', + 'raw' => 'Feature: Add transaction isolation level and mode settings to pdo_firebird. (SakiTakamachi)', + ), + 2 => + array ( + 'message' => 'Added class Pdo\\Firebird.', + 'raw' => 'Added class Pdo\\Firebird. (danack, kocsismate)', + ), + 3 => + array ( + 'message' => 'Added Pdo\\Firebird::ATTR_API_VERSION.', + 'raw' => 'Added Pdo\\Firebird::ATTR_API_VERSION. (SakiTakamachi)', + ), + 4 => + array ( + 'message' => 'Added getApiVersion() and removed from getAttribute().', + 'raw' => 'Added getApiVersion() and removed from getAttribute(). (SakiTakamachi)', + ), + 5 => + array ( + 'message' => 'Supported Firebird 4.0 datatypes.', + 'raw' => 'Supported Firebird 4.0 datatypes. (sim1984)', + ), + 6 => + array ( + 'message' => 'Support proper formatting of time zone types.', + 'raw' => 'Support proper formatting of time zone types. (sim1984)', + ), + 7 => + array ( + 'message' => 'Fixed GH-15604 (Always make input parameters nullable).', + 'raw' => 'Fixed GH-15604 (Always make input parameters nullable). (sim1984)', + ), + ), + 'pdo_mysql' => + array ( + 0 => + array ( + 'message' => 'Fixed setAttribute and getAttribute.', + 'raw' => 'Fixed setAttribute and getAttribute. (SakiTakamachi)', + ), + 1 => + array ( + 'message' => 'Added class Pdo\\Mysql.', + 'raw' => 'Added class Pdo\\Mysql. (danack, kocsismate)', + ), + 2 => + array ( + 'message' => 'Added custom SQL parser.', + 'raw' => 'Added custom SQL parser. (Matteo Beccati)', + ), + 3 => + array ( + 'message' => 'Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary data).', + 'raw' => 'Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary data). (mbeccati, lcobucci)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Added class Pdo\\Odbc.', + 'raw' => 'Added class Pdo\\Odbc. (danack, kocsismate)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-12423, DSN credentials being prioritized over the user/password PDO constructor arguments.', + 'raw' => 'Fixed GH-12423, DSN credentials being prioritized over the user/password PDO constructor arguments. (SakiTakamachi)', + ), + 1 => + array ( + 'message' => 'Fixed native float support with pdo_pgsql query results.', + 'raw' => 'Fixed native float support with pdo_pgsql query results. (Yurunsoft)', + ), + 2 => + array ( + 'message' => 'Added class Pdo\\Pgsql.', + 'raw' => 'Added class Pdo\\Pgsql. (danack, kocsismate)', + ), + 3 => + array ( + 'message' => 'Retrieve the memory usage of the query result resource.', + 'raw' => 'Retrieve the memory usage of the query result resource. (KentarouTakeda)', + ), + 4 => + array ( + 'message' => 'Added Pdo\\Pgsql::setNoticeCallBack method to receive DB notices.', + 'raw' => 'Added Pdo\\Pgsql::setNoticeCallBack method to receive DB notices. (outtersg)', + ), + 5 => + array ( + 'message' => 'Added custom SQL parser.', + 'raw' => 'Added custom SQL parser. (Matteo Beccati)', + ), + 6 => + array ( + 'message' => 'Fixed GH-15986 (Double-free due to Pdo\\Pgsql::setNoticeCallback()).', + 'raw' => 'Fixed GH-15986 (Double-free due to Pdo\\Pgsql::setNoticeCallback()). (cmb, nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed GH-12940 (Using PQclosePrepared when available instead of the DEALLOCATE command to free statements resources).', + 'raw' => 'Fixed GH-12940 (Using PQclosePrepared when available instead of the DEALLOCATE command to free statements resources). (David Carlier)', + ), + 8 => + array ( + 'message' => 'Remove PGSQL_ATTR_RESULT_MEMORY_SIZE constant as it is provided by the new PDO Subclass as Pdo\\Pgsql::ATTR_RESULT_MEMORY_SIZE.', + 'raw' => 'Remove PGSQL_ATTR_RESULT_MEMORY_SIZE constant as it is provided by the new PDO Subclass as Pdo\\Pgsql::ATTR_RESULT_MEMORY_SIZE. (Girgias)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Added class Pdo\\Sqlite.', + 'raw' => 'Added class Pdo\\Sqlite. (danack, kocsismate)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81227 (PDO::inTransaction reports false when in transaction).', + 'raw' => 'Fixed bug #81227 (PDO::inTransaction reports false when in transaction). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Added custom SQL parser.', + 'raw' => 'Added custom SQL parser. (Matteo Beccati)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'array out of bounds, stack overflow handled for segfault handler on windows.', + 'raw' => 'array out of bounds, stack overflow handled for segfault handler on windows. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16041 (Support stack limit in phpdbg).', + 'raw' => 'Fixed bug GH-16041 (Support stack limit in phpdbg). (Arnaud)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added the possibility to have no conditions for pg_select.', + 'raw' => 'Added the possibility to have no conditions for pg_select. (OmarEmaraDev)', + ), + 1 => + array ( + 'message' => 'Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.', + 'raw' => 'Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added pg_result_memory_size to get the query result memory usage.', + 'raw' => 'Added pg_result_memory_size to get the query result memory usage. (KentarouTakeda)', + ), + 3 => + array ( + 'message' => 'Added pg_change_password to alter an user\'s password.', + 'raw' => 'Added pg_change_password to alter an user\'s password. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal the end of the COPY.', + 'raw' => 'Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal the end of the COPY. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added pg_socket_poll to poll on the connection.', + 'raw' => 'Added pg_socket_poll to poll on the connection. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Added pg_jit to get infos on server JIT support.', + 'raw' => 'Added pg_jit to get infos on server JIT support. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added pg_set_chunked_rows_size to fetch results per chunk.', + 'raw' => 'Added pg_set_chunked_rows_size to fetch results per chunk. (David Carlier)', + ), + 8 => + array ( + 'message' => 'pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached.', + 'raw' => 'pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).', + 'raw' => 'Fixed bug GH-12532 (PharData created from zip has incorrect timestamp). (nielsdos)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants.', + 'raw' => 'Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Updated posix_isatty to set the error number on file descriptors.', + 'raw' => 'Updated posix_isatty to set the error number on file descriptors. (David Carlier)', + ), + ), + 'pspell' => + array ( + 0 => + array ( + 'message' => 'Moved to PECL.', + 'raw' => 'Moved to PECL. (Derick Rethans)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming).', + 'raw' => 'Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming). (cmb)', + ), + 1 => + array ( + 'message' => 'lcg_value() is now deprecated.', + 'raw' => 'lcg_value() is now deprecated. (timwolla)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed readline_info, rl_line_buffer_length/rl_len globals on update.', + 'raw' => 'Fixed readline_info, rl_line_buffer_length/rl_len globals on update. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug #51558 (Shared readline build fails).', + 'raw' => 'Fixed bug #51558 (Shared readline build fails). (Peter Kokot)', + ), + 2 => + array ( + 'message' => 'Fixed UAF with readline_info().', + 'raw' => 'Fixed UAF with readline_info(). (David Carlier)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump).', + 'raw' => 'Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Make ReflectionGenerator::getFunction() legal after generator termination.', + 'raw' => 'Make ReflectionGenerator::getFunction() legal after generator termination. (timwolla)', + ), + 2 => + array ( + 'message' => 'Added ReflectionGenerator::isClosed().', + 'raw' => 'Added ReflectionGenerator::isClosed(). (timwolla)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on dynamic properties).', + 'raw' => 'Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on dynamic properties). (DanielEScherzer)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for hooked properties).', + 'raw' => 'Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for hooked properties). (ilutov)', + ), + 5 => + array ( + 'message' => 'Add missing ReflectionProperty::hasHook[s]() methods.', + 'raw' => 'Add missing ReflectionProperty::hasHook[s]() methods. (ilutov)', + ), + 6 => + array ( + 'message' => 'Add missing ReflectionProperty::isFinal() method.', + 'raw' => 'Add missing ReflectionProperty::isFinal() method. (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName() and ReflectionFunction::inNamespace() for closures is incorrect).', + 'raw' => 'Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName() and ReflectionFunction::inNamespace() for closures is incorrect). (timwolla)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL)', + 'raw' => 'Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL) (DanielEScherzer)', + ), + 9 => + array ( + 'message' => 'Fixed the name of the second parameter of ReflectionClass::resetAsLazyGhost().', + 'raw' => 'Fixed the name of the second parameter of ReflectionClass::resetAsLazyGhost(). (Arnaud)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'INI settings session.sid_length and session.sid_bits_per_character are now deprecated.', + 'raw' => 'INI settings session.sid_length and session.sid_bits_per_character are now deprecated. (timwolla)', + ), + 1 => + array ( + 'message' => 'Emit warnings for non-positive values of session.gc_divisor and negative values of session.gc_probability.', + 'raw' => 'Emit warnings for non-positive values of session.gc_divisor and negative values of session.gc_probability. (Jorg Sowa)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-16590 (UAF in session_encode()).', + 'raw' => 'Fixed bug GH-16590 (UAF in session_encode()). (nielsdos)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fix signature of simplexml_import_dom().', + 'raw' => 'Fix signature of simplexml_import_dom(). (nielsdos)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Add support for clark notation for namespaces in class map.', + 'raw' => 'Add support for clark notation for namespaces in class map. (lxShaDoWxl)', + ), + 1 => + array ( + 'message' => 'Mitigate #51561 (SoapServer with a extented class and using sessions, lost the setPersistence()).', + 'raw' => 'Mitigate #51561 (SoapServer with a extented class and using sessions, lost the setPersistence()). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if wsdl operation !has output).', + 'raw' => 'Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if wsdl operation !has output). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug #44383 (PHP DateTime not converted to xsd:datetime).', + 'raw' => 'Fixed bug #44383 (PHP DateTime not converted to xsd:datetime). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-11941 (soap with session persistence will silently fail when "session" built as a shared object).', + 'raw' => 'Fixed bug GH-11941 (soap with session persistence will silently fail when "session" built as a shared object). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get_defined_functions().', + 'raw' => 'Passing an int to SoapServer::addFunction() is now deprecated. If all PHP functions need to be provided flatten the array returned by get_defined_functions(). (Girgias)', + ), + 6 => + array ( + 'message' => 'The SOAP_FUNCTIONS_ALL constant is now deprecated.', + 'raw' => 'The SOAP_FUNCTIONS_ALL constant is now deprecated. (Girgias)', + ), + 7 => + array ( + 'message' => 'Fixed bug #61525 (SOAP functions require at least one space after HTTP header colon).', + 'raw' => 'Fixed bug #61525 (SOAP functions require at least one space after HTTP header colon). (nielsdos)', + ), + 8 => + array ( + 'message' => 'Implement request #47317 (SoapServer::__getLastResponse()).', + 'raw' => 'Implement request #47317 (SoapServer::__getLastResponse()). (nielsdos)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added the SO_EXECLUSIVEADDRUSE windows constant.', + 'raw' => 'Added the SO_EXECLUSIVEADDRUSE windows constant. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants.', + 'raw' => 'Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added multicast group support for ipv4 on FreeBSD.', + 'raw' => 'Added multicast group support for ipv4 on FreeBSD. (jonathan@tangential.ca)', + ), + 4 => + array ( + 'message' => 'Added the TCP_SYNCNT constant for Linux to set number of attempts to send SYN packets from the client.', + 'raw' => 'Added the TCP_SYNCNT constant for Linux to set number of attempts to send SYN packets from the client. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris.', + 'raw' => 'Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Updated the socket_create_listen backlog argument default value to SOMAXCONN.', + 'raw' => 'Updated the socket_create_listen backlog argument default value to SOMAXCONN. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for macOs and FreeBSD.', + 'raw' => 'Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for macOs and FreeBSD. (David Carlier)', + ), + 8 => + array ( + 'message' => 'Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms.', + 'raw' => 'Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms. (David Carlier)', + ), + 9 => + array ( + 'message' => 'Add close-on-exec on socket created with socket_accept on unixes.', + 'raw' => 'Add close-on-exec on socket created with socket_accept on unixes. (David Carlier)', + ), + 10 => + array ( + 'message' => 'Added IP_PORTRANGE* constants for BSD systems to control ephemeral port ranges.', + 'raw' => 'Added IP_PORTRANGE* constants for BSD systems to control ephemeral port ranges. (David Carlier)', + ), + 11 => + array ( + 'message' => 'Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the newly created sockets.', + 'raw' => 'Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the newly created sockets. (David Carlier)', + ), + 12 => + array ( + 'message' => 'Added SO_BINDTOIFINDEX to bind a socket to an interface index.', + 'raw' => 'Added SO_BINDTOIFINDEX to bind a socket to an interface index. (David Carlier)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Add support for AEGIS-128L and AEGIS-256.', + 'raw' => 'Add support for AEGIS-128L and AEGIS-256. (jedisct1)', + ), + 1 => + array ( + 'message' => 'Enable AES-GCM on aarch64 with the ARM crypto extensions.', + 'raw' => 'Enable AES-GCM on aarch64 with the ARM crypto extensions. (jedisct1)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Implement SeekableIterator for SplObjectStorage.', + 'raw' => 'Implement SeekableIterator for SplObjectStorage. (nielsdos)', + ), + 1 => + array ( + 'message' => 'The SplFixedArray::__wakeup() method has been deprecated as it implements __serialize() and __unserialize() which need to be overwritten instead.', + 'raw' => 'The SplFixedArray::__wakeup() method has been deprecated as it implements __serialize() and __unserialize() which need to be overwritten instead. (TysonAndre)', + ), + 2 => + array ( + 'message' => 'Passing a non-empty string for the $escape parameter of: - SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv() is now deprecated.', + 'raw' => 'Passing a non-empty string for the $escape parameter of: - SplFileObject::setCsvControl() - SplFileObject::fputcsv() - SplFileObject::fgetcsv() is now deprecated. (Girgias)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Implement GH-12188 (Indication for the int size in phpinfo()).', + 'raw' => 'Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla)', + ), + 1 => + array ( + 'message' => 'Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).', + 'raw' => 'Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994). (timwolla)', + ), + 2 => + array ( + 'message' => 'Fix GH-12252 (round(): Validate the rounding mode).', + 'raw' => 'Fix GH-12252 (round(): Validate the rounding mode). (timwolla)', + ), + 3 => + array ( + 'message' => 'Increase the default BCrypt cost to 12.', + 'raw' => 'Increase the default BCrypt cost to 12. (timwolla)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask).', + 'raw' => 'Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Removed the deprecated inet_ntoa call support.', + 'raw' => 'Removed the deprecated inet_ntoa call support. (David Carlier)', + ), + 6 => + array ( + 'message' => 'Cast large floats that are within int range to int in number_format so the precision is not lost.', + 'raw' => 'Cast large floats that are within int range to int in number_format so the precision is not lost. (Marc Bennewitz)', + ), + 7 => + array ( + 'message' => 'Add support for 4 new rounding modes to the round() function.', + 'raw' => 'Add support for 4 new rounding modes to the round() function. (Jorg Sowa)', + ), + 8 => + array ( + 'message' => 'debug_zval_dump() now indicates whether an array is packed.', + 'raw' => 'debug_zval_dump() now indicates whether an array is packed. (Max Semenik)', + ), + 9 => + array ( + 'message' => 'Fix GH-12143 (Optimize round).', + 'raw' => 'Fix GH-12143 (Optimize round). (SakiTakamachi)', + ), + 10 => + array ( + 'message' => 'Changed return type of long2ip to string from string|false.', + 'raw' => 'Changed return type of long2ip to string from string|false. (Jorg Sowa)', + ), + 11 => + array ( + 'message' => 'Fix GH-12143 (Extend the maximum precision round can handle by one digit).', + 'raw' => 'Fix GH-12143 (Extend the maximum precision round can handle by one digit). (SakiTakamachi)', + ), + 12 => + array ( + 'message' => 'Added the http_get_last_response_headers() and http_clear_last_response_headers() that allows retrieving the same content as the magic $http_response_header variable.', + 'raw' => 'Added the http_get_last_response_headers() and http_clear_last_response_headers() that allows retrieving the same content as the magic $http_response_header variable.', + ), + 13 => + array ( + 'message' => 'Add php_base64_encode_ex() API.', + 'raw' => 'Add php_base64_encode_ex() API. (Remi)', + ), + 14 => + array ( + 'message' => 'Implemented "Raising zero to the power of negative number" RFC.', + 'raw' => 'Implemented "Raising zero to the power of negative number" RFC. (Jorg Sowa)', + ), + 15 => + array ( + 'message' => 'Added array_find(), array_find_key(), array_all(), and array_any().', + 'raw' => 'Added array_find(), array_find_key(), array_all(), and array_any(). (josh)', + ), + 16 => + array ( + 'message' => 'Change highlight_string() and print_r() return type to string|true.', + 'raw' => 'Change highlight_string() and print_r() return type to string|true. (Ayesh)', + ), + 17 => + array ( + 'message' => 'Fix references in request_parse_body() options array.', + 'raw' => 'Fix references in request_parse_body() options array. (nielsdos)', + ), + 18 => + array ( + 'message' => 'Add RoundingMode enum.', + 'raw' => 'Add RoundingMode enum. (timwolla, saki)', + ), + 19 => + array ( + 'message' => 'Unserializing the uppercase \'S\' tag is now deprecated.', + 'raw' => 'Unserializing the uppercase \'S\' tag is now deprecated. (timwolla)', + ), + 20 => + array ( + 'message' => 'Enables crc32 auxiliary detection on OpenBSD.', + 'raw' => 'Enables crc32 auxiliary detection on OpenBSD. (David Carlier)', + ), + 21 => + array ( + 'message' => 'Passing a non-empty string for the $escape parameter of: - fputcsv() - fgetcsv() - str_getcsv() is now deprecated.', + 'raw' => 'Passing a non-empty string for the $escape parameter of: - fputcsv() - fgetcsv() - str_getcsv() is now deprecated. (Girgias)', + ), + 22 => + array ( + 'message' => 'The str_getcsv() function now throws ValueErrors when the $separator and $enclosure arguments are not one byte long, or if the $escape is not one byte long or the empty string. This aligns the behaviour to be identical to that of fputcsv() and fgetcsv().', + 'raw' => 'The str_getcsv() function now throws ValueErrors when the $separator and $enclosure arguments are not one byte long, or if the $escape is not one byte long or the empty string. This aligns the behaviour to be identical to that of fputcsv() and fgetcsv(). (Girgias)', + ), + 23 => + array ( + 'message' => 'php_uname() now throws ValueErrors on invalid inputs.', + 'raw' => 'php_uname() now throws ValueErrors on invalid inputs. (Girgias)', + ), + 24 => + array ( + 'message' => 'The "allowed_classes" option for unserialize() now throws TypeErrors and ValueErrors if it is not an array of class names.', + 'raw' => 'The "allowed_classes" option for unserialize() now throws TypeErrors and ValueErrors if it is not an array of class names. (Girgias)', + ), + 25 => + array ( + 'message' => 'Implemented GH-15685 (improve proc_open error reporting on Windows).', + 'raw' => 'Implemented GH-15685 (improve proc_open error reporting on Windows). (cmb)', + ), + 26 => + array ( + 'message' => 'Add support for backed enums in http_build_query().', + 'raw' => 'Add support for backed enums in http_build_query(). (ilutov)', + ), + 27 => + array ( + 'message' => 'Fixed bug GH-15982 (Assertion failure with array_find when references are involved).', + 'raw' => 'Fixed bug GH-15982 (Assertion failure with array_find when references are involved). (nielsdos)', + ), + 28 => + array ( + 'message' => 'Fixed parameter names of fpow() to be identical to pow().', + 'raw' => 'Fixed parameter names of fpow() to be identical to pow(). (Girgias)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Implemented GH-15155 (Stream context is lost when custom stream wrapper is being filtered).', + 'raw' => 'Implemented GH-15155 (Stream context is lost when custom stream wrapper is being filtered). (Quentin Dreyer)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'Failures in the constructor now throw exceptions rather than emitting warnings and having a broken object.', + 'raw' => 'Failures in the constructor now throw exceptions rather than emitting warnings and having a broken object. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling().', + 'raw' => 'Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling(). (nielsdos)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Update the icon of the Windows executables, e.g. php.exe.', + 'raw' => 'Update the icon of the Windows executables, e.g. php.exe. (Ayesh, Nurudin Imširović)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16199 (GREP_HEADER() is broken).', + 'raw' => 'Fixed bug GH-16199 (GREP_HEADER() is broken). (Peter Kokot)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Added XML_OPTION_PARSE_HUGE parser option.', + 'raw' => 'Added XML_OPTION_PARSE_HUGE parser option. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on 64-bit builds).', + 'raw' => 'Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on 64-bit builds). (nielsdos)', + ), + 2 => + array ( + 'message' => 'The xml_set_object() function has been deprecated.', + 'raw' => 'The xml_set_object() function has been deprecated. (Girgias)', + ), + 3 => + array ( + 'message' => 'Passing non-callable strings to the xml_set_*_handler() functions is now deprecated.', + 'raw' => 'Passing non-callable strings to the xml_set_*_handler() functions is now deprecated. (Girgias)', + ), + ), + 'xmlreader' => + array ( + 0 => + array ( + 'message' => 'Declares class constant types.', + 'raw' => 'Declares class constant types. (Ayesh)', + ), + 1 => + array ( + 'message' => 'Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString().', + 'raw' => 'Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-15123 (var_dump doesn\'t actually work on XMLReader).', + 'raw' => 'Fixed bug GH-15123 (var_dump doesn\'t actually work on XMLReader). (nielsdos)', + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory().', + 'raw' => 'Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory(). (nielsdos)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Implement request #64137 (XSLTProcessor::setParameter() should allow both quotes to be used).', + 'raw' => 'Implement request #64137 (XSLTProcessor::setParameter() should allow both quotes to be used). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC.', + 'raw' => 'Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars.', + 'raw' => 'Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix trampoline leak in xpath callables.', + 'raw' => 'Fix trampoline leak in xpath callables. (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11.', + 'raw' => 'Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11. (Remi)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/releases/8.5/changelist.inc b/include/releases/8.5/changelist.inc new file mode 100644 index 0000000000..e6e40775af --- /dev/null +++ b/include/releases/8.5/changelist.inc @@ -0,0 +1,2942 @@ +<?php return array ( + '8.5.6' => + array ( + 'date' => NULL, + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors).', + 'raw' => 'Fixed bug GH-19983 (GC assertion failure with fibers, generators and destructors). (iliaal)', + ), + 1 => + array ( + 'message' => 'Fixed ZEND_API mismatch on zend_ce_closure forward decl for Windows+Clang.', + 'raw' => 'Fixed ZEND_API mismatch on zend_ce_closure forward decl for Windows+Clang. (henderkes)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21504 (Incorrect RC-handling for ZEND_EXT_STMT op1).', + 'raw' => 'Fixed bug GH-21504 (Incorrect RC-handling for ZEND_EXT_STMT op1). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies).', + 'raw' => 'Fixed bug GH-21478 (Forward property operations to real instance for initialized lazy proxies). (iliaal)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21605 (Missing addref for Countable::count()).', + 'raw' => 'Fixed bug GH-21605 (Missing addref for Countable::count()). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws).', + 'raw' => 'Fixed bug GH-21699 (Assertion failure in shutdown_executor when resolving self::/parent::/static:: callables if the error handler throws). (macoaure)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-21603 (Missing addref for __unset).', + 'raw' => 'Fixed bug GH-21603 (Missing addref for __unset). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV).', + 'raw' => 'Fixed bug GH-21760 (Trait with class constant name conflict against enum case causes SEGV). (Pratik Bhujel)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings).', + 'raw' => 'Fixed bug GH-21754 (`--rf` command line option with a method triggers ext/reflection deprecation warnings). (DanielEScherzer)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Add support for brotli and zstd on Windows.', + 'raw' => 'Add support for brotli and zstd on Windows. (Shivam Mathur)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263)', + 'raw' => 'Fixed GHSA-4jhr-8w89-j733 and GH-21566 (Dom\\XMLDocument::C14N() emits duplicate xmlns declarations after setAttributeNS()). (CVE-2026-7263) (David Carlier)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735)', + 'raw' => 'Fixed GHSA-7qg2-v9fj-4mwv (XSS within status endpoint). (CVE-2026-6735) (Jakub Zelenka)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-17399 (iconv memory leak on bailout).', + 'raw' => 'Fixed bug GH-17399 (iconv memory leak on bailout). (iliaal)', + ), + ), + 'lexbor' => + array ( + 0 => + array ( + 'message' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079)', + 'raw' => 'Upgrade to lexbor v2.7.0. (CVE-2026-29078, CVE-2026-29079) (ndossche, ilutov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259)', + 'raw' => 'Fixed GHSA-wm6j-2649-pv75 (Null pointer dereference in php_mb_check_encoding() via mb_ereg_search_init()). (CVE-2026-7259) (vi3tL0u1s)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104)', + 'raw' => 'Fixed GHSA-74r9-qxhc-fx53 (Out-of-bounds access in mbfl_name2encoding_ex()). (CVE-2026-6104) (ilutov)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg).', + 'raw' => 'Fixed bug GH-21158 (JIT: Assertion jit->ra[var].flags & (1<<0) failed in zend_jit_use_reg). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch).', + 'raw' => 'Fixed bug GH-21593 (Borked function JIT JMPNZ smart branch). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21460 (COND optimization regression).', + 'raw' => 'Fixed bug GH-21460 (COND optimization regression). (Dmitry, Arnaud)', + ), + 3 => + array ( + 'message' => 'Fixed faulty returns out of zend_try block in zend_jit_trace().', + 'raw' => 'Fixed faulty returns out of zend_try block in zend_jit_trace(). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak regression in openssl_pbkdf2().', + 'raw' => 'Fix memory leak regression in openssl_pbkdf2(). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix a bunch of memory leaks and crashes on edge cases.', + 'raw' => 'Fix a bunch of memory leaks and crashes on edge cases. (ndossche)', + ), + ), + 'pdo_firebird' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179)', + 'raw' => 'Fixed GHSA-w476-322c-wpvm (SQL injection via NUL bytes in quoted strings). (CVE-2025-14179) (SakiTakamachi)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21683 (pdo_pgsql throws with ATTR_PREFETCH=0 on empty result set).', + 'raw' => 'Fixed bug GH-21683 (pdo_pgsql throws with ATTR_PREFETCH=0 on empty result set). (thomasschiet)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Restore is_link handler in phar_intercept_functions_shutdown.', + 'raw' => 'Restore is_link handler in phar_intercept_functions_shutdown. (iliaal)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment).', + 'raw' => 'Fixed bug GH-21797 (phar: NULL dereference in Phar::webPhar() when SCRIPT_NAME is absent from SAPI environment). (iliaal)', + ), + 2 => + array ( + 'message' => 'Fix memory leak in Phar::offsetGet().', + 'raw' => 'Fix memory leak in Phar::offsetGet(). (iliaal)', + ), + 3 => + array ( + 'message' => 'Fix memory leak in phar_add_file().', + 'raw' => 'Fix memory leak in phar_add_file(). (iliaal)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close).', + 'raw' => 'Fixed bug GH-21799 (phar: propagate phar_stream_flush return value from phar_stream_close). (iliaal)', + ), + 5 => + array ( + 'message' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid.', + 'raw' => 'Fix memory leak in phar_verify_signature() when md_ctx is invalid. (JarneClauw)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state).', + 'raw' => 'Fixed bug GH-21731 (Random\\Engine\\Xoshiro256StarStar::__unserialize() accepts all-zero state). (iliaal)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fixed memory leak when session GC callback return a refcounted value.', + 'raw' => 'Fixed memory leak when session GC callback return a refcounted value. (jorgsowa)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722)', + 'raw' => 'Fixed GHSA-85c2-q967-79q5 (Stale SOAP_GLOBAL(ref_map) pointer with Apache Map). (CVE-2026-6722) (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261)', + 'raw' => 'Fixed GHSA-m33r-qmcv-p97q (Use-after-free after header parsing failure with SOAP_PERSISTENCE_SESSION). (CVE-2026-7261) (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262)', + 'raw' => 'Fixed GHSA-hmxp-6pc4-f3vv (Broken Apache map value NULL check). (CVE-2026-7262) (ilutov)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free).', + 'raw' => 'Fixed bug GH-21499 (RecursiveArrayIterator getChildren UAF after parent free). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fix concurrent iteration and deletion issues in SplObjectStorage.', + 'raw' => 'Fix concurrent iteration and deletion issues in SplObjectStorage. (ndossche)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed wrong free list comparator pointer type.', + 'raw' => 'Fixed wrong free list comparator pointer type. (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568)', + 'raw' => 'Fixed GHSA-96wq-48vp-hh57 (Signed integer overflow of char array offset). (CVE-2026-7568) (TimWolla)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258)', + 'raw' => 'Fixed GHSA-m8rr-4c36-8gq4 (Consistently pass unsigned char to ctype.h functions). (CVE-2026-7258) (ilutov)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set).', + 'raw' => 'Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL and a proxy set). (ndossche)', + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed CVE-2026-42371 (uriparser before 1.0.1 has numeric truncation in text range comparison). (CVE-2026-42371)', + 'raw' => 'Fixed CVE-2026-42371 (uriparser before 1.0.1 has numeric truncation in text range comparison). (CVE-2026-42371) (Joshua W. Windle)', + ), + ), + ), + ), + '8.5.5' => + array ( + 'date' => '26 Mar 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20672 (Incorrect property_info sizing for locally shadowed trait properties).', + 'raw' => 'Fixed bug GH-20672 (Incorrect property_info sizing for locally shadowed trait properties). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies).', + 'raw' => 'Fixed bugs GH-20875, GH-20873, GH-20854 (Propagate IN_GET guard in get_property_ptr_ptr for lazy proxies). (iliaal)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix truncation of total output size causing erroneous errors.', + 'raw' => 'Fix truncation of total output size causing erroneous errors. (ndossche)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes).', + 'raw' => 'Fixed bug GH-21486 (Dom\\HTMLDocument parser mangles xml:space and xml:lang attributes). (ndossche)', + ), + ), + 'ffi' => + array ( + 0 => + array ( + 'message' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure.', + 'raw' => 'Fixed resource leak in FFI::cdef() onsymbol resolution failure. (David Carlier)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support).', + 'raw' => 'Fixed bug GH-21431 (phpinfo() to display libJPEG 10.0 support). (David Carlier)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script).', + 'raw' => 'Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results).', + 'raw' => 'Fixed bug GH-20838 (JIT compiler produces wrong arithmetic results). (Dmitry, iliaal)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context).', + 'raw' => 'Fixed bug GH-21267 (JIT tracing: infinite loop on FETCH_OBJ_R with IS_UNDEF property in polymorphic context). (Dmitry, iliaal)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-21395 (uaf in jit).', + 'raw' => 'Fixed bug GH-21395 (uaf in jit). (ndossche)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys).', + 'raw' => 'Fixed bug GH-21083 (Skip private_key_bits validation for EC/curve-based keys). (iliaal)', + ), + 1 => + array ( + 'message' => 'Fix missing error propagation for BIO_printf() calls.', + 'raw' => 'Fix missing error propagation for BIO_printf() calls. (ndossche)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed signal handler installation on AIX by bumping the storage size of the num_signals global.', + 'raw' => 'Fixed signal handler installation on AIX by bumping the storage size of the num_signals global. (Calvin Buckley)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl.', + 'raw' => 'Fixed re-entrancy issue on php_pcre_match_impl, php_pcre_replace_impl, php_pcre_split_impl, and php_pcre_grep_impl. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21333 (use after free when unlinking entries during iteration of a compressed phar).', + 'raw' => 'Fixed bug GH-21333 (use after free when unlinking entries during iteration of a compressed phar). (David Carlier)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments).', + 'raw' => 'Fixed bug GH-21336 (SNMP::setSecurity() undefined behavior with NULL arguments). (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes.', + 'raw' => 'Fixed Set-Cookie parsing bug wrong offset while scanning attributes. (David Carlier)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap).', + 'raw' => 'Fixed bug GH-21454 (missing write lock validation in SplHeap). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers).', + 'raw' => 'Fixed bug GH-20906 (Assertion failure when messing up output buffers). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize).', + 'raw' => 'Fixed bug GH-20627 (Cannot identify some avif images with getimagesize). (y-guyon)', + ), + ), + 'sysvshm' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in shm_get_var() when variable is corrupted.', + 'raw' => 'Fix memory leak in shm_get_var() when variable is corrupted. (ndossche)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument).', + 'raw' => 'Fix GH-21357 (XSLTProcessor works with DOMDocument, but fails with Dom\\XMLDocument). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage).', + 'raw' => 'Fixed bug GH-21496 (UAF in dom_objects_free_storage). (David Carlier/ndossche)', + ), + ), + ), + ), + '8.5.4' => + array ( + 'date' => '12 Mar 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds).', + 'raw' => 'Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds). (Arnaud)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21059 (Segfault when preloading constant AST closure).', + 'raw' => 'Fixed bug GH-21059 (Segfault when preloading constant AST closure). (ilutov)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-21072 (Crash on (unset) cast in constant expression).', + 'raw' => 'Fixed bug GH-21072 (Crash on (unset) cast in constant expression). (arshidkv12)', + ), + 3 => + array ( + 'message' => 'Fix deprecation now showing when accessing null key of an array with JIT.', + 'raw' => 'Fix deprecation now showing when accessing null key of an array with JIT. (alexandre-daubois)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()).', + 'raw' => 'Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()).', + 'raw' => 'Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value).', + 'raw' => 'Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-21215 (Build fails with -std=).', + 'raw' => 'Fixed bug GH-21215 (Build fails with -std=). (Arnaud)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool).', + 'raw' => 'Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool). (Michael Orlitzky)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Don\'t truncate length.', + 'raw' => 'Don\'t truncate length. (ndossche)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start).', + 'raw' => 'Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix timezone offset with seconds losing precision.', + 'raw' => 'Fix timezone offset with seconds losing precision. (ndossche)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError).', + 'raw' => 'Fixed bug GH-21077 (Accessing Dom\\Node::baseURI can throw TypeError). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError).', + 'raw' => 'Fixed bug GH-21097 (Accessing Dom\\Node properties can can throw TypeError). (ndossche)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21262 (ldap_modify() too strict controls argument validation makes it impossible to unset attribute).', + 'raw' => 'Fixed bug GH-21262 (ldap_modify() too strict controls argument validation makes it impossible to unset attribute). (David Carlier)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries).', + 'raw' => 'Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries). (Jordi Kroon)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris).', + 'raw' => 'Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris). (Petr Sumbera)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object).', + 'raw' => 'Fixed bug GH-21227 (Borked SCCP of array containing partial object). (ilutov)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix a bunch of leaks and error propagation.', + 'raw' => 'Fix a bunch of leaks and error propagation. (ndossche)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed compilation with clang (missing intrin.h include).', + 'raw' => 'Fixed compilation with clang (missing intrin.h include). (Kévin Dunglas)', + ), + ), + ), + ), + '8.5.3' => + array ( + 'date' => '29 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20806 (preserve_none feature compatiblity with LTO).', + 'raw' => 'Fixed bug GH-20806 (preserve_none feature compatiblity with LTO). (henderkes)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20767 (build failure with musttail/preserve_none feature on macOs).', + 'raw' => 'Fixed bug GH-20767 (build failure with musttail/preserve_none feature on macOs). (David Carlier)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()).', + 'raw' => 'Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown function triggered by bailout in php_output_lock_error()). (timwolla)', + ), + 3 => + array ( + 'message' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber).', + 'raw' => 'Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber). (ilutov)', + ), + 4 => + array ( + 'message' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization).', + 'raw' => 'Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization). (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-20914 (Internal enums can be cloned and compared).', + 'raw' => 'Fixed bug GH-20914 (Internal enums can be cloned and compared). (Arnaud)', + ), + 6 => + array ( + 'message' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value).', + 'raw' => 'Fix OSS-Fuzz #474613951 (Leaked parent property default value). (ilutov)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-20895 (ReflectionProperty does not return the PHPDoc of a property if it contains an attribute with a Closure).', + 'raw' => 'Fixed bug GH-20895 (ReflectionProperty does not return the PHPDoc of a property if it contains an attribute with a Closure). (timwolla)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction).', + 'raw' => 'Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction). (Bob)', + ), + 9 => + array ( + 'message' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value).', + 'raw' => 'Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value). (ilutov)', + ), + 10 => + array ( + 'message' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf).', + 'raw' => 'Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf). (ilutov)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion).', + 'raw' => 'Fixed bug GH-20905 (Lazy proxy bailing __clone assertion). (ilutov)', + ), + 12 => + array ( + 'message' => 'Fixed bug GH-20479 (Hooked object properties overflow).', + 'raw' => 'Fixed bug GH-20479 (Hooked object properties overflow). (ndossche)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Update timelib to 2022.16.', + 'raw' => 'Update timelib to 2022.16. (Derick)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts).', + 'raw' => 'Fixed GH-21041 (Dom\\HTMLDocument corrupts closing tags within scripts). (lexborisov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding).', + 'raw' => 'Fixed bug GH-20833 (mb_str_pad() divide by zero if padding string is invalid in the encoding). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references).', + 'raw' => 'Fixed bug GH-20836 (Stack overflow in mb_convert_variables with recursive array references). (alexandre-daubois)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference).', + 'raw' => 'Fixed bug GH-20818 (Segfault in Tracing JIT with object reference). (khasinski)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fix memory leaks when sk_X509_new_null() fails.', + 'raw' => 'Fix memory leaks when sk_X509_new_null() fails. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails.', + 'raw' => 'Fix crash when in openssl_x509_parse() when i2s_ASN1_INTEGER() fails. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails.', + 'raw' => 'Fix crash in openssl_x509_parse() when X509_NAME_oneline() fails. (ndossche)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory).', + 'raw' => 'Fixed bug GH-20882 (buildFromIterator breaks with missing base directory). (ndossche)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB.', + 'raw' => 'Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB. (David Carlier)', + ), + ), + 'readline' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()).', + 'raw' => 'Fixed bug GH-18139 (Memory leak when overriding some settings via readline_info()). (ndossche)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration).', + 'raw' => 'Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS)', + 'raw' => 'Fixed bug #74357 (lchown fails to change ownership of symlink with ZTS) (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20843 (var_dump() crash with nested objects)', + 'raw' => 'Fixed bug GH-20843 (var_dump() crash with nested objects) (David Carlier)', + ), + ), + ), + ), + '8.5.2' => + array ( + 'date' => '15 Jan 2026', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument).', + 'raw' => 'Fix OSS-Fuzz #465488618 (Wrong assumptions when dumping function signature with dynamic class const lookup default argument). (ilutov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()).', + 'raw' => 'Fixed bug GH-20695 (Assertion failure in normalize_value() when parsing malformed INI input via parse_ini_string()). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator).', + 'raw' => 'Fixed bug GH-20714 (Uncatchable exception thrown in generator). (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation).', + 'raw' => 'Fixed bug GH-20352 (UAF in php_output_handler_free via re-entrant ob_start() during error deactivation). (ndossche)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20745 ("Casting out of range floats to int" applies to strings).', + 'raw' => 'Fixed bug GH-20745 ("Casting out of range floats to int" applies to strings). (Bob)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects).', + 'raw' => 'Fixed bug GH-20722 (Null pointer dereference in DOM namespace node cloning via clone on malformed objects). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()).', + 'raw' => 'Fixed bug GH-20444 (Dom\\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()). (ndossche)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20631 (Integer underflow in exif HEIF parsing when pos.size < 2).', + 'raw' => 'Fixed bug GH-20631 (Integer underflow in exif HEIF parsing when pos.size < 2). (Oblivionsage)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fix leak in umsg_format_helper().', + 'raw' => 'Fix leak in umsg_format_helper(). (ndossche)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in ldap_set_options().', + 'raw' => 'Fix memory leak in ldap_set_options(). (ndossche)', + ), + ), + 'lexbor' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20668 (\\Uri\\WhatWg\\Url::withHost() crashes (SEGV) for URLs using the file: scheme).', + 'raw' => 'Fixed bug GH-20668 (\\Uri\\WhatWg\\Url::withHost() crashes (SEGV) for URLs using the file: scheme). (lexborisov)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator).', + 'raw' => 'Fixed bug GH-20674 (mb_decode_mimeheader does not handle separator). (Yuya Hamada)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options).', + 'raw' => 'Fixed bug GH-20802 (undefined behavior with invalid SNI_server_certs options). (David Carlier)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling.', + 'raw' => 'Fixed bug with pcntl_getcpuaffinity() on solaris regarding invalid process ids handling. (David Carlier)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails).', + 'raw' => 'Fixed bug GH-20732 (Phar::LoadPhar undefined behavior when reading fails). (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix SplFileInfo::openFile() in write mode.', + 'raw' => 'Fix SplFileInfo::openFile() in write mode. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix build on legacy OpenSSL 1.1.0 systems.', + 'raw' => 'Fix build on legacy OpenSSL 1.1.0 systems. (Giovanni Giacobbi)', + ), + 3 => + array ( + 'message' => 'Fixed bug #74154 (Phar extractTo creates empty files).', + 'raw' => 'Fixed bug #74154 (Phar extractTo creates empty files). (ndossche)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'Fix support for MM module.', + 'raw' => 'Fix support for MM module. (Michael Orlitzky)', + ), + ), + 'sqlite3' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned).', + 'raw' => 'Fixed bug GH-20699 (SQLite3Result fetchArray return array|false, null returned). (ndossche, plusminmax)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix error check for proc_open() command.', + 'raw' => 'Fix error check for proc_open() command. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fix memory leak in mail() when header key is numeric.', + 'raw' => 'Fix memory leak in mail() when header key is numeric. (Girgias)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed).', + 'raw' => 'Fixed bug GH-20582 (Heap Buffer Overflow in iptcembed). (ndossche)', + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20771 (Assertion failure when getUnicodeHost() returns empty string).', + 'raw' => 'Fixed bug GH-20771 (Assertion failure when getUnicodeHost() returns empty string). (ndossche)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix OOB gzseek() causing assertion failure.', + 'raw' => 'Fix OOB gzseek() causing assertion failure. (ndossche)', + ), + ), + ), + ), + '8.5.1' => + array ( + 'date' => '18 Dec 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Sync all boost.context files with release 1.86.0.', + 'raw' => 'Sync all boost.context files with release 1.86.0. (mvorisek)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter).', + 'raw' => 'Fixed bug GH-20435 (SensitiveParameter doesn\'t work for named argument passing to variadic parameter). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-20546 (preserve_none attribute configure check on macOs issue).', + 'raw' => 'Fixed bug GH-20546 (preserve_none attribute configure check on macOs issue). (David Carlier/cho-m)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()).', + 'raw' => 'Fixed bug GH-20286 (use-after-destroy during userland stream_close()). (ndossche, David Carlier)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak when edge case is hit when registering xpath callback.', + 'raw' => 'Fix memory leak when edge case is hit when registering xpath callback. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase).', + 'raw' => 'Fixed bug GH-20395 (querySelector and querySelectorAll requires elements in $selectors to be lowercase). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix missing NUL byte check on C14NFile().', + 'raw' => 'Fix missing NUL byte check on C14NFile(). (ndossche)', + ), + ), + 'fibers' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value).', + 'raw' => 'Fixed bug GH-20483 (ASAN stack overflow with fiber.stack_size INI small value). (David Carlier)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants).', + 'raw' => 'Fixed bug GH-20426 (Spoofchecker::setRestrictionLevel() error message suggests missing constants). (DanielEScherzer)', + ), + ), + 'lexbor' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20501 (\\Uri\\WhatWg\\Url lose host after calling withPath() or withQuery()).', + 'raw' => 'Fixed bug GH-20501 (\\Uri\\WhatWg\\Url lose host after calling withPath() or withQuery()). (lexborisov)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20502 (\\Uri\\WhatWg\\Url crashes (SEGV) when parsing malformed URL due to Lexbor memory corruption).', + 'raw' => 'Fixed bug GH-20502 (\\Uri\\WhatWg\\Url crashes (SEGV) when parsing malformed URL due to Lexbor memory corruption). (lexborisov)', + ), + ), + 'libxml' => + array ( + 0 => + array ( + 'message' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling.', + 'raw' => 'Fix some deprecations on newer libxml versions regarding input buffer/parser handling. (ndossche)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Make mysqli_begin_transaction() report errors properly.', + 'raw' => 'Make mysqli_begin_transaction() report errors properly. (Kamil Tekiela)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets).', + 'raw' => 'Fixed bug GH-20528 (Regression breaks mysql connexion using an IPv6 address enclosed in square brackets). (Remi)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer).', + 'raw' => 'Fixed bug GH-20329 (opcache.file_cache broken with full interned string buffer). (Arnaud)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20553 (PDO::FETCH_CLASSTYPE ignores $constructorArgs in PHP 8.5.0).', + 'raw' => 'Fixed bug GH-20553 (PDO::FETCH_CLASSTYPE ignores $constructorArgs in PHP 8.5.0). (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180)', + 'raw' => 'Fixed GHSA-8xr5-qppj-gvwj (PDO quoting result null deref). (CVE-2025-14180) (Jakub Zelenka)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub).', + 'raw' => 'Fixed bug GH-20442 (Phar does not respect case-insensitiveness of __halt_compiler() when reading stub). (ndossche, TimWolla)', + ), + 1 => + array ( + 'message' => 'Fix broken return value of fflush() for phar file entries.', + 'raw' => 'Fix broken return value of fflush() for phar file entries. (ndossche)', + ), + 2 => + array ( + 'message' => 'Fix assertion failure when fseeking a phar file out of bounds.', + 'raw' => 'Fix assertion failure when fseeking a phar file out of bounds. (ndossche)', + ), + ), + 'phpdbg' => + array ( + 0 => + array ( + 'message' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog().', + 'raw' => 'Fixed ZPP type violation in phpdbg_get_executable() and phpdbg_end_oplog(). (Girgias)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization).', + 'raw' => 'Fixed bug GH-20614 (SplFixedArray incorrectly handles references in deserialization). (ndossche)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Fix memory leak in array_diff() with custom type checks.', + 'raw' => 'Fix memory leak in array_diff() with custom type checks. (ndossche)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures).', + 'raw' => 'Fixed bug GH-20583 (Stack overflow in http_build_query via deep structures). (ndossche)', + ), + 2 => + array ( + 'message' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()).', + 'raw' => 'Fixed GHSA-www2-q4fc-65wf (Null byte termination in dns_get_record()). (ndossche)', + ), + 3 => + array ( + 'message' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178)', + 'raw' => 'Fixed GHSA-h96m-rvf9-jgm2 (Heap buffer overflow in array_merge()). (CVE-2025-14178) (ndossche)', + ), + 4 => + array ( + 'message' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177)', + 'raw' => 'Fixed GHSA-3237-qqm7-mfv7 (Information Leak of Memory in getimagesize). (CVE-2025-14177) (ndossche)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints).', + 'raw' => 'Fixed bug GH-20370 (User stream filters could violate typed property constraints). (alexandre-daubois)', + ), + ), + 'uri' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20366 (ext/uri incorrectly throws ValueError when encountering null byte).', + 'raw' => 'Fixed bug GH-20366 (ext/uri incorrectly throws ValueError when encountering null byte). (kocsismate)', + ), + 1 => + array ( + 'message' => 'Fixed CVE-2025-67899 (uriparser through 0.9.9 allows unbounded recursion and stack consumption).', + 'raw' => 'Fixed CVE-2025-67899 (uriparser through 0.9.9 allows unbounded recursion and stack consumption). (Sebastian Pipping)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback).', + 'raw' => 'Fixed bug GH-20439 (xml_set_default_handler() does not properly handle special characters in attributes when passing data to callback). (ndossche)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fix crash in property existence test.', + 'raw' => 'Fix crash in property existence test. (ndossche)', + ), + 1 => + array ( + 'message' => 'Don\'t truncate return value of zip_fread() with user sizes.', + 'raw' => 'Don\'t truncate return value of zip_fread() with user sizes. (ndossche)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'Fix assertion failures resulting in crashes with stream filter object parameters.', + 'raw' => 'Fix assertion failures resulting in crashes with stream filter object parameters. (ndossche)', + ), + ), + ), + ), + '8.5.0' => + array ( + 'date' => '20 Nov 2025', + 'modules' => + array ( + 'core' => + array ( + 0 => + array ( + 'message' => 'Added the #[\\NoDiscard] attribute to indicate that a function\'s return value is important and should be consumed.', + 'raw' => 'Added the #[\\NoDiscard] attribute to indicate that a function\'s return value is important and should be consumed. (timwolla, edorian)', + ), + 1 => + array ( + 'message' => 'Added the (void) cast to indicate that not using a value is intentional.', + 'raw' => 'Added the (void) cast to indicate that not using a value is intentional. (timwolla, edorian)', + ), + 2 => + array ( + 'message' => 'Added get_error_handler(), get_exception_handler() functions.', + 'raw' => 'Added get_error_handler(), get_exception_handler() functions. (Arnaud)', + ), + 3 => + array ( + 'message' => 'Added support for casts in constant expressions.', + 'raw' => 'Added support for casts in constant expressions. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Added the pipe (|>) operator.', + 'raw' => 'Added the pipe (|>) operator. (crell)', + ), + 5 => + array ( + 'message' => 'Added support for `final` with constructor property promotion.', + 'raw' => 'Added support for `final` with constructor property promotion. (DanielEScherzer)', + ), + 6 => + array ( + 'message' => 'Added support for configuring the URI parser for the FTP/FTPS as well as the SSL/TLS stream wrappers as described in https://wiki.php.net/rfc/url_parsing_api#plugability.', + 'raw' => 'Added support for configuring the URI parser for the FTP/FTPS as well as the SSL/TLS stream wrappers as described in https://wiki.php.net/rfc/url_parsing_api#plugability. (kocsismate)', + ), + 7 => + array ( + 'message' => 'Added PHP_BUILD_PROVIDER constant.', + 'raw' => 'Added PHP_BUILD_PROVIDER constant. (timwolla)', + ), + 8 => + array ( + 'message' => 'Added PHP_BUILD_DATE constant.', + 'raw' => 'Added PHP_BUILD_DATE constant. (cmb)', + ), + 9 => + array ( + 'message' => 'Added support for Closures and first class callables in constant expressions.', + 'raw' => 'Added support for Closures and first class callables in constant expressions. (timwolla, edorian)', + ), + 10 => + array ( + 'message' => 'Add support for backtraces for fatal errors.', + 'raw' => 'Add support for backtraces for fatal errors. (enorris)', + ), + 11 => + array ( + 'message' => 'Add clone-with support to the clone() function.', + 'raw' => 'Add clone-with support to the clone() function. (timwolla, edorian)', + ), + 12 => + array ( + 'message' => 'Add RFC 3986 and WHATWG URL compliant APIs for URL parsing and manipulation', + 'raw' => 'Add RFC 3986 and WHATWG URL compliant APIs for URL parsing and manipulation (kocsismate, timwolla)', + ), + 13 => + array ( + 'message' => 'Fixed AST printing for immediately invoked Closure.', + 'raw' => 'Fixed AST printing for immediately invoked Closure. (Dmitrii Derepko)', + ), + 14 => + array ( + 'message' => 'Properly handle __debugInfo() returning an array reference.', + 'raw' => 'Properly handle __debugInfo() returning an array reference. (nielsdos)', + ), + 15 => + array ( + 'message' => 'Properly handle reference return value from __toString().', + 'raw' => 'Properly handle reference return value from __toString(). (nielsdos)', + ), + 16 => + array ( + 'message' => 'Improved error message of UnhandledMatchError for zend.exception_string_param_max_len=0.', + 'raw' => 'Improved error message of UnhandledMatchError for zend.exception_string_param_max_len=0. (timwolla)', + ), + 17 => + array ( + 'message' => 'Fixed bug GH-15753 and GH-16198 (Bind traits before parent class).', + 'raw' => 'Fixed bug GH-15753 and GH-16198 (Bind traits before parent class). (ilutov)', + ), + 18 => + array ( + 'message' => 'Fixed bug GH-17951 (memory_limit is not always limited by max_memory_limit).', + 'raw' => 'Fixed bug GH-17951 (memory_limit is not always limited by max_memory_limit). (manuelm)', + ), + 19 => + array ( + 'message' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval).', + 'raw' => 'Fixed bug GH-20183 (Stale EG(opline_before_exception) pointer through eval). (ilutov)', + ), + 20 => + array ( + 'message' => 'Fixed bug GH-20113 (Missing new Foo(...) error in constant expressions).', + 'raw' => 'Fixed bug GH-20113 (Missing new Foo(...) error in constant expressions). (ilutov)', + ), + 21 => + array ( + 'message' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown).', + 'raw' => 'Fixed bug GH-19844 (Don\'t bail when closing resources on shutdown). (ilutov)', + ), + 22 => + array ( + 'message' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error).', + 'raw' => 'Fixed bug GH-20177 (Accessing overridden private property in get_object_vars() triggers assertion error). (ilutov)', + ), + 23 => + array ( + 'message' => 'Fix OSS-Fuzz #447521098 (Fatal error during sccp shift eval).', + 'raw' => 'Fix OSS-Fuzz #447521098 (Fatal error during sccp shift eval). (ilutov)', + ), + 24 => + array ( + 'message' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN).', + 'raw' => 'Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)', + ), + 25 => + array ( + 'message' => 'Fixed bug GH-19352 (Cross-compilation with musl C library).', + 'raw' => 'Fixed bug GH-19352 (Cross-compilation with musl C library). (henderkes, Peter Kokot)', + ), + 26 => + array ( + 'message' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks).', + 'raw' => 'Fixed bug GH-19765 (object_properties_load() bypasses readonly property checks). (timwolla)', + ), + 27 => + array ( + 'message' => 'Fixed hard_timeout with --enable-zend-max-execution-timers.', + 'raw' => 'Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)', + ), + 28 => + array ( + 'message' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array).', + 'raw' => 'Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland array). (ilutov)', + ), + 29 => + array ( + 'message' => 'Fixed bug GH-19823 (register_argc_argv deprecation emitted twice when using OPcache).', + 'raw' => 'Fixed bug GH-19823 (register_argc_argv deprecation emitted twice when using OPcache). (timwolla)', + ), + 30 => + array ( + 'message' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured).', + 'raw' => 'Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is configured). (nielsdos)', + ), + 31 => + array ( + 'message' => 'Fixed bug GH-19719 (Allow empty statements before declare(strict_types)).', + 'raw' => 'Fixed bug GH-19719 (Allow empty statements before declare(strict_types)). (nielsdos)', + ), + 32 => + array ( + 'message' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv).', + 'raw' => 'Fixed bug GH-19934 (CGI with auto_globals_jit=0 causes uouv). (ilutov)', + ), + 33 => + array ( + 'message' => 'Fixed bug GH-19613 (Stale array iterator pointer).', + 'raw' => 'Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)', + ), + 34 => + array ( + 'message' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge).', + 'raw' => 'Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)', + ), + 35 => + array ( + 'message' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0).', + 'raw' => 'Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)', + ), + 36 => + array ( + 'message' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning).', + 'raw' => 'Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning). (ilutov)', + ), + 37 => + array ( + 'message' => 'Fixed bug GH-19476 (pipe operator fails to correctly handle returning by reference).', + 'raw' => 'Fixed bug GH-19476 (pipe operator fails to correctly handle returning by reference). (alexandre-daubois)', + ), + 38 => + array ( + 'message' => 'Fixed bug GH-19081 (Wrong lineno in property error with constructor property promotion).', + 'raw' => 'Fixed bug GH-19081 (Wrong lineno in property error with constructor property promotion). (ilutov)', + ), + 39 => + array ( + 'message' => 'Fixed bug GH-17959 (Relax missing trait fatal error to error exception).', + 'raw' => 'Fixed bug GH-17959 (Relax missing trait fatal error to error exception). (ilutov)', + ), + 40 => + array ( + 'message' => 'Fixed bug GH-18033 (NULL-ptr dereference when using register_tick_function in destructor).', + 'raw' => 'Fixed bug GH-18033 (NULL-ptr dereference when using register_tick_function in destructor). (nielsdos)', + ), + 41 => + array ( + 'message' => 'Fixed bug GH-18026 (Improve "expecting token" error for ampersand).', + 'raw' => 'Fixed bug GH-18026 (Improve "expecting token" error for ampersand). (ilutov)', + ), + 42 => + array ( + 'message' => 'The report_memleaks INI directive has been deprecated.', + 'raw' => 'The report_memleaks INI directive has been deprecated. (alexandre-daubois)', + ), + 43 => + array ( + 'message' => 'Fixed OSS-Fuzz #439125710 (Pipe cannot be used in write context).', + 'raw' => 'Fixed OSS-Fuzz #439125710 (Pipe cannot be used in write context). (nielsdos)', + ), + 44 => + array ( + 'message' => 'Fixed bug GH-19548 (Shared memory violation on property inheritance).', + 'raw' => 'Fixed bug GH-19548 (Shared memory violation on property inheritance). (alexandre-daubois)', + ), + 45 => + array ( + 'message' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references).', + 'raw' => 'Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references). (Arnaud, timwolla)', + ), + 46 => + array ( + 'message' => 'Fixed bug GH-18373 (Don\'t substitute self/parent with anonymous class).', + 'raw' => 'Fixed bug GH-18373 (Don\'t substitute self/parent with anonymous class). (ilutov)', + ), + 47 => + array ( + 'message' => 'Fix support for non-userland stream notifiers.', + 'raw' => 'Fix support for non-userland stream notifiers. (timwolla)', + ), + 48 => + array ( + 'message' => 'Fixed bug GH-19305 (Operands may be being released during comparison).', + 'raw' => 'Fixed bug GH-19305 (Operands may be being released during comparison). (Arnaud)', + ), + 49 => + array ( + 'message' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).', + 'raw' => 'Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator). (Arnaud)', + ), + 50 => + array ( + 'message' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes).', + 'raw' => 'Fixed bug GH-19326 (Calling Generator::throw() on a running generator with a non-Generator delegate crashes). (Arnaud)', + ), + 51 => + array ( + 'message' => 'Fix OSS-Fuzz #427814452 (pipe compilation fails with assert).', + 'raw' => 'Fix OSS-Fuzz #427814452 (pipe compilation fails with assert). (nielsdos, ilutov)', + ), + 52 => + array ( + 'message' => 'Fixed bug GH-16665 (\\array and \\callable should not be usable in class_alias).', + 'raw' => 'Fixed bug GH-16665 (\\array and \\callable should not be usable in class_alias). (nielsdos)', + ), + 53 => + array ( + 'message' => 'Use `clock_gettime_nsec_np()` for high resolution timer on macOS if available.', + 'raw' => 'Use `clock_gettime_nsec_np()` for high resolution timer on macOS if available. (timwolla)', + ), + 54 => + array ( + 'message' => 'Make `clone()` a function.', + 'raw' => 'Make `clone()` a function. (timwolla, edorian)', + ), + 55 => + array ( + 'message' => 'Introduced the TAILCALL VM, enabled by default when compiling with Clang>=19 on x86_64 or aarch64.', + 'raw' => 'Introduced the TAILCALL VM, enabled by default when compiling with Clang>=19 on x86_64 or aarch64. (Arnaud)', + ), + 56 => + array ( + 'message' => 'Enacted the follow-up phase of the "Path to Saner Increment/Decrement operators" RFC, meaning that incrementing non-numeric strings is now deprecated. .', + 'raw' => 'Enacted the follow-up phase of the "Path to Saner Increment/Decrement operators" RFC, meaning that incrementing non-numeric strings is now deprecated. (Girgias).', + ), + 57 => + array ( + 'message' => 'Various closure binding issues are now deprecated.', + 'raw' => 'Various closure binding issues are now deprecated. (alexandre-daubois)', + ), + 58 => + array ( + 'message' => 'Constant redeclaration has been deprecated.', + 'raw' => 'Constant redeclaration has been deprecated. (alexandre-daubois)', + ), + 59 => + array ( + 'message' => 'Marks the stack as non-executable on Haiku.', + 'raw' => 'Marks the stack as non-executable on Haiku. (David Carlier)', + ), + 60 => + array ( + 'message' => 'Deriving $_SERVER[\'argc\'] and $_SERVER[\'argv\'] from the query string is now deprecated.', + 'raw' => 'Deriving $_SERVER[\'argc\'] and $_SERVER[\'argv\'] from the query string is now deprecated. (timwolla, nicolasgrekas)', + ), + 61 => + array ( + 'message' => 'Using null as an array offset or when calling array_key_exists() is now deprecated.', + 'raw' => 'Using null as an array offset or when calling array_key_exists() is now deprecated. (alexandre-daubois)', + ), + 62 => + array ( + 'message' => 'The disable_classes INI directive has been removed.', + 'raw' => 'The disable_classes INI directive has been removed. (Girgias)', + ), + 63 => + array ( + 'message' => 'The locally predefined variable $http_response_header is deprecated.', + 'raw' => 'The locally predefined variable $http_response_header is deprecated. (Girgias)', + ), + 64 => + array ( + 'message' => 'Non-canonical cast names (boolean), (integer), (double), and (binary) have been deprecated.', + 'raw' => 'Non-canonical cast names (boolean), (integer), (double), and (binary) have been deprecated. (Girgias)', + ), + 65 => + array ( + 'message' => 'The $exclude_disabled parameter of the get_defined_functions() function has been deprecated, as it no longer has any effect since PHP 8.0.', + 'raw' => 'The $exclude_disabled parameter of the get_defined_functions() function has been deprecated, as it no longer has any effect since PHP 8.0. (Girgias)', + ), + 66 => + array ( + 'message' => 'Terminating case statements with a semicolon instead of a colon has been deprecated.', + 'raw' => 'Terminating case statements with a semicolon instead of a colon has been deprecated. (theodorejb)', + ), + 67 => + array ( + 'message' => 'The backtick operator as an alias for shell_exec() has been deprecated.', + 'raw' => 'The backtick operator as an alias for shell_exec() has been deprecated. (timwolla)', + ), + 68 => + array ( + 'message' => 'Returning null from __debugInfo() has been deprecated.', + 'raw' => 'Returning null from __debugInfo() has been deprecated. (DanielEScherzer)', + ), + 69 => + array ( + 'message' => 'Support #[\\Override] on properties.', + 'raw' => 'Support #[\\Override] on properties. (Jiří Pudil)', + ), + 70 => + array ( + 'message' => 'Destructing non-array values (other than NULL) using [] or list() now emits a warning.', + 'raw' => 'Destructing non-array values (other than NULL) using [] or list() now emits a warning. (Girgias)', + ), + 71 => + array ( + 'message' => 'Casting floats that are not representable as ints now emits a warning.', + 'raw' => 'Casting floats that are not representable as ints now emits a warning. (Girgias)', + ), + 72 => + array ( + 'message' => 'Casting NAN to other types now emits a warning.', + 'raw' => 'Casting NAN to other types now emits a warning. (Girgias)', + ), + 73 => + array ( + 'message' => 'Implement GH-15680 (Enhance zend_dump_op_array to properly represent non-printable characters in string literals).', + 'raw' => 'Implement GH-15680 (Enhance zend_dump_op_array to properly represent non-printable characters in string literals). (nielsdos, WangYihang)', + ), + 74 => + array ( + 'message' => 'Fixed bug GH-17442 (Engine UAF with reference assign and dtor).', + 'raw' => 'Fixed bug GH-17442 (Engine UAF with reference assign and dtor). (nielsdos)', + ), + 75 => + array ( + 'message' => 'Do not use RTLD_DEEPBIND if dlmopen is available.', + 'raw' => 'Do not use RTLD_DEEPBIND if dlmopen is available. (Daniil Gentili)', + ), + 76 => + array ( + 'message' => 'Added #[\\DelayedTargetValidation] attribute.', + 'raw' => 'Added #[\\DelayedTargetValidation] attribute. (DanielEScherzer)', + ), + 77 => + array ( + 'message' => 'Support #[\\Deprecated] on traits.', + 'raw' => 'Support #[\\Deprecated] on traits. (DanielEScherzer)', + ), + ), + 'bcmath' => + array ( + 0 => + array ( + 'message' => 'Simplify `bc_divide()` code.', + 'raw' => 'Simplify `bc_divide()` code. (SakiTakamachi)', + ), + 1 => + array ( + 'message' => 'If the result is 0, n_scale is set to 0.', + 'raw' => 'If the result is 0, n_scale is set to 0. (SakiTakamachi)', + ), + 2 => + array ( + 'message' => 'If size of BC_VECTOR array is within 64 bytes, stack area is now used.', + 'raw' => 'If size of BC_VECTOR array is within 64 bytes, stack area is now used. (SakiTakamachi)', + ), + 3 => + array ( + 'message' => 'Fixed bug GH-20006 (Power of 0 of BcMath number causes UB).', + 'raw' => 'Fixed bug GH-20006 (Power of 0 of BcMath number causes UB). (nielsdos)', + ), + ), + 'bz2' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19810 (Broken bzopen() stream mode validation).', + 'raw' => 'Fixed bug GH-19810 (Broken bzopen() stream mode validation). (ilutov)', + ), + ), + 'cli' => + array ( + 0 => + array ( + 'message' => 'Add --ini=diff to print INI settings changed from the builtin default.', + 'raw' => 'Add --ini=diff to print INI settings changed from the builtin default. (timwolla)', + ), + 1 => + array ( + 'message' => 'Drop support for -z CLI/CGI flag.', + 'raw' => 'Drop support for -z CLI/CGI flag. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fixed GH-17956 - development server 404 page does not adapt to mobiles.', + 'raw' => 'Fixed GH-17956 - development server 404 page does not adapt to mobiles. (pascalchevrel)', + ), + 3 => + array ( + 'message' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS.', + 'raw' => 'Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server with PHP_CLI_SERVER_WORKERS. (leotaku)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).', + 'raw' => 'Fixed bug GH-19461 (Improve error message on listening error with IPv6 address). (alexandre-daubois)', + ), + ), + 'com' => + array ( + 0 => + array ( + 'message' => 'Fixed property access of PHP objects wrapped in variant.', + 'raw' => 'Fixed property access of PHP objects wrapped in variant. (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed method calls for PHP objects wrapped in variant.', + 'raw' => 'Fixed method calls for PHP objects wrapped in variant. (cmb)', + ), + ), + 'curl' => + array ( + 0 => + array ( + 'message' => 'Added CURLFOLLOW_ALL, CURLFOLLOW_OBEYCODE and CURLFOLLOW_FIRSTONLY values for CURLOPT_FOLLOWLOCATION curl_easy_setopt option.', + 'raw' => 'Added CURLFOLLOW_ALL, CURLFOLLOW_OBEYCODE and CURLFOLLOW_FIRSTONLY values for CURLOPT_FOLLOWLOCATION curl_easy_setopt option. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added curl_multi_get_handles().', + 'raw' => 'Added curl_multi_get_handles(). (timwolla)', + ), + 2 => + array ( + 'message' => 'Added curl_share_init_persistent().', + 'raw' => 'Added curl_share_init_persistent(). (enorris)', + ), + 3 => + array ( + 'message' => 'Added CURLINFO_USED_PROXY, CURLINFO_HTTPAUTH_USED, and CURLINFO_PROXYAUTH_USED support to curl_getinfo.', + 'raw' => 'Added CURLINFO_USED_PROXY, CURLINFO_HTTPAUTH_USED, and CURLINFO_PROXYAUTH_USED support to curl_getinfo. (Ayesh Karunaratne)', + ), + 4 => + array ( + 'message' => 'Add support for CURLINFO_CONN_ID in curl_getinfo()', + 'raw' => 'Add support for CURLINFO_CONN_ID in curl_getinfo() (thecaliskan)', + ), + 5 => + array ( + 'message' => 'Add support for CURLINFO_QUEUE_TIME_T in curl_getinfo()', + 'raw' => 'Add support for CURLINFO_QUEUE_TIME_T in curl_getinfo() (thecaliskan)', + ), + 6 => + array ( + 'message' => 'Add support for CURLOPT_SSL_SIGNATURE_ALGORITHMS.', + 'raw' => 'Add support for CURLOPT_SSL_SIGNATURE_ALGORITHMS. (Ayesh Karunaratne)', + ), + 7 => + array ( + 'message' => 'The curl_close() function has been deprecated.', + 'raw' => 'The curl_close() function has been deprecated. (DanielEScherzer)', + ), + 8 => + array ( + 'message' => 'The curl_share_close() function has been deprecated.', + 'raw' => 'The curl_share_close() function has been deprecated. (DanielEScherzer)', + ), + 9 => + array ( + 'message' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle.', + 'raw' => 'Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead of the curl_copy_handle() function to clone a CurlHandle. (timwolla)', + ), + ), + 'date' => + array ( + 0 => + array ( + 'message' => 'Fix undefined behaviour problems regarding integer overflow in extreme edge cases.', + 'raw' => 'Fix undefined behaviour problems regarding integer overflow in extreme edge cases. (nielsdos, cmb, ilutov)', + ), + 1 => + array ( + 'message' => 'The DATE_RFC7231 and DateTimeInterface::RFC7231 constants have been deprecated.', + 'raw' => 'The DATE_RFC7231 and DateTimeInterface::RFC7231 constants have been deprecated. (jorgsowa)', + ), + 2 => + array ( + 'message' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.', + 'raw' => 'Fixed date_sunrise() and date_sunset() with partial-hour UTC offset. (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.', + 'raw' => 'Fixed GH-17159: "P" format for ::createFromFormat swallows string literals. (nielsdos)', + ), + 4 => + array ( + 'message' => 'The __wakeup() magic method of DateTimeInterface, DateTime, DateTimeImmutable, DateTimeZone, DateInterval, and DatePeriod has been deprecated in favour of the __unserialize() magic method.', + 'raw' => 'The __wakeup() magic method of DateTimeInterface, DateTime, DateTimeImmutable, DateTimeZone, DateInterval, and DatePeriod has been deprecated in favour of the __unserialize() magic method. (Girgias)', + ), + ), + 'dom' => + array ( + 0 => + array ( + 'message' => 'Added Dom\\Element::$outerHTML.', + 'raw' => 'Added Dom\\Element::$outerHTML. (nielsdos)', + ), + 1 => + array ( + 'message' => 'Added Dom\\Element::insertAdjacentHTML().', + 'raw' => 'Added Dom\\Element::insertAdjacentHTML(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Added $children property to ParentNode implementations.', + 'raw' => 'Added $children property to ParentNode implementations. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Make cloning DOM node lists, maps, and collections fail.', + 'raw' => 'Make cloning DOM node lists, maps, and collections fail. (nielsdos)', + ), + 4 => + array ( + 'message' => 'Added Dom\\Element::getElementsByClassName().', + 'raw' => 'Added Dom\\Element::getElementsByClassName(). (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-18877 (\\Dom\\HTMLDocument querySelectorAll selecting only the first when using ~ and :has).', + 'raw' => 'Fixed bug GH-18877 (\\Dom\\HTMLDocument querySelectorAll selecting only the first when using ~ and :has). (nielsdos, lexborisov)', + ), + 6 => + array ( + 'message' => 'Fix getNamedItemNS() incorrect namespace check.', + 'raw' => 'Fix getNamedItemNS() incorrect namespace check. (nielsdos)', + ), + ), + 'enchant' => + array ( + 0 => + array ( + 'message' => 'Added enchant_dict_remove_from_session().', + 'raw' => 'Added enchant_dict_remove_from_session(). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Added enchant_dict_remove().', + 'raw' => 'Added enchant_dict_remove(). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix missing empty string checks.', + 'raw' => 'Fix missing empty string checks. (nielsdos)', + ), + ), + 'exif' => + array ( + 0 => + array ( + 'message' => 'Add OffsetTime* Exif tags.', + 'raw' => 'Add OffsetTime* Exif tags. (acc987)', + ), + 1 => + array ( + 'message' => 'Added support to retrieve Exif from HEIF file.', + 'raw' => 'Added support to retrieve Exif from HEIF file. (Benstone Zhang)', + ), + 2 => + array ( + 'message' => 'Fix OSS-Fuzz #442954659 (zero-size box in HEIF file causes infinite loop).', + 'raw' => 'Fix OSS-Fuzz #442954659 (zero-size box in HEIF file causes infinite loop). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fix OSS-Fuzz #442954659 (Crash in exif_scan_HEIF_header).', + 'raw' => 'Fix OSS-Fuzz #442954659 (Crash in exif_scan_HEIF_header). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Various hardening fixes to HEIF parsing.', + 'raw' => 'Various hardening fixes to HEIF parsing. (nielsdos)', + ), + ), + 'fileinfo' => + array ( + 0 => + array ( + 'message' => 'The finfo_close() function has been deprecated.', + 'raw' => 'The finfo_close() function has been deprecated. (timwolla)', + ), + 1 => + array ( + 'message' => 'The $context parameter of the finfo_buffer() function has been deprecated as it is ignored.', + 'raw' => 'The $context parameter of the finfo_buffer() function has been deprecated as it is ignored. (Girgias)', + ), + 2 => + array ( + 'message' => 'Upgrade to file 5.46.', + 'raw' => 'Upgrade to file 5.46. (nielsdos)', + ), + 3 => + array ( + 'message' => 'Change return type of finfo_close() to true.', + 'raw' => 'Change return type of finfo_close() to true. (timwolla)', + ), + ), + 'filter' => + array ( + 0 => + array ( + 'message' => 'Added support for configuring the URI parser for FILTER_VALIDATE_URL as described in https://wiki.php.net/rfc/url_parsing_api#plugability.', + 'raw' => 'Added support for configuring the URI parser for FILTER_VALIDATE_URL as described in https://wiki.php.net/rfc/url_parsing_api#plugability. (kocsismate)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16993 (filter_var_array with FILTER_VALIDATE_INT|FILTER_NULL_ON_FAILURE should emit warning for invalid filter usage).', + 'raw' => 'Fixed bug GH-16993 (filter_var_array with FILTER_VALIDATE_INT|FILTER_NULL_ON_FAILURE should emit warning for invalid filter usage). (alexandre-daubois)', + ), + 2 => + array ( + 'message' => 'Added FILTER_THROW_ON_FAILURE flag.', + 'raw' => 'Added FILTER_THROW_ON_FAILURE flag. (DanielEScherzer)', + ), + ), + 'fpm' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19817 (Decode SCRIPT_FILENAME issue in php 8.5).', + 'raw' => 'Fixed bug GH-19817 (Decode SCRIPT_FILENAME issue in php 8.5). (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19989 (PHP 8.5 FPM access log lines also go to STDERR).', + 'raw' => 'Fixed bug GH-19989 (PHP 8.5 FPM access log lines also go to STDERR). (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed GH-17645 (FPM with httpd ProxyPass does not decode script path).', + 'raw' => 'Fixed GH-17645 (FPM with httpd ProxyPass does not decode script path). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Make FPM access log limit configurable using log_limit.', + 'raw' => 'Make FPM access log limit configurable using log_limit. (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Fixed failed debug assertion when php_admin_value setting fails.', + 'raw' => 'Fixed failed debug assertion when php_admin_value setting fails. (ilutov)', + ), + 5 => + array ( + 'message' => 'Fixed GH-8157 (post_max_size evaluates .user.ini too late in php-fpm).', + 'raw' => 'Fixed GH-8157 (post_max_size evaluates .user.ini too late in php-fpm). (Jakub Zelenka)', + ), + ), + 'gd' => + array ( + 0 => + array ( + 'message' => 'Fixed bug #68629 (Transparent artifacts when using imagerotate).', + 'raw' => 'Fixed bug #68629 (Transparent artifacts when using imagerotate). (pierre, cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug #64823 (ZTS GD fails to find system TrueType font).', + 'raw' => 'Fixed bug #64823 (ZTS GD fails to find system TrueType font). (cmb)', + ), + 2 => + array ( + 'message' => 'Fix incorrect comparison with result of php_stream_can_cast().', + 'raw' => 'Fix incorrect comparison with result of php_stream_can_cast(). (Girgias)', + ), + 3 => + array ( + 'message' => 'The imagedestroy() function has been deprecated.', + 'raw' => 'The imagedestroy() function has been deprecated. (DanielEScherzer)', + ), + ), + 'iconv' => + array ( + 0 => + array ( + 'message' => 'Extends the ICONV_CONST preprocessor for illumos/solaris.', + 'raw' => 'Extends the ICONV_CONST preprocessor for illumos/solaris. (jMichaelA)', + ), + ), + 'intl' => + array ( + 0 => + array ( + 'message' => 'Bumped ICU requirement to ICU >= 57.1.', + 'raw' => 'Bumped ICU requirement to ICU >= 57.1. (cmb)', + ), + 1 => + array ( + 'message' => 'IntlDateFormatter::setTimeZone()/datefmt_set_timezone() throws an exception with uninitialised classes or clone failure.', + 'raw' => 'IntlDateFormatter::setTimeZone()/datefmt_set_timezone() throws an exception with uninitialised classes or clone failure. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added DECIMAL_COMPACT_SHORT/DECIMAL_COMPACT_LONG for NumberFormatter class.', + 'raw' => 'Added DECIMAL_COMPACT_SHORT/DECIMAL_COMPACT_LONG for NumberFormatter class. (BogdanUngureanu)', + ), + 3 => + array ( + 'message' => 'Added Locale::isRightToLeft to check if a locale is written right to left.', + 'raw' => 'Added Locale::isRightToLeft to check if a locale is written right to left. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added null bytes presence in locale inputs for Locale class.', + 'raw' => 'Added null bytes presence in locale inputs for Locale class. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added grapheme_levenshtein() function.', + 'raw' => 'Added grapheme_levenshtein() function. (Yuya Hamada)', + ), + 6 => + array ( + 'message' => 'Added Locale::addLikelySubtags/Locale::minimizeSubtags to handle adding/removing likely subtags to a locale.', + 'raw' => 'Added Locale::addLikelySubtags/Locale::minimizeSubtags to handle adding/removing likely subtags to a locale. (David Carlier)', + ), + 7 => + array ( + 'message' => 'Added IntlListFormatter class to format a list of items with a locale, operands types and units.', + 'raw' => 'Added IntlListFormatter class to format a list of items with a locale, operands types and units. (BogdanUngureanu)', + ), + 8 => + array ( + 'message' => 'Added grapheme_strpos(), grapheme_stripos(), grapheme_strrpos(), grapheme_strripos(), grapheme_substr(), grapheme_strstr(), grapheme_stristr() and grapheme_levenshtein() functions add $locale parameter .', + 'raw' => 'Added grapheme_strpos(), grapheme_stripos(), grapheme_strrpos(), grapheme_strripos(), grapheme_substr(), grapheme_strstr(), grapheme_stristr() and grapheme_levenshtein() functions add $locale parameter (Yuya Hamada).', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).', + 'raw' => 'Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter). (alexandre-daubois)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-18566 ([intl] Weird numeric sort in Collator).', + 'raw' => 'Fixed bug GH-18566 ([intl] Weird numeric sort in Collator). (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fix return value on failure for resourcebundle count handler.', + 'raw' => 'Fix return value on failure for resourcebundle count handler. (Girgias)', + ), + 12 => + array ( + 'message' => 'Fixed bug GH-19307 (PGO builds of shared ext-intl are broken).', + 'raw' => 'Fixed bug GH-19307 (PGO builds of shared ext-intl are broken). (cmb)', + ), + 13 => + array ( + 'message' => 'Intl\'s internal error mechanism has been modernized so that it indicates more accurately which call site caused what error. Moreover, some ext/date exceptions have been wrapped inside a IntlException now.', + 'raw' => 'Intl\'s internal error mechanism has been modernized so that it indicates more accurately which call site caused what error. Moreover, some ext/date exceptions have been wrapped inside a IntlException now. (Girgias)', + ), + 14 => + array ( + 'message' => 'The intl.error_level INI setting has been deprecated.', + 'raw' => 'The intl.error_level INI setting has been deprecated. (Girgias)', + ), + ), + 'ldap' => + array ( + 0 => + array ( + 'message' => 'Allow ldap_get_option to retrieve global option by allowing NULL for connection instance ($ldap).', + 'raw' => 'Allow ldap_get_option to retrieve global option by allowing NULL for connection instance ($ldap). (Remi)', + ), + ), + 'mbstring' => + array ( + 0 => + array ( + 'message' => 'Updated Unicode data tables to Unicode 17.0.', + 'raw' => 'Updated Unicode data tables to Unicode 17.0. (Yuya Hamada)', + ), + ), + 'mysqli' => + array ( + 0 => + array ( + 'message' => 'Fixed bugs GH-17900 and GH-8084 (calling mysqli::__construct twice).', + 'raw' => 'Fixed bugs GH-17900 and GH-8084 (calling mysqli::__construct twice). (nielsdos)', + ), + 1 => + array ( + 'message' => 'The mysqli_execute() alias function has been deprecated.', + 'raw' => 'The mysqli_execute() alias function has been deprecated. (timwolla)', + ), + ), + 'mysqlnd' => + array ( + 0 => + array ( + 'message' => 'Added mysqlnd.collect_memory_statistics to ini quick reference.', + 'raw' => 'Added mysqlnd.collect_memory_statistics to ini quick reference. (hauk92)', + ), + ), + 'odbc' => + array ( + 0 => + array ( + 'message' => 'Removed driver-specific build flags and support.', + 'raw' => 'Removed driver-specific build flags and support. (Calvin Buckley)', + ), + 1 => + array ( + 'message' => 'Remove ODBCVER and assume ODBC 3.5.', + 'raw' => 'Remove ODBCVER and assume ODBC 3.5. (Calvin Buckley)', + ), + ), + 'opcache' => + array ( + 0 => + array ( + 'message' => 'Make OPcache non-optional', + 'raw' => 'Make OPcache non-optional (Arnaud, timwolla)', + ), + 1 => + array ( + 'message' => 'Added opcache.file_cache_read_only.', + 'raw' => 'Added opcache.file_cache_read_only. (Samuel Melrose)', + ), + 2 => + array ( + 'message' => 'Updated default value of opcache.jit_hot_loop.', + 'raw' => 'Updated default value of opcache.jit_hot_loop. (Arnaud)', + ), + 3 => + array ( + 'message' => 'Log a warning when opcache lock file permissions could not be changed.', + 'raw' => 'Log a warning when opcache lock file permissions could not be changed. (Taavi Eomäe)', + ), + 4 => + array ( + 'message' => 'Fixed bug GH-20012 (heap buffer overflow in jit).', + 'raw' => 'Fixed bug GH-20012 (heap buffer overflow in jit). (Arnaud)', + ), + 5 => + array ( + 'message' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments).', + 'raw' => 'Partially fixed bug GH-17733 (Avoid calling wrong function when reusing file caches across differing environments). (ilutov)', + ), + 6 => + array ( + 'message' => 'Disallow changing opcache.memory_consumption when SHM is already set up.', + 'raw' => 'Disallow changing opcache.memory_consumption when SHM is already set up. (timwolla)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-15074 (Compiling opcache statically into ZTS PHP fails).', + 'raw' => 'Fixed bug GH-15074 (Compiling opcache statically into ZTS PHP fails). (Arnaud)', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-17422 (OPcache bypasses the user-defined error handler for deprecations).', + 'raw' => 'Fixed bug GH-17422 (OPcache bypasses the user-defined error handler for deprecations). (Arnaud, timwolla)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-19301 (opcache build failure).', + 'raw' => 'Fixed bug GH-19301 (opcache build failure). (Remi)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()).', + 'raw' => 'Fixed bug GH-20081 (access to uninitialized vars in preload_load()). (Arnaud)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).', + 'raw' => 'Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15). (Arnaud, Shivam Mathur)', + ), + 12 => + array ( + 'message' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess).', + 'raw' => 'Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess). (Arnaud)', + ), + 13 => + array ( + 'message' => 'Fixed segfault in function JIT due to NAN to bool warning.', + 'raw' => 'Fixed segfault in function JIT due to NAN to bool warning. (Girgias)', + ), + 14 => + array ( + 'message' => 'Fixed bug GH-19984 (Double-free of EG(errors)/persistent_script->warnings on persist of already persisted file).', + 'raw' => 'Fixed bug GH-19984 (Double-free of EG(errors)/persistent_script->warnings on persist of already persisted file). (ilutov, Arnaud)', + ), + 15 => + array ( + 'message' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()).', + 'raw' => 'Fixed bug GH-19889 (race condition in zend_runtime_jit(), zend_jit_hot_func()). (Arnaud)', + ), + 16 => + array ( + 'message' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).', + 'raw' => 'Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex). (Arnaud)', + ), + 17 => + array ( + 'message' => 'Fixed bug GH-19831 (function JIT may not deref property value).', + 'raw' => 'Fixed bug GH-19831 (function JIT may not deref property value). (Arnaud)', + ), + 18 => + array ( + 'message' => 'Fixed bug GH-19486 (Incorrect opline after deoptimization).', + 'raw' => 'Fixed bug GH-19486 (Incorrect opline after deoptimization). (Arnaud)', + ), + 19 => + array ( + 'message' => 'Fixed bug GH-19601 (Wrong JIT stack setup on aarch64/clang).', + 'raw' => 'Fixed bug GH-19601 (Wrong JIT stack setup on aarch64/clang). (Arnaud)', + ), + 20 => + array ( + 'message' => 'Fixed bug GH-19388 (Broken opcache.huge_code_pages).', + 'raw' => 'Fixed bug GH-19388 (Broken opcache.huge_code_pages). (Arnaud)', + ), + 21 => + array ( + 'message' => 'Fixed bug GH-19657 (Build fails on non-glibc/musl/freebsd/macos/win platforms).', + 'raw' => 'Fixed bug GH-19657 (Build fails on non-glibc/musl/freebsd/macos/win platforms). (Arnaud)', + ), + 22 => + array ( + 'message' => 'Fixed ZTS OPcache build on Cygwin.', + 'raw' => 'Fixed ZTS OPcache build on Cygwin. (cmb)', + ), + 23 => + array ( + 'message' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD).', + 'raw' => 'Fixed bug GH-19493 (JIT variable not stored before YIELD). (Arnaud)', + ), + ), + 'openssl' => + array ( + 0 => + array ( + 'message' => 'Added openssl.libctx INI that allows to select the OpenSSL library context type and convert various parts of the extension to use the custom libctx.', + 'raw' => 'Added openssl.libctx INI that allows to select the OpenSSL library context type and convert various parts of the extension to use the custom libctx. (Jakub Zelenka)', + ), + 1 => + array ( + 'message' => 'Add $digest_algo parameter to openssl_public_encrypt() and openssl_private_decrypt() functions.', + 'raw' => 'Add $digest_algo parameter to openssl_public_encrypt() and openssl_private_decrypt() functions. (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Implement #81724 (openssl_cms_encrypt only allows specific ciphers).', + 'raw' => 'Implement #81724 (openssl_cms_encrypt only allows specific ciphers). (Jakub Zelenka)', + ), + 3 => + array ( + 'message' => 'Implement #80495 (Enable to set padding in openssl_(sign|verify).', + 'raw' => 'Implement #80495 (Enable to set padding in openssl_(sign|verify). (Jakub Zelenka)', + ), + 4 => + array ( + 'message' => 'Implement #47728 (openssl_pkcs7_sign ignores new openssl flags).', + 'raw' => 'Implement #47728 (openssl_pkcs7_sign ignores new openssl flags). (Jakub Zelenka)', + ), + 5 => + array ( + 'message' => 'Fixed bug GH-19994 (openssl_get_cipher_methods inconsistent with fetching).', + 'raw' => 'Fixed bug GH-19994 (openssl_get_cipher_methods inconsistent with fetching). (Jakub Zelenka)', + ), + 6 => + array ( + 'message' => 'Fixed build when --with-openssl-legacy-provider set.', + 'raw' => 'Fixed build when --with-openssl-legacy-provider set. (Jakub Zelenka)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-19369 (8.5 | Regression in openssl_sign() - support for alias algorithms appears to be broken).', + 'raw' => 'Fixed bug GH-19369 (8.5 | Regression in openssl_sign() - support for alias algorithms appears to be broken). (Jakub Zelenka)', + ), + 8 => + array ( + 'message' => 'The $key_length parameter for openssl_pkey_derive() has been deprecated.', + 'raw' => 'The $key_length parameter for openssl_pkey_derive() has been deprecated. (Girgias)', + ), + ), + 'output' => + array ( + 0 => + array ( + 'message' => 'Fixed calculation of aligned buffer size.', + 'raw' => 'Fixed calculation of aligned buffer size. (cmb)', + ), + ), + 'pcntl' => + array ( + 0 => + array ( + 'message' => 'Extend pcntl_waitid with rusage parameter.', + 'raw' => 'Extend pcntl_waitid with rusage parameter. (vrza)', + ), + ), + 'pcre' => + array ( + 0 => + array ( + 'message' => 'Remove PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK from pcre compile options.', + 'raw' => 'Remove PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK from pcre compile options. (mvorisek)', + ), + ), + 'pdo' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20095 (Incorrect class name in deprecation message for PDO mixins).', + 'raw' => 'Fixed bug GH-20095 (Incorrect class name in deprecation message for PDO mixins). (timwolla)', + ), + 1 => + array ( + 'message' => 'Driver specific methods and constants in the PDO class are now deprecated.', + 'raw' => 'Driver specific methods and constants in the PDO class are now deprecated. (Arnaud)', + ), + 2 => + array ( + 'message' => 'The "uri:" DSN scheme has been deprecated due to security concerns with DSNs coming from remote URIs.', + 'raw' => 'The "uri:" DSN scheme has been deprecated due to security concerns with DSNs coming from remote URIs. (timwolla)', + ), + ), + 'pdo_odbc' => + array ( + 0 => + array ( + 'message' => 'Fetch larger block sizes and better handle SQL_NO_TOTAL when calling SQLGetData.', + 'raw' => 'Fetch larger block sizes and better handle SQL_NO_TOTAL when calling SQLGetData. (Calvin Buckley, Saki Takamachi)', + ), + ), + 'pdo_pgsql' => + array ( + 0 => + array ( + 'message' => 'Added Iterable support for PDO::pgsqlCopyFromArray.', + 'raw' => 'Added Iterable support for PDO::pgsqlCopyFromArray. (KentarouTakeda)', + ), + 1 => + array ( + 'message' => 'Implement GH-15387 Pdo\\Pgsql::setAttribute(PDO::ATTR_PREFETCH, 0) or Pdo\\Pgsql::prepare(…, [ PDO::ATTR_PREFETCH => 0 ]) make fetch() lazy instead of storing the whole result set in memory', + 'raw' => 'Implement GH-15387 Pdo\\Pgsql::setAttribute(PDO::ATTR_PREFETCH, 0) or Pdo\\Pgsql::prepare(…, [ PDO::ATTR_PREFETCH => 0 ]) make fetch() lazy instead of storing the whole result set in memory (Guillaume Outters)', + ), + ), + 'pdo_sqlite' => + array ( + 0 => + array ( + 'message' => 'Add PDO\\Sqlite::ATTR_TRANSACTION_MODE connection attribute.', + 'raw' => 'Add PDO\\Sqlite::ATTR_TRANSACTION_MODE connection attribute. (Samuel Štancl)', + ), + 1 => + array ( + 'message' => 'Implement GH-17321: Add setAuthorizer to Pdo\\Sqlite.', + 'raw' => 'Implement GH-17321: Add setAuthorizer to Pdo\\Sqlite. (nielsdos)', + ), + 2 => + array ( + 'message' => 'PDO::sqliteCreateCollation now throws a TypeError if the callback has a wrong return type.', + 'raw' => 'PDO::sqliteCreateCollation now throws a TypeError if the callback has a wrong return type. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added Pdo_Sqlite::ATTR_BUSY_STATEMENT constant to check if a statement is currently executing.', + 'raw' => 'Added Pdo_Sqlite::ATTR_BUSY_STATEMENT constant to check if a statement is currently executing. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added Pdo_Sqlite::ATTR_EXPLAIN_STATEMENT constant to set a statement in either EXPLAIN_MODE_PREPARED, EXPLAIN_MODE_EXPLAIN, EXPLAIN_MODE_EXPLAIN_QUERY_PLAN modes.', + 'raw' => 'Added Pdo_Sqlite::ATTR_EXPLAIN_STATEMENT constant to set a statement in either EXPLAIN_MODE_PREPARED, EXPLAIN_MODE_EXPLAIN, EXPLAIN_MODE_EXPLAIN_QUERY_PLAN modes. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Fix bug GH-13952 (sqlite PDO::quote silently corrupts strings with null bytes) by throwing on null bytes.', + 'raw' => 'Fix bug GH-13952 (sqlite PDO::quote silently corrupts strings with null bytes) by throwing on null bytes. (divinity76)', + ), + ), + 'pgsql' => + array ( + 0 => + array ( + 'message' => 'Added pg_close_stmt to close a prepared statement while allowing its name to be reused.', + 'raw' => 'Added pg_close_stmt to close a prepared statement while allowing its name to be reused. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added Iterable support for pgsql_copy_from.', + 'raw' => 'Added Iterable support for pgsql_copy_from. (David Carlier)', + ), + 2 => + array ( + 'message' => 'pg_connect checks if connection_string contains any null byte, pg_close_stmt check if the statement contains any null byte.', + 'raw' => 'pg_connect checks if connection_string contains any null byte, pg_close_stmt check if the statement contains any null byte. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added pg_service to get the connection current service identifier.', + 'raw' => 'Added pg_service to get the connection current service identifier. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name.', + 'raw' => 'Fix segfaults when attempting to fetch row into a non-instantiable class name. (Girgias, nielsdos)', + ), + ), + 'phar' => + array ( + 0 => + array ( + 'message' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t.', + 'raw' => 'Fix potential buffer length truncation due to usage of type int instead of type size_t. (Girgias)', + ), + 1 => + array ( + 'message' => 'Fixed memory leaks when verifying OpenSSL signature.', + 'raw' => 'Fixed memory leaks when verifying OpenSSL signature. (Girgias)', + ), + ), + 'posix' => + array ( + 0 => + array ( + 'message' => 'Added POSIX_SC_OPEN_MAX constant to get the number of file descriptors a process can handle.', + 'raw' => 'Added POSIX_SC_OPEN_MAX constant to get the number of file descriptors a process can handle. (David Carlier)', + ), + 1 => + array ( + 'message' => 'posix_ttyname() sets last_error to EBADF on invalid file descriptors, posix_isatty() raises E_WARNING on invalid file descriptors, posix_fpathconf checks invalid file descriptors.', + 'raw' => 'posix_ttyname() sets last_error to EBADF on invalid file descriptors, posix_isatty() raises E_WARNING on invalid file descriptors, posix_fpathconf checks invalid file descriptors. (David Carlier)', + ), + 2 => + array ( + 'message' => 'posix_kill and posix_setpgid throws a ValueError on invalid process_id.', + 'raw' => 'posix_kill and posix_setpgid throws a ValueError on invalid process_id. (David Carlier)', + ), + 3 => + array ( + 'message' => 'posix_setpgid throws a ValueError on invalid process_group_id, posix_setrlimit throws a ValueError on invalid soft_limit and hard_limit arguments.', + 'raw' => 'posix_setpgid throws a ValueError on invalid process_group_id, posix_setrlimit throws a ValueError on invalid soft_limit and hard_limit arguments. (David Carlier)', + ), + ), + 'random' => + array ( + 0 => + array ( + 'message' => 'Moves from /dev/urandom usage to arc4random_buf on Haiku.', + 'raw' => 'Moves from /dev/urandom usage to arc4random_buf on Haiku. (David Carlier)', + ), + ), + 'reflection' => + array ( + 0 => + array ( + 'message' => 'Added ReflectionConstant::getExtension() and ::getExtensionName().', + 'raw' => 'Added ReflectionConstant::getExtension() and ::getExtensionName(). (DanielEScherzer)', + ), + 1 => + array ( + 'message' => 'Added ReflectionProperty::getMangledName() method.', + 'raw' => 'Added ReflectionProperty::getMangledName() method. (alexandre-daubois)', + ), + 2 => + array ( + 'message' => 'ReflectionConstant is no longer final.', + 'raw' => 'ReflectionConstant is no longer final. (sasezaki)', + ), + 3 => + array ( + 'message' => 'The setAccessible() methods of various Reflection objects have been deprecated, as those no longer have an effect.', + 'raw' => 'The setAccessible() methods of various Reflection objects have been deprecated, as those no longer have an effect. (timwolla)', + ), + 4 => + array ( + 'message' => 'ReflectionClass::getConstant() for constants that do not exist has been deprecated.', + 'raw' => 'ReflectionClass::getConstant() for constants that do not exist has been deprecated. (DanielEScherzer)', + ), + 5 => + array ( + 'message' => 'ReflectionProperty::getDefaultValue() for properties without default values has been deprecated.', + 'raw' => 'ReflectionProperty::getDefaultValue() for properties without default values has been deprecated. (DanielEScherzer)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-12856 (ReflectionClass::getStaticPropertyValue() returns UNDEF zval for uninitialized typed properties).', + 'raw' => 'Fixed bug GH-12856 (ReflectionClass::getStaticPropertyValue() returns UNDEF zval for uninitialized typed properties). (nielsdos)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-15766 (ReflectionClass::__toString() should have better output for enums).', + 'raw' => 'Fixed bug GH-15766 (ReflectionClass::__toString() should have better output for enums). (DanielEScherzer)', + ), + 8 => + array ( + 'message' => 'Fix GH-19691 (getModifierNames() not reporting asymmetric visibility).', + 'raw' => 'Fix GH-19691 (getModifierNames() not reporting asymmetric visibility). (DanielEScherzer)', + ), + 9 => + array ( + 'message' => 'Fixed bug GH-17927 (Reflection: have some indication of property hooks in `_property_string()`).', + 'raw' => 'Fixed bug GH-17927 (Reflection: have some indication of property hooks in `_property_string()`). (DanielEScherzer)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-19187 (ReflectionNamedType::getName() prints nullable type when retrieved from ReflectionProperty::getSettableType()).', + 'raw' => 'Fixed bug GH-19187 (ReflectionNamedType::getName() prints nullable type when retrieved from ReflectionProperty::getSettableType()). (ilutov)', + ), + 11 => + array ( + 'message' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks).', + 'raw' => 'Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true for classes with property hooks). (alexandre-daubois)', + ), + ), + 'sapi' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-18582 and #81451: http_response_code() does not override the status code generated by header().', + 'raw' => 'Fixed bug GH-18582 and #81451: http_response_code() does not override the status code generated by header(). (ilutov, Jakub Zelenka)', + ), + ), + 'session' => + array ( + 0 => + array ( + 'message' => 'session_start() throws a ValueError on option argument if not a hashmap or a TypeError if read_and_close value is not compatible with int.', + 'raw' => 'session_start() throws a ValueError on option argument if not a hashmap or a TypeError if read_and_close value is not compatible with int. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added support for partitioned cookies.', + 'raw' => 'Added support for partitioned cookies. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Fix RC violation of session SID constant deprecation attribute.', + 'raw' => 'Fix RC violation of session SID constant deprecation attribute. (ilutov)', + ), + 3 => + array ( + 'message' => 'Fixed GH-19197: build broken with ZEND_STRL usage with memcpy when implemented as macro.', + 'raw' => 'Fixed GH-19197: build broken with ZEND_STRL usage with memcpy when implemented as macro. (David Carlier)', + ), + ), + 'simplexml' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-12231 (SimpleXML xpath should warn when returning other return types than node lists).', + 'raw' => 'Fixed bug GH-12231 (SimpleXML xpath should warn when returning other return types than node lists). (nielsdos)', + ), + ), + 'snmp' => + array ( + 0 => + array ( + 'message' => 'snmpget, snmpset, snmp_get2, snmp_set2, snmp_get3, snmp_set3 and SNMP::__construct() throw an exception on invalid hostname, community timeout and retries arguments.', + 'raw' => 'snmpget, snmpset, snmp_get2, snmp_set2, snmp_get3, snmp_set3 and SNMP::__construct() throw an exception on invalid hostname, community timeout and retries arguments. (David Carlier)', + ), + ), + 'soap' => + array ( + 0 => + array ( + 'message' => 'Added support for configuring the URI parser for SoapClient::__doRequest() as described in https://wiki.php.net/rfc/url_parsing_api#plugability.', + 'raw' => 'Added support for configuring the URI parser for SoapClient::__doRequest() as described in https://wiki.php.net/rfc/url_parsing_api#plugability. (kocsismate)', + ), + 1 => + array ( + 'message' => 'Implement request #55503 (Extend __getTypes to support enumerations).', + 'raw' => 'Implement request #55503 (Extend __getTypes to support enumerations). (nielsdos, datibbaw)', + ), + 2 => + array ( + 'message' => 'Implement request #61105 (Support Soap 1.2 SoapFault Reason Text lang attribute).', + 'raw' => 'Implement request #61105 (Support Soap 1.2 SoapFault Reason Text lang attribute). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Fixed bug #49169 (SoapServer calls wrong function, although "SOAP action" header is correct).', + 'raw' => 'Fixed bug #49169 (SoapServer calls wrong function, although "SOAP action" header is correct). (nielsdos)', + ), + 4 => + array ( + 'message' => 'Fix namespace handling of WSDL and XML schema in SOAP, fixing at least GH-16320 and bug #68576.', + 'raw' => 'Fix namespace handling of WSDL and XML schema in SOAP, fixing at least GH-16320 and bug #68576. (nielsdos)', + ), + 5 => + array ( + 'message' => 'Fixed bug #70951 (Segmentation fault on invalid WSDL cache).', + 'raw' => 'Fixed bug #70951 (Segmentation fault on invalid WSDL cache). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Fixed bug GH-19773 (SIGSEGV due to uninitialized soap_globals->lang_en).', + 'raw' => 'Fixed bug GH-19773 (SIGSEGV due to uninitialized soap_globals->lang_en). (nielsdos, KaseyJenkins)', + ), + 7 => + array ( + 'message' => 'Fixed bug GH-19226 (Segfault when spawning new thread in soap extension).', + 'raw' => 'Fixed bug GH-19226 (Segfault when spawning new thread in soap extension). (Florian Engelhardt)', + ), + ), + 'sockets' => + array ( + 0 => + array ( + 'message' => 'Added IPPROTO_ICMP/IPPROTO_ICMPV6 to create raw socket for ICMP usage.', + 'raw' => 'Added IPPROTO_ICMP/IPPROTO_ICMPV6 to create raw socket for ICMP usage. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added TCP_FUNCTION_BLK to change the TCP stack algorithm on FreeBSD.', + 'raw' => 'Added TCP_FUNCTION_BLK to change the TCP stack algorithm on FreeBSD. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added IP_BINDANY for a socket to bind to any address.', + 'raw' => 'Added IP_BINDANY for a socket to bind to any address. (David Carlier)', + ), + 3 => + array ( + 'message' => 'Added SO_BUSY_POOL to reduce packets poll latency.', + 'raw' => 'Added SO_BUSY_POOL to reduce packets poll latency. (David Carlier)', + ), + 4 => + array ( + 'message' => 'Added UDP_SEGMENT support to optimise multiple large datagrams over UDP if the kernel and hardware supports it.', + 'raw' => 'Added UDP_SEGMENT support to optimise multiple large datagrams over UDP if the kernel and hardware supports it. (David Carlier)', + ), + 5 => + array ( + 'message' => 'Added SHUT_RD, SHUT_WR and SHUT_RDWR constants for socket_shutdown().', + 'raw' => 'Added SHUT_RD, SHUT_WR and SHUT_RDWR constants for socket_shutdown(). (David Carlier)', + ), + 6 => + array ( + 'message' => 'Added TCP_FUNCTION_ALIAS, TCP_REUSPORT_LB_NUMA, TCP_REUSPORT_LB_NUMA_NODOM, TCP_REUSPORT_LB_CURDOM, TCP_BBR_ALGORITHM constants.', + 'raw' => 'Added TCP_FUNCTION_ALIAS, TCP_REUSPORT_LB_NUMA, TCP_REUSPORT_LB_NUMA_NODOM, TCP_REUSPORT_LB_CURDOM, TCP_BBR_ALGORITHM constants.', + ), + 7 => + array ( + 'message' => 'socket_set_option() catches possible overflow with SO_RCVTIMEO/SO_SNDTIMEO with timeout setting on windows.', + 'raw' => 'socket_set_option() catches possible overflow with SO_RCVTIMEO/SO_SNDTIMEO with timeout setting on windows. (David Carlier)', + ), + 8 => + array ( + 'message' => 'socket_create_listen() throws an exception on invalid port value.', + 'raw' => 'socket_create_listen() throws an exception on invalid port value. (David Carlier)', + ), + 9 => + array ( + 'message' => 'socket_bind() throws an exception on invalid port value.', + 'raw' => 'socket_bind() throws an exception on invalid port value. (David Carlier)', + ), + 10 => + array ( + 'message' => 'socket_sendto() throws an exception on invalid port value.', + 'raw' => 'socket_sendto() throws an exception on invalid port value. (David Carlier)', + ), + 11 => + array ( + 'message' => 'socket_addrinfo_lookup throws an exception on invalid hints value types.', + 'raw' => 'socket_addrinfo_lookup throws an exception on invalid hints value types. (David Carlier)', + ), + 12 => + array ( + 'message' => 'socket_addrinfo_lookup throws an exception if any of the hints value overflows.', + 'raw' => 'socket_addrinfo_lookup throws an exception if any of the hints value overflows. (David Carlier)', + ), + 13 => + array ( + 'message' => 'socket_addrinfo_lookup throws an exception if one or more hints entries has an index as numeric.', + 'raw' => 'socket_addrinfo_lookup throws an exception if one or more hints entries has an index as numeric. (David Carlier)', + ), + 14 => + array ( + 'message' => 'socket_set_option with the options MCAST_LEAVE_GROUP/MCAST_LEAVE_SOURCE_GROUP will throw an exception if its value is not a valid array/object.', + 'raw' => 'socket_set_option with the options MCAST_LEAVE_GROUP/MCAST_LEAVE_SOURCE_GROUP will throw an exception if its value is not a valid array/object. (David Carlier)', + ), + 15 => + array ( + 'message' => 'socket_getsockname/socket_create/socket_bind handled AF_PACKET family socket.', + 'raw' => 'socket_getsockname/socket_create/socket_bind handled AF_PACKET family socket. (David Carlier)', + ), + 16 => + array ( + 'message' => 'socket_set_option for multicast context throws a ValueError when the socket family is not of AF_INET/AF_INET6 family.', + 'raw' => 'socket_set_option for multicast context throws a ValueError when the socket family is not of AF_INET/AF_INET6 family. (David Carlier)', + ), + ), + 'sodium' => + array ( + 0 => + array ( + 'message' => 'Fix overall theoretical overflows on zend_string buffer allocations.', + 'raw' => 'Fix overall theoretical overflows on zend_string buffer allocations. (David Carlier/nielsdos)', + ), + ), + 'spl' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-20101 (SplHeap/SplPriorityQueue serialization exposes INDIRECTs).', + 'raw' => 'Fixed bug GH-20101 (SplHeap/SplPriorityQueue serialization exposes INDIRECTs). (nielsdos)', + ), + 1 => + array ( + 'message' => 'Improve __unserialize() hardening for SplHeap/SplPriorityQueue.', + 'raw' => 'Improve __unserialize() hardening for SplHeap/SplPriorityQueue. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Deprecate ArrayObject and ArrayIterator with objects.', + 'raw' => 'Deprecate ArrayObject and ArrayIterator with objects. (Girgias)', + ), + 3 => + array ( + 'message' => 'Unregistering all autoloaders by passing the spl_autoload_call() function as a callback argument to spl_autoload_unregister() has been deprecated. Instead if this is needed, one should iterate over the return value of spl_autoload_functions() and call spl_autoload_unregister() on each value.', + 'raw' => 'Unregistering all autoloaders by passing the spl_autoload_call() function as a callback argument to spl_autoload_unregister() has been deprecated. Instead if this is needed, one should iterate over the return value of spl_autoload_functions() and call spl_autoload_unregister() on each value. (Girgias)', + ), + 4 => + array ( + 'message' => 'The SplObjectStorage::contains(), SplObjectStorage::attach(), and SplObjectStorage::detach() methods have been deprecated in favour of SplObjectStorage::offsetExists(), SplObjectStorage::offsetSet(), and SplObjectStorage::offsetUnset() respectively.', + 'raw' => 'The SplObjectStorage::contains(), SplObjectStorage::attach(), and SplObjectStorage::detach() methods have been deprecated in favour of SplObjectStorage::offsetExists(), SplObjectStorage::offsetSet(), and SplObjectStorage::offsetUnset() respectively. (Girgias)', + ), + ), + 'sqlite' => + array ( + 0 => + array ( + 'message' => 'Added Sqlite3Stmt::busy to check if a statement is still being executed.', + 'raw' => 'Added Sqlite3Stmt::busy to check if a statement is still being executed. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Added Sqlite3Stmt::explain to produce an explain query plan from the statement.', + 'raw' => 'Added Sqlite3Stmt::explain to produce an explain query plan from the statement. (David Carlier)', + ), + 2 => + array ( + 'message' => 'Added Sqlite3Result::fetchAll to return all results at once from a query.', + 'raw' => 'Added Sqlite3Result::fetchAll to return all results at once from a query. (David Carlier)', + ), + ), + 'standard' => + array ( + 0 => + array ( + 'message' => 'Add HEIF/HEIC support to getimagesize.', + 'raw' => 'Add HEIF/HEIC support to getimagesize. (Benstone Zhang)', + ), + 1 => + array ( + 'message' => 'Added support for partitioned cookies.', + 'raw' => 'Added support for partitioned cookies. (nielsdos)', + ), + 2 => + array ( + 'message' => 'Implement #71517 (Implement SVG support for getimagesize() and friends).', + 'raw' => 'Implement #71517 (Implement SVG support for getimagesize() and friends). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Implement GH-19188: Add support for new INI mail.cr_lf_mode.', + 'raw' => 'Implement GH-19188: Add support for new INI mail.cr_lf_mode. (alexandre-daubois)', + ), + 4 => + array ( + 'message' => 'Optimized PHP html_entity_decode function.', + 'raw' => 'Optimized PHP html_entity_decode function. (Artem Ukrainskiy)', + ), + 5 => + array ( + 'message' => 'Minor optimization to array_chunk().', + 'raw' => 'Minor optimization to array_chunk(). (nielsdos)', + ), + 6 => + array ( + 'message' => 'Optimized pack().', + 'raw' => 'Optimized pack(). (nielsdos, divinity76)', + ), + 7 => + array ( + 'message' => 'Fixed crypt() tests on musl when using --with-external-libcrypt .', + 'raw' => 'Fixed crypt() tests on musl when using --with-external-libcrypt (Michael Orlitzky).', + ), + 8 => + array ( + 'message' => 'Fixed bug GH-18062 (is_callable(func(...), callable_name: $name) for first class callables returns wrong name).', + 'raw' => 'Fixed bug GH-18062 (is_callable(func(...), callable_name: $name) for first class callables returns wrong name). (timwolla)', + ), + 9 => + array ( + 'message' => 'Added array_first() and array_last().', + 'raw' => 'Added array_first() and array_last(). (nielsdos)', + ), + 10 => + array ( + 'message' => 'Fixed bug GH-18823 (setlocale\'s 2nd and 3rd argument ignores strict_types).', + 'raw' => 'Fixed bug GH-18823 (setlocale\'s 2nd and 3rd argument ignores strict_types). (nielsdos)', + ), + 11 => + array ( + 'message' => 'Fixed exit code handling of sendmail cmd and added warnings.', + 'raw' => 'Fixed exit code handling of sendmail cmd and added warnings. (Jesse Hathaway)', + ), + 12 => + array ( + 'message' => 'Fixed bug GH-18897 (printf: empty precision is interpreted as precision 6, not as precision 0).', + 'raw' => 'Fixed bug GH-18897 (printf: empty precision is interpreted as precision 6, not as precision 0). (nielsdos)', + ), + 13 => + array ( + 'message' => 'Fixed bug GH-20257 (mail() heap overflow with an empty message in lf mode).', + 'raw' => 'Fixed bug GH-20257 (mail() heap overflow with an empty message in lf mode). (David Carlier)', + ), + 14 => + array ( + 'message' => 'Fixed bug GH-20201 (AVIF images misdetected as HEIF after introducing HEIF support in getimagesize()).', + 'raw' => 'Fixed bug GH-20201 (AVIF images misdetected as HEIF after introducing HEIF support in getimagesize()). (nielsdos)', + ), + 15 => + array ( + 'message' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set).', + 'raw' => 'Fixed bug GH-19926 (reset internal pointer earlier while splicing array while COW violation flag is still set). (alexandre-daubois)', + ), + 16 => + array ( + 'message' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).', + 'raw' => 'Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()). (alexandre-daubois)', + ), + 17 => + array ( + 'message' => 'Fixed GH-14402 (SplPriorityQueue, SplMinHeap, and SplMaxHeap lost their data on serialize()).', + 'raw' => 'Fixed GH-14402 (SplPriorityQueue, SplMinHeap, and SplMaxHeap lost their data on serialize()). (alexandre-daubois)', + ), + 18 => + array ( + 'message' => 'Fixed GH-19610 (Deprecation warnings in functions taking as argument).', + 'raw' => 'Fixed GH-19610 (Deprecation warnings in functions taking as argument). (Girgias)', + ), + 19 => + array ( + 'message' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator).', + 'raw' => 'Fixed bug GH-19577 (Avoid integer overflow when using a small offset and PHP_INT_MAX with LimitIterator). (alexandre-daubois)', + ), + 20 => + array ( + 'message' => 'Fixed bug GH-19153 (#[\\Attribute] validation should error on trait/interface/enum/abstract class).', + 'raw' => 'Fixed bug GH-19153 (#[\\Attribute] validation should error on trait/interface/enum/abstract class). (DanielEScherzer)', + ), + 21 => + array ( + 'message' => 'Fixed bug GH-19070 (setlocale($type, NULL) should not be deprecated).', + 'raw' => 'Fixed bug GH-19070 (setlocale($type, NULL) should not be deprecated). (nielsdos)', + ), + 22 => + array ( + 'message' => 'Fixed bug GH-16649 (UAF during array_splice).', + 'raw' => 'Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)', + ), + 23 => + array ( + 'message' => 'Passing strings which are not one byte long to ord() is now deprecated.', + 'raw' => 'Passing strings which are not one byte long to ord() is now deprecated. (Girgias)', + ), + 24 => + array ( + 'message' => 'Passing integers outside the interval [0, 255] to chr() is now deprecated.', + 'raw' => 'Passing integers outside the interval [0, 255] to chr() is now deprecated. (Girgias)', + ), + 25 => + array ( + 'message' => 'The socket_set_timeout() alias function has been deprecated.', + 'raw' => 'The socket_set_timeout() alias function has been deprecated. (timwolla)', + ), + 26 => + array ( + 'message' => 'Passing null to readdir(), rewinddir(), and closedir() to use the last opened directory has been deprecated.', + 'raw' => 'Passing null to readdir(), rewinddir(), and closedir() to use the last opened directory has been deprecated. (Girgias)', + ), + ), + 'streams' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-16889 (stream_select() timeout useless for pipes on Windows).', + 'raw' => 'Fixed bug GH-16889 (stream_select() timeout useless for pipes on Windows). (cmb)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64.', + 'raw' => 'Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect condition for Win32/Win64. (Jakub Zelenka)', + ), + 2 => + array ( + 'message' => 'Fixed bug GH-14506 (Closing a userspace stream inside a userspace handler causes heap corruption).', + 'raw' => 'Fixed bug GH-14506 (Closing a userspace stream inside a userspace handler causes heap corruption). (nielsdos)', + ), + 3 => + array ( + 'message' => 'Avoid double conversion to string in php_userstreamop_readdir().', + 'raw' => 'Avoid double conversion to string in php_userstreamop_readdir(). (nielsdos)', + ), + ), + 'tests' => + array ( + 0 => + array ( + 'message' => 'Allow to shuffle tests even in non-parallel mode.', + 'raw' => 'Allow to shuffle tests even in non-parallel mode. (dhuang00)', + ), + ), + 'tidy' => + array ( + 0 => + array ( + 'message' => 'tidy::__construct/parseFile/parseString methods throw an exception if the configuration argument is invalid.', + 'raw' => 'tidy::__construct/parseFile/parseString methods throw an exception if the configuration argument is invalid. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed GH-19021 (improved tidyOptGetCategory detection).', + 'raw' => 'Fixed GH-19021 (improved tidyOptGetCategory detection). (arjendekorte, David Carlier, Peter Kokot)', + ), + ), + 'tokenizer' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-19507 (Corrupted result after recursive tokenization during token_get_all()).', + 'raw' => 'Fixed bug GH-19507 (Corrupted result after recursive tokenization during token_get_all()). (kubawerlos, nielsdos, Arnaud)', + ), + ), + 'windows' => + array ( + 0 => + array ( + 'message' => 'Fixed bug GH-10992 (Improper long path support for relative paths).', + 'raw' => 'Fixed bug GH-10992 (Improper long path support for relative paths). (cmb, nielsdos)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16843 (Windows phpize builds ignore source subfolders).', + 'raw' => 'Fixed bug GH-16843 (Windows phpize builds ignore source subfolders). (cmb)', + ), + 2 => + array ( + 'message' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket).', + 'raw' => 'Fix GH-19722 (_get_osfhandle asserts in debug mode when given a socket). (dktapps)', + ), + ), + 'xml' => + array ( + 0 => + array ( + 'message' => 'The xml_parser_free() function has been deprecated.', + 'raw' => 'The xml_parser_free() function has been deprecated. (DanielEScherzer)', + ), + ), + 'xmlwriter' => + array ( + 0 => + array ( + 'message' => 'Improved performance and reduce memory consumption.', + 'raw' => 'Improved performance and reduce memory consumption. (nielsdos)', + ), + ), + 'xsl' => + array ( + 0 => + array ( + 'message' => 'Implement request #30622 (make $namespace parameter functional).', + 'raw' => 'Implement request #30622 (make $namespace parameter functional). (nielsdos)', + ), + ), + 'zlib' => + array ( + 0 => + array ( + 'message' => 'gzfile, gzopen and readgzfile, their "use_include_path" argument is now a boolean.', + 'raw' => 'gzfile, gzopen and readgzfile, their "use_include_path" argument is now a boolean. (David Carlier)', + ), + 1 => + array ( + 'message' => 'Fixed bug GH-16883 (gzopen() does not use the default stream context when opening HTTP URLs).', + 'raw' => 'Fixed bug GH-16883 (gzopen() does not use the default stream context when opening HTTP URLs). (nielsdos)', + ), + 2 => + array ( + 'message' => 'Implemented GH-17668 (zlib streams should support locking).', + 'raw' => 'Implemented GH-17668 (zlib streams should support locking). (nielsdos)', + ), + ), + 'zip' => + array ( + 0 => + array ( + 'message' => 'Fixed missing zend_release_fcall_info_cache on the following methods ZipArchive::registerProgressCallback() and ZipArchive::registerCancelCallback() on failure.', + 'raw' => 'Fixed missing zend_release_fcall_info_cache on the following methods ZipArchive::registerProgressCallback() and ZipArchive::registerCancelCallback() on failure. (David Carlier)', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/include/site.inc b/include/site.inc index aae24537a6..61fa38005c 100644 --- a/include/site.inc +++ b/include/site.inc @@ -244,7 +244,14 @@ if (!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on") { $proto = "https"; } -if ($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) { +$hostHeader = $hostHeader = $_SERVER["HTTP_HOST"] ?? null; +if ($hostHeader + /* incoming hostname validation logic */ + && preg_match('/^([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)*[a-z0-9]([a-z0-9-]*[a-z0-9])?(?::\d{1,5})?$/i', $hostHeader) +) { + $MYSITE = $proto . '://' . $hostHeader . '/'; + $msite = 'https://' . $hostHeader . '/'; +} elseif ($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) { $MYSITE = $proto . '://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; $msite = 'http://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/'; } else { diff --git a/include/version.inc b/include/version.inc index 0cf60e3688..51efe3263b 100644 --- a/include/version.inc +++ b/include/version.inc @@ -15,7 +15,7 @@ * ), * ); */ -$RELEASES = (function () { +$GLOBALS['RELEASES'] = $RELEASES = (function () { $data = []; /* PHP 8.5 Release */ diff --git a/index.php b/index.php index 9e24fc8c5f..f9f7c84cbd 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,11 @@ <?php +use phpweb\Metadata\PointReleaseData; +use phpweb\Metadata\VersionData; +use phpweb\Navigation\NavCardItem; use phpweb\News\NewsHandler; +use phpweb\Themes\Assets;use phpweb\Themes\PageTheme; +use phpweb\Util; (function ($uri): void { // Special redirect cases not able to be captured in error.php @@ -40,11 +45,11 @@ $tsstring = gmdate("D, d M Y H:i:s ", $timestamp) . "GMT"; // Check if the client has the same page cached -if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && - ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { - header("HTTP/1.1 304 Not Modified"); - exit(); -} +//if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && +// ($_SERVER["HTTP_IF_MODIFIED_SINCE"] == $tsstring)) { +// header("HTTP/1.1 304 Not Modified"); +// exit(); +//} // Inform the user agent what is our last modification date header("Last-Modified: " . $tsstring); @@ -57,157 +62,415 @@ mirror_setcookie("LAST_NEWS", $_SERVER["REQUEST_TIME"], 60 * 60 * 24 * 365); -$content = "<div class='home-content'>"; -foreach ((new NewsHandler())->getFrontPageNews() as $entry) { - $link = preg_replace('~^(http://php.net/|https://www.php.net/)~', '', $entry["id"]); - $id = parse_url($entry["id"], PHP_URL_FRAGMENT); - $date = date_create($entry['updated']); - $date_human = date_format($date, 'd M Y'); - $date_w3c = date_format($date, DATE_W3C); - $content .= <<<NEWSENTRY -<article class="newsentry"> - <header class="title"> - <time datetime="$date_w3c">$date_human</time> - <h2 class="newstitle"> - <a href="{$MYSITE}{$link}" id="{$id}">{$entry["title"]}</a> - </h2> - </header> - <div class="newscontent"> - {$entry["content"]} - </div> -</article> -NEWSENTRY; + +$latestVersions = VersionData::getSupportedVersions(); +$latestVersion = array_shift($latestVersions); + +function buildNavCard(NavCardItem $card, array $config = []): string +{ + $config = [ + 'cn_card_content' => 'landing-cc-card-content', + 'cn_card_img' => 'landing-cc-card-img', + ...$config, + ]; + + ob_start(); + ?> + <a role="listitem" <?php if ($card->id) { ?>id="<?= safe($card->id) ?>"<? } ?> href="<?= safe($card->href) ?>" class="gst-cgrid-card landing-card-ovh gst-navcard"> + <div class="<?= $config['cn_card_content'] ?>"> + <div style="display: flex; gap: 1em; align-items: center"> + <?php if ($card->image) { ?><img class="<?= safe($config['cn_card_img']) ?>" alt="Graphic of <?= $card->title ?>" src="<?= $card->image ?>" /><?php } ?> + <div class="landing-cc-card-title"><?= safe($card->title) ?></div> + </div> + + <div class="landing-cc-card-body"><?= safe($card->about) ?></div> + + <?php if ($card->href) { ?> + <div style="flex: 0 0 fit-content"> + <span class="landing-card-btn landing-cc-btn" ><?= safe($card->href_label)?></span> + </div> + <?php } ?> + </div> + </a> + <?php + return ob_get_clean(); } -$content .= '<p class="archive"><a href="/archive/">Older News Entries</a></p>'; -$content .= "</div>"; - -$intro = <<<EOF - <div class="hero"> - <img class="hero__logo" src="/images/logos/php-logo-white.svg" alt="php" width="240" height="120"> - <p class="hero__text">A <strong>popular general-purpose scripting language</strong> that is especially suited to web development.<br />Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.</p> - <div class="hero__actions"> - <a href="/releases/8.5/index.php" class="hero__btn hero__btn--primary">What's new in 8.5</a> - <a href="/downloads.php" class="hero__btn hero__btn--secondary">Download</a> + +/** + * @param NavCardItem[] $cards + */ +function buildNavCards(array $cards, array $config = []): string +{ + return implode('', array_map(fn(NavCardItem $card) => buildNavCard($card, $config), $cards)); +} + +function drawBranchInfo(PointReleaseData $release): void +{ + $now = new DateTime(); + $fmtDate = fn(DateTimeImmutable $date) => ($date < $now) ? 'End of Life' : $date->format('Y-m-d'); + $version = $release->parent; + + ?> + <div style="display: flex; flex-direction: column; gap: 0.25em"> + <div> + <a class='hero__version-link' href="<?= safe($release->announcementUrl)?>"><?= $release->label ?></a> + · +<!-- <a class='notes' href="--><?php //= safe($version->downloadUri)?><!--">Changelog</a> --> +<!-- ·--> + <a class='notes' href="<?= safe($version->migrationUri) ?>">Migration Guide</a> + </div> + <div> + <div style="display: inline-flex; gap: 1em; font-size: 90%; text-align: center"> + <div> + <span style="font-weight: 500">Bugfixes:</span> + <?= safe($fmtDate($version->bugfixEOL)) ?> + </div> + <div> + <span style="font-weight: 500">Security:</span> + <?= safe($fmtDate($version->securityEOL)) ?> + </div> + </div> + </div> </div> -EOF; - -$intro .= "<ul class='hero__versions'>\n"; -$active_branches = get_active_branches(); -krsort($active_branches); -foreach ($active_branches as $major => $releases) { - krsort($releases); - foreach ((array)$releases as $release) { - $version = $release['version']; - [$major, $minor, $_] = explode('.', $version); - $intro .= " - <li class='hero__version'><a class='hero__version-link' href='/downloads.php?version=$major.$minor'>$version</a> · <a class='notes' href='/ChangeLog-$major.php#$version'>Changelog</a> · <a class='notes' href='/migration$major$minor'>Upgrading</a></li>\n"; + <?php +} + +$communityCards = []; +foreach (require __DIR__ . '/include/communities.inc' as $community) { + $communityCards[] = new NavCardItem( + title: $community['title'], + about: $community['about'], + image: $community['image'], + href: $community['href'], + href_label: $community['href_label'] ?? 'Visit Community', + ); +} + +$eventCards = []; +$MAX_CONFERENCE_CARDS = 9; +$now = new DateTimeImmutable(); + +foreach ((new NewsHandler())->getConferences() as $conf) { + $finalTeaserDate = $conf['finalTeaserDate'] ?? null; + if (!$finalTeaserDate) { + continue; + } + + if (DateTimeImmutable::createFromFormat('Y-m-d', $finalTeaserDate) < $now) { + continue; + } + + $link = null; + foreach ($conf['link'] ?? [] as $rel) { + if (($conf['rel'] ?? 'alternate') === 'alternate') { + $link = $rel; + } + } + + if ($link) { + $link = str_replace('https://www.php.net', '', $link['href']); + } + + $id = parse_url($conf["id"], PHP_URL_FRAGMENT); + $image = $conf["newsImage"]['content'] ?? null; + if ($image) { + $image = '/images/news/' . $image; } + + $eventCards[] = new NavCardItem( + title: $conf['title'], + about: $conf['summary'] ?? '', + image: $image, + href: $link ?? '/conferences/', + href_label: 'Explore Event', + ); + + if (count($eventCards) > $MAX_CONFERENCE_CARDS) { + break; + } +} + +$developmentCards = []; +foreach (require __DIR__ . '/include/development-links.inc' as $community) { + $developmentCards[] = new NavCardItem( + title: $community['title'], + about: $community['about'], + image: $community['image'], + href: $community['href'], + href_label: $community['href_label'] ?? 'Visit Community', + ); } -$intro .= "</ul>\n"; -$intro .= <<<EOF - </div> -EOF; -site_header(NULL, - [ +$heroCards = []; +foreach (require __DIR__ . '/include/landing-heros.inc' as $hero) { + $heroCards[] = new NavCardItem( + title: $hero['title'], + about: $hero['about'], + image: $entry["newsImage"]["content"] ?? '', + href: $hero['href'], + href_label: $hero['href_label'], + id: isset($hero['id']) ? ('hero-' . $hero['id']) : null, + ); +} + +$foundationSponsors = require __DIR__ . '/include/php-foundation-sponsors.inc'; + +ob_start(); +?> +<div id="landing-content" class="landing gst-dark"> + <div class="gst-primary gst-primary-container" style="border: 0"> + <div class="gst-content-p"> + <div class="landing-hdr"> + <div style="display: flex; flex-direction: column; gap: 1em; text-align: center; justify-content: center; padding: 1em"> + <div style="flex: 1 1; position: relative; display: flex; align-items: center"> + <img class="hero__logo" src="/images/logos/php-logo-white.svg" alt="php" width="240" height="120" style="z-index: 1; margin-left: auto; margin-right: auto;"> + <img style="position: absolute; object-position: center; width: 100%; height: 100%; object-fit: contain; opacity: 0.5" src="/images/landing/elephpant.png" alt="PHP Elephant logo" /> + </div> +<!-- <p class="landing-hdr-tagline" style="flex: 0 0 fit-content">--> +<!-- Powering Solo Developers, Teams, and Global Enterprise--> +<!-- </p>--> + </div> + <div> + <div class="landing-hdr-block"> + <div class="landing-hdr-title">Fast & Modern</div> + <div class="landing-hdr-content">PHP provides blistering fast performance and a modern developer-focused experience.</div> + </div> + + <div class="landing-hdr-block"> + <div class="landing-hdr-title">A Massive Ecosystem</div> + <div class="landing-hdr-content">Leverage over 450,000 existing open source packages for your projects, along with powerful tooling.</div> + </div> + + <div class="landing-hdr-block"> + <div class="landing-hdr-title">An Established Community</div> + <div class="landing-hdr-content">Millions of developers and businesses already use PHP to achieve their goals every day.</div> + </div> + </div> + </div> + + <div role="list" class="gst-cgrid"><?= buildNavCards($heroCards) ?></div> + </div> + </div> + + <div class="gst-secondary gst-secondary-container"> + <div class="gst-content-p"> + <div id="releases" > + <div class="landing-lrv"> + <svg class="landing-lrv-animate" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"> + <defs> + <radialGradient id="Gradient1" cx="50%" cy="50%" fx="0.441602%" fy="50%" r=".5"><animate attributeName="fx" dur="34s" values="0%;3%;0%" repeatCount="indefinite"></animate><stop offset="0%" stop-color="rgba(210, 203, 255, 1)"></stop><stop offset="100%" stop-color="rgba(51, 63, 124, 0)"></stop></radialGradient> + <radialGradient id="Gradient2" cx="50%" cy="50%" fx="2.68147%" fy="50%" r=".5"><animate attributeName="fx" dur="23.5s" values="0%;3%;0%" repeatCount="indefinite"></animate><stop offset="0%" stop-color="rgba(133, 109, 255, 1)"></stop><stop offset="100%" stop-color="rgba(51, 63, 124, 0)"></stop></radialGradient> + <radialGradient id="Gradient3" cx="50%" cy="50%" fx="0.836536%" fy="50%" r=".5"><animate attributeName="fx" dur="21.5s" values="0%;3%;0%" repeatCount="indefinite"></animate><stop offset="0%" stop-color="rgba(210, 203, 255, 1)"></stop><stop offset="100%" stop-color="rgba(51, 63, 124, 0)"></stop></radialGradient> + </defs> + <rect x="13.744%" y="1.18473%" width="100%" height="100%" fill="url(#Gradient1)" transform="rotate(334.41 50 50)"><animate attributeName="x" dur="20s" values="25%;0%;25%" repeatCount="indefinite"></animate><animate attributeName="y" dur="21s" values="0%;25%;0%" repeatCount="indefinite"></animate><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="7s" repeatCount="indefinite"></animateTransform></rect> + <rect x="-2.17916%" y="35.4267%" width="100%" height="100%" fill="url(#Gradient2)" transform="rotate(255.072 50 50)"><animate attributeName="x" dur="23s" values="-25%;0%;-25%" repeatCount="indefinite"></animate><animate attributeName="y" dur="24s" values="0%;50%;0%" repeatCount="indefinite"></animate><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="12s" repeatCount="indefinite"></animateTransform></rect> + <rect x="9.00483%" y="14.5733%" width="100%" height="100%" fill="url(#Gradient3)" transform="rotate(139.903 50 50)"><animate attributeName="x" dur="25s" values="0%;25%;0%" repeatCount="indefinite"></animate><animate attributeName="y" dur="12s" values="0%;25%;0%" repeatCount="indefinite"></animate><animateTransform attributeName="transform" type="rotate" from="360 50 50" to="0 50 50" dur="9s" repeatCount="indefinite"></animateTransform></rect> + </svg> + + <div class="landing-lrv-inner-padding" > + <div class="landing-lrv-inner"> + <div> + <img src="<?= safe($latestVersion->logoUrl) ?>" alt="php" style="height: 100px; width: 100%; object-fit: contain; margin-left: auto; margin-right: auto"> + <div style="text-align: center; margin-top: 1em; color: white"> + <?php drawBranchInfo($latestVersion->latestRelease) ?> + </div> + + <div style="margin-top: 3em"> + <div class="landing-lrel-buttons"> + <a href="<?= safe($latestVersion->aboutPageURL) ?>" class="landing-card-btn">Find Out More About PHP <?= $latestVersion->label ?></a> + <a href="<?= safe($latestVersion->downloadUri) ?>" class="landing-card-btn">Download Now</a> + </div> + </div> + </div> + <div> + <div style="color: white; font-weight: bold; text-align: center; font-size: smaller; margin-bottom: 1em">Major Features</div> + <div class="landing-lrv-highlights"> + <?php foreach ($latestVersion->getMajorFeatureDescriptions() as $change) { ?> + <div class="landing-lrv-highlight"> + <div class="landing-lrv-highlight-title"><?= safe($change['title'])?></div> + <div><?= safe($change['about'] ?? $change['short']) ?></div> + </div> + <?php } ?> + </div> + </div> + </div> + </div> + </div> + + <ul class="gst-cgrid landing-lrel-cards"> + <?php foreach ($latestVersions as $release) { ?> + <li class="gst-cgrid-card gst-card"> + <div class="landing-lrel-card-inner"> + <img class="landing-lrel-img" src="<?= safe($release->logoUrl)?>" alt="PHP version <?= $release->label ?>"/> + <div class="landing-lrel-latest"> + <div> + <?php drawBranchInfo($release->latestRelease) ?> + </div> + </div> + + <div class="hidden-phone" style="flex: 1 1; display: grid; row-gap: 1.5em"> + <div> + <div class="landing-lrel-featuring" >Major Features:</div> + <ul class="landing-lrel-features"> + <?php foreach ($release->getMajorFeatureDescriptions() as $change) { ?> + <li><?= safe($change['short'] ?? $change['title']) ?></li> + <?php } ?> + </ul> + </div> + </div> + + <div class="landing-lrel-buttons" style="display: grid; grid-template-columns: 1fr 1fr; gap: 0.5em"> + <a href="<?= safe($release->aboutPageURL)?>" class="landing-card-btn">Discover More</a> + <a href="<?= safe($release->downloadUri) ?>" class="landing-card-btn">Download</a> + </div> + </div> + </li> + <?php } ?> + </ul> + </div> + </div> + </div> + + <div class="gst-primary gst-primary-container"> + <div class="gst-content-p"> + <div id="php-foundation" class="gst-primary-banner"> + <img alt="PHP Foundation Logo" style="width: 160px; height: 160px; border-radius: 0.5em" src="<?= safe(Assets::mapUrl('/images/logos/php-foundation.svg')) ?>" /> + <div> + <div class="gst-primary-text"> + The PHP Foundation is a collective of people and organizations, united in the mission to ensure the long-term prosperity of the PHP language. + <br /><br /> + </div> + + <a class="button-primary" target="_blank" href="https://thephp.foundation/">Learn About the PHP Foundation</a> +  ·  + + <a class="button-primary" target="_blank" href="https://opencollective.com/phpfoundation/contribute">Donate Via Open Collective</a> +  ·  + + <a class="button-primary" target="_blank" href="https://github.com/sponsors/ThePHPF">Donate Via GitHub</a> + </div> + </div> + <?php if (($_GET['show_sponsors'] ?? '1') === '1') { ?> + <div> + <div style="margin-top: 2em; margin-bottom: 0.5em; text-align: center; font-size: 90%">The PHP Foundation is grateful for our many sponsors, including:</div> + <div id="foundation-sponsor-carousel" data-width="100" style="opacity: 0.7"> + <?php foreach ($foundationSponsors as $sponsor) { ?> + <img loading="lazy" src="<?= safe($sponsor['icon']) ?>" title="<?= safe($sponsor['name'])?>" style="background: white; border-radius: 1em; padding: 10px; margin: 10px; width: 100px; height: 100px; filter: grayscale(60%)"/> + <?php } ?> + </div> + <script type="text/javascript"> + document.addEventListener('DOMContentLoaded', () => { + const container = document.querySelector('#foundation-sponsor-carousel'); + initInfiniteScroll(container, 30); + }); + </script> + </div> + <?php } ?> + </div> + </div> + + <div class="gst-secondary gst-secondary-container"> + <div class="gst-content-p" id="community"> + <div style="display: flex; gap: 1.5em; flex-direction: column"> + <div class="landing-section-header" role="heading">Community</div> + <div> + <div role="list" class="gst-cgrid" id="community-cards"><?= buildNavCards($communityCards); ?></div> + </div> + <div></div> + + <div class="landing-section-header" role="heading">Events & Conferences</div> + <div> + <div role="list" class="gst-cgrid" id="conference-cards"><?= buildNavCards($eventCards) ?></div> + </div> + </div> + </div> + </div> + + <div class="gst-primary gst-primary-container"> + <div class="gst-content-p"> + <div class="gst-primary-banner"> + <div style="flex: 0 0 fit-content"> + <img alt="Composer Logo" style="background: white; object-fit: contain; padding: 0.5em; width: 100%; height: 160px; border-radius: 0.5em" src="/images/logos/composer.png" /> + </div> + <div> + <div class="gst-primary-text"> + PHP has one of the largest collections of open-source libraries in the world. + + <br /><br /> + Ranging from individual helpers to entire application frameworks, all packages are easily installable via the <em>Composer</em> + package manager. + <br /><br /> + </div> + + <a class="button-primary" target="_blank" href="https://getcomposer.org/">Get Composer</a> +  ·  + <a class="button-primary" target="_blank" href="https://packagist.org/">Browse Package Repository</a> + </div> + </div> + </div> + </div> + + <div class="gst-secondary gst-secondary-container"> + <div class="gst-content-p"> + <div class="landing-section-header">Language Development</div> + <div role="list" class="gst-cgrid" id="language-development"> + <?= buildNavCards($developmentCards) ?> + </div> + </div> + </div> +</div> + +<script type="text/javascript"> + document.addEventListener('DOMContentLoaded', () => { + shuffleDOMChildrenWithLimit(document.querySelector('#community-cards'), 3); + shuffleDOMChildrenWithLimit(document.querySelector('#conference-cards'), 6); + }); + + (() => { + const layout = document.querySelector('#landing-content'); + const isLightMode = <?= (($_GET['theme'] ?? 'dark') === 'light' ? 'true' : 'false') ?>; + // window.matchMedia('(prefers-color-scheme: light)').matches + if (isLightMode) { + layout.classList.remove('gst-dark'); + layout.classList.add('gst-light'); + } + })(); +</script> + +<?php + $header = ob_get_clean(); + +echo PageTheme::renderIntoTemplate( + config: [ + 'title' => 'PHP: Hypertext Preprocessor', + 'show_section' => false, + 'css' => [ + '/styles/landing.css', + ], + 'js_files' => [ + '/js/landing.js', + ], 'current' => 'home', 'headtags' => [ '<link rel="alternate" type="application/atom+xml" title="PHP: Hypertext Preprocessor" href="' . $MYSITE . 'feed.atom">', '<script>', "function okc(f){var c=[38,38,40,40,37,39,37,39,66,65,13],x=function(){x.c=x.c||Array.apply({},c);x.r=function(){x.c=null};return x.c},h=function(e){if(x()[0]==(e||window.event).keyCode){x().shift();if(!x().length){x.r();f()}}else{x.r()}};window.addEventListener?window.addEventListener('keydown',h,false):document.attachEvent('onkeydown',h)}", - "okc(function(){if(document.getElementById){i=document.getElementById('phplogo');i.src='" . $MYSITE . "images/php_konami.gif'}});", + "okc(function(){if(document.getElementById){i=document.getElementById('phplogo');i.src='/images/php_konami.gif'}});", '</script>', ], - 'link' => [ - [ + 'link' => [[ "rel" => "search", "type" => "application/opensearchdescription+xml", "href" => $MYSITE . "phpnetimprovedsearch.src", "title" => "Add PHP.net search", - ], - [ + ], [ "rel" => "alternate", "type" => "application/atom+xml", "href" => $MYSITE . "releases/feed.php", "title" => "PHP Release feed", ], - ], - 'css' => ['home.css'], - 'intro' => $intro, ], + content: $header ); -// Print body of home page. -echo $content; - -// Prepare announcements. -if (is_array($CONF_TEASER)) { - $conftype = [ - 'conference' => 'Upcoming conferences', - 'cfp' => 'Conferences calling for papers', - ]; - $announcements = ""; - foreach ($CONF_TEASER as $category => $entries) { - if ($entries) { - $announcements .= '<div class="panel">'; - $announcements .= ' <a href="/conferences" class="headline" title="' . $conftype[$category] . '">' . $conftype[$category] . '</a>'; - $announcements .= '<div class="body"><ul>'; - foreach (array_slice($entries, 0, 4) as $url => $title) { - $title = preg_replace("'([A-Za-z0-9])([\s:\-,]*?)call for(.*?)$'i", "$1", $title); - $announcements .= "<li><a href='$url' title='$title'>$title</a></li>"; - } - $announcements .= '</ul></div>'; - $announcements .= '</div>'; - } - } -} else { - $announcements = ''; -} - -$SIDEBAR = <<<SIDEBAR_DATA - - <div class='panel'> - <a href='https://thephp.foundation/' class='headline'>The PHP Foundation</a> - <div class='body'> - <p>The PHP Foundation is a collective of people and organizations, united in the mission to ensure the long-term prosperity of the PHP language. - <p><a href='https://thephp.foundation/donate/' target="_blank" rel="noopener noreferrer" class='btn btn-primary'>Donate</a></p> - </div> - </div> -$announcements - <p class='panel'><a href='/cal.php'>User Group Events</a></p> - <p class='panel'><a href='/thanks.php'>Special Thanks</a></p> - <div class='panel social-media'> - <span class='headline'>Social media</span> - <div class='body'> - <ul> - <li> - <a href="https://twitter.com/official_php" target="_blank" rel="noopener noreferrer"> - <i class="icon-x-twitter"></i> - @official_php - </a> - </li> - <li> - <a href="https://fosstodon.org/@php" target="_blank" rel="noopener noreferrer"> - <i class="icon-mastodon"></i> - @php@fosstodon.org - </a> - </li> - <li> - <a href="https://www.linkedin.com/company/phpnet" target="_blank" rel="noopener noreferrer"> - <i class="icon-linkedin"></i> - @phpnet - </a> - </li> - </ul> - </div> - </div> - -SIDEBAR_DATA; - -// Print the common footer. -site_footer([ - "atom" => "/feed.atom", // Add a link to the feed at the bottom - 'elephpants' => true, - 'sidebar' => $SIDEBAR, -]); diff --git a/js/common.js b/js/common.js index 86b4862fd5..33c9925b9f 100644 --- a/js/common.js +++ b/js/common.js @@ -879,3 +879,23 @@ function applyTheme(theme) { } applyTheme(savedTheme) + +function shuffleImmutableArray(array) { + const newArray = [...array]; + for (let i = newArray.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [newArray[i], newArray[j]] = [newArray[j], newArray[i]]; + } + return newArray; +} + +function shuffleDOMChildrenWithLimit(parent, limit) { + const children = Array.from(parent.children); + const replacements = shuffleImmutableArray(children).slice(0, limit); + + while (parent.children.length) { + parent.removeChild(parent.children[0]); + } + + replacements.forEach(n => parent.appendChild(n)); +} diff --git a/js/landing.js b/js/landing.js new file mode 100644 index 0000000000..a50b4f7d8e --- /dev/null +++ b/js/landing.js @@ -0,0 +1,85 @@ +function initInfiniteScroll(parentContainer, speed = 50, setupArgs = {}) { + if (!parentContainer) return null; + + // 1. Extract the fixed width from the data-width attribute + const dataWidth = parentContainer.dataset.width; + if (!dataWidth) { + console.error("InfiniteScroll Error: Missing 'data-width' attribute on the container."); + return null; + } + + const widthNum = parseInt(dataWidth, 10); + const widthStr = `${widthNum}px`; + + // 2. Gather the existing child elements currently inside the parent + const elements = Array.from(parentContainer.children); + if (elements.length === 0) return null; + + // 3. Prepare the parent container styling + parentContainer.style.overflow = 'hidden'; + parentContainer.style.position = 'relative'; + parentContainer.style.width = '100%'; + + // 4. Create the scrolling track + const track = document.createElement('div'); + track.style.display = 'flex'; + track.style.width = 'max-content'; + track.style.willChange = 'transform'; + + // 5. Apply widths and move existing elements into the track + elements.forEach(el => { + el.style.width = widthStr; + el.style.flexShrink = '0'; + track.appendChild(el); // Automatically removes it from parentContainer and places it in track + }); + + // 6. Append the track to the parent container + parentContainer.appendChild(track); + + // 7. Clone elements to ensure a seamless loop with no blank gaps + const parentWidth = parentContainer.offsetWidth || window.innerWidth; + const originalTotalWidth = elements.length * widthNum; + + let currentTrackWidth = originalTotalWidth; + while (currentTrackWidth < parentWidth + originalTotalWidth) { + elements.forEach(el => { + const clone = el.cloneNode(true); + clone.style.width = widthStr; + clone.style.flexShrink = '0'; + track.appendChild(clone); + }); + currentTrackWidth += originalTotalWidth; + } + + // 8. Generate a unique CSS keyframe animation dynamically + const animationName = `infiniteScroll_${Math.random().toString(36).substr(2, 9)}`; + const styleNode = document.createElement('style'); + styleNode.textContent = ` + @keyframes ${animationName} { + 0% { transform: translateX(0); } + 100% { transform: translateX(-${originalTotalWidth}px); } + } + `; + document.head.appendChild(styleNode); + + // 9. Apply the animation (speed is pixels per second) + const duration = originalTotalWidth / speed; + track.style.animation = `${animationName} ${duration}s linear infinite`; + + // 10. Return playback and cleanup controls + const tools = { + pause: () => track.style.animationPlayState = 'paused', + play: () => track.style.animationPlayState = 'running', + destroy: () => { + // Puts original elements back and cleans up the DOM + elements.forEach(el => parentContainer.appendChild(el)); + track.remove(); + styleNode.remove(); + } + }; + + parentContainer.addEventListener('mouseenter', () => tools.pause()); + parentContainer.addEventListener('mouseleave', () => tools.play()); + + return tools; +} diff --git a/js/sandbox.js b/js/sandbox.js new file mode 100644 index 0000000000..5c9768426a --- /dev/null +++ b/js/sandbox.js @@ -0,0 +1,41 @@ +import phpBinary from "./php-web.mjs"; + +export class PHPSandbox { + constructor(templateFiles) { + this.templateFiles = templateFiles; + } + + async execute(files) { + let buffer = []; + let initializing = true; + + files = {...files, ...this.templateFiles}; + + const php = await phpBinary({ + print(data) { + if (initializing) { + return; + } + + console.log('output', data); + + buffer.push(data); + } + }); + + for (const [filename, content] of Object.entries(files)) { + const dir = filename.substring(0, filename.lastIndexOf('/')); + if (dir) { + php.FS_createPath('/', dir, true, true); + } + + php.FS.writeFile('/' + filename, content); + } + + initializing = false; + php.ccall("phpw_run", null, ["string"], ['require "boot.php";']); + + return JSON.parse(buffer.join("")); + } +} + diff --git a/releases/4_1_0.php b/releases/4_1_0.php index 39b8474d15..e2087c6b90 100644 --- a/releases/4_1_0.php +++ b/releases/4_1_0.php @@ -1,168 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_1_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.1.0 Release Announcement"); -?> - -<h1>PHP 4.1.0 Release Announcement</h1> - -<p> - After a lengthy QA process, PHP 4.1.0 is <a href="/downloads.php">finally out</a>!<br> - [ <a href="/releases/4_1_0_fr.php">Version Française</a> ] -</p> - -<p> PHP 4.1.0 includes several other key improvements:</p> -<ul> - <li>A new input interface for improved security (read below)</li> - <li>Highly improved performance in general</li> - <li> - Revolutionary performance and stability improvements under - Windows. The multithreaded server modules under Windows (ISAPI, - Apache, etc.) perform as much as 30 times faster under load! We - want to thank Brett Brewer and his team in Microsoft for working - with us to improve PHP for Windows. - </li> - <li> - Versioning support for extensions. Right now it's barely being - used, but the infrastructure was put in place to support separate - version numbers for different extensions. The negative side effect - is that loading extensions that were built against old versions of - PHP will now result in a crash, instead of in a nice clear message. - Make sure you only use extensions built with PHP 4.1.0. - </li> - <li>Turn-key output compression support</li> - <li><strong>LOTS</strong> of fixes and new functions</li> -</ul> - -<p> - As some of you may notice, this version is quite historic, as it's - the first time in history we actually incremented the middle digit! :) - The two key reasons for this unprecedented change were the new input - interface, and the broken binary compatibility of modules due to the - versioning support. -</p> - -<p> - Following is a description of the new input mechanism. For a full list of - changes in PHP 4.1.0, see the <a href="/ChangeLog-4.php#4.1.0">ChangeLog</a>. -</p> - -<hr> - -<h2>SECURITY: NEW INPUT MECHANISM</h2> - -<p> - First and foremost, it's important to stress that regardless of - anything you may read in the following lines, PHP 4.1.0 <strong>still - supports</strong> the old input mechanisms from older versions. - Old applications should go on working fine without modification! -</p> - -<p>Now that we have that behind us, let's move on :)</p> - -<p> - For various reasons, PHP setups which rely on register_globals - being on (i.e., on form, server and environment variables becoming - a part of the global namespace, automatically) are very often - exploitable to various degrees. For example, the piece of code: -</p> - -<?php highlight_php('<?php -if (authenticate_user()) { - $authenticated = true; -} -... -?>');?> - -<p> - May be exploitable, as remote users can simply pass on 'authenticated' - as a form variable, and then even if authenticate_user() returns false, - $authenticated will actually be set to true. While this looks like a - simple example, in reality, quite a few PHP applications ended up being - exploitable by things related to this misfeature. -</p> - -<p> - While it is quite possible to write secure code in PHP, we felt that the - fact that PHP makes it too easy to write insecure code was bad, and we've - decided to attempt a far-reaching change, and deprecate register_globals. - Obviously, because the vast majority of the PHP code in the world relies - on the existence of this feature, we have no plans to actually remove it - from PHP anytime in the foreseeable future, but we've decided to encourage - people to shut it off whenever possible. -</p> - -<p> - To help users build PHP applications with register_globals being off, - we've added several new special variables that can be used instead of the - old global variables. There are 7 new special arrays: -</p> - -<ul> - <li>$_GET - contains form variables sent through GET</li> - <li>$_POST - contains form variables sent through POST</li> - <li>$_COOKIE - contains HTTP cookie variables</li> - <li>$_SERVER - contains server variables (e.g., REMOTE_ADDR)</li> - <li>$_ENV - contains the environment variables</li> - <li> - $_REQUEST - a merge of the GET variables, POST variables and Cookie variables. - In other words - all the information that is coming from the user, - and that from a security point of view, cannot be trusted. - </li> - <li>$_SESSION - contains HTTP variables registered by the session module</li> -</ul> - -<p> - Now, other than the fact that these variables contain this special information, - they're also special in another way - they're automatically global in any - scope. This means that you can access them anywhere, without having to - 'global' them first. For example: -</p> - -<?php highlight_php('<?php -function example1() -{ - print $_GET["name"]; // works, \'global $_GET;\' is not necessary! -} -?>');?> - -<p> - would work fine! We hope that this fact would ease the pain in migrating - old code to new code a bit, and we're confident it's going to make writing - new code easier. Another neat trick is that creating new entries in the - $_SESSION array will automatically register them as session variables, as - if you called session_register(). This trick is limited to the session - module only - for example, setting new entries in $_ENV will - <strong>not</strong> perform an implicit putenv(). -</p> - -<p> - PHP 4.1.0 still defaults to have register_globals set to on. It's a - transitional version, and we encourage application authors, especially - public ones which are used by a wide audience, to change their applications - to work in an environment where register_globals is set to off. Of course, - they should take advantage of the new features supplied in PHP 4.1.0 that - make this transition much easier. -</p> - -<p> - As of the next semi-major version of PHP, new installations of PHP will - default to having register_globals set to off. No worries! Existing - installations, which already have a php.ini file that has register_globals - set to on, will not be affected. Only when you install PHP on a brand new - machine (typically, if you're a brand new user), will this affect you, and - then too - you can turn it on if you choose to. -</p> - -<p> - Note: Some of these arrays had old names, e.g. $HTTP_GET_VARS. These names - still work, but we encourage users to switch to the new shorter, and - auto-global versions. -</p> - -<p> - Thanks go to Shaun Clowes (shaun at securereality dot com dot au) for - pointing out this problem and for analyzing it. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.1.0'); diff --git a/releases/4_1_0_fr.php b/releases/4_1_0_fr.php index 04c16a721d..e2087c6b90 100644 --- a/releases/4_1_0_fr.php +++ b/releases/4_1_0_fr.php @@ -1,192 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_1_0_fr.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.1.0", ["lang" => "fr"]); -?> - -<h1>Annonce de publication de PHP 4.1.0</h1> - -<p> - Après un long processus "QA", PHP 4.1.0 <a href="/downloads.php">est enfin sorti</a>!<br> - [ <a href="/releases/4_1_0.php">English Version</a> ] -</p> - -<p> - PHP 4.1.0 inclut beaucoup d'améliorations importantes: -</p> -<ul> - <li>Une nouvelle interface d'entrée en général (voir plus bas)</li> - <li>Perfomance grandement accrue en général</li> - <li> - Sous Windows une stabilité et une performance révolutionnaire. Les - modules serveur multi-thread sous windows (ISAPI, Apache, etc...) - s'exécute jusqu'à 30 fois plus rapidement sous la charge! Nous - voulons remercier Brett Brewer et son équipe chez Microsoft pour - son travail avec nous pour améliorer PHP pour Windows. - </li> - <li> - Gestion des versions pour les extensions. A l'heure actuelle, ceci - est très peu utilisé, l'infrastructure était mise en place pour le - support séparé des numéros de versions pour différentes extensions. - L'effet de bord négatif est que le faite de charger des extensions - avec une ancienne version de PHP résultait d'un crash, à la place - d'un message correct et claire. Soyez sûrs que vous utilisez - seulement des extensions intégrées à PHP 4.1.0. - </li> - <li>Support "Turn-Key" de la compression des sorties</li> - <li><strong>BEAUCOUP</strong> de corrections et de nouvelles fonctions</li> -</ul> - -<p> - Comme certains l'ont noté, cette version est quelque peu historique, - comme c'est la première fois dans l'histoire que nous incrémentons - le numéro du milieu ! - Les deux principales raisons à cela sont d'un côté les changements sans - précédent de la nouvelle interface d'entrée, et de l'autre l'incompatibilité - des modules dus au support des versions. -</p> - -<p> - Ce qui suit concerne une description du nouveau mécanisme d'entrée. - Pour une liste complète des changements voir le - <a href="/ChangeLog-4.php#4.1.0">ChangeLog</a>. -</p> - -<hr> - -<h2>SECURITE: NOUVEAU MECANISME D'ENTREE</h2> - -<p> - Avant tout, il est important de signaler que, sans tenir compte de ce - que vous pourriez lire dans les lignes qui suivent, PHP 4.1.0 <strong>gère - encore</strong> les anciens mécanismes d'entrée des anciennes versions. - D'anciennes applications devraient bien fonctionner sans modifications ! -</p> - -<p>Passsons à la suite mainenant que cela est dit :)</p> - -<p> - Pour différentes raisons, PHP qui se repose sur register_globals ON - (ex. sur les formulaires, les variables serveur et d'environnement - deviennent partie de la portée globale d'un script [namespace], et - ce automatiquement) sont très souvent exploitable à des degrés - divers. Par exemple le code suivant: -</p> - -<?php highlight_php('<?php -if (authenticate_user()) { - $authenticated = true; -} -... -?>');?> - -<p> - Peut être exploitable de la manière suivante, des utilisateurs - distants peuvent simplement passer 'authenticated' comme variable - d'un formulaire et même si authenticate_user() retourne false, - $authentiticated va actuellement contenir true. Ce"la semble etre un - exemple très simple, mais en réalité, bien des applications PHP - sont exploitable par ce dysfonctionnement. -</p> - -<p> - Tandis qu'il est parfaitement possible d'écrire du code PHP - sécurisé, nous sentions que le fait que PHP permette, de manière beaucoup - trop facile, d'écrire du code PHP non sécurisé n'était pas - acceptable, et nous avons décidé de tenter un changement très grand - et de rendre caduque register_globals. - Evidemment, à cause de la grande majorité de code PHP dans le monde se - reposant sur l'existence de cette fonctionnalité, nous ne la supprimerons - jamais, mais nous avons décidés d'encourager les utilisateurs de ne plus - l'utiliser à chaque fois que cela est possible. -</p> - -<p> - Afin d'aider les utilisateurs à construire des applications PHP avec - register_globals à Off, nous avons ajouté quelques nouvelles - variables spéciales, variables qui peuvent être utilisées à la place - des anciennes variables globales. Il y a 7 nouveaux tableaux spéciaux: -</p> - -<ul> - <li>$_GET - contient les variables passées par la méthode GET</li> - <li>$_POST - contient les variables passées par la méthode POST</li> - <li>$_COOKIE - contient les variables HTTP cookie</li> - <li>$_SERVER - contient les variables serveur (par ex. REMOTE_ADDR)</li> - <li>$_ENV - contient les variables d'environnement</li> - <li> - $_REQUEST - Une fusion des variables GET. POST, COOKIE. En d'autres - termes toutes les informations qui arrivent de l'utilisateur, - et qui d'un point de vue purement sécuritaire, ne sont pas sûres - </li> - <li> - $_SESSION - contient toutes les variables HTTP enregistrées par le - module des sessions - </li> -</ul> - -<p> - Maintenant, entre autre le fait que ces variables contiennent ces - informations spéciales, elles sont aussi automatiquement globales - dans toutes les portées. Cela signifie que vous pouvez y accéder - de n'importe où, sans avoir à les déclarer en globales. Par exemple: -</p> - -<?php highlight_php('<?php -function example1() -{ - print $_GET["name"]; // fonctionne, pas besoin de \'global $_GET;\' ! -} -?>');?> - -<p> - va fonctionner très bien! Nous espérons que cela va faciliter la tâche - durant la migration de vieux code vers le nouveau, et nous sommes sûrs - que cela vous simplifiera l'écriture de nouveaux codes. - Une autre astuce est que le fait de créer de nouvelles entrées dans - $_SESSION va automatiquement les enregistrer comme variables de session, - comme si vous auriez appelé session_register(). Cette astuce est limitée - uniquement au module de gestion de session - par exemple, créer de - nouvelles entrés dans $_ENV ne va <strong>pas</strong> exécuter un put_env() - implicite. -</p> - -<p> - PHP 4.1.0 doit toujours avoir register_globals mis a On par défaut. - C'est une version de transition, et nous encourageons les auteurs - d'applications, spécialement les applications publiques qui sont utilisées - par une large audience, de changer leurs applications pour fonctionner - avec un environnement où register_globals est à Off. Il est clair - qu'ils devraient profiter des nouvelles fonctionnalités fournies - avec PHP 4.1.0 qui font que cette transition est plus aisée. -</p> - -<p> - Dans la prochaine version "semi majeure" de PHP, de nouvelles installations - de PHP devrait avoir register_globals mis à Off par défaut. Ne vous en - faites pas! Les installations existantes, qui ont déjà un fichier php.ini - qui a register_globals à On, ne vont pas être affectées. Cela vous - affectera seulement si vous installez PHP sur une nouvelle machine - (typiquement si vous êtes un nouvel utilisateur), et si vous le désirez - vous pourrez toujours le mettre à On. -</p> - -<p> - Note: Certains de ces tableaux ont d'anciens noms, exemple : $HTTP_GET_VARS. - Ces noms fonctionnent toujours, mais nous encourageons les utilisateurs - de migrer vers le nouveaux noms, plus courts et qui sont des versions - automatiquement globales. -</p> - -<p> - Les remerciements vont à Shaun Clowes (shaun at securereality dot com dot au) - pour avoir révélé ce problème et avoir aidé - à l'analyser. -</p> - -<p> - French translation is available courtesy of Pierre-Alain Joye - (pierre-alain dot joye at wanadoo dot fr). -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.1.0'); diff --git a/releases/4_1_1.php b/releases/4_1_1.php index bbbc8d6dfe..70ed406f2d 100644 --- a/releases/4_1_1.php +++ b/releases/4_1_1.php @@ -1,63 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_1_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.1.1 Release Announcement"); -?> - -<h1>PHP 4.1.1 Release Announcement</h1> - -<p> - Due to a few bugs in PHP 4.1.0, we decided to release PHP 4.1.1. The bugs - that were fixed are not major ones but minor ones, which could be annoying - if you get bitten by them. -</p> - -<p> - Our recommendation is that people who already upgraded to PHP 4.1.0 do - <strong>not</strong> upgrade to <a href="/downloads.php">PHP 4.1.1</a>, - unless they're experiencing one of the described bugs. -</p> - -<p> - <strong>No</strong> new features or security updates are available - in this release. -</p> - -<p>Full list of fixes:</p> - -<ul> - <li> - Fixed incompatibility with Windows .NET / IIS 6 - may improve stability - under other versions of IIS. (Zeev) - </li> - <li> - Fixed bug that caused crashes or error notices on shutdown on threaded - platforms. (Zeev) - </li> - <li>Fixed several crash bugs in the xslt extension. (Markus, Derick)</li> - <li> - Fixed problem with dbase not returning very large (larger than long) - integers properly. (Vlad) - </li> - <li>Fixed several bugs and memleaks in the domxml extension. (Markus)</li> - <li> - Fixed bug in gmmktime() which was one hour off during standard time - - bug #9878. Patch by bfoddy@mediaone.net. (jmoore) - </li> - <li>Fixed bug in gmdate() timezone handling on Windows - bug #13885. (jmoore)</li> - <li>Fixed several crash bugs in the mcrypt extension. (Derick)</li> - <li> - Made the mcrypt extension compile with the libmcrypt 2.2 series again. - (Sterling) - </li> - <li> - Fixed a bug where the is_file() family of functions would in-correctly give - an error when they were given filenames that didn't exist. (Sterling) - </li> - <li> - Fixed a bug in the strtotime() function where it was incorrectly recognizing - GMT +0100 and GMT -0100. (Derick) - </li> -</ul> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.1.1'); diff --git a/releases/4_2_0.php b/releases/4_2_0.php index 81a94d2ea8..0a77048210 100644 --- a/releases/4_2_0.php +++ b/releases/4_2_0.php @@ -1,83 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_2_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.2.0 Release Announcement"); -?> - -<h1>PHP 4.2.0 Release Announcement</h1> - -<p> - After an orderly QA process, PHP 4.2.0 is <a href="/downloads.php">out</a>!<br> - [ <a href="/releases/4_2_0_fr.php">Version Française</a> ] -</p> - -<h2>External variables</h2> - -<p> - The biggest change in PHP 4.2.0 concerns variable handling. <strong>External - variables (from the environment, the HTTP request, cookies or the web server) - are no longer registered in the global scope by default.</strong> The preferred - method of accessing these external variables is by using the new Superglobal - arrays, introduced in PHP 4.1.0. More information about this change:</p> - -<ul> - <li><a href="/variables.predefined">PHP Manual: Predefined variables</a></li> - <li><a href="/releases/4_1_0.php">The PHP 4.1.0 release announcement</a></li> - <li><a href="http://www.zend.com/zend/art/art-oertli.php">Thomas Oertli's article on secure programming in PHP</a></li> -</ul> - -<h2>Compatibility</h2> - -<p> - The Apache Software Foundation recently released their first - General Availability version of Apache 2. PHP 4.2.0 will have - <strong>EXPERIMENTAL</strong> support for this version. You can - build a DSO module for Apache 2 with --with-apxs2. We do - <strong>not</strong> recommend that you use this in a production - environment. -</p> -<p> - PHP 4.2.0 still lacks certain key features on Mac OS X and - Darwin, and isn't officially supported by the PHP Group on - these platforms. Specifically, building PHP as a dynamically - loaded Apache module isn't supported at this time. PHP 4.3.0, - due to be released in August, 2002, will be the first PHP - release to officially support Mac OS X. It, along with future - Mac OS X and Apache releases, will enable full feature parity - with other PHP platforms. <strong>Update:</strong> - <a href="http://www.entropy.ch/software/macosx/php/">Instructions on - overcoming these limitations</a> -</p> - -<h2>Improvements</h2> - -<p>PHP 4.2.0 includes several improvements:</p> - -<ul> - <li> - <strong>External variables (from the environment, the HTTP request, cookies or - the web server) are no longer registered as global variables</strong> - </li> - <li>Overhaul of the sockets extension</li> - <li>Highly improved performance with file uploads</li> - <li> - The satellite and mailparse extensions were moved to PECL and are no longer - bundled with the official PHP release - </li> - <li>The posix extension has been cleaned up</li> - <li>iconv handling has been improved</li> - <li> - Output buffering support, which was introduced in PHP 4.1.0 has - been stabilized - </li> - <li>Improved performance and stability of the domxml extension</li> - <li>New multibyte regular expression support</li> - <li><strong>LOTS</strong> of fixes and new functions</li> -</ul> - -<p> - For a full list of changes in PHP 4.2.0, - <a href="/ChangeLog-4.php#4.2.0">see the ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.2.0'); diff --git a/releases/4_2_0_fr.php b/releases/4_2_0_fr.php index 80fb718f14..0a77048210 100644 --- a/releases/4_2_0_fr.php +++ b/releases/4_2_0_fr.php @@ -1,91 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_2_0_fr.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.2.0", ["lang" => "fr"]); -?> - -<h1>Annonce de publication de PHP 4.2.0</h1> - -<p>[ <a href="/releases/4_2_1.php">English Version</a> ]</p> - -<p> - Après avoir passé avec succès le processus - qualité, PHP 4.2.0 est officiellement <a href="/downloads.php">publié</a>! -</p> - -<h2>Variables externes</h2> - -<p> - Le changement le plus important de PHP 4.2.0 concerne la gestion des - variables. Les <strong>variables externes (issues de l'environnement d'exécution, - des requêtes HTTP, des cookies ou du serveur web) ne sont plus enregistrées - dans l'environnement d'exécution global par défaut.</strong> - La méthode recommandée pour accéder aux variables - externes est d'utiliser les nouveaux tableaux globaux, introduits en - PHP 4.1.0. Pour plus d'informations sur ces modifications: -</p> -<ul> - <li><a href="/variables.predefined">PHP Manual : Predefined variables</a></li> - <li><a href="/releases/4_1_0.php">Annonce de PHP 4.1.0</a></li> - <li><a href="http://www.zend.com/zend/art/art-oertli.php">Article de Thomas Oertli sur la programmation sécurisée en PHP</a></li> -</ul> - -<h2>Compatibilité</h2> - -<p> - L'ASF (Apache Software Foundation) a récemment publié sa première - version publique d'Apache 2. PHP 4.2.0 dispose du support - <strong>EXPERIMENTAL</strong> d'Apache 2. Vous pouvez compiler un module - DSO pour Apache 2 avec l'option --with-apxs2. Nous recommandons - de <strong>ne pas</strong> utiliser cette combinaison en environnement de - production. -</p> -<p> - Il manque encore à PHP 4.2.0 des fonctionnalités clés - sur MacOSX et sur Darwin. PHP n'est donc pas officiellement - supporté par le PHP group sur ces plates-formes. Spécifiquement, - compiler PHP comme module Apache dynamiquement chargé n'est pas - encore supporté. PHP 4.3.0, dont la publication est prévue pour - Août 2002, sera la première version qui supportera officiellement - Mac OS X. Cette version, aussi bien pour les futures versions de - Mac OS X et Apache, sera totalement synchronisé avec les autres - plates-formes PHP. -</p> - -<h2>Améliorations</h2> - -<p>PHP 4.2.0 inclut de nombreuses innovations:</p> -<ul> - <li> - <strong>Les variables externes (issues de l'environnement - d'exécution, des requêtes HTTP, des cookies ou du serveur web) - ne sont plus enregistrées dans l'environnement d'exécution - global par défaut. - </strong> - </li> - <li>Remise en état générale de l'extension socket</li> - <li>Performances révolutionnaires des uploads de fichiers</li> - <li> - Les extensions satellite (corba) et mailparse ont été placées sous PECL, - et ne sont plus fournies directement avec la distribution officielle de PHP. - </li> - <li>L'extension POSIX a été nettoyée</li> - <li>L'extension iconv a été améliorée</li> - <li> - Le support de la bufferisation d'affichage, introduite en PHP 4.1.0, - a été stabilisée. - </li> - <li> - Gain de performance notable et amélioration de la - stabilité de l'extension domxml - </li> - <li>Support des expressions régulières multi-octets</li> - <li><strong>ENORMMENT</strong> de corrections, et de nouvelles fonctions.</li> -</ul> - -<p> - Pour une liste complète de changements en PHP 4.2.0, voyez le fichier - <a href="/ChangeLog-4.php#4.2.0">NEWS</a>, dans la distribution. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.2.0'); diff --git a/releases/4_2_1.php b/releases/4_2_1.php index 2d9ab46a9f..fce7ea7ea3 100644 --- a/releases/4_2_1.php +++ b/releases/4_2_1.php @@ -1,65 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_2_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.2.1 Release Announcement"); -?> - -<h1>PHP 4.2.1 Release Announcement</h1> - -<p>[ <a href="/releases/4_2_1_fr.php">Version Française</a> ]</p> - -<h2>Bugfix release</h2> - -<p> - This bug fix release solves a few bugs found in PHP 4.2.0. - PHP 4.2.1 includes the following fixes: -</p> - -<ul> - <li>Fix for the MySQL extension not be able to connect to a MySQL server.</li> - <li>Fix for a crash in the COM extension when using an outproc server.</li> - <li>Fix for SID logic in the session extension.</li> - <li> - Fixes for the mbstring extension, including SJIS directory - name handling and mb_output_buffer(). - </li> - <li> - Fix for a bug in socket_select() that could cause unexpected behavior when - using a statement like $w = $e = array($sock); - </li> - <li>Almost full DOM compliance for the domxml extension, and fixes for several functions.</li> - <li>Safe_mode checks for show_source(), parse_ini_file() and rmdir().</li> -</ul> - -<p> - For a full list of changes in PHP 4.2.1, see the - <a href="/ChangeLog-4.php#4.2.1">ChangeLog</a>. -</p> - -<h2>Compatibility</h2> - -<p> - PHP 4.2.1 also has improved (but still experimental) support for Apache version 2. - We do <strong>not</strong> recommend that you use this in a production environment, - but feel free to test it and report bugs to the <a href="https://bugs.php.net">bug - system</a>. -</p> - -<h2>External variables</h2> - -<p> - We would also like to attend you on a big change in PHP 4.2.0 concerning - variable handling. <strong>External variables (from the environment, the HTTP - request, cookies or the web server) are no longer registered in the global - scope by default.</strong> The preferred method of accessing these external - variables is by using the new Superglobal arrays, introduced in PHP 4.1.0. - More information about this change: -</p> - -<ul> - <li><a href="/manual/en/language.variables.predefined.php">PHP Manual: Predefined variables</a></li> - <li><a href="/release_4_1_0.php">The PHP 4.1.0 release announcement</a></li> - <li><a href="http://www.zend.com/zend/art/art-oertli.php">Thomas Oertli's article on secure programming in PHP</a></li> -</ul> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.2.1'); diff --git a/releases/4_2_1_fr.php b/releases/4_2_1_fr.php index 0ab53a1520..fce7ea7ea3 100644 --- a/releases/4_2_1_fr.php +++ b/releases/4_2_1_fr.php @@ -1,77 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_2_1_fr.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.2.1", ["lang" => "fr"]); -?> - -<h1>Annonce de publication de PHP 4.2.1</h1> - -<p>[ <a href="/releases/4_2_1.php">English Version</a> ]</p> - -<h2>Version mineure de correction de bugs</h2> - -<p> - Cette version intermédiaire corrige quelques bugs - trouvés dans PHP 4.2.0. PHP 4.2.1 inclut les - améliorations suivantes: -</p> - -<ul> - <li> - Correction de l'extension MySQL qui n'arrivait pas - à se connecter au serveur MySQL. - </li> - <li> - Correction de l'extension COM qui crashait lors de - l'utilisation d'un serveur outproc. - </li> - <li>Correction du fonctionnement du SID des sessions.</li> - <li> - Correction de l'extension mbstring, incluant le support des noms - de dossiers SJIS et mb_output_buffer(). - </li> - <li> - Correction d'un bug dans socket_select() qui cause un - comportement inattendu lors de commandes comme - $w = $e = array($sock); - </li> - <li> - Compatibilité presque totale avec l'extension domxml, et - corrections de nombreuses fonctions. - </li> - <li>Le safe mode protège show_source(), parse_ini_file() et rmdir().</li> -</ul> - -<p> - Pour une liste complète des modifications de PHP 4.2.1, voyez le fichier - <a href="/ChangeLog-4.php#4.2.1">ChangeLog</a>. -</p> - -<h2>Compatibilité</h2> - -<p> - PHP 4.2.1 dispose aussi d'une compatibilité améliorée - (mais toujours expérimentale) avec Apache 2. Nous <strong>ne - recommandons pas</strong> son utilisation dans un environnement de - production. Testez-le intensivement, et rapportez tous les bugs dans le - <a href="https://bugs.php.net">système</a>. -</p> - -<h2>Variables externes</h2> - -<p> - Nous attirons votre attention sur l'évolution majeure de PHP 4.2.0 concernant - l'utilisation des variables. <strong>Les variables externes (celles d'environnement - ou du serveur web, les requêtes HTTP, les cookies) ne sont plus enregistrées - par défaut comme variables globales</strong>. La méthode - recommandée pour accéder à ces variables est d'utiliser les - super globales, introduits en PHP 4.1.0. Plus d'informations sur ces modifications: -</p> - -<ul> - <li><a href="/manual/fr/language.variables.predefined.php">PHP Manuel : Variables prédéfinies</a></li> - <li><a href="/release_4_1_0_fr.php">L'annonce de publication de PHP 4.1.0</a></li> - <li><a href="http://www.zend.com/zend/art/art-oertli.php">L'article de Thomas Oertli sur la programmation sécurisée</a></li> -</ul> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.2.1'); diff --git a/releases/4_2_2.php b/releases/4_2_2.php index 7f9b248bd6..87ebd4954b 100644 --- a/releases/4_2_2.php +++ b/releases/4_2_2.php @@ -1,100 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_2_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.2.2 Release Announcement"); -?> - -<h1> - PHP Security Advisory: Vulnerability in PHP versions 4.2.0 and 4.2.1 -</h1> - -<p>[ <a href="/releases/4_2_2_fr.php">Version Française</a> ]</p> - -<dl> - <dt>Issued on:</dt> - <dd>July 22, 2002</dd> - <dt>Software:</dt> - <dd>PHP versions 4.2.0 and 4.2.1</dd> - <dt>Platforms:</dt> - <dd>All</dd> -</dl> - -<p> - The PHP Group has learned of a serious security vulnerability in PHP - versions 4.2.0 and 4.2.1. An intruder may be able to execute arbitrary - code with the privileges of the web server. This vulnerability may be - exploited to compromise the web server and, under certain conditions, - to gain privileged access. -</p> - -<h2>Description</h2> - -<p> - PHP contains code for intelligently parsing the headers of HTTP POST - requests. The code is used to differentiate between variables and files - sent by the user agent in a "multipart/form-data" request. This parser - has insufficient input checking, leading to the vulnerability. -</p> - -<p> - The vulnerability is exploitable by anyone who can send HTTP POST - requests to an affected web server. Both local and remote users, even - from behind firewalls, may be able to gain privileged access. -</p> - -<h2>Impact</h2> - -<p> - Both local and remote users may exploit this vulnerability to compromise - the web server and, under certain conditions, to gain privileged access. - So far only the IA32 platform has been verified to be safe from the - execution of arbitrary code. The vulnerability can still be used on IA32 - to crash PHP and, in most cases, the web server. -</p> - -<h2>Solution</h2> - -<p> - The PHP Group has released a new PHP version, 4.2.2, which incorporates - a fix for the vulnerability. All users of affected PHP versions are - encouraged to upgrade to this latest version. <a href="/downloads.php">The - downloads page</a> has the new 4.2.2 source tarballs, Windows binaries - and source patches from 4.2.0 and 4.2.1 available for download. -</p> - -<h2>Workaround</h2> - -<p> - If the PHP applications on an affected web server do not rely on HTTP - POST input from user agents, it is often possible to deny POST requests - on the web server. -</p> - -<p> - In the Apache web server, for example, this is possible with the - following code included in the main configuration file or a top-level - .htaccess file: -</p> - -<pre> -<Limit POST> - Order deny,allow - Deny from all -</Limit> -</pre> - -<p> - Note that an existing configuration and/or .htaccess file may have - parameters contradicting the example given above. -</p> - -<h2>Credits</h2> - -<p> - The PHP Group would like to thank Stefan Esser of e-matters GmbH for - discovering this vulnerability. e-matters GmbH has also released an - <a href="http://security.e-matters.de/advisories/022002.html">independent - advisory</a>, describing the vulnerability in more detail. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.2.2'); diff --git a/releases/4_2_2_fr.php b/releases/4_2_2_fr.php index a9125184d5..87ebd4954b 100644 --- a/releases/4_2_2_fr.php +++ b/releases/4_2_2_fr.php @@ -1,104 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_2_2_fr.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.2.2", ["lang" => "fr"]); -?> - -<h1> -Alerte de sécurité PHP : Vulnérabilité dans -les versions 4.2.0 et 4.2.1 de PHP -</h1> - -<p>[ <a href="/releases/4_2_2.php">English Version</a> ]</p> - -<dl> - <dt>Date:</dt> - <dd>22 Juillet 2002</dd> - <dt>Logiciel:</dt> - <dd>PHP versions 4.2.0 et 4.2.1</dd> - <dt>Plates-formes:</dt> - <dd>Toutes</dd> -</dl> - -<p> - Le PHP Group a pris connaissance d'un trou de sécurité sérieux en PHP - version 4.2.0 et 4.2.1. Un intrus pourrait exécuter un code arbitraire sur - le serveur, avec les mêmes privilèges que celui qui exécute le serveur web. - Cette vulnérabilité peut être exploitée pour compromettre le serveur web, - et dans certaines circonstances, obtenir des droits spéciaux. -</p> - -<h2>Description</h2> - -<p> - PHP contient du code qui analyse finement les entêtes des requêtes - HTTP POST. Le code est utilisé pour différencier les variables des - fichiers qui sont envoyés par le navigateur, avec l'encodage - "multipart/form-data". Cet analyseur ne vérifie pas suffisamment - les données d'entrée, ce qui conduit à une - vulnérabilité. -</p> - -<p> - La vulnérabilité est exploitable par quiconque peut envoyer des requêtes - HTTP POST à un serveur web utilisant PHP versions 4.2.0 et 4.2.1. Des - utilisateurs, locaux ou distants, même derrière un pare-feu, pourraient - obtenir des autorisations indues sur la machine. -</p> - -<h2>Impact</h2> - -<p> - Les utilisateurs, tant locaux que distants, peuvent exploiter cette - vulnérabilité pour compromettre le serveur web, et, dans certaines circonstances, - obtenir des autorisations indues. Jusqu'à présent, seule la plate-forme - IA32 a pu passer les tests de sécurité. Cette vulnérabilité peut être utilisée - sous IA32 pour crasher PHP et, dans la plupart des cas, le serveur web. -</p> - -<h2>Solution</h2> - -<p> - Le PHP Group a publié une nouvelle version PHP version, 4.2.2, qui inclus - une correction pour cette vulnérabilité. Tous les utilisateurs des versions de PHP - affectées sont encouragés à passer à cette nouvelle version. L'URL de - téléchargement est : - <a href="http://www.php.net/downloads.php">http://www.php.net/downloads.php</a> - sous forme de sources (tarballs), exécutable Windows et source patches - pour les versions 4.2.0 et 4.2.1. -</p> - -<h2>Autre solution</h2> - -<p> - Si les applications PHP n'utilisent pas la méthode POST sur un serveur - affecté, il est possible de simplement interdire les requêtes POST sur le - serveur. -</p> - -<p> - Sous Apache, par exemple, il est possible d'utiliser le code suivant - dans le fichier de configuration principal, ou avec un fichier .htaccess - placé suffisamment près de la racine : -</p> - -<pre> -<Limit POST> - Order deny,allow - Deny from all -</Limit> -</pre> - -<p> - Notez qu'une autre configuration ou/et un autre fichier .htaccess avec - certains paramètres, peuvent annuler l'effet de l'exemple ci-dessus. -</p> - -<h2>Crédits</h2> - -<p> - Le PHP Group remercie Stefan Esser de e-matters GmbH pour la découverte - de cette vulnérabilité. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.2.2'); diff --git a/releases/4_3_0.php b/releases/4_3_0.php index d8897bb9ac..0a495b6d30 100644 --- a/releases/4_3_0.php +++ b/releases/4_3_0.php @@ -1,100 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.0 Release Announcement"); -?> - -<h1>PHP 4.3.0 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_0_fr.php">Version Française</a> ]</p> - -<p> - After a long and arduous 8 months of development and testing, PHP 4.3.0 is - <a href="/downloads.php">out</a>! With regard to scope, time, and effort, this - is the largest 4.x release of PHP, and it further elevates PHP's standing as a - serious contender in the general purpose scripting language arena. -</p> - -<h2>Command line interface</h2> - -<p> - This version finalizes the separate command line interface (CLI) that can be - used for developing shell and desktop applications (with - <a href="https://gtk.php.net/">PHP-GTK</a>). The CLI is always built, but - installed automatically only if CGI version is disabled via --disable-cgi - switch during configuration. Alternatively, one can use <strong>make - install-cli</strong> target. On Windows CLI can be found in - <strong>cli</strong> folder. -</p> - -<p> - CLI has a number of differences compared to other server APIs. More information - can be found in the PHP Manual: - <a href="/features.commandline">Using PHP from the command line</a> -</p> - -<h2>Streams</h2> - -<p> - A very important "under the hood" feature is the streams API. It introduces a - unified approach to the handling of files, pipes, sockets, and other I/O - resources in the PHP core and extensions. -</p> -<p> - What this means for users is that any I/O function that works with streams - (and that is almost all of them) can access built-in protocols, such as - HTTP/HTTPS and FTP/FTPS, as well as custom protocols registered from PHP - scripts. For more information please see: <a href="/wrappers">List - of Supported Protocols/Wrappers</a> -</p> - -<h2>New build system</h2> - -<p> - This iteration of the build system, among other things, replaces the slow - recursive make with one global Makefile and eases the integration of proper - dependencies. Automake is only needed for its aclocal tool. The build process is - now more portable and less resource-consuming. -</p> - -<h2>Improvements</h2> - -<p>PHP 4.3.0 has many improvements and enhancements:</p> - -<ul> - <li> - <strong> - GD library is now bundled with the distribution and it is recommended - to always use the bundled version - </strong> - </li> - <li>vpopmail and cybermut extensions are moved to PECL</li> - <li> - several deprecated extensions (aspell, ccvs, cybercash, icap) - and SAPIs (fastcgi, fhttpd) are removed - </li> - <li>speed improvements in a variety of string functions</li> - <li> - Apache2 filter is improved, but is still considered experimental - (use with PHP in prefork and not worker (thread) model since many - extensions based on external libraries are not thread safe) - </li> - <li>various security fixes (imap, mysql, mcrypt, file upload, gd, etc)</li> - <li>new SAPI for embedding PHP in other applications (experimental)</li> - <li>much better test suite</li> - <li>significant improvements in dba, gd, pcntl, sybase, and xslt extensions</li> - <li>debug_backtrace() should help with debugging</li> - <li> - error messages now contain URLs linking to pages describing the error or - function in question - </li> - <li>Zend Engine has some fixes and minor performance enhancements</li> - <li>and <strong>TONS</strong> of other fixes, updates, new functions, etc</li> -</ul> - -<p> - For the full list of changes in PHP 4.3.0, see the - <a href="/ChangeLog-4.php#4.3.0">ChangeLog</a> file. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.0'); diff --git a/releases/4_3_0_fr.php b/releases/4_3_0_fr.php index 8761d1e45f..0a495b6d30 100644 --- a/releases/4_3_0_fr.php +++ b/releases/4_3_0_fr.php @@ -1,131 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_0_fr.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.0", ["lang" => "fr"]); -?> - -<h1>Annonce de publication de PHP 4.3.0</h1> - -<p>[ <a href="/releases/4_3_0.php">English version</a> ]</p> - -<p> - Après un long et difficile 8 mois de développement et de - test, PHP 4.3.0 est <a href="/downloads.php">publié</a>! Au vue - des évolutions, du temps consacré et des efforts - consentis, cette version est la plus importante version de la - série des PHP 4.x. Elle contribue largement a améliorer - les capacités de PHP en tant que langage - généraliste de scripts. -</p> - -<h2>Utilisation en ligne de commande</h2> - -<p> - PHP 4.3.0 achève la séparation du mode d'utilisation en - ligne de commande (dit CLI) qui permet de développer des - applications shell ou graphiques (avec <a href="https://gtk.php.net/">PHP-GTK</a>). - La version CLI de PHP est toujours compilées, mais elle n'est - installée que si la version CGI est désactivée - avec l'option --disable-cgi. De plus, vous pouvez utilisez la commande - <strong>make install-cli</strong>. Sous Windows, la version CLI est - disponible dans le dossier <strong>cli</strong>. -</p> - -<p> - CLI dispose de fonctionnalités différentes, par rappot - à la version interfacée avec les serveurs web. Pour - plus de détails, reportez vous à - <a href="/features.commandline">Utiliser PHP en ligne de commande</a> -</p> - -<h2>Flôts (Streams)</h2> - -<p> - Une nouveauté très importante, mais cachée a été - introduite : les flôts. Les flôts unifient la gestion des pipes, - fichiers, sockets et autres ressources d'entrées/sorties du coeur de - PHP et de ses extensions. -</p> -<p> - Cela signifie, pour les utilisateurs, est que les fonctions d'entrées/sorties - fonctionnent désormais avec les flôts (c'est à dire presque - toutes), peuvent utiliser des protocoles internes tels que HTTP/HTTPS et FTP/FTPS, - ainsi que des protocoles personnalisés, enregistrés comme tels depuis - les scripts PHP. Pour plus d'informations, voyez: - <a href="/wrappers">Liste des protocoles supportés</a> -</p> - -<h2>Nouveaus système de compilation</h2> - -<p> - Cette version du système de compilation de PHP, entre autre choses, remplace - la version récursive lente par un Makefile global, et facilite - l'intégration des librairies connexes. Automake est uniquement - nécessaire pour l'utilitaire aclocal. Le processus de compilation est rendu - plus portable, et moins consommateur de ressources. -</p> - -<h2>Améliorations</h2> - -<p>PHP 4.3.0 propose de nombreuses améliorations et évolutions :</p> - -<ul> - <li> - <strong> - La librairie GD est désormais distribué avec PHP, et il est - recommandé d'utiliser cette version - </strong> - </li> - <li> - Les extensions vpopmail et cybermut ont été - déplacées vers PECL - </li> - <li> - Plusieurs extensions obsolètes ont été - supprimées (aspell, ccvs, cybercash, icap) et (fastcgi, - fhttpd) - </li> - <li> - Accélération des fonctions de traitement des - channes de caractères - </li> - <li> - Amélioration des filtres Apache2 mais le support d'Apache 2 est - toujours considéré comme expérimental (utilisez PHP - avec le mode prefork et non le mode worker (thread), car de nombreuses - extensions basées sur des librairies externes ne sont pas encore - compatibles avec les threads) - </li> - <li> - Plusieurs corrections de sécurité (imap, mysql, mcrypt, - téléchargement de fichiers, gd, etc...) - </li> - <li> - Nouvelle interface SAPI pour inclure PHP dans d'autres applications - (expérimental) - </li> - <li>suite de test nettement améliorée et complétée</li> - <li>améliorations du support de dba, gd, pcntl, sybase et xslt</li> - <li>debug_backtrace() aide nettement pour le débogage</li> - <li> - les messages d'erreur contiennent des URL faisant référence aux - pages du manuel décrivant ces erreurs, ou bien aux fonctions - utilisées - </li> - <li> - Le Zend Engine a regu des corrections et des améliorations de - performances mineures - </li> - <li> - et des <strong>tonnes</strong> de corrections, améliorations et - nouvelles fonctions, dors et déjà documentées et - traduites, etc... - </li> -</ul> - -<p> - Pour la liste complète des modifications de PHP 4.3.0, voyez le fichier - d'<a href="/ChangeLog-4.php#4.3.0">historique</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.0'); diff --git a/releases/4_3_1.php b/releases/4_3_1.php index 9ae866e95a..cf7926f2ed 100644 --- a/releases/4_3_1.php +++ b/releases/4_3_1.php @@ -1,76 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.1 Release Announcement"); -?> - -<h1> -PHP Security Advisory: CGI vulnerability in PHP version 4.3.0 -</h1> - -<dl> - <dt>Issued on:</dt> - <dd>February 17, 2003</dd> - <dt>Software:</dt> - <dd>PHP version 4.3.0</dd> - <dt>Platforms:</dt> - <dd>All</dd> -</dl> - -<p> - The PHP Group has learned of a serious security vulnerability in - the CGI SAPI of PHP version 4.3.0. -</p> - -<h2>Description</h2> - -<p> - PHP contains code for preventing direct access to the CGI binary with - configure option "--enable-force-cgi-redirect" and php.ini option - "cgi.force_redirect". In PHP 4.3.0 there is a bug which renders these - options useless. -</p> - -<p> - NOTE: This bug does NOT affect any of the other SAPI modules. - (such as the Apache or ISAPI modules, etc.) -</p> - -<h2>Impact</h2> - -<p> - Anyone with access to websites hosted on a web server which employs - the CGI module may exploit this vulnerability to gain access to any file - readable by the user under which the webserver runs. -</p> - -<p> - A remote attacker could also trick PHP into executing arbitrary PHP code - if attacker is able to inject the code into files accessible by the CGI. - This could be for example the web server access-logs. -</p> - -<h2>Solution</h2> - -<p> - The PHP Group has released a new PHP version, 4.3.1, which incorporates - a fix for the vulnerability. All users of affected PHP versions are - encouraged to upgrade to this latest version. <a href="/downloads.php">The - downloads page</a> has the new 4.3.1 source tarballs, Windows binaries - and source patch from 4.3.0 available for download. You will only need - to upgrade if you're using the CGI module of PHP 4.3.0. There are no - other bugfixes contained in this release. -</p> - -<h2>Workarounds</h2> - -<p>None.</p> - -<h2>Credits</h2> - -<p> - The PHP Group would like to thank Kosmas Skiadopoulos for discovering - this vulnerability. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.1'); diff --git a/releases/4_3_10.php b/releases/4_3_10.php index 9aff2fb70d..d0dca16e9b 100644 --- a/releases/4_3_10.php +++ b/releases/4_3_10.php @@ -1,55 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.10 Release Announcement"); -?> - -<h1>PHP 4.3.10 Release Announcement</h1> -<p>[ <a href="/releases/4_3_10_fr.php">Version Française</a> ]</p> -<p> -PHP Development Team would like to announce the immediate release of <a href="/downloads.php">PHP 4.3.10</a>. This is a -maintenance release that in addition to over 30 non-critical bug fixes addresses several very -serious security issues. -</p> -<p> -These include the following: -</p> -<p> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1018">CAN-2004-1018</a> - shmop_write() out of bounds memory write access.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1018">CAN-2004-1018</a> - integer overflow/underflow in pack() and unpack() functions.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1019">CAN-2004-1019</a> - possible information disclosure, double free and negative reference index array underflow in deserialization code.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1020">CAN-2004-1020</a> - addslashes() not escaping \0 correctly.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1063">CAN-2004-1063</a> - safe_mode execution directory bypass.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1064">CAN-2004-1064</a> - arbitrary file access through path truncation.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1065">CAN-2004-1065</a> - exif_read_data() overflow on long sectionname.<br> -magic_quotes_gpc could lead to one level directory traversal with file uploads. -</p> -<p>All Users of PHP are strongly encouraged to upgrade to this release as soon as possible.</p> - -<h2>Bugfix release</h2> - -<p> - Aside from the above mentioned issues this release includes the following important fixes: -</p> - -<ul> -<li> Possible crash inside ftp_get().</li> -<li> get_current_user() crashes on Windows.</li> -<li> Possible crash in ctype_digit() on large numbers.</li> -<li> Crash when parsing <i>?getvariable[][</i>.</li> -<li> Possible crash in the curl_getinfo() function.</li> -<li> Double free when openssl_csr_new fails.</li> -<li> Crash when using unknown/unsupported session.save_handler and/or session.serialize_handler.</li> -<li> Prevent infinite recursion in url redirection.</li> -<li> Ensure that temporary files created by GD are removed.</li> -<li> Crash in fgetcsv() with negative length.</li> -<li> Improved performance of the foreach() construct.</li> -<li> Improved number handling on non-English locales.</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.10, see the - <a href="/ChangeLog-4.php#4.3.10">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.10'); diff --git a/releases/4_3_10_fr.php b/releases/4_3_10_fr.php index 9dc6e5813c..d0dca16e9b 100644 --- a/releases/4_3_10_fr.php +++ b/releases/4_3_10_fr.php @@ -1,56 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.10 Release Announcement"); -?> - -<h1>Annonce de publication de PHP 4.3.10</h1> -<p>[ <a href="/releases/4_3_10.php">English Version</a> ]</p> -<p> -L'équipe de développement PHP a le plaisir de vous annoncer -la publication de <a href="/downloads.php">PHP 4.3.10</a>. C'est une version -de maintenance, destinée à corriger une trentaine de bogues -non-critiques et ainsi que plusieurs problèmes de sécurité sérieux. -</p> -<p> -Cela inclut notamment: -</p> -<p> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1018">CAN-2004-1018</a> - shmop_write() écrit hors des limites de la mémoire.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1018">CAN-2004-1018</a> - dépassement de capacité avec pack() et unpack().<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1019">CAN-2004-1019</a> - publication possible d'informations, dépassement de capacité dans les index négatif lors de délinéarisation de données.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1020">CAN-2004-1020</a> - addslashes() ne protège pas correctement \0.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1063">CAN-2004-1063</a> - contournement de la directive de dossier d'exécution.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1064">CAN-2004-1064</a> - accès arbitraire à un fichier via une troncature.<br> -<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1065">CAN-2004-1065</a> - dépassement de capacité avec exif_read_data() sur un long nom de section.<br> -magic_quotes_gpc peut mener à la lecture d'un dossier via le téléchargement de fichiers. -</p> -<p>Tous les utilisateurs sont encouragés à utiliser cette version.</p> - -<h2>Version de correction de bogues</h2> - -<p> -En plus des fonctionnalités ci-dessus, PHP 4.3.9 contient notamment les corrections, ajouts et améliorations suivantes : -</p> - -<ul> -<li> Crash possible dans ftp_get().</li> -<li> get_current_user() crashe sur Windows.</li> -<li> Crash possible avec ctype_digit() pour les grands nombres.</li> -<li> Crash lors de l'analyse de <i>?getvariable[][</i>.</li> -<li> Crash possible avec curl_getinfo().</li> -<li> Double désallocation lorsque openssl_csr_new() échoue.</li> -<li> Crash lors de l'utilisation d'un session.save_handler et/ou session.serialize_handler non supporté.</li> -<li> Evite les récursions infinies lors des redirections URL.</li> -<li> S'assure que les fichiers temporaires de GD sont bien supprimés.</li> -<li> Crash avec fgetcsv() et une taille négative.</li> -<li> Performances améliorés pour foreach().</li> -<li> Amélioration du support des configurations locales non-anglaises.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.10, voyez - <a href="/ChangeLog-4.php#4.3.10">le ChangeLog</a>, en anglais. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.10'); diff --git a/releases/4_3_11.php b/releases/4_3_11.php index 808755625e..623ab2a8da 100644 --- a/releases/4_3_11.php +++ b/releases/4_3_11.php @@ -1,39 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.11 Release Announcement"); -?> - -<h1>PHP 4.3.11 Release Announcement</h1> -<p>[ <a href="/releases/4_3_11_fr.php">Version Française</a> ]</p> -<p> -PHP Development Team is would like to announce the immediate release of <a href="/downloads.php">PHP 4.3.11</a>. -This is a maintenance release that in addition to over 70 non-critical bug fixes addresses several -security issues inside the exif and fbsql extensions as well as the unserialize(), -swf_definepoly() and getimagesize() functions. -</p> - -<p>All Users of PHP are strongly encouraged to upgrade to this release.</p> - -<h2>Bugfix release</h2> - -<ul> -<li> Crash in bzopen() if supplied path to non-existent file.</li> -<li> DOM crashing when attribute appended to Document.</li> -<li> unserialize() float problem on non-English locales.</li> -<li> Crash in msg_send() when non-string is stored without being serialized.</li> -<li> Possible infinite loop in imap_mail_compose().</li> -<li> Fixed crash in chunk_split(), when chunklen > strlen.</li> -<li> session_set_save_handler crashes PHP when supplied non-existent object ref.</li> -<li> Memory leak in zend_language_scanner.c.</li> -<li> Compile failures of zend_strtod.c.</li> -<li> Fixed crash in overloaded objects & overload() function.</li> -<li> cURL functions bypass open_basedir.</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.11, see the - <a href="/ChangeLog-4.php#4.3.11">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.11'); diff --git a/releases/4_3_11_fr.php b/releases/4_3_11_fr.php index 715218c619..623ab2a8da 100644 --- a/releases/4_3_11_fr.php +++ b/releases/4_3_11_fr.php @@ -1,36 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de PHP 4.3.11"); -?> - -<h1>Annonce de publication de PHP 4.3.11</h1> -<p>[ <a href="/releases/4_3_11.php">English Version</a> ]</p> -<p> -L'équipe de développement PHP a le plaisir de vous annoncer la publication de <a href="/downloads.php">PHP 4.3.11</a>. C'est une version de maintenance, destinée à corriger environ 70 bogues non-critiques, plusieurs problèmes avec les extensions exif et fbsql ainsi que les fonctions unserialize(), swf_definepoly() et getimagesize(). -</p> -<p> -Tous les utilisateurs sont encouragés à utiliser cette version. -</p> - -<h2>Version de correction de bogues</h2> -<ul> -<li> Crash avec la fonction bzopen() si le chemin fourni conduit à un fichier inexistant.</li> -<li> Crash de DOM lorsqu'un attribut est ajouté à un objet Document.</li> -<li> Problème d'unserialize() avec les nombres décimaux pour les configurations non-anglaises.</li> -<li> Crash avec msg_send() lorsqu'une variable autre qu'une chaîne est envoyée sans linéarisation.</li> -<li> Boucle infinie potentielle dans imap_mail_compose().</li> -<li> Crash dans chunk_split(), lorsque chunklen est supérieur à la taille de la ligne.</li> -<li> session_set_save_handler fait crasher PHP lorsqu'elle reçoit une référence inexistante sur un objet.</li> -<li> Fuite de mémoire dans zend_language_scanner.c.</li> -<li> Problèmes de compilation dans zend_strtod.c.</li> -<li> Crash dans un objet surchargé avec la fonction overload().</li> -<li> Les fonctions cURL outrepassaient open_basedir.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.11, voyez - <a href="/ChangeLog-4.php#4.3.11">le ChangeLog</a>, en anglais. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.11'); diff --git a/releases/4_3_2.php b/releases/4_3_2.php index 48e099c15e..2473496dcc 100644 --- a/releases/4_3_2.php +++ b/releases/4_3_2.php @@ -1,50 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.2 Release Announcement"); -?> - -<h1>PHP 4.3.2 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_2_fr.php">Version Française</a> ]</p> - -<p> - After a lengthy QA process, <a href="/downloads.php">PHP 4.3.2</a> is finally out!<br> - This maintenance release solves a lot of bugs found in earlier PHP versions - and is a <strong>strongly</strong> recommended upgrade for all users of PHP. -</p> - -<h2>Bugfix release</h2> - -<p> - PHP 4.3.2 contains, among others, following important fixes, additions and improvements: -</p> - -<ul> - <li>Fixes several potentially hazardous integer and buffer overflows.</li> - <li>Fixes for several 64-bit problems.</li> - <li> - New Apache 2.0 SAPI module (sapi/apache2handler, - enabled with --with-apxs2). - </li> - <li> - New session_regenerate_id() function. (Important feature - against malicious session planting). - </li> - <li>Improvements to dba extension.</li> - <li>Improvements to thttpd SAPI module.</li> - <li>Dropped support for GDLIB version 1.x.x (php_gd.dll) on Windows.</li> - <li>An unix man page for CLI version of PHP.</li> - <li> - New "disable_classes" php.ini option to allow administrators to - disable certain classes for security reasons. - </li> - <li>..and a <strong>HUGE</strong> amount of other bug fixes!</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.2, see the - <a href="/ChangeLog-4.php#4.3.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.2'); diff --git a/releases/4_3_2_fr.php b/releases/4_3_2_fr.php index bd62af5f7b..2473496dcc 100644 --- a/releases/4_3_2_fr.php +++ b/releases/4_3_2_fr.php @@ -1,55 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_2_fr.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.2", ["lang" => "fr"]); -?> - -<h1>Annonce de publication de PHP 4.3.2</h1> - -<p>[ <a href="/releases/4_3_2.php">English version</a> ]</p> - -<p> - Après une longue étape de tests d'assurance Qualité, - <a href="/downloads.php">PHP 4.3.2</a> est finalement disponible!<br> - Cette version de maintenance résout un grand nombre de bugs trouvés dans - des versions plus anciennes de PHP, et il est <strong>recommandé</strong> - de faire la mise à jour pour tous les utilisateurs PHP. -</p> - -<h2>Version mineure, corrections de bugs</h2> - -<p> - PHP 4.3.2 contient notamment les corrections, ajouts et améliorations suivantes : -</p> - -<ul> - <li> - Correction de plusieurs problèmes dangereux de dépassement de - capacité avec les entiers. - </li> - <li>Correction de plusieurs problèmes liés aux plate-formes 64-bits.</li> - <li> - Nouveau module SAPI Apache 2.0 (sapi/apache2handler, activé - avec l'option --with-apxs2). - </li> - <li> - Nouvelle fonction session_regenerate_id(). (Fonctionnalité - importante pour contrer les usurpations de sessions). - </li> - <li>Améliorations de l'extension dba.</li> - <li>Amélioration du module thttpd SAPI.</li> - <li>Abandon de GDLIB version 1.x.x (php_gd.dll) sous Windows.</li> - <li>Le manuel man sous Unix pour la version CLI de PHP.</li> - <li> - Nouvelle option "disable_classes" pour permettre aux administrateurs - de désactiver certaines classes pour des raisons de - sécurité. - </li> -</ul> - -<p> - Pour une liste complète des modifications de PHP 4.3.2, reportez-vous au fichier - <a href="/ChangeLog-4.php#4.3.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.2'); diff --git a/releases/4_3_3.php b/releases/4_3_3.php index 93c0f20a4d..fc914dfb67 100644 --- a/releases/4_3_3.php +++ b/releases/4_3_3.php @@ -1,47 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.3 Release Announcement"); -?> - -<h1>PHP 4.3.3 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_3_fr.php">Version Française</a> ]</p> - -<p> - After a lengthy QA process, <a href="/downloads.php">PHP 4.3.3</a> is finally out!<br> - This maintenance release solves a fair number of bugs found in prior PHP versions and - addresses several security issues. All users are <strong>strongly</strong> advised to - upgrade to 4.3.3 as soon as possible. -</p> - -<h2>Bugfix release</h2> - -<p> - PHP 4.3.3 contains, among others, following important fixes, additions and improvements: -</p> - -<ul> - <li>Improved the engine to use POSIX/socket IO where feasible.</li> - <li>Fixed several potentially hazardous integer and buffer overflows.</li> - <li>Fixed corruption of multibyte character including 0x5c as second byte in multipart/form-data.</li> - <li>Fixed each() to be binary safe for keys.</li> - <li>Major improvements to the NSAPI SAPI.</li> - <li>Improvements to the IMAP extension.</li> - <li>Improvements to the InterBase extension.</li> - <li>Added DBA handler 'inifile' to support ini files.</li> - <li>Added long options into CLI & CGI (e.g. --version).</li> - <li>Added a new parameter to preg_match*() that can be used to specify the starting offset in the subject string to match from.</li> - <li>Upgraded the bundled Expat library to version 1.95.6</li> - <li>Upgraded the bundled PCRE library to version 4.3</li> - <li>Upgraded the bundled GD library to version GD 2.0.15</li> - - <li>Over 100 various bug fixes!</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.3, see the - <a href="/ChangeLog-4.php#4.3.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.3'); diff --git a/releases/4_3_3_fr.php b/releases/4_3_3_fr.php index 3a48a9a893..fc914dfb67 100644 --- a/releases/4_3_3_fr.php +++ b/releases/4_3_3_fr.php @@ -1,48 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.3"); -?> - -<h1>Annonce de publication de PHP 4.3.3</h1> - -<p>[ <a href="/releases/4_3_3.php">English version</a> ]</p> - -<p> -Après avoir suivi un long processus qualité, <a href="/downloads.php">PHP 4.3.3</a> est disponible!<br> -Cette version de maintenance résout un bon nombre de bugs découverts -dans des versions antérieures de PHP. Elle corrige aussi plusieurs -problèmes de sécurité. Il est <strong>vivement recommandé</strong> à tous les -utilisateurs d'utiliser cette version aussitôt que possible. -</p> - -<h2>Corrections et nouveautés</h2> - -<p> -PHP 4.3.3 contient la liste suivante et non exhaustive de corrections, -améliorations et ajouts : -</p> - -<ul> -<li>Amélioration du moteur pour utiliser les entrées/sorties Posix et socket lorsque c'est possible.</li> -<li>Corrections de plusieurs problèmes de dépassement de capacité avec les entiers et buffers.</li> -<li>Correction des jeux de caractères multi-octets qui incluent le caractère 0x5c en tant que second octet des formulaires multipart/form-data.</li> -<li>each() est désormais compatible avec les clés binaires.</li> -<li>Améliorations importantes de NSAPI SAPI.</li> -<li>Amélioration de l'interface IMAP.</li> -<li>Amélioration de l'interface Interbase.</li> -<li>Ajout d'un gestionnaire DBA 'infile' pour supporter les fichiers .ini.</li> -<li>Ajout des options longues pour les versions CLI & CGI (i.e. --version).</li> -<li>Ajout de nouveaux paramètres à preg_match*() pour indiquer l'offset de départ dans la recherche de la chaîne.</li> -<li>La librairie Expat distribuée passe en version 1.95.6</li> -<li>La librairie PCRE distribuée passe en version 4.3</li> -<li>La librairie GD distribuée passe en version 2.0.15</li> -<li>Plus de 100 corrections de bugs divers.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.3, voyez - <a href="/ChangeLog-4.php#4.3.3">le changelog</a>, en anglais. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.3'); diff --git a/releases/4_3_4.php b/releases/4_3_4.php index 1e0ab94e1a..12fedbc1c8 100644 --- a/releases/4_3_4.php +++ b/releases/4_3_4.php @@ -1,39 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.4 Release Announcement"); -?> - -<h1>PHP 4.3.4 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_4_fr.php">Version Française</a> ]</p> - -<p> - After a lengthy QA process, <a href="/downloads.php">PHP 4.3.4</a> is finally out!<br> - This is a medium size maintenance release, with a fair number of bug fixes. All users - are encouraged to upgrade to 4.3.4. -</p> - -<h2>Bugfix release</h2> - -<p> - PHP 4.3.4 contains, among others, following important fixes, additions and improvements: -</p> - -<ul> - <li>Fixed disk_total_space() and disk_free_space() under FreeBSD.</li> - <li>Fixed FastCGI support on Win32.</li> - <li>Fixed FastCGI being unable to bind to a specific IP.</li> - <li>Fixed several bugs in mail() implementation on win32.</li> - <li>Fixed crashes in a number of functions.</li> - <li>Fixed compile failure on MacOSX 10.3 Panther.</li> - - <li>Over 60 various bug fixes!</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.4, see the - <a href="/ChangeLog-4.php#4.3.4">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.4'); diff --git a/releases/4_3_4_fr.php b/releases/4_3_4_fr.php index 4f36924454..12fedbc1c8 100644 --- a/releases/4_3_4_fr.php +++ b/releases/4_3_4_fr.php @@ -1,41 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.4", ["lang" => "fr"]); -?> - -<h1>Annonce de publication de PHP 4.3.4</h1> - -<p>[ <a href="/releases/4_3_4.php">English version</a> ]</p> - -<p> - Après un long processus d'assurance qualité, - <a href="/downloads.php">PHP 4.3.4</a> est désormais disponible!<br> - C'est une version mineure d'entretien, avec de nombreuses corrections de bogues. - Tous les utilisateurs sont invités à passer à cette nouvelle version. -</p> - -<h2>Version de correction de bogues</h2> - -<p> - PHP 4.3.4 contient notamment les corrections, ajouts et - améliorations suivantes : -</p> - -<ul> - <li>Correction des fonctions disk_total_space() et disk_free_space() sous FreeBSD.</li> - <li>Correction du support FastCGI pour Win32</li> - <li>Correction de FastCGI qui ne pouvait pas utiliser certaines IP spécifiques.</li> - <li>Correction de nombreux bogues de la fonction mail() sous Windows.</li> - <li>Corrections de divers crash pour de nombreuses fonctions.</li> - <li>Correction de problèmes de compilation pour MacOSX 10.3 Panther.</li> - - <li>Plus de 60 corrections!</li> -</ul> - -<p> - Pour la liste exhaustive des modifications de PHP 4.3.4, voyez - <a href="/ChangeLog-4.php#4.3.4">le changelog</a>, en anglais. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.4'); diff --git a/releases/4_3_5.php b/releases/4_3_5.php index d5efd309c2..e568025911 100644 --- a/releases/4_3_5.php +++ b/releases/4_3_5.php @@ -1,46 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.5 Release Announcement"); -?> - -<h1>PHP 4.3.5 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_5_fr.php">Version Française</a> ]</p> - -<p> - PHP Development Team is proud to announce the release of <a href="/downloads.php">PHP 4.3.5</a>. - This is primarily a bug fix release, without any new features or additions. PHP 4.3.5 - is by far the most stable release of PHP to date and it is recommended that - all users upgrade to this release whenever possible. -</p> - -<h2>Bugfix release</h2> - -<p> - PHP 4.3.5 contains, among others, following important fixes, additions and improvements: -</p> - -<ul> - <li>Fixed INI leak between Apache virtual hosts.</li> - <li>Fixed crashes inside fgetcsv() and make the function binary safe.</li> - <li>Fixed compilation with early versions of GCC 3.0.</li> - <li>Fixed a bug that prevented feof() from working correctly with sockets.</li> - <li>Improved the matching algorithm inside the get_browser() function.</li> - <li>Fixed resolving of open_basedir on Win32 systems.</li> - <li>Fixed incorrect errors for non-existent directories when safe_mode is enabled.</li> - <li>Bundled OpenSSL dlls on Win32 upgraded to 0.9.7c</li> - <li>Updated bundled PostgreSQL library to version 7.4 in Windows distribution.</li> - <li>Bundled PCRE library upgraded to 4.5</li> - <li>Synchronized bundled GD library with GD 2.0.17</li> - <li>A number of fixes for 64bit systems.</li> - - <li>Aside from the above mentioned fixes, this release resolves over 140 various bugs and implementational problems.</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.5, see the - <a href="/ChangeLog-4.php#4.3.5">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.5'); diff --git a/releases/4_3_5_fr.php b/releases/4_3_5_fr.php index f4d8fdbadf..e568025911 100644 --- a/releases/4_3_5_fr.php +++ b/releases/4_3_5_fr.php @@ -1,46 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.5"); -?> - -<h1>Annonce de publication de PHP 4.3.5</h1> - -<p>[ <a href="/releases/4_3_5.php">English Version</a> ]</p> - -<p> -L'équipe de développement PHP a le plaisir de vous annoncer -la publication de <a href="/downloads.php">PHP 4.3.5</a>. C'est une version -de maintenance, destinée à corriger des erreurs, et sans aucun -ajout de fonctionnalité. PHP 4.3.5 est, de loin, la version de PHP -la plus stable, et il est recommandé à tous les utilisateurs -d'adopter cette version dès que possible. -</p> - -<h2>Version de correction de bogues</h2> - -<p> - PHP 4.3.5 contient notamment les corrections, ajouts et améliorations suivantes : -</p> - -<ul> -<li>Correction d'une fuite mémoire liée au fichier INI, sur les hôtes virtuels Apache.</li> -<li>Correction de crashs avec fgetcsv(). La fonction est désormais compatible avec les données binaires.</li> -<li>Correction de la compilation avec les premières versions de GCC 3.0.</li> -<li>Amélioration de l'algorithme d'analyse de la fonction get_browser().</li> -<li>Correction de open_basedir sur Win32.</li> -<li>Correction de messages erronés pour les dossiers inexistants, en mode safe_mode.</li> -<li>Ajout des DLL OpenSSL sur Win32, en version 0.9.7c.</li> -<li>Mise à jour de la bibliothèque PostgreSQL en version 7.4 dans la distribution Windows.</li> -<li>Mise à jour de la bibliothèque PCRE en version 4.5.</li> -<li>Mise à jour de la bibliothèque GD en version 2.0.17.</li> -<li>Corrections de bogues sur les systèmes 64 bits.</li> -<li>En plus de ces corrections, cette version inclut 140 corrections de bogues et problèmes divers.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.5, voyez - <a href="/ChangeLog-4.php#4.3.5">le changelog</a>, en anglais. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.5'); diff --git a/releases/4_3_6.php b/releases/4_3_6.php index 998c9c37aa..8a502c8f98 100644 --- a/releases/4_3_6.php +++ b/releases/4_3_6.php @@ -1,43 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.6 Release Announcement"); -?> - -<h1>PHP 4.3.6 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_6_fr.php">Version Française</a> ]</p> - -<p> - PHP Development Team is proud to announce the release of PHP <a href="/downloads.php">PHP 4.3.6</a>. - This is is a bug fix release whose primary goal is to address two bugs which may - result in crashes in PHP builds with thread-safety enabled. All users of PHP - in a threaded environment (Windows) are strongly encouraged to upgrade to - this release. -</p> - -<h2>Bugfix release</h2> - -<p> - Aside from the above mentioned issues this release includes the following important fixes: -</p> - -<ul> - <li>Updated bundled PDFLib library to version 5.0.3p1 in Windows distribution.</li> - <li>Synchronized bundled GD library with GD 2.0.22.</li> - <li>Fixed bugs that prevented building of the GD extension against the external GD library versions 1.2-1.8.</li> - <li>Fixed a bugs resulting in leakage of session settings across requests.</li> - <li>Fixed several daylight savings bugs inside the mktime and strtotime functions.</li> - <li>Fixed a bug that prevented compilation of cURL extension against libcurl 7.11.1</li> - <li>Fixed a number of crashes inside domxml and mssql extensions.</li> - - <li>All in all this release fixes approximately 25 bugs that have been discovered - since the 4.3.5 release.</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.6, see the - <a href="/ChangeLog-4.php#4.3.6">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.6'); diff --git a/releases/4_3_6_fr.php b/releases/4_3_6_fr.php index df7a861f72..8a502c8f98 100644 --- a/releases/4_3_6_fr.php +++ b/releases/4_3_6_fr.php @@ -1,45 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.6"); -?> - - -<h1>Annonce de publication de PHP 4.3.6</h1> - -<p>[ <a href="/releases/4_3_6.php">English Version</a> ]</p> - -<p> -L'équipe de développement PHP a le plaisir de vous annoncer -la publication de <a href="/downloads.php">PHP 4.3.6</a>. C'est une version -de maintenance, destinée à corriger deux bogues qui -peuvent conduire à des crashs de PHP si la sécurité threads est activée. -Il est recommandé à tous les utilisateurs d'adopter cette -version dès que possible. -</p> - -<h2>Version de correction de bogues</h2> - -<p> - PHP 4.3.6 contient notamment les corrections, ajouts et améliorations suivantes : -</p> - -<ul> - <li>Mise à jour de la bibliothèque PDFLib en version 5.0.3p1 pour les versions Windows.</li> - <li>Mise à jour de la bibliothèque GD 2.0.22.</li> - <li>Correction d'un bogue qui empêchait la compilation de l'extension GD avec les versions 1.2-1.8 de la librairie externe GD.</li> - <li>Correction d'un bogue avec les sessions : les configurations ne se propageaient pas entre les requêtes.</li> - <li>Correction de plusieurs bogues liés au changement d'heure d'hiver et d'été dans les fonctions mktime et strtotime.</li> - <li>Correction d'un bogue qui empêchait la compilation de l'extension cURL avec libcurl 7.11.1</li> - <li>Correction de plusieurs crashs avec les extensions domxml et mssql.</li> - - <li>Cette version corrige environ 25 bogues qui ont été découverts depuis - la version 4.3.5.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.6, voyez - <a href="/ChangeLog-4.php#4.3.6">le changelog</a>, en anglais. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.6'); diff --git a/releases/4_3_7.php b/releases/4_3_7.php index 12d5ead8d5..507c878637 100644 --- a/releases/4_3_7.php +++ b/releases/4_3_7.php @@ -1,42 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.7 Release Announcement"); -?> - -<h1>PHP 4.3.7 Release Announcement</h1> - -<p>[ <a href="/releases/4_3_7_fr.php">Version Française</a> ]</p> - -<p> - PHP Development Team is proud to announce the release of PHP <a href="/downloads.php">PHP 4.3.7</a>. - This is a maintenance release that in addition to several non-critical bug fixes, addresses an input - validation vulnerability in escapeshellcmd() and escapeshellarg() functions on the Windows platform. - Users of PHP on Windows are encouraged to upgrade to this release as soon as possible. -</p> - -<h2>Bugfix release</h2> - -<p> - Aside from the above mentioned issues this release includes the following important fixes: -</p> - -<ul> - <li>Synchronized bundled GD library with GD 2.0.23.</li> - <li>Fixed a bug that prevented compilation of GD extensions against FreeType 2.1.0-2.1.2.</li> - <li>Fixed thread safety issue with informix connection id.</li> - <li>Fixed incorrect resolving of relative paths by glob() in windows.</li> - <li>Fixed mapping of Greek letters to html entities.</li> - <li>Fixed a bug that caused an on shutdown crash when using PHP with Apache 2.0.49.</li> - <li>Fixed a number of crashes inside pgsql, cpdf and gd extensions.</li> - - <li>All in all this release fixes over 30 bugs that have been discovered and resolved - since the 4.3.6 release.</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.7, see the - <a href="/ChangeLog-4.php#4.3.7">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.7'); diff --git a/releases/4_3_7_fr.php b/releases/4_3_7_fr.php index 22776d6a95..507c878637 100644 --- a/releases/4_3_7_fr.php +++ b/releases/4_3_7_fr.php @@ -1,44 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("Annonce de publication de PHP 4.3.7"); -?> - -<h1>Annonce de publication de PHP 4.3.7</h1> - -<p>[ <a href="/releases/4_3_7.php">English Version</a> ]</p> - -<p> -L'équipe de développement PHP a le plaisir de vous annoncer -la publication de <a href="/downloads.php">PHP 4.3.7</a>. C'est une version -de maintenance, destinée à corriger des bogues non-critiques, -corriger une vulnérabilité de validation dans les fonctions escapeshellcmd() et -escapeshellarg() sur la plate-forme Windows. Les utilisateurs de PHP sont encouragés -à changer de version aussitôt que possible. -</p> - -<h2>Version de correction de bogues</h2> - -<p> - PHP 4.3.7 contient notamment les corrections, ajouts et améliorations suivantes : -</p> - -<ul> - <li>La bibliothéque GD est maintenant en version 2.0.23.</li> - <li>Correction d'un bogue qui empêchait la compilation de GD avec FreeType 2.1.0-2.1.2.</li> - <li>Correction d'un probléme de sécurité thread avec l'identifiant de connexion informix.</li> - <li>Correction de la résolution de chemin relatifs avec glob() sous Windows.</li> - <li>Correction des entités HTML pour les caractéres grecs.</li> - <li>Correction d'un bug qui causait un crash avec Apache 2.0.49.</li> - <li>Correction de nombreux crashs avec PostGreSQL, CPDF et GD.</li> - - <li>Cette version corrige environ 30 bogues qui ont été découverts depuis - la version 4.3.6.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.7, voyez - <a href="/ChangeLog-4.php#4.3.7">le changelog</a>, en anglais. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.7'); diff --git a/releases/4_3_8.php b/releases/4_3_8.php index 3f590cf1bb..debdbda12c 100644 --- a/releases/4_3_8.php +++ b/releases/4_3_8.php @@ -1,30 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.8 Release Announcement"); -?> - -<h1>PHP 4.3.8 Release Announcement</h1> - -<!-- -<p>[ <a href="/releases/4_3_8_fr.php">Version Française</a> ]</p> ---> - -<p> - PHP Development Team is would like to announce the immediate availability of <a href="/downloads.php">PHP 4.3.8</a>. - This release is made in response to several security issues that have been discovered since the - 4.3.7 release. All users of PHP are strongly encouraged to upgrade to PHP 4.3.8 as soon as possible. -</p> - -<h2>Security Fixes release</h2> - -<p> - This release addresses several important security issues. -</p> - -<p> - For a full list of changes in PHP 4.3.8, see the - <a href="/ChangeLog-4.php#4.3.8">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.8'); diff --git a/releases/4_3_9.php b/releases/4_3_9.php index d43691b8e4..b8f2314455 100644 --- a/releases/4_3_9.php +++ b/releases/4_3_9.php @@ -1,46 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.9 Release Announcement"); -?> - -<h1>PHP 4.3.9 Release Announcement</h1> -<p>[ <a href="/releases/4_3_9_fr.php">Version Française</a> ]</p> -<p> - PHP Development Team is proud to announce the immediate release of PHP <a href="/downloads.php">PHP 4.3.9</a>. - This is a maintenance release that in addition to over 50 non-critical bug fixes, addresses a problem - with GPC input processing. This release also re-introduces ability to write - GIF images via the bundled GD extension. - All Users of PHP are encouraged to upgrade to this release as soon as possible. -</p> - -<h2>Bugfix release</h2> - -<p> - Aside from the above mentioned issues this release includes the following important fixes: -</p> - -<ul> - <li>Implemented periodic PCRE compiled regexp cache cleanup, to avoid memory exhaustion</li> - <li>Fixed strip_tags() to correctly handle '\0' characters.</li> - <li>Rewritten UNIX and Windows install help files.</li> - <li>Fixed a file-descriptor leak with phpinfo() and other 'special' URLs.</li> - <li>Fixed possible crash inside php_shutdown_config().</li> - <li>Fixed isset crashes on arrays.</li> - <li>Fixed imagecreatefromstring() crashes with external GD library.</li> - <li>Fixed fgetcsv() parsing of strings ending with escaped enclosures.</li> - <li>Fixed overflow in array_slice(), array_splice(), substr(), substr_replace(), strspn(), strcspn().</li> - <li>Fixed '\0' in Authenticate header passed via safe_mode.</li> - <li>Allow bundled GD to compile against freetype 2.1.2.</li> - - - <li>All in all this release fixes over 50 bugs that have been discovered and resolved - since the 4.3.8 release.</li> -</ul> - -<p> - For a full list of changes in PHP 4.3.9, see the - <a href="/ChangeLog-4.php#4.3.9">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.9'); diff --git a/releases/4_3_9_fr.php b/releases/4_3_9_fr.php index 75210ebc4e..b8f2314455 100644 --- a/releases/4_3_9_fr.php +++ b/releases/4_3_9_fr.php @@ -1,47 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_3_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.3.9 Release Announcement"); -?> - -<h1>Annonce de publication de PHP 4.3.9</h1> -<p>[ <a href="/releases/4_3_9.php">English Version</a> ]</p> -<p> -L'équipe de développement PHP a le plaisir de vous annoncer -la publication de <a href="/downloads.php">PHP 4.3.9</a>. C'est une version -de maintenance, destinée à corriger une cinquantaine de bogues non-critiques, -et corriger le traitement des valeurs GPC. Cette version inclut aussi la possibilité -d'écrire des images GIF via la bibliothèque GD interne. Tous les utilisateurs -sont encouragés à utiliser cette version. -</p> - -<h2>Version de correction de bogues</h2> - -<p> -En plus des fonctionnalités ci-dessus, PHP 4.3.9 contient notamment les corrections, -ajouts et améliorations suivantes : -</p> - -<ul> - <li>Implementation d'un nettoyage périodique du cache de regex PCRE, pour éviter les problèmes de mémoire.</li> - <li>Correction de strip_tags() pour gérer correctement le caractère '\0'.</li> - <li>Réécriture des fichiers d'installation sous UNIX et Windows.</li> - <li>Correction d'une fuite mémoire avec phpinfo() et d'autres URL spéciales.</li> - <li>Correction d'un crash possible avec php_shutdown_config().</li> - <li>Correction d'un crash avec isset() sur les tableaux.</li> - <li>Correction d'un crash avec imagecreatefromstring() et la bibliothèque interne GD.</li> - <li>Correction de fgetcsv(), lors de l'analyse de chaînes avec des séquences protégées.</li> - <li>Correction d'un dépassement de capacité avec array_slice(), array_splice(), substr(), substr_replace(), strspn(), strcspn().</li> - <li>Correction de '\0' dans l'entête Authenticate, passé via le safe_mode.</li> - <li>Compilation de la GD interne avec freetype 2.1.2.</li> - - <li>Cette version corrige environ 50 bogues qui ont été découverts depuis - la version 4.3.8.</li> -</ul> - -<p> - Pour une liste exhaustive des modifications de PHP 4.3.9, voyez - <a href="/ChangeLog-4.php#4.3.9">le ChangeLog</a>, en anglais. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.3.9'); diff --git a/releases/4_4_0.php b/releases/4_4_0.php index 500fd9b093..1471fea469 100644 --- a/releases/4_4_0.php +++ b/releases/4_4_0.php @@ -1,47 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.0 Release Announcement"); -?> - -<h1>PHP 4.4. Release Announcement</h1> -<p> -The PHP Development Team would like to announce the immediate release of -<a href="/downloads.php">PHP 4.4.0</a>. -</p> -<p> -This is a maintenance release that addresses a serious memory corruption -problem within PHP concerning references. If references were used in a wrong -way, PHP would often create memory corruptions which would not always surface -or be visible. In other cases it could cause variables and objects to change -type or class unexpectedly. If you encountered strange behavior like this, this -release might fix it. The increased middle digit was required because the fix that -corrected the problem with references changed PHP's internal API, breaking -binary compatibility with the PHP 4.3.* series. This means that all binary -extension modules need to be recompiled in order to work with this release. -</p> -<p> -As part of the solution for the reference bug, you are very likely to find that -your own or third-party PHP scripts, considered 'clean' code under previous -versions of PHP, will now throw an E_NOTICE when references are incorrectly used -in the script. This is intended to alert developers to minor errors in their -approach, and does not affect the script's performance in any other way. -</p> -<p> -Besides the reference problem, this release also fixes numerous other bugs, -including a small security problem with our bundled shtool. -</p> - -<h2>Bugfix release</h2> - -<ul> -<li>Memory corruptions with references.</li> -<li>Small security problem with bundled shtool.</li> -</ul> - -<p> - For a full list of changes in PHP 4.4.0, see the - <a href="/ChangeLog-4.php#4.4.0">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.0'); diff --git a/releases/4_4_1.php b/releases/4_4_1.php index deab581479..f0623a057f 100644 --- a/releases/4_4_1.php +++ b/releases/4_4_1.php @@ -1,51 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.1 Release Announcement"); -?> - -<h1>PHP 4.4.1. Release Announcement</h1> -<p> -The PHP Development Team would like to announce the immediate release of -<a href="/downloads.php">PHP 4.4.1</a>. -</p> -<p> -This is a bug fix release, which addresses some security problems too. The -security issues that this release fixes are: -<ul> -<li>Fixed a Cross Site Scripting (<a href='http://www.cgisecurity.com/articles/xss-faq.shtml'>XSS</a>) - vulnerability in <a href='/phpinfo'>phpinfo</a>() that could - lead f.e. to cookie exposure, when a phpinfo() script is accidently left - on a production server.</li> -<li>Fixed multiple safe_mode/open_basedir bypass vulnerabilities in ext/curl - and ext/gd that could lead to exposure of files normally not accessible due - to safe_mode or open_basedir restrictions.</li> -<li>Fixed a possible $GLOBALS overwrite problem in file upload handling, - extract() and import_request_variables() that could lead to unexpected - security holes in scripts assumed secure. (For more information, see <a - href='http://www.hardened-php.net/globals-problem'>here</a>).</li> -<li>Fixed a problem when a request was terminated due to memory_limit - constraints during certain - <a href='/parse_str'>parse_str</a>() calls. In some cases - this can result in register_globals being turned on.</li> -<li>Fixed an issue with trailing slashes in allowed basedirs. They were ignored - by open_basedir checks, so that specified basedirs were handled as prefixes - and not as full directory names.</li> -<li>Fixed an issue with calling <a href='/virtual'>virtual</a>() - on Apache 2. This allowed bypassing of certain configuration directives - like safe_mode or open_basedir.</li> -<li>Updated to the latest pcrelib to fix a possible integer overflow - vulnerability announced in <a href='http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2491'>CAN-2005-2491</a>.</li> -</ul> -</p> -<p> -This release also fixes 35 other defects, where the most important is the -the fix that removes a notice when passing a by-reference result of a function -as a by-reference value to another function. (Bug #<a href='https://bugs.php.net/33558'>33558</a>). -</p> -<p> - For a full list of changes in PHP 4.4.1, see the - <a href="/ChangeLog-4.php#4.4.1">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.1'); diff --git a/releases/4_4_2.php b/releases/4_4_2.php index e84d53a3b7..0fea84105f 100644 --- a/releases/4_4_2.php +++ b/releases/4_4_2.php @@ -1,31 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.2 Release Announcement"); -?> - -<h1>PHP 4.4.2. Release Announcement</h1> -<p> -The PHP Development Team would like to announce the immediate release of -<a href="/downloads.php">PHP 4.4.2</a>. -</p> -<p> -This is a bug fix release, which addresses some security problems too. The -major points that this release corrects are: -<ul> -<li>Prevent header injection by limiting each header to a single line.</li> -<li>Possible XSS inside error reporting functionality.</li> -<li>Missing safe_mode/open_basedir checks into cURL extension.</li> -<li>Apache 2 regression with sub-request handling on non-Linux systems.</li> -<li>key() and current() regression related to references.</li> -</ul> -</p> -<p> -This release also fixes about 30 other defects. -</p> -<p> - For a full list of changes in PHP 4.4.2, see the - <a href="/ChangeLog-4.php#4.4.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.2'); diff --git a/releases/4_4_3.php b/releases/4_4_3.php index ad07b3ea19..f6c4e98cec 100644 --- a/releases/4_4_3.php +++ b/releases/4_4_3.php @@ -1,35 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.3 Release Announcement"); -?> - -<h1>PHP 4.4.3. Release Announcement</h1> -<p> -The PHP development team is proud to announce the release of <a href="/downloads.php#v4">PHP 4.4.3</a>. -This release combines small number of bug fixes and resolves a number of security issues. -All PHP 4.x users are encouraged to upgrade to this release as soon as possible. -</p> - -<p> -The security issues resolved include the following: -<ul> - <li>Disallow certain characters in session names.</li> - <li>Fixed a buffer overflow inside the wordwrap() function.</li> - <li>Prevent jumps to parent directory via the 2nd parameter of the tempnam() function.</li> - <li>Improved safe_mode check for the error_log() function.</li> - <li>Fixed cross-site scripting inside the phpinfo() function.</li> -</ul> -</p> - -<p> -The release also includes about 20 bug fixes and an upgraded PCRE library -(version 6.6). -</p> - -<p> - For a full list of changes in PHP 4.4.3, see the - <a href="/ChangeLog-4.php#4.4.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.3'); diff --git a/releases/4_4_4.php b/releases/4_4_4.php index e2ce4fa5fc..abcaeba75a 100644 --- a/releases/4_4_4.php +++ b/releases/4_4_4.php @@ -1,35 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.4 Release Announcement"); -?> - -<h1>PHP 4.4.4 Release Announcement</h1> -<p> -This release address a series of locally exploitable security problems -discovered since PHP 4.4.3. All PHP users are encouraged to upgrade to this -release as soon as possible. -</p> - -<p> -This release provides the following security fixes: -<ul> - <li>Added missing safe_mode/open_basedir checks inside the error_log(), file_exists(), imap_open() and imap_reopen() functions.</li> - <li>Fixed overflows inside str_repeat() and wordwrap() functions on 64bit systems.</li> - <li>Fixed possible open_basedir/safe_mode bypass in cURL extension.</li> - <li>Fixed overflow in GD extension on invalid GIF images.</li> - <li>Fixed a buffer overflow inside sscanf() function.</li> - <li>Fixed memory_limit restriction on 64 bit system.</li> -</ul> -</p> - -<p> -In addition to the security fixes, both releases include a small number of non-security related bug fixes. -</p> - -<p> - For a full list of changes in PHP 4.4.4, see the - <a href="/ChangeLog-4.php#4.4.4">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.4'); diff --git a/releases/4_4_5.php b/releases/4_4_5.php index 4c143df348..2c99a2c79f 100644 --- a/releases/4_4_5.php +++ b/releases/4_4_5.php @@ -1,55 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.5 Release Announcement"); -?> - -<h1>PHP 4.4.5 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of -PHP 4.4.5. This release is a stability and security enhancement of the 4.4.X -branch, and all users are strongly encouraged to upgrade to it as soon as -possible. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 4.4.5:</b> -</p> -<ul> -<li>Fixed possible safe_mode & open_basedir bypasses inside the session extension.</li> -<li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li> -<li>Fixed possible overflows and stack corruptions in the session extension.</li> -<li>Fixed an underflow inside the internal sapi_header_op() function.</li> -<li>Fixed possible overflows inside zip & imap extensions.</li> -<li>Fixed non-validated resource destruction inside the shmop extension.</li> -<li>Fixed a possible overflow in the str_replace() function.</li> -<li>Fixed possible clobbering of super-globals in several code paths.</li> -<li>Fixed a possible information disclosure inside the wddx extension.</li> -<li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li> -<li>Fixed a possible buffer overflow inside ibase_{delete,add,modify}_user() function.</li> -<li>Fixed a string format vulnerability inside the odbc_result_all() function.</li> -<li>Fixed a possible buffer overflow inside mail() function on Windows.</li> -</ul> - -<p> -The majority of the security vulnerabilities discovered and resolved can in -most cases be only abused by local users and cannot be triggered remotely. -However, some of the above issues can be triggered remotely in certain -situations, or exploited by malicious local users on shared hosting setups -utilizing PHP as an Apache module. Therefore, we strongly advise all users of -PHP, regardless of the version to upgrade to 4.4.5 release as soon as possible. -PHP 5.2.1 with equivalent security corrections is <a -href='5_2_1.php'>available</a> as well. -</p> - -<p> -In addition to the security fixes, this release includes a number of -non-security related bug fixes. -</p> - -<p> - For a full list of changes in PHP 4.4.5, see the - <a href="/ChangeLog-4.php#4.4.5">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.5'); diff --git a/releases/4_4_6.php b/releases/4_4_6.php index 42fa75ec31..d33e1d2858 100644 --- a/releases/4_4_6.php +++ b/releases/4_4_6.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.6 Release Announcement"); -?> - -<h1>PHP 4.4.6 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of -PHP 4.4.6. This release addresses a crash problem with the session extension -when register_globals is turned on that was introduced in PHP 4.4.5. This -release comes also with the new version 7.0 of PCRE and it addresses a number -of minor bugs. -</p> - -<p> - For a full list of changes in PHP 4.4.6, see the - <a href="/ChangeLog-4.php#4.4.6">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.6'); diff --git a/releases/4_4_7.php b/releases/4_4_7.php index d523396682..4da37821ba 100644 --- a/releases/4_4_7.php +++ b/releases/4_4_7.php @@ -1,51 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.7 Release Announcement"); -?> - -<h1>PHP 4.4.7 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of -PHP 4.4.7. This release continues to improve the security and the stability of -the 4.4 branch and all users are strongly encouraged to upgrade to it as soon -as possible. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 4.4.7:</b> -</p> -<ul> - <li>Fixed CVE-2007-1001, GD wbmp used with invalid image size (by Ivan Fratric)</li> - <li>Fixed asciiz byte truncation inside mail() (MOPB-33 by Stefan Esser)</li> - <li>Fixed a bug in mb_parse_str() that can be used to activate register_globals (MOPB-26 by Stefan Esser)</li> - <li>Fixed unallocated memory access/double free in in array_user_key_compare() (MOPB-24 by Stefan Esser)</li> - <li>Fixed a double free inside session_regenerate_id() (MOPB-22 by Stefan Esser)</li> - <li>Added missing open_basedir & safe_mode checks to zip:// and bzip:// wrappers. (MOPB-21 by Stefan Esser).</li> - <li>Limit nesting level of input variables with max_input_nesting_level as fix for (MOPB-03 by Stefan Esser)</li> - <li>XSS in phpinfo() (MOPB-8 by Stefan Esser)</li> - <li>Fixed CRLF injection inside ftp_putcmd(). (by loveshell[at]Bug.Center.Team)</li> - <li>Fixed a possible super-global overwrite inside import_request_variables(). (by Stefano Di Paola, Stefan Esser)</li> - <li>Fixed a remotely trigger-able buffer overflow inside bundled libxmlrpc library. (by Stanislav Malyshev)</li> -</ul> - -<p> -While majority of the issues outlined above are local, few issues such as the -XML-RPC overflows can be triggered remotely and therefor should be considered -critical. If you use the XML-RPC extension consider upgrading as soon as -possible. -</p> - -<p> -<b>Other improvements of PHP 4.4.7 include:</b> -</p> -<ul> - <li>About 10 bug fixes.</li> -</ul> - -<p> - For a full list of changes in PHP 4.4.7, see the <a href="/ChangeLog-4.php#4.4.7">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.7'); diff --git a/releases/4_4_8.php b/releases/4_4_8.php index 2c122a8475..125c8f2450 100644 --- a/releases/4_4_8.php +++ b/releases/4_4_8.php @@ -1,36 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.8 Release Announcement"); -?> - -<h1>PHP 4.4.8 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of -PHP 4.4.8. It continues to improve the security and the stability of the 4.4 -branch and all users are strongly encouraged to upgrade to it as soon as -possible. This release wraps up all the outstanding patches for the PHP 4.4 -series, and is therefore the last normal PHP 4.4 release. If necessary, -releases to address security issues could be made until 2008-08-08. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 4.4.8:</b> -</p> -<ul> - <li>Improved fix for MOPB-02-2007.</li> - <li>Fixed an integer overflow inside chunk_split(). Identified by Gerhard Wagner.</li> - <li>Fixed integer overlow in str[c]spn().</li> - <li>Fixed regression in glob when open_basedir is on introduced by #41655 fix.</li> - <li>Fixed money_format() not to accept multiple %i or %n tokens.</li> - <li>Addded "max_input_nesting_level" php.ini option to limit nesting level of input variables. Fix for MOPB-03-2007.</li> - <li>Fixed INFILE LOCAL option handling with MySQL - now not allowed when open_basedir or safe_mode is active.</li> - <li>Fixed session.save_path and error_log values to be checked against open_basedir and safe_mode (CVE-2007-3378).</li> -</ul> - -<p> - For a full list of changes in PHP 4.4.8, see the <a href="/ChangeLog-4.php#4.4.8">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.8'); diff --git a/releases/4_4_9.php b/releases/4_4_9.php index 141b091635..c4cc0da55a 100644 --- a/releases/4_4_9.php +++ b/releases/4_4_9.php @@ -1,32 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/4_4_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 4.4.9 Release Announcement"); -?> - -<h1>PHP 4.4.9 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of -PHP 4.4.9. It continues to improve the security and the stability of the 4.4 -branch and all users are strongly encouraged to upgrade to it as soon as -possible. This release wraps up all the outstanding patches for the PHP 4.4 -series, and is therefore the <b>last</b> PHP 4.4 release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 4.4.9:</b> -</p> -<ul> - <li>Updated PCRE to version 7.7.</li> - <li>Fixed overflow in memnstr().</li> - <li>Fixed crash in imageloadfont when an invalid font is given.</li> - <li>Fixed open_basedir handling issue in the curl extension.</li> - <li>Fixed mbstring.func_overload set in .htaccess becomes global.</li> -</ul> - -<p> - For a full list of changes in PHP 4.4.9, see the <a href="/ChangeLog-4.php#4.4.9">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('4.4.9'); diff --git a/releases/5_1_0.php b/releases/5_1_0.php index 0ad76a5fdc..0d04fcf214 100644 --- a/releases/5_1_0.php +++ b/releases/5_1_0.php @@ -1,66 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.0 Release Announcement"); -?> - -<h1>PHP 5.1.0. Release Announcement</h1> -<p> -The PHP development team is proud to announce the release of PHP <a href="/downloads.php">PHP 5.1.0</a>.<br> -Some of the key features of <a href="/downloads.php">PHP 5.1.0</a> include: -</p> -<p> -<ul> -<li>A complete rewrite of date handling code, with improved timezone support.</li> -<li>Significant performance improvements compared to PHP 5.0.X.</li> -<li>PDO extension is now enabled by default.</li> -<li>Over 30 new functions in various extensions and built-in functionality.</li> -<li>Bundled libraries, PCRE and SQLite upgraded to latest versions.</li> -<li>Over 400 various bug fixes.</li> -<li>PEAR upgraded to version 1.4.5</li> -</ul> -</p> - -<p> - For a full list of changes in PHP 5.1.0, see the - <a href="/ChangeLog-5.php#5.1.0">ChangeLog</a>. -</p> - -<p> -In addition to new features, this release includes a number of important security fixes: -<ul> -<li>Fixed a Cross Site Scripting (<a href='http://www.cgisecurity.com/articles/xss-faq.shtml'>XSS</a>) - vulnerability in <a href='/phpinfo'>phpinfo</a>() that could - lead f.e. to cookie exposure, when a phpinfo() script is accidently left - on a production server.</li> -<li>Fixed multiple safe_mode/open_basedir bypass vulnerabilities in ext/curl - and ext/gd that could lead to exposure of files normally not accessible due - to safe_mode or open_basedir restrictions.</li> -<li>Fixed a possible $GLOBALS overwrite problem in file upload handling, - extract() and import_request_variables() that could lead to unexpected - security holes in scripts assumed secure. (For more information, see <a - href='http://www.hardened-php.net/globals-problem'>here</a>).</li> -<li>Fixed a problem when a request was terminated due to memory_limit - constraints during certain - <a href='/parse_str'>parse_str</a>() calls. In some cases - this can result in register_globals being turned on.</li> -<li>Fixed an issue with trailing slashes in allowed basedirs. They were ignored - by open_basedir checks, so that specified basedirs were handled as prefixes - and not as full directory names.</li> -<li>Fixed an issue with calling <a href='/virtual'>virtual</a>() - on Apache 2. This allowed bypassing of certain configuration directives - like safe_mode or open_basedir.</li> -<li>Updated to the latest pcrelib to fix a possible integer overflow - vulnerability announced in <a href='http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2491'>CAN-2005-2491</a>.</li> -<li>Possible header injection in mb_send_mail() function via the "To" address, the first parameter of the function.</li> -</ul> -</p> - -<p> -All users of PHP 5.0 and early adopters of 5.1 betas are strongly advised to upgrade to 5.1 as soon as -possible. Furthermore, 5.1 branch obsoletes the 5.0 PHP branch. -</p> - -<p><a href="/migration51">Upgrading Guide</a> is available to ease the transition from prior PHP versions.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.0'); diff --git a/releases/5_1_1.php b/releases/5_1_1.php index c746291fbd..e82d82f2c6 100644 --- a/releases/5_1_1.php +++ b/releases/5_1_1.php @@ -1,30 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.1 Release Announcement"); -?> - -<h1>PHP 5.1.1. Release Announcement</h1> -<p> -The PHP Development Team would like to announce the immediate release of -<a href="/downloads.php">PHP 5.1.1</a>. -</p> -<p> -This is a regression correction release aimed at addressing several issues -that may cause issues for certain applications. The main fixes found in this -release include the following: -<ul> -<li>Native date class is withdrawn to prevent namespace conflict with PEAR's date package.</li> -<li>Fixed fatal parse error when the last line of the script is a PHP comment.</li> -<li>eval() hangs when the code being evaluated ends with a comment.</li> -<li>Usage of \{$var} in PHP 5.1.0 resulted in the output of {$var} instead of the $var variable's value enclosed in {}.</li> -<li>Fixed inconsistency in the format of PHP_AUTH_DIGEST between Apache 1 and 2 sapis.</li> -<li>Improved safe_mode/open_basedir checks inside the cURL extension.</li> -</ul> -</p> -<p> - For a full list of changes in PHP 5.1.1, see the - <a href="/ChangeLog-5.php#5.1.1">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.1'); diff --git a/releases/5_1_2.php b/releases/5_1_2.php index d4b1841cde..a5e4c0f09e 100644 --- a/releases/5_1_2.php +++ b/releases/5_1_2.php @@ -1,60 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.2 Release Announcement"); -?> - -<h1>PHP 5.1.2. Release Announcement</h1> -<p> -The PHP development team is proud to announce the release of <a href="/downloads.php">PHP 5.1.2</a>. -This release combines small feature enhancements with a fair number of -bug fixes and addresses three security issues. All PHP 5 users are encouraged to -upgrade to this release. -</p> - -<p> -The security issues resolved include the following: -<ul> -<li>HTTP Response Splitting has been addressed in ext/session and in the - header() function. Header() can no longer be used to send multiple - response headers in a single call. -</li> -<li>Format string vulnerability in ext/mysqli.</li> -<li>Possible cross-site scripting problems in certain error conditions.</li> -</ul> -</p> - -<p> -The feature enhancements include the following notables: -<ul> -<li>Hash extension was added to core and is now enabled by default. This - extension provides support for most common hashing algorithms without - reliance on 3rd party libraries.</li> -<li>XMLWriter was added and enabled by default.</li> -<li>New OCI8 extension that includes numerous fixes.</li> -<li>PNG compression support added to the GD extension.</li> -<li>Added --enable-gcov configure option to enable C-level code coverage.</li> -<li>getNamespaces() and getDocNamespaces() methods added to SimpleXML extension.</li> -</ul> -</p> - -<p> -The release also includes over 85 bug fixes with a focus on: -<ul> -<li>Correction of the many regressions in the strtotime() function.</li> -<li>Fixes of several crashes, leaks and memory corruptions found in the - imap, pdo, gd, mysqli, mcrypt and soap extensions.</li> -<li>Corrected problems with the usage of SSI and virtual() in the Apache2 SAPI.</li> -<li>Build fixes for iconv and sybase_ct extensions.</li> -<li>Fixed the previously broken Sun(rise|set) functions.</li> -<li>SQLite libraries upgraded to 2.8.17 and 3.2.8 -<li>Win32 binaries now include libxml2-2.6.22 and libxslt-1.1.15.</li> -</ul> -</p> - -<p> - For a full list of changes in PHP 5.1.2, see the - <a href="/ChangeLog-5.php#5.1.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.2'); diff --git a/releases/5_1_3.php b/releases/5_1_3.php index 49deee03f4..4b864803fe 100644 --- a/releases/5_1_3.php +++ b/releases/5_1_3.php @@ -1,63 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.3 Release Announcement"); -?> - -<h1>PHP 5.1.3. Release Announcement</h1> -<p> -The PHP development team is proud to announce the release of <a href="/downloads.php">PHP 5.1.3</a>. -This release combines small number of feature enhancements with a significant amount of bug fixes and resolves a number of security issues. -All PHP users are encouraged to upgrade to this release as soon as possible. -</p> - -<p> -The security issues resolved include the following: -<ul> - <li>Disallow certain characters in session names.</li> - <li>Fixed a buffer overflow inside the wordwrap() function.</li> - <li>Prevent jumps to parent directory via the 2nd parameter of the tempnam() function.</li> - <li>Enforce safe_mode for the source parameter of the copy() function.</li> - <li>Fixed cross-site scripting inside the phpinfo() function.</li> - <li>Fixed offset/length parameter validation inside the substr_compare() function.</li> - <li>Fixed a heap corruption inside the session extension.</li> - <li>Fixed a bug that would allow variable to survive unset().</li> -</ul> -</p> - -<p> -The feature enhancements include the following notables: -<ul> - <li>The use of the var keyword to declare properties no longer raises a deprecation E_STRICT.</li> - <li>FastCGI interface was completely reimplemented.</li> - <li>Multitude of improvements to the SPL, SimpleXML, GD, CURL and Reflection extensions.</li> - <li>Support for many additional date formats added to the strtotime() function.</li> - <li>A number of performance improvements added to the engine and the core extensions.</li> - <li>Added imap_savebody() that allows message body to be written to a file.</li> - <li>Added lchown() and lchgrp() to change user/group ownership of symlinks.</li> - <li>Upgraded bundled PCRE library to version 6.6</li> -</ul> -</p> - -<p> -The release also includes over 120 bug fixes with a focus on: -<ul> - <li>Make auto_globals_jit work without too many INI changes.</li> - <li>Fixed tiger hash algorithm generating wrong results on big endian platforms.</li> - <li>Fixed a number of errors in the SOAP extension.</li> - <li>Fixed recursion handling in the serialize() functionality.</li> - <li>Make is_*() function account of open_basedir restrictions.</li> - <li>Fixed a number of crashes in the DOM and PDO extensions.</li> - <li>Addressed a number of regressions in the strtotime() function.</li> - <li>Make memory_limit work in Win32 systems.</li> - <li>Fixed a deadlock in the sqlite extension caused by the sqlite_fetch_column_types() function.</li> - <li>Fixed memory leaks in the realpath() cache.</li> -</ul> -</p> - -<p> - For a full list of changes in PHP 5.1.3, see the - <a href="/ChangeLog-5.php#5.1.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.3'); diff --git a/releases/5_1_4.php b/releases/5_1_4.php index 9ecb4b6306..d3ec653ec8 100644 --- a/releases/5_1_4.php +++ b/releases/5_1_4.php @@ -1,29 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.4 Release Announcement"); -?> - -<h1>PHP 5.1.4 Release Announcement</h1> -<p> -A critical bug with file uploads as well as the fastcgi sapi has been discovered in PHP 5.1.3 and a new PHP release 5.1.4 has been - made available to address these two issues. All PHP users are encouraged to upgrade to this release as soon as possible. -</p> - -<p> -This release provides fixes for the following bugs: -<ul> - <li>Fixed problems with file uploads and the $_POST array handling.</li> - <li>Resolved multiple problems with the FastCGI sapi.</li> - <li>Fixed possible crash in highlight_string().</li> - <li>Fixed cloning of DOM Documents and Noded.</li> - <li>Several fixes to PDO ODBC driver.</li> -</ul> -</p> - -<p> - For a full list of changes in PHP 5.1.4, see the - <a href="/ChangeLog-5.php#5.1.4">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.4'); diff --git a/releases/5_1_5.php b/releases/5_1_5.php index 1b87800981..9fd45ecd0f 100644 --- a/releases/5_1_5.php +++ b/releases/5_1_5.php @@ -1,35 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.5 Release Announcement"); -?> - -<h1>PHP 5.1.5 Release Announcement</h1> -<p> -This release address a series of locally exploitable security problems discovered since PHP 5.1.4. -All PHP users are encouraged to upgrade to this release as soon as possible. -</p> - -<p> -This release provides the following security fixes: -<ul> - <li>Added missing safe_mode/open_basedir checks inside the error_log(), file_exists(), imap_open() and imap_reopen() functions.</li> - <li>Fixed overflows inside str_repeat() and wordwrap() functions on 64bit systems.</li> - <li>Fixed possible open_basedir/safe_mode bypass in cURL extension and with realpath cache.</li> - <li>Fixed overflow in GD extension on invalid GIF images.</li> - <li>Fixed a buffer overflow inside sscanf() function.</li> - <li>Fixed an out of bounds read inside stripos() function.</li> - <li>Fixed memory_limit restriction on 64 bit system.</li> -</ul> -</p> - -<p> -In addition to the security fixes, both releases include a small number of non-security related bug fixes. -</p> - -<p> - For a full list of changes in PHP 5.1.5, see the - <a href="/ChangeLog-5.php#5.1.5">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.5'); diff --git a/releases/5_1_6.php b/releases/5_1_6.php index 43d983e835..a8dca89521 100644 --- a/releases/5_1_6.php +++ b/releases/5_1_6.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_1_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.1.6 Release Announcement"); -?> - -<h1>PHP 5.1.6 Release Announcement</h1> -<p> -This release is a re-release of PHP 5.1.5, which was missing the fix for memory_limit restriction -on 64 bit systems. If you rely on this functionality and use 64bit machines, you are advised to upgrade. -</p> - -<p> - For a full list of changes in PHP 5.1.6, see the - <a href="/ChangeLog-5.php#5.1.6">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.1.6'); diff --git a/releases/5_2_0.php b/releases/5_2_0.php index ef0de0ff52..2036c21b80 100644 --- a/releases/5_2_0.php +++ b/releases/5_2_0.php @@ -1,63 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.0 Release Announcement"); -?> - -<h1>PHP 5.2.0 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate release of PHP -5.2.0. This release is a major improvement in the 5.X series, which includes a -large number of new features, bug fixes and security enhancements. -</p> - -<p> -<b>The key features of PHP 5.2.0 include:</b> -</p> -<ul> - <li>New memory manager for the Zend Engine with improved performance and a more accurate memory usage tracking.</li> - <li>Input filtering extension was added and enabled by default.</li> - <li>JSON extension was added and enabled by default.</li> - <li>ZIP extension for creating and editing zip files was introduced.</li> - <li>Hooks for tracking file upload progress were introduced.</li> - <li>Introduced E_RECOVERABLE_ERROR error mode.</li> - <li>Introduced DateTime and DateTimeZone objects with methods to manipulate date/time information.</li> - <li>Upgraded bundled SQLite, PCRE libraries.</li> - <li>Upgraded OpenSSL, MySQL and PostgreSQL client libraries for Windows installations.</li> - <li>Many performance improvements.</li> - <li>Over 200 bug fixes.</li> -</ul> -<p> -<b>Security Enhancements and Fixes in PHP 5.2.0:</b> -</p> -<ul> - <li>Made PostgreSQL escaping functions in PostgreSQL and PDO extension keep track of character set encoding whenever possible.</li> - <li>Added allow_url_include, set to Off by default to disallow use of URLs for include and require.</li> - <li>Disable realpath cache when open_basedir and safe_mode are being used.</li> - <li>Improved safe_mode enforcement for error_log() function.</li> - <li>Fixed a possible buffer overflow in the underlying code responsible for htmlspecialchars() and htmlentities() functions.</li> - <li>Added missing safe_mode and open_basedir checks for the cURL extension.</li> - <li>Fixed overflow in str_repeat() & wordwrap() functions on 64bit machines.</li> - <li>Fixed handling of long paths inside the tempnam() function.</li> - <li>Fixed safe_mode/open_basedir checks for session.save_path, allowing them to account for extra parameters.</li> - <li>Fixed ini setting overload in the ini_restore() function.</li> -</ul> - -<p> -All users of PHP, especially those using earlier PHP 5 releases are advised -to upgrade to this release as soon as possible. This release also obsoletes -the 5.1 branch of PHP. -</p> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1 there is an upgrading guide -available <a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.0. -</p> - -<p> - For a full list of changes in PHP 5.2.0, see the - <a href="/ChangeLog-5.php#5.2.0">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.0'); diff --git a/releases/5_2_1.php b/releases/5_2_1.php index 5acc7720b0..a60760a7c8 100644 --- a/releases/5_2_1.php +++ b/releases/5_2_1.php @@ -1,69 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.1 Release Announcement"); -?> - -<h1>PHP 5.2.1 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of PHP 5.2.1. -This release is a major stability and security enhancement of the 5.X branch, and all -users are strongly encouraged to upgrade to it as soon as possible. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.1:</b> -</p> -<ul> - <li>Fixed possible safe_mode & open_basedir bypasses inside the session extension.</li> - <li>Prevent search engines from indexing the phpinfo() page.</li> - <li>Fixed a number of input processing bugs inside the filter extension.</li> - <li>Fixed unserialize() abuse on 64 bit systems with certain input strings.</li> - <li>Fixed possible overflows and stack corruptions in the session extension.</li> - <li>Fixed an underflow inside the internal sapi_header_op() function.</li> - <li>Fixed allocation bugs caused by attempts to allocate negative values in some code paths.</li> - <li>Fixed possible stack overflows inside zip, imap & sqlite extensions.</li> - <li>Fixed several possible buffer overflows inside the stream filters.</li> - <li>Fixed non-validated resource destruction inside the shmop extension.</li> - <li>Fixed a possible overflow in the str_replace() function.</li> - <li>Fixed possible clobbering of super-globals in several code paths.</li> - <li>Fixed a possible information disclosure inside the wddx extension.</li> - <li>Fixed a possible string format vulnerability in *print() functions on 64 bit systems.</li> - <li>Fixed a possible buffer overflow inside mail() and ibase_{delete,add,modify}_user() functions.</li> - <li>Fixed a string format vulnerability inside the odbc_result_all() function.</li> - <li>Memory limit is now enabled by default.</li> - <li>Added internal heap protection.</li> - <li>Extended filter extension support for $_SERVER in CGI and apache2 SAPIs.</li> -</ul> - -<p> -The majority of the security vulnerabilities discovered and resolved can in most cases be only abused by local users and cannot be triggered -remotely. However, some of the above issues can be triggered remotely in certain situations, or exploited by malicious local users on shared hosting setups -utilizing PHP as an Apache module. Therefore, we strongly advise all users of PHP, regardless of the version to upgrade to 5.2.1 release -as soon as possible. PHP 4.4.5 with equivalent security corrections is <a href='4_4_5.php'>available</a> as well. -</p> - -<p> -<b>The key improvements of PHP 5.2.1 include:</b> -</p> -<ul> - <li>Several performance improvements in the engine, streams API and some Windows specific optimizations.</li> - <li>PDO_MySQL now uses buffered queries by default and emulates prepared statements to bypass limitations of MySQL's prepared statement API.</li> - <li>Many improvements and enhancements to the filter and zip extensions.</li> - <li>Memory limit is now always enabled, this includes Windows builds, with a default limit of 128 megabytes.</li> - <li>Added several performance optimizations using faster Win32 APIs (this change means that PHP no longer supports Windows 98).</li> - <li>FastCGI speed optimized build of PHP for Windows made available for downloading.</li> - <li>Over 180 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.1. -</p> - -<p> - For a full list of changes in PHP 5.2.1, see the <a href="/ChangeLog-5.php#5.2.1">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.1'); diff --git a/releases/5_2_10.php b/releases/5_2_10.php index 02122ae821..4addca978a 100644 --- a/releases/5_2_10.php +++ b/releases/5_2_10.php @@ -1,50 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.10 Release Announcement"); -?> - -<h1>PHP 5.2.10 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.10. This release focuses on improving the stability of -the PHP 5.2.x branch with over 100 bug fixes, one of which is security related. -All users of PHP are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.10:</b> -</p> -<ul> - <li>Fixed bug #48378 (exif_read_data() segfaults on certain corrupted .jpeg files). (Pierre)</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.10 include:</b> -</p> -<ul> - <li>Added "ignore_errors" option to http fopen wrapper. (David Zulke, Sara)</li> - <li>Fixed memory corruptions while reading properties of zip files. (Ilia)</li> - <li>Fixed memory leak in ob_get_clean/ob_get_flush. (Christian)</li> - <li>Fixed segfault on invalid session.save_path. (Hannes)</li> - <li>Fixed leaks in imap when a mail_criteria is used. (Pierre)</li> - <li>Changed default value of array_unique()'s optional sorting type parameter back to SORT_STRING to fix backwards compatibility breakage introduced in PHP 5.2.9. (Moriyoshi)</li> - <li>Fixed bug #47940 (memory leaks in imap_body). (Pierre, Jake Levitt)</li> - <li>Fixed bug #47903 ("@" operator does not work with string offsets). (Felipe)</li> - <li>Fixed bug #47644 (Valid integers are truncated with json_decode()). (Scott)</li> - <li>Fixed bug #47564 (unpacking unsigned long 32bit big endian returns wrong result). (Ilia)</li> - <li>Fixed bug #47365 (ip2long() may allow some invalid values on certain 64bit systems).</li> - <li>Over 100 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.10. -</p> - -<p> - For a full list of changes in PHP 5.2.10, see the <a href="/ChangeLog-5.php#5.2.10">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.10'); diff --git a/releases/5_2_11.php b/releases/5_2_11.php index 7df7b255e4..e1b79aa161 100644 --- a/releases/5_2_11.php +++ b/releases/5_2_11.php @@ -1,50 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.11 Release Announcement"); -?> - -<h1>PHP 5.2.11 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.11. This release focuses on improving the stability of -the PHP 5.2.x branch with over 75 bug fixes, some of which are security related. -All users of PHP 5.2 are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.11:</b> -</p> -<ul> - <li>Fixed certificate validation inside php_openssl_apply_verification_policy. (Ryan Sleevi, Ilia)</li> - <li>Fixed sanity check for the color index in imagecolortransparent(). (Pierre)</li> - <li>Added missing sanity checks around exif processing. (Ilia)</li> - <li>Fixed bug #44683 (popen crashes when an invalid mode is passed). (Pierre)</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.11 include:</b> -</p> -<ul> - <li>Fixed regression in cURL extension that prevented flush of data to output defined as a file handle.</li> - <li>A number of fixes for the FILTER_VALIDATE_EMAIL validation rule</li> - <li>Fixed bug #49361 (wordwrap() wraps incorrectly on end of line boundaries).</li> - <li>Fixed bug #48696 (ldap_read() segfaults with invalid parameters)</li> - <li>Fixed bug #48645 (mb_convert_encoding() doesn't understand hexadecimal html-entities).</li> - <li>Fixed bug #48619 (imap_search ALL segfaults).</li> - <li>Fixed bug #48400 (imap crashes when closing stream opened with OP_PROTOTYPE flag).</li> - <li>Fixed bug #47351 (Memory leak in DateTime).</li> - <li>Over 60 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.11. -</p> - -<p> - For a full list of changes in PHP 5.2.11, see the <a href="/ChangeLog-5.php#5.2.11">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.11'); diff --git a/releases/5_2_12.php b/releases/5_2_12.php index c85ea50700..90f802c58f 100644 --- a/releases/5_2_12.php +++ b/releases/5_2_12.php @@ -1,55 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.12 Release Announcement"); -?> - -<h1>PHP 5.2.12 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.12. This release focuses on improving the stability of -the PHP 5.2.x branch with over 60 bug fixes, some of which are security related. -All users of PHP 5.2 are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.12:</b> -</p> -<ul> - <li>Fixed a safe_mode bypass in tempnam() identified by Grzegorz Stachowiak. (CVE-2009-3557, Rasmus)</li> - <li>Fixed a open_basedir bypass in posix_mkfifo() identified by Grzegorz Stachowiak. (CVE-2009-3558, Rasmus)</li> - <li>Added "max_file_uploads" INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion, identified by Bogdan Calin. (CVE-2009-4017, Ilia)</li> - <li>Added protection for $_SESSION from interrupt corruption and improved "session.save_path" check, identified by Stefan Esser. (CVE-2009-4143, Stas)</li> - <li>Fixed bug #49785 (insufficient input string validation of htmlspecialchars()). (CVE-2009-4142, Moriyoshi, hello at iwamot dot com)</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.12 include:</b> -</p> -<ul> - <li>Fixed unnecessary invocation of setitimer when timeouts have been disabled. (Arvind Srinivasan)</li> - <li>Fixed crash in com_print_typeinfo when an invalid typelib is given. (Pierre)</li> - <li>Fixed crash in SQLiteDatabase::ArrayQuery() and SQLiteDatabase::SingleQuery() when calling using Reflection. (Felipe)</li> - <li>Fixed crash when instantiating PDORow and PDOStatement through Reflection. (Felipe)</li> - <li>Fixed memory leak in openssl_pkcs12_export_to_file(). (Felipe)</li> - <li>Fixed bug #50207 (segmentation fault when concatenating very large strings on 64bit linux). (Ilia)</li> - <li>Fixed bug #50162 (Memory leak when fetching timestamp column from Oracle database). (Felipe)</li> - <li>Fixed bug #50006 (Segfault caused by uksort()). (Felipe)</li> - <li>Fixed bug #50005 (Throwing through Reflection modified Exception object makes segmentation fault). (Felipe)</li> - <li>Fixed bug #49174 (crash when extending PDOStatement and trying to set queryString property). (Felipe) </li> - <li>Fixed bug #49098 (mysqli segfault on error). (Rasmus)</li> - - <li>Over 50 other bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.12. -</p> - -<p> - For a full list of changes in PHP 5.2.12, see the <a href="/ChangeLog-5.php#5.2.12">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.12'); diff --git a/releases/5_2_13.php b/releases/5_2_13.php index 8402449f1f..ceca4ded6f 100644 --- a/releases/5_2_13.php +++ b/releases/5_2_13.php @@ -1,48 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.13 Release Announcement"); -?> - -<h1>PHP 5.2.13 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.13. This release focuses on improving the stability of -the PHP 5.2.x branch with over 40 bug fixes, some of which are security related. -All users of PHP 5.2 are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.13:</b> -</p> -<ul> - <li>Fixed safe_mode validation inside tempnam() when the directory path does not end with a /). (Martin Jansen)</li> - <li>Fixed a possible open_basedir/safe_mode bypass in the session extension identified by Grzegorz Stachowiak. (Ilia)</li> - <li>Improved LCG entropy. (Rasmus, Samy Kamkar)</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.13 include:</b> -</p> -<ul> - <li>Fixed bug #50940 Custom content-length set incorrectly in Apache sapis. (Brian France, Rasmus)</li> - <li>Fixed bug #50847 (strip_tags() removes all tags greater then 1023 bytes long). (Ilia)</li> - <li>Fixed bug #50661 (DOMDocument::loadXML does not allow UTF-16). (Rob)</li> - <li>Fixed bug #50632 (filter_input() does not return default value if the variable does not exist). (Ilia)</li> - <li>Fixed bug #50540 (Crash while running ldap_next_reference test cases). (Sriram)</li> - <li>Fixed bug #49851 (http wrapper breaks on 1024 char long headers). (Ilia)</li> - - <li>Over 30 other bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.13. -</p> - -<p> - For a full list of changes in PHP 5.2.13, see the <a href="/ChangeLog-5.php#5.2.13">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.13'); diff --git a/releases/5_2_14.php b/releases/5_2_14.php index ad0f78486a..fc3235f80d 100644 --- a/releases/5_2_14.php +++ b/releases/5_2_14.php @@ -1,60 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.14 Release Announcement"); -?> - -<h1>PHP 5.2.14 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.14. This release focuses on improving the -stability of the PHP 5.2.x branch with over 60 bug fixes, some of which -are security related.</p> - -<p> -This release marks the end of the active support for PHP -5.2. Following this release the PHP 5.2 series will receive no further -active bug maintenance. Security fixes for PHP 5.2 might be published on a -case by cases basis. All users of PHP 5.2 are encouraged to upgrade to -PHP 5.3.</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.14:</b> -</p> -<ul> - - <li>Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs.</li> - <li>Fixed a possible interruption array leak in strrchr().(CVE-2010-2484)</li> - <li>Fixed a possible interruption array leak in strchr(), strstr(), substr(), chunk_split(), strtok(), addcslashes(), str_repeat(), trim().</li> - <li>Fixed a possible memory corruption in substr_replace().</li> - <li>Fixed SplObjectStorage unserialization problems (CVE-2010-2225).</li> - <li>Fixed a possible stack exaustion inside fnmatch().</li> - <li>Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288).</li> - <li>Fixed handling of session variable serialization on certain prefix characters.</li> - <li>Fixed a possible arbitrary memory access inside sqlite extension. Reported by Mateusz Kocielski.</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.14 include:</b> -</p> -<ul> - - <li>Upgraded bundled PCRE to version 8.02.</li> - <li>Updated timezone database to version 2010.5.</li> - <li>Fixed bug #52238 (Crash when an Exception occured in iterator_to_array).</li> - <li>Fixed bug #52237 (Crash when passing the reference of the property of a non-object).</li> - <li>Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function).</li> - <li>Fixed bug #51822 (Segfault with strange __destruct() for static class variables).</li> - <li>Fixed bug #51552 (debug_backtrace() causes segmentation fault and/or memory issues).</li> - <li>Fixed bug #49267 (Linking fails for iconv on MacOS: "Undefined symbols: _libiconv").</li> -</ul> - -<p>To prepare for upgrading to PHP 5.3, now that PHP 5.2's support ended, a -migration guide available on <a -href="/migration53">http://php.net/migration53</a>, details the changes between -PHP 5.2 and PHP 5.3.</p> - -<p>For a full list of changes in PHP 5.2.14 see the ChangeLog at -<http://www.php.net/ChangeLog-5.php#5.2.14>.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.14'); diff --git a/releases/5_2_15.php b/releases/5_2_15.php index fb8bf9781b..319ab9a8f0 100644 --- a/releases/5_2_15.php +++ b/releases/5_2_15.php @@ -1,46 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.15 Release Announcement"); -?> - -<h1>PHP 5.2.15 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.15. This release marks the end of support -for PHP 5.2. All users of PHP 5.2 are encouraged to upgrade to PHP 5.3. -</p> - -<p> -This release focuses on improving the security and stability of the -PHP 5.2.x branch with a small number, of predominatly security fixes. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.15:</b> -</p> -<ul> - <li>Fixed extract() to do not overwrite $GLOBALS and $this when using EXTR_OVERWRITE.</li> - <li>Fixed crash in zip extract method (possible CWE-170).</li> - <li>Fixed a possible double free in imap extension.</li> - <li>Fixed possible flaw in open_basedir (CVE-2010-3436).</li> - <li>Fixed NULL pointer dereference in ZipArchive::getArchiveComment. (CVE-2010-3709).</li> - <li>Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with large amount of data).</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.15 include:</b> -</p> -<ul> - <li>Fixed bug #47643 (array_diff() takes over 3000 times longer than php 5.2.4).</li> - <li>Fixed bug #44248 (RFC2616 transgression while HTTPS request through proxy with SoapClient object).</li> -</ul> - -<p>To prepare for upgrading to PHP 5.3, now that PHP 5.2's support ended, a -migration guide available on <a href="/migration53">http://php.net/migration53</a>, details the changes between -PHP 5.2 and PHP 5.3.</p> - -<p>For a full list of changes in PHP 5.2.15 see the ChangeLog at -<a href="http://www.php.net/ChangeLog-5.php#5.2.15">http://www.php.net/ChangeLog-5.php#5.2.15</a>.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.15'); diff --git a/releases/5_2_16.php b/releases/5_2_16.php index 34224cd50d..3b8518607a 100644 --- a/releases/5_2_16.php +++ b/releases/5_2_16.php @@ -1,28 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.16 Release Announcement"); -?> - -<h1>PHP 5.2.16 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.16. This release marks the end of support -for PHP 5.2. All users of PHP 5.2 are encouraged to upgrade to PHP 5.3. -</p> - -<p> -This release focuses on addressing a regression in open_basedir implementation -introduced in 5.2.15 in addition to fixing a crash inside PDO::pgsql -on data retrieval when the server is down. All users who have upgraded to 5.2.15 and are -utilizing open_basedir are strongly encouraged to upgrade to 5.2.16 or 5.3.4. -</p> - -<p>To prepare for upgrading to PHP 5.3, now that PHP 5.2's support ended, a -migration guide available on <a href="/migration53">http://php.net/migration53</a>, details the changes between -PHP 5.2 and PHP 5.3.</p> - -<p>For a full list of changes in PHP 5.2.16 see the ChangeLog at -<a href="/ChangeLog-5.php#5.2.16">http://www.php.net/ChangeLog-5.php#5.2.16</a>.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.16'); diff --git a/releases/5_2_17.php b/releases/5_2_17.php index ac4a748273..bddf7d2c87 100644 --- a/releases/5_2_17.php +++ b/releases/5_2_17.php @@ -1,31 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.17 Release Announcement"); -?> - -<h1>PHP 5.2.17 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.17.</p> - -<p>This release resolves a critical issue, reported as PHP bug #53632, -where conversions from string to double might cause the PHP interpreter -to hang on systems using x87 FPU registers.</p> - -<p>The problem is known to only affect x86 32-bit PHP processes, regardless -of whether the system hosting PHP is 32-bit or 64-bit. You can test -whether your system is affected by running <a href="/distributions/test_bug53632.txt">this script</a> -from the command line.</p> - -<p>All users of PHP are strongly advised to update to these versions -immediately.</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.17:</b> -</p> -<ul> - <li>Fixed bug #53632 (PHP hangs on numeric value 2.2250738585072011e-308). (CVE-2010-4645)</li> -</ul> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.17'); diff --git a/releases/5_2_2.php b/releases/5_2_2.php index 46685cb035..bdeebf8137 100644 --- a/releases/5_2_2.php +++ b/releases/5_2_2.php @@ -1,62 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.2 Release Announcement"); -?> - -<h1>PHP 5.2.2 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability of PHP 5.2.2. -This release continues to improve the security and the stability of the 5.X -branch and all users are strongly encouraged to upgrade to it as soon as possible. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.2:</b> -</p> -<ul> - <li>Fixed CVE-2007-1001, GD wbmp used with invalid image size (by Ivan Fratric)</li> - <li>Fixed a header injection via Subject and To parameters to the mail() function (MOPB-34 by Stefan Esser)</li> - <li>Fixed asciiz byte truncation inside mail() (MOPB-33 by Stefan Esser)</li> - <li>Fixed wrong length calculation in unserialize S type (MOPB-29 by Stefan Esser)</li> - <li>Fixed a bug in mb_parse_str() that can be used to activate register_globals (MOPB-26 by Stefan Esser)</li> - <li>Fixed unallocated memory access/double free in in array_user_key_compare() (MOPB-24 by Stefan Esser)</li> - <li>Fixed a double free inside session_regenerate_id() (MOPB-22 by Stefan Esser)</li> - <li>Added missing open_basedir & safe_mode checks to zip:// and bzip:// wrappers. (MOPB-20, MOPB-21 by Stefan Esser).</li> - <li>Fixed substr_compare and substr_count information leak (MOPB-14 by Stefan Esser) (Stas, Ilia)</li> - <li>Limit nesting level of input variables with max_input_nesting_level as fix for (MOPB-03 by Stefan Esser)</li> - <li>Fixed CRLF injection inside ftp_putcmd(). (by loveshell[at]Bug.Center.Team)</li> - <li>Fixed a possible super-global overwrite inside import_request_variables(). (by Stefano Di Paola, Steffan Esser)</li> - <li>Fixed a remotely trigger-able buffer overflow inside make_http_soap_request(). (by Ilia Alshanetsky)</li> - <li>Fixed a buffer overflow inside user_filter_factory_create(). (by Ilia Alshanetsky)</li> - <li>Fixed a remotely trigger-able buffer overflow inside bundled libxmlrpc library. (by Stanislav Malyshev)</li> -</ul> - -<p> -While majority of the issues outlined above are local, in some circumstances given specific code paths they can be -triggered externally. Therefor, we strongly recommend that if you use code utilizing the functions and extensions identified as -having had vulnerabilities in them, you consider upgrading your PHP. -</p> - -<p> -<b>The key improvements of PHP 5.2.2 include:</b> -</p> -<ul> - <li>Further improvements to the Memory Manager with the goal of improving realloc() performance.</li> - <li>Bundled GD, SQLite and PCRE libraries were upgraded.</li> - <li>Additional methods were added to SPL's DirectoryIterator and SplFileInfo classes.</li> - <li>Over 120 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.2. -</p> - -<p> - For a full list of changes in PHP 5.2.2, see the <a href="/ChangeLog-5.php#5.2.2">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.2'); diff --git a/releases/5_2_3.php b/releases/5_2_3.php index 9eab6eee3a..43d0414d0d 100644 --- a/releases/5_2_3.php +++ b/releases/5_2_3.php @@ -1,61 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.3 Release Announcement"); -?> - -<h1>PHP 5.2.3 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability -of PHP 5.2.3. This release continues to improve the security and the -stability of the 5.X branch as well as addressing two regressions introduced -by the previous 5.2 releases. These regressions relate to the timeout -handling over non-blocking SSL connections and the lack of -HTTP_RAW_POST_DATA in certain conditions. All users are encouraged to -upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.3:</b> -</p> -<ul> - <li>Fixed an integer overflow inside chunk_split() (by Gerhard Wagner, CVE-2007-2872)</li> - <li>Fixed possible infinite loop in imagecreatefrompng. (by Xavier Roche, CVE-2007-2756)</li> - <li>Fixed ext/filter Email Validation Vulnerability (MOPB-45 by Stefan Esser, CVE-2007-1900)</li> - <li>Fixed bug #41492 (open_basedir/safe_mode bypass inside realpath()) (by bugs dot php dot net at chsc dot dk)</li> - <li>Improved fix for CVE-2007-1887 to work with non-bundled sqlite2 lib.</li> - <li>Added mysql_set_charset() to allow runtime altering of connection encoding.</li> -</ul> - -<p> -<b>The key improvements of PHP 5.2.3 include:</b> -</p> -<ul> - <li>Improved compilation of heredocs and interpolated strings.</li> - <li>Optimized out a couple of per-request syscalls.</li> - <li>Optimized digest generation in md5() and sha1() functions.</li> - - <li>Fixed bug #41236 (Regression in timeout handling of non-blocking SSL connections during reads and writes)</li> - <li>Fixed bug #39542 (Behavior of require/include different to < 5.2.0)</li> - <li>Fixed bug #41293 (Fixed creation of HTTP_RAW_POST_DATA when there is no default post handler)</li> - <li>Fixed bug #41347 (checkdnsrr() segfaults on empty hostname)</li> - <li>Fixed bug #41353 (crash in openssl_pkcs12_read() on invalid input)</li> - <li>Fixed bug #41403 (json_decode cannot decode floats if localeconv decimal_point is not '.')</li> - <li>Fixed bug #41421 (Uncaught exception from a stream wrapper segfaults)</li> - <li>Fixed bug #41504 (json_decode() incorrectly decodes JSON arrays with empty string keys).</li> - - <li>Over 40 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.3. -</p> - -<p> - For a full list of changes in PHP 5.2.3, see the <a href="/ChangeLog-5.php#5.2.3">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.3'); diff --git a/releases/5_2_4.php b/releases/5_2_4.php index adf5277165..8d4e24b518 100644 --- a/releases/5_2_4.php +++ b/releases/5_2_4.php @@ -1,61 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.4 Release Announcement"); -?> - -<h1>PHP 5.2.4 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.4. This release focuses on improving the stability -of the PHP 5.2.X branch with over 120 various bug fixes in -addition to resolving several low priority security bugs. All -users of PHP are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.4:</b> -</p> -<ul> - <li>Fixed a floating point exception inside wordwrap() (Reported by Mattias Bengtsson)</li> - <li>Fixed several integer overflows inside the GD extension (Reported by Mattias Bengtsson)</li> - <li>Fixed size calculation in chunk_split() (Reported by Gerhard Wagner)</li> - <li>Fixed integer overflow in str[c]spn(). (Reported by Mattias Bengtsson)</li> - <li>Fixed money_format() not to accept multiple %i or %n tokens. (Reported by Stanislav Malyshev)</li> - <li>Fixed zend_alter_ini_entry() memory_limit interruption vulnerability. (Reported by Stefan Esser)</li> - <li>Fixed INFILE LOCAL option handling with MySQL extensions not to be allowed when open_basedir or safe_mode is active. (Reported by Mattias Bengtsson)</li> - <li>Fixed session.save_path and error_log values to be checked against open_basedir and safe_mode (CVE-2007-3378) (Reported by Maksymilian Arciemowicz)</li> - <li>Fixed a possible invalid read in glob() win32 implementation (CVE-2007-3806) (Reported by shinnai)</li> - <li>Fixed a possible buffer overflow in php_openssl_make_REQ (Reported by zatanzlatan at hotbrev dot com)</li> - <li>Fixed an open_basedir bypass inside glob() function (Reported by dr at peytz dot dk)</li> - <li>Fixed a possible open_basedir bypass inside session extension when the session file is a symlink (Reported by c dot i dot morris at durham dot ac dot uk)</li> - <li>Improved fix for MOPB-03-2007.</li> - <li>Corrected fix for CVE-2007-2872.</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.4 include:</b> -</p> -<ul> - <li>Upgraded PCRE to version 7.2</li> - <li>Added persistent connection status checker to pdo_pgsql.</li> - <li>Fixed oci8 and PDO_OCI extensions to allow configuring with Oracle 11g client libraries.</li> - <li>Fixed bug #41831 (pdo_sqlite prepared statements convert resources to strings).</li> - <li>Fixed bug #41770 (SSL: fatal protocol error due to buffer issues)</li> - <li>Fixed bug #41713 (Persistent memory consumption on win32 since 5.2)</li> - - <li>Over 120 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.4. -</p> - -<p> - For a full list of changes in PHP 5.2.4, see the <a href="/ChangeLog-5.php#5.2.4">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.4'); diff --git a/releases/5_2_5.php b/releases/5_2_5.php index 5f738cdd6e..4d833e949d 100644 --- a/releases/5_2_5.php +++ b/releases/5_2_5.php @@ -1,53 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.5 Release Announcement"); -?> - -<h1>PHP 5.2.5 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.5. This release focuses on improving the stability of -the PHP 5.2.x branch with over 60 bug fixes, several of which are security related. -All users of PHP are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.5:</b> -</p> -<ul> - <li>Fixed dl() to only accept filenames. Reported by Laurent Gaffie.</li> - <li>Fixed dl() to limit argument size to MAXPATHLEN (CVE-2007-4887). Reported by Laurent Gaffie.</li> - <li>Fixed htmlentities/htmlspecialchars not to accept partial multibyte sequences. Reported by Rasmus Lerdorf</li> - <li>Fixed possible triggering of buffer overflows inside glibc implementations of the fnmatch(), setlocale() and glob() functions. Reported by Laurent Gaffie.</li> - <li>Fixed "mail.force_extra_parameters" php.ini directive not to be modifiable in .htaccess due to the security implications. Reported by SecurityReason.</li> - <li>Fixed bug #42869 (automatic session id insertion adds sessions id to non-local forms).</li> - <li>Fixed bug #41561 (Values set with php_admin_* in httpd.conf can be overwritten with ini_set()).</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.5 include:</b> -</p> -<ul> - <li>Upgraded PCRE to version 7.3</li> - <li>Updated timezone database to version 2007.9</li> - <li>Added ability to control memory consumption between request using ZEND_MM_COMPACT environment variable.</li> - <li>Improved speed of array_intersect_key(), array_intersect_assoc(), array_uintersect_assoc(), array_diff_key(), array_diff_assoc() and array_udiff_assoc() functions</li> - <li>Fixed bug #43139 (PDO ignores ATTR_DEFAULT_FETCH_MODE in some cases with fetchAll())</li> - <li>Fixed bug #42785 (json_encode() formats doubles according to locale rather then following standard syntax)</li> - <li>Fixed bug #42549 (ext/mysql failed to compile with libmysql 3.23)</li> - <li>Over 60 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.5. -</p> - -<p> - For a full list of changes in PHP 5.2.5, see the <a href="/ChangeLog-5.php#5.2.5">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.5'); diff --git a/releases/5_2_6.php b/releases/5_2_6.php index aadcebfed2..4e0e7a82ff 100644 --- a/releases/5_2_6.php +++ b/releases/5_2_6.php @@ -1,56 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.6 Release Announcement"); -?> - -<h1>PHP 5.2.6 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.6. This release focuses on improving the stability of -the PHP 5.2.x branch with over 120 bug fixes, several of which are security related. -All users of PHP are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.6:</b> -</p> -<ul> - <li>Fixed possible stack buffer overflow in the FastCGI SAPI identified by Andrei Nigmatulin.</li> - <li>Fixed integer overflow in printf() identified by Maksymilian Aciemowicz.</li> - <li>Fixed security issue detailed in CVE-2008-0599 identified by Ryan Permeh.</li> - <li>Fixed a safe_mode bypass in cURL identified by Maksymilian Arciemowicz.</li> - <li>Properly address incomplete multibyte chars inside escapeshellcmd() identified by Stefan Esser.</li> - <li>Upgraded bundled PCRE to version 7.6</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.6 include:</b> -</p> -<ul> - <li>Fixed two possible crashes inside the posix extension.</li> - <li>Fixed bug #44069 (Huge memory usage with concatenation using . instead of .=)</li> - <li>Fixed bug #44141 (private parent constructor callable through static function).</li> - <li>Fixed bug #43589 (a possible infinite loop in bz2_filter.c).</li> - <li>Fixed bug #43450 (Memory leak on some functions with implicit object __toString() call).</li> - <li>Fixed bug #43201 (Crash on using uninitialized vals and __get/__set).</li> - <li>Fixed bug #42978 (mismatch between number of bound params and values causes a crash in pdo_pgsql).</li> - <li>Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class).</li> - <li>Fixed bug #42736 (xmlrpc_server_call_method() crashes).</li> - <li>Fixed bug #42369 (Implicit conversion to string leaks memory).</li> - <li>Fixed bug #41562 (SimpleXML memory issue).</li> - <li>Over 120 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.6. -</p> - -<p> - For a full list of changes in PHP 5.2.6, see the <a href="/ChangeLog-5.php#5.2.6">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.6'); diff --git a/releases/5_2_7.php b/releases/5_2_7.php index d188648933..b89c88f906 100644 --- a/releases/5_2_7.php +++ b/releases/5_2_7.php @@ -1,54 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.7 Release Announcement"); -?> - -<h1>PHP 5.2.7 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.7. This release focuses on improving the stability of -the PHP 5.2.x branch with over 120 bug fixes, several of which are security related. -All users of PHP are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.7:</b> -</p> -<ul> - <li>Upgraded PCRE to version 7.8 (Fixes CVE-2008-2371)</li> - <li>Fixed missing initialization of BG(page_uid) and BG(page_gid), reported by Maksymilian Arciemowicz.</li> - <li>Fixed incorrect php_value order for Apache configuration, reported by Maksymilian Arciemowicz.</li> - <li>Fixed a crash inside gd with invalid fonts (Fixes CVE-2008-3658).</li> - <li>Fixed a possible overflow inside memnstr (Fixes CVE-2008-3659).</li> - <li>Fixed security issues detailed in CVE-2008-2665 and CVE-2008-2666.</li> - <li>Fixed bug #45151 (Crash with URI/file..php (filename contains 2 dots)).(Fixes CVE-2008-3660)</li> - <li>Fixed bug #42862 (IMAP toolkit crash: rfc822.c legacy routine buffer overflow). (Fixes CVE-2008-2829)</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.7 include:</b> -</p> -<ul> - <li>Fixed several memory leaks inside the readline and sqlite extensions</li> - <li>A number of corrections relating to date parsing inside the date extension</li> - <li>Fixed bugs relating to data retrieval in the PDO extension</li> - <li>A series of crashes in various areas of code were resolved</li> - <li>Several corrections were made to the strip_tags() function in terms of < and <?XML handling</li> - <li>A number of bugs were fixed in extract() function when EXTR_REFS flag is being used</li> - <li>Added the ability to log PHP errors to the SAPI (Ex. Apache log) logging facility</li> - <li>Over 170 bug fixes.</li></li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.7. -</p> - -<p> - For a full list of changes in PHP 5.2.7, see the <a href="/ChangeLog-5.php#5.2.7">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.7'); diff --git a/releases/5_2_8.php b/releases/5_2_8.php index 4e8731caea..345476547b 100644 --- a/releases/5_2_8.php +++ b/releases/5_2_8.php @@ -1,27 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.8 Release Announcement"); -?> - -<h1>PHP 5.2.8 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate availability -of PHP 5.2.8. This release addresses a regression introduced by 5.2.7 in -regard to the magic_quotes functionality, that was broken by an incorrect fix -to the filter extension. All users who have upgraded to 5.2.7 are encouraged -to upgrade to this release, alternatively you can apply a work-around for -the bug by changing "filter.default_flags=0" in php.ini -</p> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.8. -</p> - -<p> - For a full list of changes in PHP 5.2.8, see the <a href="/ChangeLog-5.php#5.2.8">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.8'); diff --git a/releases/5_2_9.php b/releases/5_2_9.php index da895cda43..a10b2ad043 100644 --- a/releases/5_2_9.php +++ b/releases/5_2_9.php @@ -1,54 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_2_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.2.9 Release Announcement"); -?> - -<h1>PHP 5.2.9 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.2.9. This release focuses on improving the stability of -the PHP 5.2.x branch with over 50 bug fixes, several of which are security related. -All users of PHP are encouraged to upgrade to this release. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.2.9:</b> -</p> -<ul> - <li>Fixed security issue in imagerotate(), background colour isn't validated correctly with a non truecolour image. Reported by Hamid Ebadi, APA Laboratory (Fixes CVE-2008-5498). (Scott)</li> - <li>Fixed a crash on extract in zip when files or directories entry names contain a relative path. (Pierre)</li> - <li>Fixed explode() behavior with empty string to respect negative limit. (Shire)</li> - <li>Fixed a segfault when malformed string is passed to json_decode(). (Scott)</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.2.9 include:</b> -</p> -<ul> - <li>Added optional sorting type flag parameter to array_unique(). Default is SORT_REGULAR. (Andrei)</li> - <li>Fixed bug #45996 (libxml2 2.7 causes breakage with character data in xml_parse()). (Rob)</li> - <li>A number of fixes in the mbstring extension (Moriyoshi)</li> - <li>Fixed bug #44336 (Improve pcre UTF-8 string matching performance). (frode at coretrek dot com, Nuno)</li> - <li>Fixed bug #46699 (xml_parse crash when parser is namespace aware). (Rob)</li> - <li>Fixed bug #46748 (Segfault when an SSL error has more than one error). (Scott)</li> - <li>Fixed bug #46889 (Memory leak in strtotime()). (Derick)</li> - <li>Fixed bug #47049 (SoapClient::__soapCall causes a segmentation fault). (Dmitry)</li> - <li>Fixed bug #47165 (Possible memory corruption when passing return value by reference). (Dmitry)</li> - <li>Fixed bug #47282 (FILTER_VALIDATE_EMAIL is marking valid email addresses as invalid). (Ilia)</li> - <li>Fixed bug #47422 (modulus operator returns incorrect results on 64 bit linux). (Matt)</li> - <li>Over 50 bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.0 and PHP 5.1, an upgrade guide is available -<a href="/UPDATE_5_2.txt">here</a>, detailing the changes between those releases -and PHP 5.2.9. -</p> - -<p> - For a full list of changes in PHP 5.2.9, see the <a href="/ChangeLog-5.php#5.2.9">ChangeLog</a>. -</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.2.9'); diff --git a/releases/5_3_0.php b/releases/5_3_0.php index 16429cd0fc..afa465e5f5 100644 --- a/releases/5_3_0.php +++ b/releases/5_3_0.php @@ -1,81 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.0 Release Announcement"); -?> - -<h1>PHP 5.3.0 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate release of PHP -5.3.0. This release is a major improvement in the 5.X series, which includes a -large number of new features and bug fixes. -</p> - -<p> -<b>The key features of PHP 5.3.0 include:</b> -</p> -<ul> - <li>Support for <a href="http://php.net/namespaces">namespaces</a></li> - <li><a href="http://php.net/lsb">Late static binding</a></li> - <li><a href="http://php.net/closures">Lambda Functions and Closures</a></li> - <li> - Syntax additions: - <a href="http://php.net/nowdoc">NOWDOC</a>, - <a href="http://php.net/ternary">ternary short cut "?:"</a> and - <a href="http://php.net/goto">jump label</a> (limited goto), - <a href="http://php.net/__callstatic">__callStatic()</a> - </li> - <li>Under the hood performance improvements</li> - <li>Optional <a href="http://php.net/gc_enable">garbage collection</a> for cyclic references</li> - <li>Optional <a href="http://php.net/mysqli.mysqlnd">mysqlnd</a> PHP native replacement for libmysql</li> - <li>Improved <a href="http://windows.php.net">Windows</a> support including VC9 and experimental X64 binaries - as well as portability to other supported platforms</li> - <li>More consistent float rounding</li> - <li>Deprecation notices are now handled via <code>E_DEPRECATED</code> (part of <code>E_ALL</code>) - instead of the <code>E_STRICT</code> error level</li> - <li>Several enhancements to enable more <a href="http://php.net/ini.sections">flexiblity in php.ini</a> (and ini parsing in general)</li> - <li>New bundled extensions: - <a href="http://php.net/phar">ext/phar</a>, - <a href="http://php.net/intl">ext/intl</a>, - <a href="http://php.net/fileinfo">ext/fileinfo</a>, - <a href="http://php.net/sqlite3">ext/sqlite3</a>, - <a href="http://php.net/enchant">ext/enchant</a> - </li> - <li>Over 140 bug fixes and improvements to PHP, in particular to: - <a href="http://php.net/openssl">ext/openssl</a>, - <a href="http://php.net/spl">ext/spl</a> and - <a href="http://php.net/datetime">ext/date</a> - </li> -</ul> -<p>This release also drops several extensions and unifies the usage of internal APIs. -Users should be aware of the following known backwards compatibility breaks:</p> -<ul> - <li>Parameter parsing API unification will cause some functions to behave more - or less strict when it comes to type juggling</li> - <li>Removed the following extensions: - <a href="http://php.net/mhash">ext/mhash</a> (see <a href="http://php.net/hash">ext/hash</a>), - <a href="http://php.net/msql">ext/msql</a>, - <a href="http://php.net/pspell">ext/pspell</a> (see <a href="http://php.net/enchant">ext/enchant</a>), - <a href="http://php.net/sybase">ext/sybase</a> (see <a href="http://php.net/sybase">ext/sybase_ct</a>) - </li> - <li>Moved the following extensions to PECL: - <a href="http://php.net/ming">ext/ming</a>, - <a href="http://php.net/fbsql">ext/fbsql</a>, - <a href="http://php.net/ncurses">ext/ncurses</a>, - <a href="http://php.net/fdf">ext/fdf</a> - </li> - <li>Removed <a href="http://php.net/manual/ini.core.php#ini.zend.ze1-compatibility-mode">zend.ze1_compatibility_mode</a></li> -</ul> - -<p> -For users upgrading from PHP 5.2 there is a migration guide -available <a href="http://php.net/migration53">here</a>, detailing -the changes between those releases and PHP 5.3.0. -</p> - -<p> - For a full list of changes in PHP 5.3.0, see the - <a href="/ChangeLog-5.php#5.3.0">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.0'); diff --git a/releases/5_3_1.php b/releases/5_3_1.php index 72d08ba64f..f01c56a439 100644 --- a/releases/5_3_1.php +++ b/releases/5_3_1.php @@ -1,50 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.1 Release Announcement"); -?> - -<h1>PHP 5.3.1 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate release of PHP -5.3.1. This is a maintenance release in the 5.3 series, which includes a -large number of bug fixes. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.3.1:</b> -</p> -<ul> - <li>Added "max_file_uploads" INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion.</li> - <li>Added missing sanity checks around exif processing.</li> - <li>Fixed a safe_mode bypass in tempnam().</li> - <li>Fixed a open_basedir bypass in posix_mkfifo().</li> - <li>Fixed bug #50063 (safe_mode_include_dir fails).</li> - <li>Fixed bug #44683 (popen crashes when an invalid mode is passed).</li> -</ul> - -<p> -<b>Key Bug Fixes in PHP 5.3.1 include:</b> -</p> -<ul> - <li>Fixed crash in com_print_typeinfo when an invalid typelib is given.</li> - <li>Fixed crash in SQLiteDatabase::ArrayQuery() and SQLiteDatabase::SingleQuery() when calling using Reflection.</li> - <li>Fixed crash when instantiating PDORow and PDOStatement through Reflection.</li> - <li>Fixed bug #49910 (no support for ././@LongLink for long filenames in phar - tar support).</li> - <li>Fixed bug #49908 (throwing exception in __autoload crashes when interface is not defined).</li> - <li>Around 100 other bug fixes</li> -</ul> - -<p> -For users upgrading from PHP 5.2 there is a migration guide -available <a href="http://php.net/migration53">here</a>, detailing -the changes between those releases and PHP 5.3. -</p> - -<p> - For a full list of changes in PHP 5.3.1, see the - <a href="/ChangeLog-5.php#5.3.1">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.1'); diff --git a/releases/5_3_10.php b/releases/5_3_10.php index 17fdaf2d0e..9da5cab3eb 100644 --- a/releases/5_3_10.php +++ b/releases/5_3_10.php @@ -1,22 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.10 Release Announcement"); -?> - -<h1>PHP 5.3.10 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.10. This release delivers a critical security -fix.</p> - -<p>Security Fixes in PHP 5.3.10:</p> - -<ul> - <li>Fixed arbitrary remote code execution vulnerability reported by Stefan - Esser, CVE-2012-0830.</li> -</ul> - -<p>All users are strongly encouraged to upgrade to PHP 5.3.10.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.10'); diff --git a/releases/5_3_11.php b/releases/5_3_11.php index 9a24adfe0e..5e359b8d10 100644 --- a/releases/5_3_11.php +++ b/releases/5_3_11.php @@ -1,39 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.11 Release Announcement"); -?> - -<h1>PHP 5.3.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of -PHP 5.3.11. This release focuses on improving the stability of the -PHP 5.3 branch with over 60 bug fixes, some of which are security related.</p> - -<p>Security Enhancements for PHP 5.3.11:</p> - -<ul> - <li>Fixed bug #61043 (Regression in magic_quotes_gpc fix for CVE-2012-0831). - Reported by Stefan Esser. (Ondřej Surý)</li> - <li>Fixed bug #54374 (Insufficient validating of upload name leading to - corrupted $_FILES indices). (CVE-2012-1172). (Stas, lekensteyn at - gmail dot com, Pierre)</li> - <li>Add open_basedir checks to readline_write_history and readline_read_history. - (Rasmus, reported by Mateusz Goik)</li> -</ul> - -<p>Key enhancements in PHP 5.3.11 include:</p> - -<ul> - <li>Added debug info handler to DOM objects. (Gustavo, Joey Smith)</li> - <li>Fixed bug #61172 (Add Apache 2.4 support). (Chris Jones)</li> -</ul> - -<p>For a full list of changes in PHP 5.3.11, see the <a -href="/ChangeLog-5.php#5.3.11">ChangeLog</a>. For source downloads please visit -our <a href="/downloads.php">downloads page</a>, Windows binaries can be found -on <a href="http://windows.php.net/download/">windows.php.net/download/</a>.</p> - -<p>All users of PHP 5.3 are strongly encouraged to upgrade to PHP 5.3.11.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.11'); diff --git a/releases/5_3_12.php b/releases/5_3_12.php index 6ef2c48943..dc19462d63 100644 --- a/releases/5_3_12.php +++ b/releases/5_3_12.php @@ -1,64 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.12 Release Announcement"); -?> - -<h1>PHP 5.3.12 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.12. This release delivers a security fix.</p> - -<p>There is a vulnerability in certain CGI-based setups that has gone -unnoticed for at least 8 years. <a -href="http://tools.ietf.org/html/draft-robinson-www-interface-00#section-7">Section -7 of the CGI spec</a> states:</p> - -<cite> - Some systems support a method for supplying a array of strings to the - CGI script. This is only used in the case of an `indexed' query. This - is identified by a "GET" or "HEAD" HTTP request with a URL search - string not containing any unencoded "=" characters. -</cite> - -<p>So requests that do not have a "=" in the query string are treated -differently from those who do in some CGI implementations. For PHP this -means that a request containing ?-s may dump the PHP source code for the -page, but a request that has ?-s&a=1 is fine.</p> - -<p>A large number of sites run PHP as either an Apache module through -mod_php or using php-fpm under nginx. Neither of these setups are -vulnerable to this. Straight shebang-style CGI also does not appear to -be vulnerable.</p> - -<p>If you are using Apache mod_cgi to run PHP you may be vulnerable. To see -if you are just add ?-s to the end of any of your URLs. If you see your -source code, you are vulnerable. If your site renders normally, you are not.</p> - -<p>Making a bad week worse, we had a bug in our bug system that toggled the -private flag of a bug report to public on a comment to the bug report -causing this issue to go public before we had time to test solutions to -the level we would like.</p> - -<p>To fix this update to PHP 5.3.12 or PHP 5.4.2. We recognize that since -this is a rather outdated way to run PHP it may not be feasible to -upgrade these sites to a modern version of PHP, so an alternative is to -configure your web server to not let these types of requests with query -strings starting with a "-" and not containing a "=" through. Adding a -rule like this should not break any sites. For Apache using mod_rewrite -it would look like this:</p> - -<pre> - RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC] - RewriteRule ^(.*) $1? [L] -</pre> - -<p>If you are writing your own rule, be sure to take the urlencoded ?%2ds -version into account.</p> - -<p>For source downloads of PHP 5.3.12 please visit -our <a href="/downloads.php">downloads page</a>, Windows binaries can be found -on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. A -<a href="/ChangeLog-5.php#5.3.12">ChangeLog</a> exists.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.12'); diff --git a/releases/5_3_13.php b/releases/5_3_13.php index 37803df495..d612a58afe 100644 --- a/releases/5_3_13.php +++ b/releases/5_3_13.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.13 Release Announcement"); -?> - -<h1>PHP 5.3.13 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.13. This release delivers a security fix. -All users of PHP 5.3 are encouraged to upgrade to this release</p> - -<p>PHP 5.3.13 completes a fix for a vulnerability in CGI-based setups -(CVE-2012-2311). Note: mod_php and php-fpm are not vulnerable to this -attack.</p> - -<p>For source downloads of PHP 5.3.13 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.13">ChangeLog</a>.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.13'); diff --git a/releases/5_3_14.php b/releases/5_3_14.php index 2deabd0e5b..fa1031aa9b 100644 --- a/releases/5_3_14.php +++ b/releases/5_3_14.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.14 Release Announcement"); -?> - -<h1>PHP 5.3.14 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.14. This release fixes two security related -issues. All users of PHP 5.3 are encouraged to upgrade to this release.</p> - -<p>PHP 5.3.14 fixes an security issue in the implementation of crypt() and a -heap overflow in the Phar extension. Over 30 bugs were fixed</p> - -<p>Please note that php://fd is now only available if the CLI SAPI is used</p> - -<p>For source downloads of PHP 5.3.14 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.14">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.14'); diff --git a/releases/5_3_15.php b/releases/5_3_15.php index 1e1504dd9e..1ded0fe834 100644 --- a/releases/5_3_15.php +++ b/releases/5_3_15.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.15 Release Announcement"); -?> - -<h1>PHP 5.3.15 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.15. Over 30 bugs were fixed, including a security -related overflow issue in the stream implementation. All users of PHP -are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.3.15 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.15">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.15'); diff --git a/releases/5_3_16.php b/releases/5_3_16.php index 77bda90b45..b7e74e2c26 100644 --- a/releases/5_3_16.php +++ b/releases/5_3_16.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.16 Release Announcement"); -?> - -<h1>PHP 5.3.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.3.16. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to -PHP 5.4.6. Alternatively, PHP 5.3.16 is recommended for those wishing to remain -on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.16 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.16">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.16'); diff --git a/releases/5_3_17.php b/releases/5_3_17.php index 713c0921d4..1b980e1015 100644 --- a/releases/5_3_17.php +++ b/releases/5_3_17.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.17 Release Announcement"); -?> - -<h1>PHP 5.3.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.3.17. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to -PHP 5.4.7. Alternatively, PHP 5.3.17 is recommended for those wishing to remain -on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.17">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.17'); diff --git a/releases/5_3_18.php b/releases/5_3_18.php index 7aaa678b7e..395ec4f19c 100644 --- a/releases/5_3_18.php +++ b/releases/5_3_18.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.18 Release Announcement"); -?> - -<h1>PHP 5.3.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.3.18. About 10 bugs were fixed. All users of PHP are encouraged to upgrade to -PHP 5.4.8. Alternatively, PHP 5.3.18 is recommended for those wishing to remain -on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.18">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.18'); diff --git a/releases/5_3_19.php b/releases/5_3_19.php index 90c159f543..d0913224d4 100644 --- a/releases/5_3_19.php +++ b/releases/5_3_19.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.19 Release Announcement"); -?> - -<h1>PHP 5.3.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.3.19. About 10 bugs were fixed. All users of PHP are encouraged to upgrade to -PHP 5.4.9. Alternatively, PHP 5.3.19 is recommended for those wishing to remain -on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.19">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.19'); diff --git a/releases/5_3_2.php b/releases/5_3_2.php index b18fadc91e..e0a554929e 100644 --- a/releases/5_3_2.php +++ b/releases/5_3_2.php @@ -1,52 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.2 Release Announcement"); -?> - -<h1>PHP 5.3.2 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate release of PHP -5.3.2. This is a maintenance release in the 5.3 series, which includes a -large number of bug fixes. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.3.2:</b> -</p> -<ul> - <li>Improved LCG entropy. (Rasmus, Samy Kamkar)</li> - <li>Fixed safe_mode validation inside tempnam() when the directory path does not end with a /). (Martin Jansen)</li> - <li>Fixed a possible open_basedir/safe_mode bypass in the session extension identified by Grzegorz Stachowiak. (Ilia)</li> -</ul> - -<p> -<b>Key Bug Fixes in PHP 5.3.2 include:</b> -</p> -<ul> - <li>Added support for SHA-256 and SHA-512 to php's crypt.</li> - <li>Added protection for $_SESSION from interrupt corruption and improved "session.save_path" check.</li> - <li>Fixed bug #51059 (crypt crashes when invalid salt are given).</li> - <li>Fixed bug #50940 Custom content-length set incorrectly in Apache sapis.</li> - <li>Fixed bug #50847 (strip_tags() removes all tags greater then 1023 bytes long).</li> - <li>Fixed bug #50723 (Bug in garbage collector causes crash).</li> - <li>Fixed bug #50661 (DOMDocument::loadXML does not allow UTF-16).</li> - <li>Fixed bug #50632 (filter_input() does not return default value if the variable does not exist).</li> - <li>Fixed bug #50540 (Crash while running ldap_next_reference test -cases).</li> - <li>Fixed bug #49851 (http wrapper breaks on 1024 char long headers).</li> - <li>Over 60 other bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.2 there is a migration guide -available <a href="http://php.net/migration53">here</a>, detailing -the changes between those releases and PHP 5.3. -</p> - -<p> - For a full list of changes in PHP 5.3.2, see the - <a href="/ChangeLog-5.php#5.3.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.2'); diff --git a/releases/5_3_20.php b/releases/5_3_20.php index 7cc60fead3..45983b5df4 100644 --- a/releases/5_3_20.php +++ b/releases/5_3_20.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.20 Release Announcement"); -?> - -<h1>PHP 5.3.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.3.20. About 15 bugs were fixed. Please note that the PHP 5.3 series will enter an end of life cycle and receive only critical fixes as of March 2013. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.20 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.20">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.20'); diff --git a/releases/5_3_21.php b/releases/5_3_21.php index d49f696477..ecd4f1e023 100644 --- a/releases/5_3_21.php +++ b/releases/5_3_21.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.21 Release Announcement"); -?> - -<h1>PHP 5.3.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.3.21. About 5 bugs were fixed All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.21 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.21">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.21'); diff --git a/releases/5_3_22.php b/releases/5_3_22.php index c4e58c9f17..545b513457 100644 --- a/releases/5_3_22.php +++ b/releases/5_3_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.22 Release Announcement"); -?> - -<h1>PHP 5.3.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.22. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.22 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.22">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.22'); diff --git a/releases/5_3_23.php b/releases/5_3_23.php index 4ea5b9735f..4dd26475db 100644 --- a/releases/5_3_23.php +++ b/releases/5_3_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.23 Release Announcement"); -?> - -<h1>PHP 5.3.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.23. About 7 bugs were fixed, including fixes for CVE-2013-1643 and CVE-2013-1635. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.23 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.23">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.23'); diff --git a/releases/5_3_24.php b/releases/5_3_24.php index 909cd51a03..f02b552ffd 100644 --- a/releases/5_3_24.php +++ b/releases/5_3_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.24 Release Announcement"); -?> - -<h1>PHP 5.3.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.24. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.24 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.24">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.24'); diff --git a/releases/5_3_25.php b/releases/5_3_25.php index 4e162928b6..ae8e8f0b1e 100644 --- a/releases/5_3_25.php +++ b/releases/5_3_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.25 Release Announcement"); -?> - -<h1>PHP 5.3.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.25. About 5 bugs were fixed. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.25 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.25 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.25">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.25'); diff --git a/releases/5_3_26.php b/releases/5_3_26.php index da17ce2073..7416c59bdb 100644 --- a/releases/5_3_26.php +++ b/releases/5_3_26.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.26 Release Announcement"); -?> - -<h1>PHP 5.3.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.25. About 6 bugs were fixed, including CVE 2013-2110. All users of PHP are encouraged to upgrade to PHP 5.4. PHP 5.3.26 is recommended for those wishing to remain on the 5.3 series.</p> - -<p>For source downloads of PHP 5.3.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.26">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.26'); diff --git a/releases/5_3_27.php b/releases/5_3_27.php index ef00ff993a..d26b95609e 100644 --- a/releases/5_3_27.php +++ b/releases/5_3_27.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.27 Release Announcement"); -?> - -<h1>PHP 5.3.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.27. About 10 bugs were fixed, including a security fix in the XML parser (Bug #65236).</p> - -<p><b>Please Note:</b> This will be the last regular release of the PHP 5.3 series. All users of PHP are encouraged to upgrade to PHP 5.4 or PHP 5.5. The PHP 5.3 series will receive only security fixes for the next year.</p> - -<p>For source downloads of PHP 5.3.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.27">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.27'); diff --git a/releases/5_3_28.php b/releases/5_3_28.php index 9f49e41d69..a13c3abdb3 100644 --- a/releases/5_3_28.php +++ b/releases/5_3_28.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.28 Release Announcement"); -?> - -<h1>PHP 5.3.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.3.28. This release fixes two security issues in OpenSSL module in PHP 5.3 - CVE-2013-4073 and CVE-2013-6420. All PHP 5.3 users are encouraged to upgrade to PHP 5.3.28 or latest versions of PHP 5.4 or PHP 5.5.</p> - -<p>For source downloads of PHP 5.3.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.3.28">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.28'); diff --git a/releases/5_3_29.php b/releases/5_3_29.php index e30e5889a7..520fb9ba2c 100644 --- a/releases/5_3_29.php +++ b/releases/5_3_29.php @@ -1,27 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.29 Release Announcement"); -?> - -<h1>PHP 5.3.29 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of - PHP 5.3.29. This release marks the <strong>end of life</strong> of the <strong>PHP 5.3 series</strong>. - Future releases of this series are <strong>not planned</strong>. All PHP 5.3 users are - encouraged to upgrade to the current stable version of PHP 5.5 or - previous stable version of PHP 5.4, which are supported till at least - 2016 and 2015 respectively.</p> - - <p>PHP 5.3.29 contains about 25 potentially security related fixes - backported from PHP 5.4 and 5.5.</p> - - <p>For source downloads of PHP 5.3.29, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. Windows - binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. The list of changes is recorded in - the <a href="http://www.php.net/ChangeLog-5.php#5.3.29">ChangeLog</a>.</p> - - <p>For helping your migration to newer versions please refer to our migration - guides for updates from <a href="http://php.net/migration54">PHP 5.3 to - 5.4</a> and from <a href="http://php.net/migration55">PHP 5.4 to 5.5</a>.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.29'); diff --git a/releases/5_3_3.php b/releases/5_3_3.php index 516ddd3762..7f66096285 100644 --- a/releases/5_3_3.php +++ b/releases/5_3_3.php @@ -1,89 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.3 Release Announcement"); -?> - -<h1>PHP 5.3.3 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.3.3. This release focuses on improving the -stability and security of the PHP 5.3.x branch with over 100 bug -fixes, some of which are security related. All users are encouraged -to upgrade to this release. -</p> - -<p> -<b>Backwards incompatible change:</b> -</p> -<ul> - <li>Methods with the same name as the last element of a namespaced class name - will no longer be treated as constructor. This change doesn't affect - non-namespaced classes. - - <p><?php - highlight_string('<?php -namespace Foo; -class Bar { - public function Bar() { - // treated as constructor in PHP 5.3.0-5.3.2 - // treated as regular method in PHP 5.3.3 - } -} -?>'); - ?></p> - <p>There is no impact on migration from 5.2.x because namespaces were only introduced in PHP 5.3.</p></li> -</ul> -<p> -<b>Security Enhancements and Fixes in PHP 5.3.3:</b> -</p> -<ul> - <li>Rewrote var_export() to use smart_str rather than output buffering, prevents data disclosure if a fatal error occurs (CVE-2010-2531).</li> - <li>Fixed a possible resource destruction issues in shm_put_var().</li> - <li>Fixed a possible information leak because of interruption of XOR operator.</li> - <li>Fixed a possible memory corruption because of unexpected call-time pass by refernce and following memory clobbering through callbacks.</li> - <li>Fixed a possible memory corruption in ArrayObject::uasort().</li> - <li>Fixed a possible memory corruption in parse_str().</li> - <li>Fixed a possible memory corruption in pack().</li> - <li>Fixed a possible memory corruption in substr_replace().</li> - <li>Fixed a possible memory corruption in addcslashes().</li> - <li>Fixed a possible stack exhaustion inside fnmatch().</li> - <li>Fixed a possible dechunking filter buffer overflow.</li> - <li>Fixed a possible arbitrary memory access inside sqlite extension.</li> - <li>Fixed string format validation inside phar extension.</li> - <li>Fixed handling of session variable serialization on certain prefix characters.</li> - <li>Fixed a NULL pointer dereference when processing invalid XML-RPC requests (Fixes CVE-2010-0397, bug #51288).</li> - <li>Fixed SplObjectStorage unserialization problems (CVE-2010-2225).</li> - <li>Fixed possible buffer overflows in mysqlnd_list_fields, mysqlnd_change_user.</li> - <li>Fixed possible buffer overflows when handling error packets in mysqlnd.</li> -</ul> - -<p> -<b>Key enhancements in PHP 5.3.3 include:</b> -</p> -<ul> - <li>Upgraded bundled sqlite to version 3.6.23.1.</li> - <li>Upgraded bundled PCRE to version 8.02.</li> - <li>Added FastCGI Process Manager (FPM) SAPI.</li> - <li>Added stream filter support to mcrypt extension.</li> - <li>Added full_special_chars filter to ext/filter.</li> - <li>Fixed a possible crash because of recursive GC invocation.</li> - <li>Fixed bug #52238 (Crash when an Exception occured in iterator_to_array).</li> - <li>Fixed bug #52041 (Memory leak when writing on uninitialized variable returned from function).</li> - <li>Fixed bug #52060 (Memory leak when passing a closure to method_exists()).</li> - <li>Fixed bug #52001 (Memory allocation problems after using variable variables).</li> - <li>Fixed bug #51723 (Content-length header is limited to 32bit integer with Apache2 on Windows).</li> - <li>Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3).</li> -</ul> - -<p> -For users upgrading from PHP 5.2 there is a migration guide available on -<a href="/migration53">http://php.net/migration53</a>, detailing the changes between those -releases and PHP 5.3. -</p> - -<p> - For a full list of changes in PHP 5.3.3, see the <a href="/ChangeLog-5.php#5.3.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.3'); diff --git a/releases/5_3_4.php b/releases/5_3_4.php index d3bd8a7488..dcbc618c77 100644 --- a/releases/5_3_4.php +++ b/releases/5_3_4.php @@ -1,56 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.4 Release Announcement"); -?> - -<h1>PHP 5.3.4 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate release of PHP -5.3.4. This is a maintenance release in the 5.3 series, which includes a -large number of bug fixes. -</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.3.4:</b> -</p> -<ul> - <li>Fixed crash in zip extract method (possible CWE-170).</li> - <li>Paths with NULL in them (foo\0bar.txt) are now considered as invalid (CVE-2006-7243).</li> - <li>Fixed a possible double free in imap extension (Identified by Mateusz - Kocielski). (CVE-2010-4150).</li> - <li>Fixed NULL pointer dereference in ZipArchive::getArchiveComment. - (CVE-2010-3709).</li> - <li>Fixed possible flaw in open_basedir (CVE-2010-3436).</li> - <li>Fixed MOPS-2010-24, fix string validation. (CVE-2010-2950).</li> - <li>Fixed symbolic resolution support when the target is a DFS share.</li> - <li>Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with - large amount of data) (CVE-2010-3710).</li> -</ul> - -<p> -<b>Key Bug Fixes in PHP 5.3.4 include:</b> -</p> -<ul> - <li>Added stat support for zip stream.</li> - <li>Added follow_location (enabled by default) option for the http stream - support.</li> - <li>Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al.</li> - <li>Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect - zend multibyte at runtime.</li> - <li>Multiple improvements to the FPM SAPI.</li> - <li>Over 100 other bug fixes.</li> -</ul> - -<p> -For users upgrading from PHP 5.2 there is a migration guide -available <a href="http://php.net/migration53">here</a>, detailing -the changes between those releases and PHP 5.3. -</p> - -<p> - For a full list of changes in PHP 5.3.4, see the - <a href="/ChangeLog-5.php#5.3.4">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.4'); diff --git a/releases/5_3_5.php b/releases/5_3_5.php index 31dfb7ec72..af198c1269 100644 --- a/releases/5_3_5.php +++ b/releases/5_3_5.php @@ -1,31 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.5 Release Announcement"); -?> - -<h1>PHP 5.3.5 Release Announcement</h1> -<p> -The PHP development team would like to announce the immediate -availability of PHP 5.3.5.</p> - -<p>This release resolves a critical issue, reported as PHP bug #53632, -where conversions from string to double might cause the PHP interpreter -to hang on systems using x87 FPU registers.</p> - -<p>The problem is known to only affect x86 32-bit PHP processes, regardless -of whether the system hosting PHP is 32-bit or 64-bit. You can test -whether your system is affected by running <a href="/distributions/test_bug53632.txt">this script</a> -from the command line.</p> - -<p>All users of PHP are strongly advised to update to these versions -immediately.</p> - -<p> -<b>Security Enhancements and Fixes in PHP 5.3.5:</b> -</p> -<ul> - <li>Fixed bug #53632 (PHP hangs on numeric value 2.2250738585072011e-308). (CVE-2010-4645)</li> -</ul> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.5'); diff --git a/releases/5_3_6.php b/releases/5_3_6.php index 9f7b718b05..1a88ac1664 100644 --- a/releases/5_3_6.php +++ b/releases/5_3_6.php @@ -1,53 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.6 Release Announcement"); -?> - -<h1>PHP 5.3.6 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.6. This release focuses on improving the -stability of the PHP 5.3.x branch with over 60 bug fixes, some of which -are security related.</p> - -<p><b>Security Enhancements and Fixes in PHP 5.3.6:</b></p> -<ul> - <li>Enforce security in the fastcgi protocol parsing with fpm SAPI.</li> - <li>Fixed bug #54247 (format-string vulnerability on Phar). (CVE-2011-1153)</li> - <li>Fixed bug #54193 (Integer overflow in shmop_read()). (CVE-2011-1092)</li> - <li>Fixed bug #54055 (buffer overrun with high values for precision ini setting).</li> - <li>Fixed bug #54002 (crash on crafted tag in exif). (CVE-2011-0708)</li> - <li>Fixed bug #53885 (ZipArchive segfault with FL_UNCHANGED on empty archive). (CVE-2011-0421)</li> -</ul> - -<p><b>Key enhancements in PHP 5.3.6 include:</b></p> -<ul> - <li>Upgraded bundled Sqlite3 to version 3.7.4.</li> - <li>Upgraded bundled PCRE to version 8.11.</li> - <li>Added ability to connect to HTTPS sites through proxy with basic authentication using stream_context/http/header/Proxy-Authorization.</li> - <li>Added options to debug backtrace functions.</li> - <li>Changed default value of ini directive serialize_precision from 100 to 17.</li> - <li>Fixed Bug #53971 (isset() and empty() produce apparently spurious runtime error).</li> - <li>Fixed Bug #53958 (Closures can't 'use' shared variables by value and by reference).</li> - <li>Fixed bug #53577 (Regression introduced in 5.3.4 in open_basedir with a trailing forward slash).</li> - <li>Over 60 other bug fixes.</li> -</ul> - -<p>Windows users: please mind that we do no longer provide builds created -with Visual Studio C++ 6. It is impossible to maintain a high quality -and safe build of PHP for Windows using this unmaintained compiler.</p> - -<p>For Apache SAPIs (php5_apache2_2.dll), be sure that you use a Visual -Studio C++ 9 version of Apache. We recommend the Apache builds as provided -by <a href="http://www.apachelounge.com/">ApacheLounge</a>. For any other -SAPI (CLI, FastCGI via mod_fcgi, FastCGI with IIS or other FastCGI capable -server), everything works as before. Third party extension providers -must rebuild their extensions to make them compatible and loadable with -the Visual Studio C++9 builds that we now provide.</p> - -<p>All PHP users should note that the PHP 5.2 series is NOT supported -anymore. All users are strongly encouraged to upgrade to PHP 5.3.6.</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.6'); diff --git a/releases/5_3_7.php b/releases/5_3_7.php index 31f6fc81d3..22858f0ef2 100644 --- a/releases/5_3_7.php +++ b/releases/5_3_7.php @@ -1,67 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.7 Release Announcement"); -?> - -<h1>PHP 5.3.7 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.7. This release focuses on improving the -stability of the PHP 5.3.x branch with over 90 bug fixes, some of which -are security related.</p> - -<p><b>Security Enhancements and Fixes in PHP 5.3.7:</b></p> -<ul> - <li>Updated crypt_blowfish to 1.2. (CVE-2011-2483)</li> - <li>Fixed crash in error_log(). Reported by Mateusz Kocielski</li> - <li>Fixed buffer overflow on overlog salt in crypt().</li> - <li>Fixed bug #54939 (File path injection vulnerability in RFC1867 File upload filename). Reported by Krzysztof Kotowicz. (CVE-2011-2202)</li> - <li>Fixed stack buffer overflow in socket_connect(). (CVE-2011-1938)</li> - <li>Fixed bug #54238 (use-after-free in substr_replace()). (CVE-2011-1148)</li> -</ul> - -<p><b>Key enhancements in PHP 5.3.7 include:</b></p> -<ul> - <li>Upgraded bundled Sqlite3 to version 3.7.7.1</li> - <li>Upgraded bundled PCRE to version 8.12</li> - <li>Fixed bug #54910 (Crash when calling call_user_func with unknown function name)</li> - <li>Fixed bug #54585 (track_errors causes segfault)</li> - <li>Fixed bug #54262 (Crash when assigning value to a dimension in a non-array)</li> - <li>Fixed a crash inside dtor for error handling</li> - <li>Fixed bug #55339 (Segfault with allow_call_time_pass_reference = Off)</li> - <li>Fixed bug #54935 php_win_err can lead to crash</li> - <li>Fixed bug #54332 (Crash in zend_mm_check_ptr // Heap corruption)</li> - <li>Fixed bug #54305 (Crash in gc_remove_zval_from_buffer)</li> - <li>Fixed bug #54580 (get_browser() segmentation fault when browscap ini directive is set through php_admin_value)</li> - <li>Fixed bug #54529 (SAPI crashes on apache_config.c:197)</li> - <li>Fixed bug #54283 (new DatePeriod(NULL) causes crash).</li> - <li>Fixed bug #54269 (Short exception message buffer causes crash)</li> - <li>Fixed Bug #54221 (mysqli::get_warnings segfault when used in multi queries)</li> - <li>Fixed bug #54395 (Phar::mount() crashes when calling with wrong parameters)</li> - <li>Fixed bug #54384 (Dual iterators, GlobIterator, SplFileObject and SplTempFileObject crash when user-space classes don't call the parent constructor)</li> - <li>Fixed bug #54292 (Wrong parameter causes crash in SplFileObject::__construct())</li> - <li>Fixed bug #54291 (Crash iterating DirectoryIterator for dir name starting with \0)</li> - <li>Fixed bug #54281 (Crash in non-initialized RecursiveIteratorIterator)</li> - <li>Fixed bug #54623 (Segfault when writing to a persistent socket after closing a copy of the socket)</li> - <li>Fixed bug #54681 (addGlob() crashes on invalid flags)</li> - <li>Over 80 other bug fixes.</li> -</ul> - -<p>Windows users: please mind that we do no longer provide builds created -with Visual Studio C++ 6. It is impossible to maintain a high quality -and safe build of PHP for Windows using this unmaintained compiler.</p> - -<p>For Apache SAPIs (php5_apache2_2.dll), be sure that you use a Visual -Studio C++ 9 version of Apache. We recommend the Apache builds as provided -by <a href="http://www.apachelounge.com/">ApacheLounge</a>. For any other -SAPI (CLI, FastCGI via mod_fcgi, FastCGI with IIS or other FastCGI capable -server), everything works as before. Third party extension providers -must rebuild their extensions to make them compatible and loadable with -the Visual Studio C++9 builds that we now provide.</p> - -<p>All PHP users should note that the PHP 5.2 series is NOT supported -anymore. All users are strongly encouraged to upgrade to PHP 5.3.7.</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.7'); diff --git a/releases/5_3_8.php b/releases/5_3_8.php index 83f89e5fc0..e99a3f2c47 100644 --- a/releases/5_3_8.php +++ b/releases/5_3_8.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.8 Release Announcement"); -?> - -<h1>PHP 5.3.8 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.8. This release fixes two issues introduced in -the PHP 5.3.7 release:</p> - -<ul> - <li>Fixed bug #55439 (crypt() returns only the salt for MD5)</li> - <li>Reverted a change in timeout handling restoring PHP 5.3.6 behavior, - which caused mysqlnd SSL connections to hang (Bug #55283).</li> -</ul> - -<p>All PHP users should note that the PHP 5.2 series is NOT supported -anymore. All users are strongly encouraged to upgrade to PHP 5.3.8.</p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.8'); diff --git a/releases/5_3_9.php b/releases/5_3_9.php index c12a3e394f..ce384f2614 100644 --- a/releases/5_3_9.php +++ b/releases/5_3_9.php @@ -1,33 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_3_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.3.9 Release Announcement"); -?> - -<h1>PHP 5.3.9 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.3.9. This release focuses on improving the -stability of the PHP 5.3.x branch with over 90 bug fixes, some of -which are security related.</p> - -<p>Security Enhancements and Fixes in PHP 5.3.9:</p> - -<ul> - <li>Added max_input_vars directive to prevent attacks based on hash collisions. (CVE-2011-4885)</li> - <li>Fixed bug #60150 (Integer overflow during the parsing of invalid exif - header). (CVE-2011-4566)</li> -</ul> - -<p>Key enhancements in PHP 5.3.9 include:</p> - -<ul> - <li>Fixed bug #55475 (is_a() triggers autoloader, new optional 3rd argument to - is_a and is_subclass_of).</li> - <li>Fixed bug #55609 (mysqlnd cannot be built shared)</li> - <li>Many changes to the FPM SAPI module</li> -</ul> - -<p>All users are strongly encouraged to upgrade to PHP 5.3.9.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.3.9'); diff --git a/releases/5_4_0.php b/releases/5_4_0.php index 1eb54f38f3..60f71ff89f 100644 --- a/releases/5_4_0.php +++ b/releases/5_4_0.php @@ -1,64 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.0 Release Announcement"); -?> - -<h1>PHP 5.4.0 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate availability -of PHP <a href="http://php.net/downloads.php#v5.4.0">5.4.0</a>. -This release is a major leap forward in the 5.x series, -and includes a large number of new features and bug fixes. -</p> - -<p> -<b>The key features of PHP 5.4.0 include:</b> -</p> -<ul> - <li>New language syntax including <a href="http://php.net/traits">Traits</a>, - <a href="https://www.php.net/manual/language.types.array.php">shortened array syntax</a> - and <a href="https://www.php.net/manual/migration54.new-features.php">more</a></li> - <li>Improved performance and reduced memory consumption</li> - <li>Support for multibyte languages now available in all builds of PHP at the flip of a runtime switch</li> - <li><a href="http://php.net/manual/features.commandline.webserver.php"> - Built-in webserver</a> in CLI mode to simplify development workflows and testing</li> - <li>Cleaner code base thanks to the removal of multiple deprecated language features</li> - <li>Many more improvements and fixes</li> -</ul> - -<p> -<b>Changes that affect compatibility:</b> -</p> -<ul> - <li><a href="http://www.php.net/manual/security.globals.php">Register globals</a>, <a href="http://www.php.net/manual/security.magicquotes.php">magic quotes</a> and <a href="http://www.php.net/manual/features.safe-mode.php">safe mode</a> were removed</li> - <li>The <a href="http://php.net/manual/control-structures.break.php">break</a>/<a href="http://php.net/manual/control-structures.continue.php">continue</a> $var syntax was removed</li> - <li>The ini option <a href="http://www.php.net/manual/ini.core.php#ini.allow-call-time-pass-reference">allow_call_time_pass_reference</a> was removed</li> - <li>The PHP <a href="http://www.php.net/manual/ini.core.php#ini.default-charset">default_charset</a> is now "UTF-8" within the distributed php.ini files, but still defaults to ""</li> -</ul> - -<p> -<b>Extensions moved to <a href="https://pecl.php.net">PECL</a>:</b> -</p> -<ul> - <li><a href="http://www.php.net/manual/ref.sqlite.php">ext/sqlite</a> (<a href="http://www.php.net/manual/book.sqlite3.php">ext/sqlite3</a> and <a href="http://www.php.net/manual/ref.pdo-sqlite.php">ext/pdo_sqlite</a> are not affected)</li> -</ul> - -<p> -PHP 5.4 will be the last series to support Windows XP and Windows -2003. We will not provide binary packages for these Windows versions -after PHP 5.4. -</p> - -<p> -For users upgrading from PHP 5.3 there is a migration guide available -<a href="http://php.net/migration54">here</a>, detailing the changes between -PHP 5.3 and PHP 5.4.0. -</p> - -<p> - For a full list of changes in PHP 5.4.0, see the - <a href="/ChangeLog-5.php#5.4.0">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.0'); diff --git a/releases/5_4_1.php b/releases/5_4_1.php index 2cd4a6d38d..63e2e1b4a7 100644 --- a/releases/5_4_1.php +++ b/releases/5_4_1.php @@ -1,37 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.1 Release Announcement"); -?> - -<h1>PHP 5.4.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of -PHP 5.4.1. This release focuses on improving the stability of the -PHP 5.4 branch with over 60 bug fixes, some of which are security related.</p> - -<p>Security Enhancements for PHP 5.4.1:</p> - -<ul> - <li>Fixed bug #54374 (Insufficient validating of upload name leading to - corrupted $_FILES indices). (CVE-2012-1172). (Stas, lekensteyn at - gmail dot com, Pierre)</li> - <li>Add open_basedir checks to readline_write_history and readline_read_history. - (Rasmus, reported by Mateusz Goik)</li> -</ul> - -<p>Key enhancements in PHP 5.4.1 include:</p> - -<ul> - <li>Added debug info handler to DOM objects. (Gustavo, Joey Smith)</li> - <li>Fixed bug #61172 (Add Apache 2.4 support). (Chris Jones)</li> -</ul> - -<p>For a full list of changes in PHP 5.4.1, see the <a -href="/ChangeLog-5.php#5.4.1">ChangeLog</a>. For source downloads please visit -our <a href="/downloads.php">downloads page</a>, Windows binaries can be found -on <a href="http://windows.php.net/download/">windows.php.net/download/</a>.</p> - -<p>All users of PHP are strongly encouraged to upgrade to PHP 5.4.1.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.1'); diff --git a/releases/5_4_10.php b/releases/5_4_10.php index 5f75be671b..c994256df4 100644 --- a/releases/5_4_10.php +++ b/releases/5_4_10.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.10 Release Announcement"); -?> - -<h1>PHP 5.4.10 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.10. About 15 bugs were fixed. All -users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.10 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.10">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.10'); diff --git a/releases/5_4_11.php b/releases/5_4_11.php index 6b851be121..b2697df456 100644 --- a/releases/5_4_11.php +++ b/releases/5_4_11.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.11 Release Announcement"); -?> - -<h1>PHP 5.4.11 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.11. About 10 bugs were fixed. All -users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.11 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.11">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.11'); diff --git a/releases/5_4_12.php b/releases/5_4_12.php index c50cf3c462..7b87997d42 100644 --- a/releases/5_4_12.php +++ b/releases/5_4_12.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.12 Release Announcement"); -?> - -<h1>PHP 5.4.12 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.12. About 10 bugs were fixed. All -users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.12 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.12">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.12'); diff --git a/releases/5_4_13.php b/releases/5_4_13.php index f083cbf87a..5791a0b129 100644 --- a/releases/5_4_13.php +++ b/releases/5_4_13.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.13 Release Announcement"); -?> - -<h1>PHP 5.4.13 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.13. About 15 bugs were fixed, including fixes for CVE-2013-1643 and CVE-2013-1635. All -users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.13 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.13">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.13'); diff --git a/releases/5_4_14.php b/releases/5_4_14.php index 71a7338e4d..fca601ec14 100644 --- a/releases/5_4_14.php +++ b/releases/5_4_14.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.14 Release Announcement"); -?> - -<h1>PHP 5.4.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.14. About 15 bugs were fixed. All users of PHP are encouraged to -upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.14 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.14">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.14'); diff --git a/releases/5_4_15.php b/releases/5_4_15.php index 3dcf941747..14aca23396 100644 --- a/releases/5_4_15.php +++ b/releases/5_4_15.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.15 Release Announcement"); -?> - -<h1>PHP 5.4.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.15. About 10 bugs were fixed. All users of PHP are encouraged to -upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.15 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.15">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.15'); diff --git a/releases/5_4_16.php b/releases/5_4_16.php index d7dc262f16..41b77545e4 100644 --- a/releases/5_4_16.php +++ b/releases/5_4_16.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.16 Release Announcement"); -?> - -<h1>PHP 5.4.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.16. About 15 bugs were fixed, including CVE 2013-2110. All users of PHP are encouraged to -upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.16 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.16">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.16'); diff --git a/releases/5_4_17.php b/releases/5_4_17.php index 19176efe77..b6bec8a14d 100644 --- a/releases/5_4_17.php +++ b/releases/5_4_17.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.17 Release Announcement"); -?> - -<h1>PHP 5.4.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.17. About 20 bugs were fixed. All users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.17">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.17'); diff --git a/releases/5_4_18.php b/releases/5_4_18.php index b3a573f096..a5d934981e 100644 --- a/releases/5_4_18.php +++ b/releases/5_4_18.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.18 Release Announcement"); -?> - -<h1>PHP 5.4.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.18. About 30 bugs were fixed, including security issues CVE-2013-4113 and CVE-2013-4248. -</p> - -<p><b>NOTE:</b> Please do not use this release, due to the bug in the fix for CVE-2013-4248. This bug is fixed in -PHP 5.4.19.</p> - -<p>For source downloads of PHP 5.4.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.18">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.18'); diff --git a/releases/5_4_19.php b/releases/5_4_19.php index b00068c15e..dcc1c1cc06 100644 --- a/releases/5_4_19.php +++ b/releases/5_4_19.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.19 Release Announcement"); -?> - -<h1>PHP 5.4.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.19. This release fixes a bug in the patch for CVE-2013-4248 in OpenSSL module and -compile failure with ZTS enabled.</p> - -<p>All PHP 5.4 users are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.19">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.19'); diff --git a/releases/5_4_2.php b/releases/5_4_2.php index 176ae391fc..03006bff47 100644 --- a/releases/5_4_2.php +++ b/releases/5_4_2.php @@ -1,64 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.2 Release Announcement"); -?> - -<h1>PHP 5.4.2 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.2. This release delivers a security fix.</p> - -<p>There is a vulnerability in certain CGI-based setups that has gone -unnoticed for at least 8 years. <a -href="http://tools.ietf.org/html/draft-robinson-www-interface-00#section-7">Section -7 of the CGI spec</a> states:</p> - -<cite> - Some systems support a method for supplying a array of strings to the - CGI script. This is only used in the case of an `indexed' query. This - is identified by a "GET" or "HEAD" HTTP request with a URL search - string not containing any unencoded "=" characters. -</cite> - -<p>So requests that do not have a "=" in the query string are treated -differently from those who do in some CGI implementations. For PHP this -means that a request containing ?-s may dump the PHP source code for the -page, but a request that has ?-s&a=1 is fine.</p> - -<p>A large number of sites run PHP as either an Apache module through -mod_php or using php-fpm under nginx. Neither of these setups are -vulnerable to this. Straight shebang-style CGI also does not appear to -be vulnerable.</p> - -<p>If you are using Apache mod_cgi to run PHP you may be vulnerable. To see -if you are just add ?-s to the end of any of your URLs. If you see your -source code, you are vulnerable. If your site renders normally, you are not.</p> - -<p>Making a bad week worse, we had a bug in our bug system that toggled the -private flag of a bug report to public on a comment to the bug report -causing this issue to go public before we had time to test solutions to -the level we would like.</p> - -<p>To fix this update to PHP 5.3.12 or PHP 5.4.2. We recognize that since -this is a rather outdated way to run PHP it may not be feasible to -upgrade these sites to a modern version of PHP, so an alternative is to -configure your web server to not let these types of requests with query -strings starting with a "-" and not containing a "=" through. Adding a -rule like this should not break any sites. For Apache using mod_rewrite -it would look like this:</p> - -<pre> - RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC] - RewriteRule ^(.*) $1? [L] -</pre> - -<p>If you are writing your own rule, be sure to take the urlencoded ?%2ds -version into account.</p> - -<p>For source downloads of PHP 5.4.2 please visit -our <a href="/downloads.php">downloads page</a>, Windows binaries can be found -on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. A -<a href="/ChangeLog-5.php#5.4.2">ChangeLog</a> exists.</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.2'); diff --git a/releases/5_4_20.php b/releases/5_4_20.php index 65921bf064..0091fd4167 100644 --- a/releases/5_4_20.php +++ b/releases/5_4_20.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.20 Release Announcement"); -?> - -<h1>PHP 5.4.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.20. About 30 bugs were fixed. All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.20">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.20'); diff --git a/releases/5_4_21.php b/releases/5_4_21.php index 4cf482fafc..fb792fec31 100644 --- a/releases/5_4_21.php +++ b/releases/5_4_21.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.21 Release Announcement"); -?> - -<h1>PHP 5.4.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.21. About 10 bugs were fixed. All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.21">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.21'); diff --git a/releases/5_4_22.php b/releases/5_4_22.php index d7fd713b75..cb97549929 100644 --- a/releases/5_4_22.php +++ b/releases/5_4_22.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.22 Release Announcement"); -?> - -<h1>PHP 5.4.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.22. About 10 bugs were fixed. All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.22">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.22'); diff --git a/releases/5_4_23.php b/releases/5_4_23.php index 84da8ddd15..0252acd526 100644 --- a/releases/5_4_23.php +++ b/releases/5_4_23.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.23 Release Announcement"); -?> - -<h1>PHP 5.4.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.23. About 10 bugs were fixed, including a security issue in OpenSSL module (CVE-2013-6420). -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.23">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.23'); diff --git a/releases/5_4_24.php b/releases/5_4_24.php index 9b23fa1cd1..8a13204fe9 100644 --- a/releases/5_4_24.php +++ b/releases/5_4_24.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.24 Release Announcement"); -?> - -<h1>PHP 5.4.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.24. About 14 bugs were fixed. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.24">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.24'); diff --git a/releases/5_4_25.php b/releases/5_4_25.php index c099ee8beb..762f8e668f 100644 --- a/releases/5_4_25.php +++ b/releases/5_4_25.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.25 Release Announcement"); -?> - -<h1>PHP 5.4.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.25. 5 bugs were fixed in this release. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.25 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.25">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.25'); diff --git a/releases/5_4_26.php b/releases/5_4_26.php index c34b40f8d7..6e26047c7d 100644 --- a/releases/5_4_26.php +++ b/releases/5_4_26.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.26 Release Announcement"); -?> - -<h1>PHP 5.4.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.26. 5 bugs were fixed in this release, including CVE-2014-1943. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.26">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.26'); diff --git a/releases/5_4_27.php b/releases/5_4_27.php index e2e34b6118..e37cc8d517 100644 --- a/releases/5_4_27.php +++ b/releases/5_4_27.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.27 Release Announcement"); -?> - -<h1>PHP 5.4.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.27. 6 bugs were fixed in this release, including CVE-2013-7345. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.27">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.27'); diff --git a/releases/5_4_28.php b/releases/5_4_28.php index 92848a6b04..e8351b592c 100644 --- a/releases/5_4_28.php +++ b/releases/5_4_28.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.28 Release Announcement"); -?> - -<h1>PHP 5.4.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.28. 19 bugs were fixed in this release, including CVE-2014-0185. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.28">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.28'); diff --git a/releases/5_4_29.php b/releases/5_4_29.php index bb335d1366..ec88905255 100644 --- a/releases/5_4_29.php +++ b/releases/5_4_29.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.29 Release Announcement"); -?> - -<h1>PHP 5.4.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.29. 16 bugs were fixed in this release, including two security issues in fileinfo extension. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.29 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.29">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.29'); diff --git a/releases/5_4_3.php b/releases/5_4_3.php index 5f01311be2..869ca7683a 100644 --- a/releases/5_4_3.php +++ b/releases/5_4_3.php @@ -1,25 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.3 Release Announcement"); -?> - -<h1>PHP 5.4.3 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.3. This release delivers two security fixes. -All users of PHP 5.4 are encouraged to upgrade to this release</p> - -<p>PHP 5.4.3 completes a fix for a vulnerability in CGI-based setups -(CVE-2012-2311). Note: mod_php and php-fpm are not vulnerable to this -attack.</p> - -<p>A buffer overflow vulnerability in the apache_request_headers() -was fixed (CVE-2012-2329).</p> - -<p>For source downloads of PHP 5.4.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.3'); diff --git a/releases/5_4_30.php b/releases/5_4_30.php index bce1a31c24..6e143c462e 100644 --- a/releases/5_4_30.php +++ b/releases/5_4_30.php @@ -1,32 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.30 Release Announcement"); -?> - -<h1>PHP 5.4.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.30. Over 20 bugs were fixed in this release, including the following security issues: -CVE-2014-3981, CVE-2014-0207, CVE-2014-3478, CVE-2014-3479, CVE-2014-3480, CVE-2014-3487, -CVE-2014-4049, CVE-2014-3515. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>Please, note that this release also fixes a backward compatibility issue that has been -detected in the PHP 5.4.29 release. Still, the fix in PHP 5.4.30 may break some very rare -situations. As this tiny compatibility break involves security, and as security is our primary -concern, we had to fix it. This concerns -<a href="https://bugs.php.net/bug.php?id=67072">bug 67072</a>. For more information about -this bug and its actual resolution, please refer to our -<a href="https://github.com/php/php-src/raw/PHP-5.4/UPGRADING">upgrading guide</a>, section 4a. -We apologize for any inconvenience you may have experienced with this behavior.</p> - - -<p>For source downloads of PHP 5.4.30 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.30">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.30'); diff --git a/releases/5_4_31.php b/releases/5_4_31.php index 7900456d50..d64a98cb4f 100644 --- a/releases/5_4_31.php +++ b/releases/5_4_31.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.31 Release Announcement"); -?> - -<h1>PHP 5.4.31 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.31. Over 10 bugs were fixed in this release. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.31 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.31">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.31'); diff --git a/releases/5_4_32.php b/releases/5_4_32.php index 5af9842fbf..78c9617a8c 100644 --- a/releases/5_4_32.php +++ b/releases/5_4_32.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.32 Release Announcement"); -?> - -<h1>PHP 5.4.32 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.32. 16 bugs were fixed in this release, including the following security-related issues: -CVE-2014-2497, CVE-2014-3538, CVE-2014-3587, CVE-2014-3597, CVE-2014-4670, CVE-2014-4698, CVE-2014-5120. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.32 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.32">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.32'); diff --git a/releases/5_4_33.php b/releases/5_4_33.php index 036c97a4df..c450e5240e 100644 --- a/releases/5_4_33.php +++ b/releases/5_4_33.php @@ -1,26 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.33 Release Announcement"); -?> - -<h1>PHP 5.4.33 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.33. 10 bugs were fixed in this release. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p> -This release is the last planned release that contains regular bugfixes. All the consequent releases -will contain only security-relevant fixes, for the term of one year. -PHP 5.4 users that need further bugfixes are encouraged to upgrade to PHP 5.6 or PHP 5.5. -</p> - -<p>For source downloads of PHP 5.4.33 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.33">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.33'); diff --git a/releases/5_4_34.php b/releases/5_4_34.php index d181664911..80db666237 100644 --- a/releases/5_4_34.php +++ b/releases/5_4_34.php @@ -1,22 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_34.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.34 Release Announcement"); -?> - -<h1>PHP 5.4.34 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.34. 6 security-related bugs were fixed in this release, including fixes for -CVE-2014-3668, CVE-2014-3669 and CVE-2014-3670. Also, a fix for OpenSSL which -produced regressions was reverted. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.34 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.34">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.34'); diff --git a/releases/5_4_35.php b/releases/5_4_35.php index 8401e13bef..e12b6f848b 100644 --- a/releases/5_4_35.php +++ b/releases/5_4_35.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_35.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.35 Release Announcement"); -?> - -<h1>PHP 5.4.35 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.35. 4 security-related bugs were fixed in this release, including the fix for CVE-2014-3710. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.35 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.35">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.35'); diff --git a/releases/5_4_36.php b/releases/5_4_36.php index f585a8a316..12df53fb61 100644 --- a/releases/5_4_36.php +++ b/releases/5_4_36.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_36.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.36 Release Announcement"); -?> - -<h1>PHP 5.4.36 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.36. Two security-related bugs were fixed in this release, including the fix for CVE-2014-8142. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.36 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.36">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.36'); diff --git a/releases/5_4_37.php b/releases/5_4_37.php index 6c1e67a539..b4e0208d7c 100644 --- a/releases/5_4_37.php +++ b/releases/5_4_37.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_37.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.37 Release Announcement"); -?> - -<h1>PHP 5.4.37 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.37. Six security-related bugs were fixed in this release, including CVE-2015-0231, CVE-2014-9427 -and CVE-2015-0232. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.37 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.37">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.37'); diff --git a/releases/5_4_38.php b/releases/5_4_38.php index d33f366214..8850841f21 100644 --- a/releases/5_4_38.php +++ b/releases/5_4_38.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_38.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.38 Release Announcement"); -?> - -<h1>PHP 5.4.38 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.38. Seven security-related bugs were fixed in this release, including CVE-2015-0273 and mitigation for CVE-2015-0235. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.38 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.38">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.38'); diff --git a/releases/5_4_39.php b/releases/5_4_39.php index ada4f62870..014b310b9f 100644 --- a/releases/5_4_39.php +++ b/releases/5_4_39.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_39.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.39 Release Announcement"); -?> - -<h1>PHP 5.4.39 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.39. Six security-related bugs were fixed in this release, including CVE-2015-0231, CVE-2015-2305 and CVE-2015-2331. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.39 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.39">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.39'); diff --git a/releases/5_4_4.php b/releases/5_4_4.php index 5f2d26098c..2bb9f9c4b2 100644 --- a/releases/5_4_4.php +++ b/releases/5_4_4.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.4 Release Announcement"); -?> - -<h1>PHP 5.4.4 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.4. This release fixes two security related -issues. All users of PHP are encouraged to upgrade to this release.</p> - -<p>PHP 5.4.4 fixes an security issue in the implementation of crypt() and a -heap overflow in the Phar extension. Over 30 bugs were fixed</p> - -<p>Please note that php://fd is now only available if the CLI SAPI is used</p> - -<p>For source downloads of PHP 5.4.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.4">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.4'); diff --git a/releases/5_4_40.php b/releases/5_4_40.php index c98693d4d0..5a27d66121 100644 --- a/releases/5_4_40.php +++ b/releases/5_4_40.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_40.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.40 Release Announcement"); -?> - -<h1>PHP 5.4.40 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.40. 14 security-related bugs were fixed in this release, including -CVE-2014-9709, CVE-2015-2301, CVE-2015-2783, CVE-2015-1352. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.40 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.40">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.40'); diff --git a/releases/5_4_41.php b/releases/5_4_41.php index 773a5dfa93..09d421d954 100644 --- a/releases/5_4_41.php +++ b/releases/5_4_41.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_41.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.41 Release Announcement"); -?> - -<h1>PHP 5.4.41 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.41. Seven security-related issues were fixed in this version. - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.41 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.41">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.41'); diff --git a/releases/5_4_42.php b/releases/5_4_42.php index b2eaabc8c9..cb59d5ad84 100644 --- a/releases/5_4_42.php +++ b/releases/5_4_42.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_42.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.42 Release Announcement"); -?> - -<h1>PHP 5.4.42 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.42. Six security-related issues in PHP were fixed in this release, -as well as several security issues in bundled sqlite library (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416). - -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.42 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.42">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.42'); diff --git a/releases/5_4_43.php b/releases/5_4_43.php index 96cd1fce2a..78e8a3fadf 100644 --- a/releases/5_4_43.php +++ b/releases/5_4_43.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_43.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.43 Release Announcement"); -?> - -<h1>PHP 5.4.43 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.43. Five security-related issues in PHP were fixed in this release, including CVE-2015-3152. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.43 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.43">ChangeLog</a>. -</p> - -<p>Please note that PHP 5.4 branch is nearing the end of its <a href="http://php.net/supported-versions.php">support timeframe</a>. -If your PHP installations is based on PHP 5.4, it may be a good time to start making the plans for the upgrade. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.43'); diff --git a/releases/5_4_44.php b/releases/5_4_44.php index 430aaa25d1..78cddbeffb 100644 --- a/releases/5_4_44.php +++ b/releases/5_4_44.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_44.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.44 Release Announcement"); -?> - -<h1>PHP 5.4.44 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.44. 11 security-related issues were fixed in this release. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.44 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.44">ChangeLog</a>. -</p> - -<p>Please note that PHP 5.4 branch is nearing the end of its <a href="http://php.net/supported-versions.php">support timeframe</a>. Either September or October release, depending on discovered issues, will be the last official release of PHP 5.4. -If your PHP installation is based on PHP 5.4, it may be a good time to start making the plans for the upgrade. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.44'); diff --git a/releases/5_4_45.php b/releases/5_4_45.php index fe1fb6655b..96453023fb 100644 --- a/releases/5_4_45.php +++ b/releases/5_4_45.php @@ -1,25 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_45.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.45 Release Announcement"); -?> - -<h1>PHP 5.4.45 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.4.45. Ten security-related issues were fixed in this release. -All PHP 5.4 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.4.45 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.45">ChangeLog</a>. -</p> - -<p>Please note that according to the <a href="http://php.net/supported-versions.php">PHP version support timelines</a>, -PHP 5.4.45 is the last scheduled release of PHP 5.4 branch. There may be additional release if we discover -important security issues that warrant it, otherwise this release will be the final one in the PHP 5.4 branch. -If your PHP installation is based on PHP 5.4, it may be a good time to start making the plans for the upgrade to PHP 5.5 or PHP 5.6. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.45'); diff --git a/releases/5_4_5.php b/releases/5_4_5.php index 609502915d..9f3cafd74d 100644 --- a/releases/5_4_5.php +++ b/releases/5_4_5.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.5 Release Announcement"); -?> - -<h1>PHP 5.4.5 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.5. Over 30 bugs were fixed, including a security -related overflow issue in the stream implementation. All users of PHP -are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.5">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.5'); diff --git a/releases/5_4_6.php b/releases/5_4_6.php index 67766cd45f..2acdbfa1da 100644 --- a/releases/5_4_6.php +++ b/releases/5_4_6.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.6 Release Announcement"); -?> - -<h1>PHP 5.4.6 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.6. Over 20 bugs were fixed. All users of PHP -are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.6">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.6'); diff --git a/releases/5_4_7.php b/releases/5_4_7.php index cc23af960e..e00d490d6e 100644 --- a/releases/5_4_7.php +++ b/releases/5_4_7.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.7 Release Announcement"); -?> - -<h1>PHP 5.4.7 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.7. Over 20 bugs were fixed. All users of PHP -are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.7">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.7'); diff --git a/releases/5_4_8.php b/releases/5_4_8.php index d3ce3c1dc7..b9b3144e8f 100644 --- a/releases/5_4_8.php +++ b/releases/5_4_8.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.8 Release Announcement"); -?> - -<h1>PHP 5.4.8 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.8. Over 20 bugs were fixed. In addition OpenSSL -signature verification now supports the SHA-2 family and RMD160. All -users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.8 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.8">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.8'); diff --git a/releases/5_4_9.php b/releases/5_4_9.php index 074c329d49..844fb4a504 100644 --- a/releases/5_4_9.php +++ b/releases/5_4_9.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_4_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.4.9 Release Announcement"); -?> - -<h1>PHP 5.4.9 Release Announcement</h1> - -<p>The PHP development team would like to announce the immediate -availability of PHP 5.4.9. Over 15 bugs were fixed. All -users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.4.9 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.4.9">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.4.9'); diff --git a/releases/5_5_0.php b/releases/5_5_0.php index ba8c48a3ef..c2844fba96 100644 --- a/releases/5_5_0.php +++ b/releases/5_5_0.php @@ -1,51 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.0 Release Announcement"); -?> - -<h1>PHP 5.5.0 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate availability -of PHP <a href="http://php.net/downloads.php#v5.5.0">5.5.0</a>. -This release includes a large number of new features and bug fixes. -</p> - -<p> -<b>The key features of PHP 5.5.0 include:</b> -</p> -<ul> - <li>Added <a href="http://php.net/generators">generators</a> and coroutines.</li> - <li>Added the <a href="http://php.net/exceptions">finally</a> keyword.</li> - <li>Added a <a href="http://php.net/password">simplified password hashing API</a>.</li> - <li>Added <a href="http://php.net/migration55.new-features#migration55.new-features.const-dereferencing">support for constant array/string dereferencing</a>.</li> - <li>Added scalar class name resolution via <a href="http://php.net/oop5.basic#language.oop5.basic.class.class">::class</a>.</li> - <li>Added <a href="http://php.net/migration55.new-features#migration55.new-features.empty">support for using empty() on the result of function calls and other expressions</a>.</li> - <li>Added <a href="http://php.net/migration55.new-features#migration55.new-features.non-scalar-iterator-keys">support for non-scalar Iterator keys in foreach</a>.</li> - <li>Added <a href="http://php.net/foreach#control-structures.foreach.list">support for list() constructs in foreach statements</a>.</li> - <li>Added the <a href="http://php.net/opcache">Zend OPcache</a> extension for opcode caching.</li> - <li>The GD library has been upgraded to version 2.1 adding new functions and improving existing functionality.</li> - <li>A lot more improvements and fixes.</li> -</ul> - -<p> -<b>Changes that affect compatibility:</b> -</p> -<ul> - <li><a href="http://php.net/php_logo_guid">PHP logo GUIDs</a> have been removed.</li> - <li>Windows XP and 2003 support dropped.</li> - <li>Case insensitivity is no longer locale specific. All case insensitive matching for function, class and constant names is now performed in a locale independent manner according to ASCII rules.</li> -</ul> - -<p> -For users upgrading from PHP 5.4, -<a href="http://php.net/migration55">a migration guide is available</a> -detailing the changes between 5.4 and 5.5.0. -</p> - -<p> - For a full list of changes in PHP 5.5.0, see the - <a href="http://php.net/ChangeLog-5.php#5.5.0">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.0'); diff --git a/releases/5_5_1.php b/releases/5_5_1.php index e0003b5e42..b7ba9f5014 100644 --- a/releases/5_5_1.php +++ b/releases/5_5_1.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.1 Release Announcement"); -?> - -<h1>PHP 5.5.1 Release Announcement</h1> -<p> -The PHP development team is proud to announce the immediate availability -of PHP <a href="http://php.net/downloads.php#v5.5.1">5.5.1</a>. -This release fixes several bugs. -</p> - -<p>The PHP development team announces the immediate availability of PHP -5.5.1. About 20 bugs were fixed, including a security fix in the XML parser (Bug #65236). -All users of PHP are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.5.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.1">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.1'); diff --git a/releases/5_5_10.php b/releases/5_5_10.php index 8ebdf307cf..e855f5e913 100644 --- a/releases/5_5_10.php +++ b/releases/5_5_10.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.9 Release Announcement"); -?> - -<h1>PHP 5.5.10 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.10. -This release fixes several bugs against PHP 5.5.9, as well as CVE-2014-1943, CVE-2014-2270 -and CVE-2013-7327</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.10, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.10">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.10'); diff --git a/releases/5_5_11.php b/releases/5_5_11.php index c24c751a78..a99fca3472 100644 --- a/releases/5_5_11.php +++ b/releases/5_5_11.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.11 Release Announcement"); -?> - -<h1>PHP 5.5.11 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.11. -This release fixes several bugs against PHP 5.5.10, as well as CVE-2013-7345 regarding Fileinfo</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.11, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.11">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.11'); diff --git a/releases/5_5_12.php b/releases/5_5_12.php index d59f018e76..1ac27fbe8d 100644 --- a/releases/5_5_12.php +++ b/releases/5_5_12.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.12 Release Announcement"); -?> - -<h1>PHP 5.5.12 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.12. -This release fixes several bugs against PHP 5.5.11, as well as CVE-2014-0185 regarding PHP-FPM.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.12, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.12">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.12'); diff --git a/releases/5_5_13.php b/releases/5_5_13.php index ac3e1e8101..e1411bb18c 100644 --- a/releases/5_5_13.php +++ b/releases/5_5_13.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.13 Release Announcement"); -?> - -<h1>PHP 5.5.13 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.13. -This release fixes several bugs against PHP 5.5.12, and addresses several -CVEs in Fileinfo (CVE-2014-0238 and CVE-2014-0237).</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.13, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.13">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.13'); diff --git a/releases/5_5_14.php b/releases/5_5_14.php index 19925e85f6..e19716e361 100644 --- a/releases/5_5_14.php +++ b/releases/5_5_14.php @@ -1,30 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.14 Release Announcement"); -?> - -<h1>PHP 5.5.14 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.14. -This release fixes several bugs against PHP 5.5.13. -Also, this release fixes a total of 8 CVEs, half of them concerning the FileInfo -extension.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>Please, note that this release also fixes a backward compatibility issue that has been -detected in the PHP 5.5.13 release. Still, the fix in PHP 5.5.14 may break some very rare -situations. As this tiny compatibility break involves security, and as security is our primary -concern, we had to fix it. This concerns -<a href="https://bugs.php.net/bug.php?id=67072">bug 67072</a>. For more information about -this bug and its actual resolution, please visit our -<a href="https://github.com/php/php-src/raw/PHP-5.5/UPGRADING">upgrading guide</a>. -We apologize for any inconvenience you may have experienced with this behavior.</p> - -<p>For source downloads of PHP 5.5.14, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.14">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.14'); diff --git a/releases/5_5_15.php b/releases/5_5_15.php index e120656ca7..1d7c3acad6 100644 --- a/releases/5_5_15.php +++ b/releases/5_5_15.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.15 Release Announcement"); -?> - -<h1>PHP 5.5.15 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.15. -This release fixes several bugs against PHP 5.5.14. -</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.15, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.15">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.15'); diff --git a/releases/5_5_16.php b/releases/5_5_16.php index fd7f2d4459..980d8232b0 100644 --- a/releases/5_5_16.php +++ b/releases/5_5_16.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.16 Release Announcement"); -?> - -<h1>PHP 5.5.16 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.16. -This release fixes several bugs against PHP 5.5.15 and resolves CVE-2014-3538, CVE-2014-3587, -CVE-2014-2497, CVE-2014-5120 and CVE-2014-3597. -</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.16, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.16">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.16'); diff --git a/releases/5_5_17.php b/releases/5_5_17.php index 017b149421..28a9972031 100644 --- a/releases/5_5_17.php +++ b/releases/5_5_17.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.17 Release Announcement"); -?> - -<h1>PHP 5.5.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP - 5.5.17. Several bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.17">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.17'); diff --git a/releases/5_5_18.php b/releases/5_5_18.php index 7ffe394ee0..d41f1640df 100644 --- a/releases/5_5_18.php +++ b/releases/5_5_18.php @@ -1,22 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.18 Release Announcement"); -?> - -<h1>PHP 5.5.18 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.18. Several bugs were fixed in this release. A regression in OpenSSL introduced in PHP 5.5.17 has - also been addressed in this release. - PHP 5.5.18 also fixes 4 CVEs in different components. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.18">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.18'); diff --git a/releases/5_5_19.php b/releases/5_5_19.php index aa646449af..11362b1f6d 100644 --- a/releases/5_5_19.php +++ b/releases/5_5_19.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.19 Release Announcement"); -?> - -<h1>PHP 5.5.19 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.19. This release fixes several bugs and one CVE in the fileinfo extension. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.19">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.19'); diff --git a/releases/5_5_2.php b/releases/5_5_2.php index 650a662303..02f5446457 100644 --- a/releases/5_5_2.php +++ b/releases/5_5_2.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.2 Release Announcement"); -?> - -<h1>PHP 5.5.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.5.2. About 20 bugs were fixed, including security issue in OpenSSL module (CVE-2013-4248) and session fixation problem (CVE-2011-4718). -</p> - -<p><b>NOTE:</b> Please do not use this release, due to the bug in the fix for CVE-2013-4248. This bug is fixed in -PHP 5.5.3.</p> - -<p>For source downloads of PHP 5.5.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.2'); diff --git a/releases/5_5_20.php b/releases/5_5_20.php index 578beb2cd5..fa5c944a06 100644 --- a/releases/5_5_20.php +++ b/releases/5_5_20.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.20 Release Announcement"); -?> - -<h1>PHP 5.5.20 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.20. This release fixes several bugs and one CVE related to unserialization. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.20">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.20'); diff --git a/releases/5_5_21.php b/releases/5_5_21.php index 32ef7b546c..39df02c316 100644 --- a/releases/5_5_21.php +++ b/releases/5_5_21.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.21 Release Announcement"); -?> - -<h1>PHP 5.5.21 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.21. This release fixes several bugs as well as CVE-2015-0231, CVE-2014-9427 and CVE-2015-0232. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.21">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.21'); diff --git a/releases/5_5_22.php b/releases/5_5_22.php index 6ecc2ae048..ddd920157a 100644 --- a/releases/5_5_22.php +++ b/releases/5_5_22.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.22 Release Announcement"); -?> - -<h1>PHP 5.5.22 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.22. This release fixes several bugs and addresses CVE-2015-0235 and CVE-2015-0273. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.22">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.22'); diff --git a/releases/5_5_23.php b/releases/5_5_23.php index 846129432e..dcc5e66754 100644 --- a/releases/5_5_23.php +++ b/releases/5_5_23.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.23 Release Announcement"); -?> - -<h1>PHP 5.5.23 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.23. Several bugs have been fixed as well as CVE-2015-0231, CVE-2015-2305 and CVE-2015-2331. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.23">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.23'); diff --git a/releases/5_5_24.php b/releases/5_5_24.php index 75c9e75272..bb6eca767f 100644 --- a/releases/5_5_24.php +++ b/releases/5_5_24.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.24 Release Announcement"); -?> - <h1>PHP 5.5.24 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.24. Several bugs have been fixed some of them beeing security related, like CVE-2015-1351 and CVE-2015-1352. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.24">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.24'); diff --git a/releases/5_5_25.php b/releases/5_5_25.php index 2fd5f6a71d..afe5d818ef 100644 --- a/releases/5_5_25.php +++ b/releases/5_5_25.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.25 Release Announcement"); -?> - <h1>PHP 5.5.25 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.25. Several bugs have been fixed. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.25 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.25">ChangeLog</a>. - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.25'); diff --git a/releases/5_5_26.php b/releases/5_5_26.php index 2ad35a9f4c..66650750a9 100644 --- a/releases/5_5_26.php +++ b/releases/5_5_26.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.26 Release Announcement"); -?> - <h1>PHP 5.5.26 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.26. Several bugs have been fixed as well as several security issues into some - bundled librairies (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416, CVE-2015-2325 and CVE-2015-2326). - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.26">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.26'); diff --git a/releases/5_5_27.php b/releases/5_5_27.php index 9efed394bb..c1f1ef476e 100644 --- a/releases/5_5_27.php +++ b/releases/5_5_27.php @@ -1,25 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.27 Release Announcement"); -?> - <h1>PHP 5.5.27 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.27. Several bugs were fixed in this release as well as CVE-2015-3152. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p> - According to <a href="http://php.net/supported-versions.php">our release calendar</a>, this PHP 5.5 version - is the last planned release that contains regular bugfixes. All the consequent releases - will contain only security-relevant fixes, for the term of one year. - PHP 5.5 users that need further bugfixes are encouraged to upgrade to PHP 5.6. - </p> - - <p>For source downloads of PHP 5.5.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.27">ChangeLog</a>. - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.27'); diff --git a/releases/5_5_28.php b/releases/5_5_28.php index 78106f5bce..ac9eeff454 100644 --- a/releases/5_5_28.php +++ b/releases/5_5_28.php @@ -1,26 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.28 Release Announcement"); -?> - <h1>PHP 5.5.28 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.28. 12 security-related issues were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p> - According to <a href="http://php.net/supported-versions.php">our release calendar</a>, this PHP 5.5 version - is the first security release of the PHP 5.5 branch. This and all the following releases of this branch - do not contain bugfixes that are not considered relevant for security. - PHP 5.5 users that need further bugfixes are encouraged to upgrade to PHP 5.6. - </p> - - <p>For source downloads of PHP 5.5.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.28">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.28'); diff --git a/releases/5_5_29.php b/releases/5_5_29.php index 21f4d90f68..3a051b3b52 100644 --- a/releases/5_5_29.php +++ b/releases/5_5_29.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.29 Release Announcement"); -?> - <h1>PHP 5.5.29 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.29. This is a security release. Many security-related issues were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.29 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.29">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.29'); diff --git a/releases/5_5_3.php b/releases/5_5_3.php index 2d7298a1ff..6216aca363 100644 --- a/releases/5_5_3.php +++ b/releases/5_5_3.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.3 Release Announcement"); -?> - -<h1>PHP 5.5.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.5.3. -This release fixes a bug in the patch for CVE-2013-4248 in OpenSSL module.</p> - -<p>All PHP users are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.5.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.3'); diff --git a/releases/5_5_30.php b/releases/5_5_30.php index 05120a8e20..a3cded924d 100644 --- a/releases/5_5_30.php +++ b/releases/5_5_30.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.30 Release Announcement"); -?> - <h1>PHP 5.5.30 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.30. This is a security release. Two security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.30 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.30">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.30'); diff --git a/releases/5_5_31.php b/releases/5_5_31.php index e2e33fb027..6e1aaefb3d 100644 --- a/releases/5_5_31.php +++ b/releases/5_5_31.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.31 Release Announcement"); -?> - <h1>PHP 5.5.31 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.31. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.31 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.31">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.31'); diff --git a/releases/5_5_32.php b/releases/5_5_32.php index f723e7176f..28396ee2f2 100644 --- a/releases/5_5_32.php +++ b/releases/5_5_32.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.32 Release Announcement"); -?> - <h1>PHP 5.5.32 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.32. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.32 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.32">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.32'); diff --git a/releases/5_5_33.php b/releases/5_5_33.php index eaf3f8fc94..3b119d6481 100644 --- a/releases/5_5_33.php +++ b/releases/5_5_33.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.33 Release Announcement"); -?> - <h1>PHP 5.5.33 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.33. This is a security release. Two security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.33 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.33">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.33'); diff --git a/releases/5_5_34.php b/releases/5_5_34.php index 669f7d7a40..13f5a138a7 100644 --- a/releases/5_5_34.php +++ b/releases/5_5_34.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_34.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.34 Release Announcement"); -?> - <h1>PHP 5.5.34 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.34. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.34 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.34">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.34'); diff --git a/releases/5_5_35.php b/releases/5_5_35.php index f334dd3013..8c3b7646ad 100644 --- a/releases/5_5_35.php +++ b/releases/5_5_35.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_35.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.35 Release Announcement"); -?> - <h1>PHP 5.5.35 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.35. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.35 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.35">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.35'); diff --git a/releases/5_5_36.php b/releases/5_5_36.php index f456e0a890..1a37c3fcc7 100644 --- a/releases/5_5_36.php +++ b/releases/5_5_36.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_36.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.36 Release Announcement"); -?> - <h1>PHP 5.5.36 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.36. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.36 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.36">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.36'); diff --git a/releases/5_5_37.php b/releases/5_5_37.php index 1708207004..cbb4f1d93f 100644 --- a/releases/5_5_37.php +++ b/releases/5_5_37.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_37.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.37 Release Announcement"); -?> - <h1>PHP 5.5.37 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.5.37. This is a security release, several security bugs were fixed. - - All PHP 5.5 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.5.37 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.37">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.37'); diff --git a/releases/5_5_38.php b/releases/5_5_38.php index 5356334bd3..84837cfda1 100644 --- a/releases/5_5_38.php +++ b/releases/5_5_38.php @@ -1,22 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_38.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.38 Release Announcement"); -?> - <h1>PHP 5.5.38 Release Announcement</h1> - - <p> - The PHP development team announces the immediate availability of PHP 5.5.38. This is a security release that fixes - some security related bugs. - </p> - - <p>All PHP 5.5 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 5.5.38 please visit our downloads page, Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. The list of changes is recorded in the <a href="http://php.net/ChangeLog-5.php#5.5.38">ChangeLog</a>.</p> - - <p> - Note that according to <a href="http://www.php.net/supported-versions.php">our release schedule</a>, PHP 5.5.38 is the last release of the PHP 5.5 branch. - There may be additional release if we discover important security issues that warrant it, otherwise this release will be the final one in the PHP 5.5 branch. If your PHP installation is based on PHP 5.5, it may be a good time to start making the plans for the upgrade to PHP 5.6 or PHP 7.0. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.38'); diff --git a/releases/5_5_4.php b/releases/5_5_4.php index f7409b010a..6096c9e306 100644 --- a/releases/5_5_4.php +++ b/releases/5_5_4.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.4 Release Announcement"); -?> - -<h1>PHP 5.5.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.5.4. -This release fixes several bugs against PHP 5.5.3.</p> - -<p>All PHP users are encouraged to upgrade to this release.</p> - -<p>For source downloads of PHP 5.5.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.4">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.4'); diff --git a/releases/5_5_5.php b/releases/5_5_5.php index c4945f00fc..b6e69f7db5 100644 --- a/releases/5_5_5.php +++ b/releases/5_5_5.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.5 Release Announcement"); -?> - -<h1>PHP 5.5.5 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.5. -This release fixes about twenty bugs against PHP 5.5.4, some of them regarding the build system.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.5, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.5">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.5'); diff --git a/releases/5_5_6.php b/releases/5_5_6.php index 73ef831603..ec9205556a 100644 --- a/releases/5_5_6.php +++ b/releases/5_5_6.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.6 Release Announcement"); -?> - -<h1>PHP 5.5.6 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.6. -This release fixes some bugs against PHP 5.5.5, and adds some performance improvements.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.6, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.6">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.6'); diff --git a/releases/5_5_7.php b/releases/5_5_7.php index 643a8baf48..c979bb58ca 100644 --- a/releases/5_5_7.php +++ b/releases/5_5_7.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.7 Release Announcement"); -?> - -<h1>PHP 5.5.7 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.7. -This release fixes some bugs against PHP 5.5.6, and fixes CVE-2013-6420.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.7, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.7">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.7'); diff --git a/releases/5_5_8.php b/releases/5_5_8.php index de1a12ed56..f20b332ffb 100644 --- a/releases/5_5_8.php +++ b/releases/5_5_8.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.7 Release Announcement"); -?> - -<h1>PHP 5.5.8 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.8. -This release fixes about 20 bugs against PHP 5.5.7.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.8, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.8">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.8'); diff --git a/releases/5_5_9.php b/releases/5_5_9.php index 282445b2a5..675d39fa4d 100644 --- a/releases/5_5_9.php +++ b/releases/5_5_9.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_5_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.5.9 Release Announcement"); -?> - -<h1>PHP 5.5.9 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.5.9. -This release fixes several bugs against PHP 5.5.8.</p> - -<p>All PHP users are encouraged to upgrade to this new version.</p> - -<p>For source downloads of PHP 5.5.9, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.5.9">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.5.9'); diff --git a/releases/5_6_0.php b/releases/5_6_0.php index c2a8bbc753..6eaf8eab36 100644 --- a/releases/5_6_0.php +++ b/releases/5_6_0.php @@ -1,48 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.0 Release Announcement"); -?> - -<h1>PHP 5.6.0 Release Announcement</h1> - -<p>The PHP Development Team announces the immediate availability of PHP 5.6.0. -This new version comes with new features, some backward incompatible changes and many improvements. -</p> - -<p><b>The main features of PHP 5.6.0 include:</b></p> -<ul> - <li><a href="http://php.net/migration56.new-features#migration56.new-features.const-scalar-exprs">Constant scalar expressions</a>.</li> - <li><a href="http://php.net/functions.arguments#functions.variable-arg-list">Variadic functions</a> and argument unpacking using the <code>...</code> operator.</li> -<li><a href="http://php.net/language.operators.arithmetic">Exponentiation using the <code>**</code> operator</a>.</li> - <li><a href="http://php.net/migration56.new-features#migration56.new-features.use">Function and constant importing</a> with the <a href="http://php.net/language.namespaces.importing">use keyword</a>.</li> - <li><a href="http://phpdbg.com/docs">phpdbg</a> as an interactive integrated debugger SAPI.</li> - <li><a href="http://php.net/wrappers#wrappers.php.input">php://input</a> is now reusable, and <code>$HTTP_RAW_POST_DATA</code> is deprecated.</li> - <li><a href="http://php.net/book.gmp">GMP</a> objects now support operator overloading.</li> - <li>File uploads larger than 2 gigabytes in size are now accepted.</li> -</ul> - -<p>For a full list of new features, you may read <a href="http://php.net/migration56.new-features">the new features chapter of the migration guide</a>.</p> - -<p> -<b>PHP 5.6.0 also introduces changes that affect compatibility:</b> -</p> - -<ul> - <li>Array keys won't be overwritten when defining an array as a property of a class via an array literal.</li> - <li><a href="http://php.net/function.json-decode">json_decode()</a> is more strict in JSON syntax parsing.</li> - <li>Stream wrappers now verify peer certificates and host names by default when using SSL/TLS.</li> - <li><a href="http://php.net/book.gmp">GMP</a> resources are now objects.</li> - <li><a href="http://php.net/book.mcrypt">Mcrypt</a> functions now require valid keys and IVs.</li> -</ul> - -<p> - For users upgrading from PHP 5.5, <a href="http://php.net/migration56">a full migration guide</a> is available, detailing the changes between 5.5 and 5.6.0. -</p> - -<p>For source downloads of PHP 5.6.0, please visit our <a href="http://www.php.net/downloads.php">downloads page</a>. -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The full list of changes is available in the <a href="http://www.php.net/ChangeLog-5.php#5.6.0">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.0'); diff --git a/releases/5_6_1.php b/releases/5_6_1.php index 17616e6dbc..297cd5c5ea 100644 --- a/releases/5_6_1.php +++ b/releases/5_6_1.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.1 Release Announcement"); -?> - -<h1>PHP 5.6.1 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.1. Several bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.1">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.1'); diff --git a/releases/5_6_10.php b/releases/5_6_10.php index 92c11117ed..d0cb6f49ce 100644 --- a/releases/5_6_10.php +++ b/releases/5_6_10.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.10 Release Announcement"); -?> - <h1>PHP 5.6.10 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.10. Several bugs have been fixed as well as several security issues into some - bundled librairies (CVE-2015-3414, CVE-2015-3415, CVE-2015-3416, CVE-2015-2325 and CVE-2015-2326). - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.10 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.10">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.10'); diff --git a/releases/5_6_11.php b/releases/5_6_11.php index e8ef1aaaea..5513839d20 100644 --- a/releases/5_6_11.php +++ b/releases/5_6_11.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.11 Release Announcement"); -?> - -<h1>PHP 5.6.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -5.6.11. Five security-related issues in PHP were fixed in this release, including CVE-2015-3152. -All PHP 5.6 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.6.11 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.11">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.11'); diff --git a/releases/5_6_12.php b/releases/5_6_12.php index 79d34e217a..370a7531f0 100644 --- a/releases/5_6_12.php +++ b/releases/5_6_12.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.12 Release Announcement"); -?> - <h1>PHP 5.6.12 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.12. 12 security-related issues were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.12 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.12">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.12'); diff --git a/releases/5_6_13.php b/releases/5_6_13.php index 4608e6ca3d..d59f273770 100644 --- a/releases/5_6_13.php +++ b/releases/5_6_13.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.13 Release Announcement"); -?> - <h1>PHP 5.6.13 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.13. 11 security-related issues were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.13 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.13">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.13'); diff --git a/releases/5_6_14.php b/releases/5_6_14.php index 45c06d993c..efbd24d00b 100644 --- a/releases/5_6_14.php +++ b/releases/5_6_14.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.14 Release Announcement"); -?> - <h1>PHP 5.6.14 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.14. This is a security release. Two security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.14 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.14">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.14'); diff --git a/releases/5_6_15.php b/releases/5_6_15.php index 51c3649171..9dc2cdb336 100644 --- a/releases/5_6_15.php +++ b/releases/5_6_15.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.15 Release Announcement"); -?> - - <h1>PHP 5.6.15 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.15. Several bugs have been fixed. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.15 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.15">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.15'); diff --git a/releases/5_6_16.php b/releases/5_6_16.php index 9c01b9af9f..611db9d60b 100644 --- a/releases/5_6_16.php +++ b/releases/5_6_16.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.15 Release Announcement"); -?> - - <h1>PHP 5.6.16 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.16. Several bugs have been fixed. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.16 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.16">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.16'); diff --git a/releases/5_6_17.php b/releases/5_6_17.php index 95e94b88d1..1d83d86874 100644 --- a/releases/5_6_17.php +++ b/releases/5_6_17.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.17 Release Announcement"); -?> - <h1>PHP 5.6.17 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.17. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.17">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.17'); diff --git a/releases/5_6_18.php b/releases/5_6_18.php index 3d14865b1a..eee9cda8d4 100644 --- a/releases/5_6_18.php +++ b/releases/5_6_18.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.18 Release Announcement"); -?> - <h1>PHP 5.6.18 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.18. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.18">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.18'); diff --git a/releases/5_6_19.php b/releases/5_6_19.php index ba1447cef6..74cc370732 100644 --- a/releases/5_6_19.php +++ b/releases/5_6_19.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.19 Release Announcement"); -?> - <h1>PHP 5.6.19 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.19. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.19">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.19'); diff --git a/releases/5_6_2.php b/releases/5_6_2.php index 30644d9b56..ed5019dabc 100644 --- a/releases/5_6_2.php +++ b/releases/5_6_2.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.2 Release Announcement"); -?> - -<h1>PHP 5.6.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.6.2. -Four security-related bugs were fixed in this release, including fixes for CVE-2014-3668, CVE-2014-3669 and CVE-2014-3670. -All PHP 5.6 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.6.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.2">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.2'); diff --git a/releases/5_6_20.php b/releases/5_6_20.php index 14c1cca08d..38564d021f 100644 --- a/releases/5_6_20.php +++ b/releases/5_6_20.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.20 Release Announcement"); -?> - <h1>PHP 5.6.20 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.20. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.20">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.20'); diff --git a/releases/5_6_21.php b/releases/5_6_21.php index 4c04249c92..a17ec75e62 100644 --- a/releases/5_6_21.php +++ b/releases/5_6_21.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.21 Release Announcement"); -?> - <h1>PHP 5.6.21 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.21. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.21">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.21'); diff --git a/releases/5_6_22.php b/releases/5_6_22.php index a1e76edf90..ea0acb5968 100644 --- a/releases/5_6_22.php +++ b/releases/5_6_22.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.22 Release Announcement"); -?> - <h1>PHP 5.6.22 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.22. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.22">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.22'); diff --git a/releases/5_6_23.php b/releases/5_6_23.php index 3258785dae..e22bf7f1f7 100644 --- a/releases/5_6_23.php +++ b/releases/5_6_23.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.23 Release Announcement"); -?> - <h1>PHP 5.6.23 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.23. Several bugs were fixed in this release, including security-related ones. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.23">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.23'); diff --git a/releases/5_6_24.php b/releases/5_6_24.php index 3d4a10b76c..ffbfb07d8d 100644 --- a/releases/5_6_24.php +++ b/releases/5_6_24.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.24 Release Announcement"); -?> - - <h1>PHP 5.6.24 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.24. This is a security release. Several security bugs were fixed in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.24">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.24'); diff --git a/releases/5_6_25.php b/releases/5_6_25.php index fcf349acf3..199a9c20d5 100644 --- a/releases/5_6_25.php +++ b/releases/5_6_25.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.25 Release Announcement"); -?> - - <h1>PHP 5.6.25 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.25. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.25 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.25">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.25'); diff --git a/releases/5_6_26.php b/releases/5_6_26.php index c6053aa69a..396e775270 100644 --- a/releases/5_6_26.php +++ b/releases/5_6_26.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.26 Release Announcement"); -?> - - <h1>PHP 5.6.26 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.26. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.26">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.26'); diff --git a/releases/5_6_27.php b/releases/5_6_27.php index e4a84d5106..ff5025409d 100644 --- a/releases/5_6_27.php +++ b/releases/5_6_27.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.27 Release Announcement"); -?> - - <h1>PHP 5.6.27 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.27. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.27">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.27'); diff --git a/releases/5_6_28.php b/releases/5_6_28.php index b6e36e3532..1c7a1885f7 100644 --- a/releases/5_6_28.php +++ b/releases/5_6_28.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.28 Release Announcement"); -?> - - <h1>PHP 5.6.28 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.28. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.28">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.28'); diff --git a/releases/5_6_29.php b/releases/5_6_29.php index eaa1d39c84..de24d9025f 100644 --- a/releases/5_6_29.php +++ b/releases/5_6_29.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.29 Release Announcement"); -?> - - <h1>PHP 5.6.29 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.29. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.29 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.29">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.29'); diff --git a/releases/5_6_3.php b/releases/5_6_3.php index d7f8c4e4f2..bcf8fe39eb 100644 --- a/releases/5_6_3.php +++ b/releases/5_6_3.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.3 Release Announcement"); -?> - -<h1>PHP 5.6.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 5.6.3. -This release fixes several bugs and one CVE in the fileinfo extension. -All PHP 5.6 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 5.6.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.3">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.3'); diff --git a/releases/5_6_30.php b/releases/5_6_30.php index 608e49ce8f..d3b7c9cbc2 100644 --- a/releases/5_6_30.php +++ b/releases/5_6_30.php @@ -1,28 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.30 Release Announcement"); -?> - - <h1>PHP 5.6.30 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.30. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p> - According to <a href="http://php.net/supported-versions.php">our release calendar</a>, this PHP 5.6 version - is the last planned release that contains regular bugfixes. All the consequent releases - will contain only security-relevant fixes, for the term of two years. - PHP 5.6 users that need further bugfixes are encouraged to upgrade to PHP 7. - </p> - - <p>For source downloads of PHP 5.6.30 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.30">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.30'); diff --git a/releases/5_6_31.php b/releases/5_6_31.php index ff7e4349cf..03cb1a5f70 100644 --- a/releases/5_6_31.php +++ b/releases/5_6_31.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.31 Release Announcement"); -?> - - <h1>PHP 5.6.31 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.31. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.31 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.31">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.31'); diff --git a/releases/5_6_32.php b/releases/5_6_32.php index 744e972724..9b88e4c6a3 100644 --- a/releases/5_6_32.php +++ b/releases/5_6_32.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.32 Release Announcement"); -?> - - <h1>PHP 5.6.32 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.32. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.32 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.32">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.32'); diff --git a/releases/5_6_33.php b/releases/5_6_33.php index 83d5b6417d..116c0f9fe5 100644 --- a/releases/5_6_33.php +++ b/releases/5_6_33.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.33 Release Announcement"); -?> - - <h1>PHP 5.6.33 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.33. This is a security release. Several security bugs were fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.33 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.33">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.33'); diff --git a/releases/5_6_34.php b/releases/5_6_34.php index 276aa8800a..cd16738950 100644 --- a/releases/5_6_34.php +++ b/releases/5_6_34.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_34.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.34 Release Announcement"); -?> - - <h1>PHP 5.6.34 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.34. This is a security release. One security bug was fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.34 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.34">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.34'); diff --git a/releases/5_6_35.php b/releases/5_6_35.php index ce9379568e..e5f4612749 100644 --- a/releases/5_6_35.php +++ b/releases/5_6_35.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_35.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.35 Release Announcement"); -?> - - <h1>PHP 5.6.35 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.35. This is a security release. One security bug was fixed in - this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.35 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.35">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.35'); diff --git a/releases/5_6_36.php b/releases/5_6_36.php index 3175ee18e5..c0db7d36ec 100644 --- a/releases/5_6_36.php +++ b/releases/5_6_36.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_36.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.36 Release Announcement"); -?> - - <h1>PHP 5.6.36 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.36. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.36 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.36">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.36'); diff --git a/releases/5_6_37.php b/releases/5_6_37.php index 56409093d8..fc97419f08 100644 --- a/releases/5_6_37.php +++ b/releases/5_6_37.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_37.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.37 Release Announcement"); -?> - - <h1>PHP 5.6.37 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.37. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.37 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.37">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.37'); diff --git a/releases/5_6_38.php b/releases/5_6_38.php index f3f64e72a9..0648b13ec0 100644 --- a/releases/5_6_38.php +++ b/releases/5_6_38.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_38.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.38 Release Announcement"); -?> - - <h1>PHP 5.6.38 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.38. This is a security release. One security bug has been fixed - in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.38 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.38">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.38'); diff --git a/releases/5_6_39.php b/releases/5_6_39.php index 1bc854ef06..00cfb2ee49 100644 --- a/releases/5_6_39.php +++ b/releases/5_6_39.php @@ -1,32 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_39.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.39 Release Announcement"); -?> - - <h1>PHP 5.6.39 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.39. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.39 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.39">ChangeLog</a>. - </p> - - <p>Please note that according to the <a href="http://php.net/supported-versions.php">PHP version -support timelines</a>, - PHP 5.6.39 is the last scheduled release of PHP 5.6 branch. There may be additional release if we -discover - important security issues that warrant it, otherwise this release will be the final one in the PHP -5.6 branch. - If your PHP installation is based on PHP 5.6, it may be a good time to start making the plans for -the upgrade - to PHP 7.1, PHP 7.2 or PHP 7.3. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.39'); diff --git a/releases/5_6_4.php b/releases/5_6_4.php index 9f3c700bbb..ecd644d3ea 100644 --- a/releases/5_6_4.php +++ b/releases/5_6_4.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.4 Release Announcement"); -?> - -<h1>PHP 5.6.4 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.4. This release fixes several bugs and one CVE related to unserialization. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.4">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.4'); diff --git a/releases/5_6_40.php b/releases/5_6_40.php index a0880e1dde..3df42da243 100644 --- a/releases/5_6_40.php +++ b/releases/5_6_40.php @@ -1,32 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_40.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.40 Release Announcement"); -?> - - <h1>PHP 5.6.40 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.40. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.40 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.40">ChangeLog</a>. - </p> - - <p>Please note that according to the <a href="http://php.net/supported-versions.php">PHP version -support timelines</a>, - PHP 5.6.40 is the last scheduled release of PHP 5.6 branch. There may be additional release if we -discover - important security issues that warrant it, otherwise this release will be the final one in the PHP -5.6 branch. - If your PHP installation is based on PHP 5.6, it may be a good time to start making the plans for -the upgrade - to PHP 7.1, PHP 7.2 or PHP 7.3. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.40'); diff --git a/releases/5_6_5.php b/releases/5_6_5.php index fd687d6889..c98e55f9cc 100644 --- a/releases/5_6_5.php +++ b/releases/5_6_5.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.5 Release Announcement"); -?> - -<h1>PHP 5.6.5 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.5. This release fixes several bugs as well as CVE-2015-0231, CVE-2014-9427 and CVE-2015-0232. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.5">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.5'); diff --git a/releases/5_6_6.php b/releases/5_6_6.php index 91af39dcab..6d325ac88b 100644 --- a/releases/5_6_6.php +++ b/releases/5_6_6.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.6 Release Announcement"); -?> - -<h1>PHP 5.6.6 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.6. This release fixes several bugs and addresses CVE-2015-0235 and CVE-2015-0273. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.6">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.6'); diff --git a/releases/5_6_7.php b/releases/5_6_7.php index dcfdc7f473..071e4ef39a 100644 --- a/releases/5_6_7.php +++ b/releases/5_6_7.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.7 Release Announcement"); -?> -<h1>PHP 5.6.7 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.7. Several bugs have been fixed as well as CVE-2015-0231, CVE-2015-2305 and CVE-2015-2331. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.7">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.7'); diff --git a/releases/5_6_8.php b/releases/5_6_8.php index c68e0c08dd..c122b2aec2 100644 --- a/releases/5_6_8.php +++ b/releases/5_6_8.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.8 Release Announcement"); -?> - <h1>PHP 5.6.8 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.8. Several bugs have been fixed some of them beeing security related, like CVE-2015-1351 and CVE-2015-1352. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.8 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.8">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.8'); diff --git a/releases/5_6_9.php b/releases/5_6_9.php index df6cb7e170..3fb68f40a6 100644 --- a/releases/5_6_9.php +++ b/releases/5_6_9.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/5_6_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 5.6.9 Release Announcement"); -?> - - <h1>PHP 5.6.9 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 5.6.9. Several bugs have been fixed. - - All PHP 5.6 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 5.6.9 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-5.php#5.6.9">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('5.6.9'); diff --git a/releases/7_0_0.php b/releases/7_0_0.php index a9c03fcd43..d80e51cf4a 100644 --- a/releases/7_0_0.php +++ b/releases/7_0_0.php @@ -1,57 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.0 Release Announcement"); -?> - - <h1>PHP 7.0.0 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.0. This release marks the start of the new major PHP 7 series. - </p> - <p> - PHP 7.0.0 comes with a new version of the Zend Engine, numerous improvements - and new features such as - </p> - <ul> - <li>Improved performance: PHP 7 is up to twice as fast as PHP 5.6</li> - <li>Significantly reduced memory usage</li> - <li>Abstract Syntax Tree</li> - <li>Consistent 64-bit support</li> - <li>Improved Exception hierarchy</li> - <li>Many fatal errors converted to Exceptions</li> - <li>Secure random number generator</li> - <li>Removed old and unsupported SAPIs and extensions</li> - <li>The null coalescing operator (??)</li> - <li>Return and Scalar Type Declarations</li> - <li>Anonymous Classes</li> - <li>Zero cost asserts</li> - </ul> - - <p>For source downloads of PHP 7.0.0 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.0">ChangeLog</a>. - </p> - <p> - The <a href="http://php.net/manual/migration70.php">migration guide</a> is available in the PHP Manual. Please consult - it for the detailed list of new features and backward incompatible changes. - </p> - - <p> - The inconvenience of the release lateness in several time zones is caused by the need to ensure the - compatibility with the latest OpenSSL 1.0.2e release. Thanks for the patience! - </p> - - <p> - It is not just a next major PHP version being released today. - The release being introduced is an outcome of the almost two years development - journey. It is a very special accomplishment of the core team. And, it is a - result of incredible efforts of many active community members. - Indeed, it is not just a final release being brought out today, it is the rise of - a new PHP generation with an enormous potential. - </p> - - <p>Congratulations everyone to this spectacular day for the PHP world!</p> - <p>Grateful thanks to all the contributors and supporters!</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.0'); diff --git a/releases/7_0_1.php b/releases/7_0_1.php index d5ee6a501f..253efb6975 100644 --- a/releases/7_0_1.php +++ b/releases/7_0_1.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.1 Release Announcement"); -?> - - <h1>PHP 7.0.1 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.1. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.1">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.1'); diff --git a/releases/7_0_10.php b/releases/7_0_10.php index 37b4e556ae..efc5907cbd 100644 --- a/releases/7_0_10.php +++ b/releases/7_0_10.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.10 Release Announcement"); -?> - - <h1>PHP 7.0.10 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.10. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.10 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.10">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.10'); diff --git a/releases/7_0_11.php b/releases/7_0_11.php index d8fb6b3bf6..fc301c9e54 100644 --- a/releases/7_0_11.php +++ b/releases/7_0_11.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.11 Release Announcement"); -?> - - <h1>PHP 7.0.11 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.11. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.11 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.11">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.11'); diff --git a/releases/7_0_12.php b/releases/7_0_12.php index 0deefa9771..8b599ab083 100644 --- a/releases/7_0_12.php +++ b/releases/7_0_12.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.12 Release Announcement"); -?> - - <h1>PHP 7.0.12 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.12. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.12 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.12">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.12'); diff --git a/releases/7_0_13.php b/releases/7_0_13.php index e1ff50a487..434ef0faa0 100644 --- a/releases/7_0_13.php +++ b/releases/7_0_13.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.13 Release Announcement"); -?> - - <h1>PHP 7.0.13 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.13. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.13 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.13">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.13'); diff --git a/releases/7_0_14.php b/releases/7_0_14.php index 6ab05f87b6..c1964a444e 100644 --- a/releases/7_0_14.php +++ b/releases/7_0_14.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.14 Release Announcement"); -?> - - <h1>PHP 7.0.14 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.14. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.14 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.14">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.14'); diff --git a/releases/7_0_15.php b/releases/7_0_15.php index c2fbfb4421..cb664f7924 100644 --- a/releases/7_0_15.php +++ b/releases/7_0_15.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.15 Release Announcement"); -?> - - <h1>PHP 7.0.15 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.15. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.15 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.15">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.15'); diff --git a/releases/7_0_16.php b/releases/7_0_16.php index 35c21b4280..2d14ddd4c8 100644 --- a/releases/7_0_16.php +++ b/releases/7_0_16.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.16 Release Announcement"); -?> - - <h1>PHP 7.0.16 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.16. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.16 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.16">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.16'); diff --git a/releases/7_0_17.php b/releases/7_0_17.php index 6476498d3e..3c065b547e 100644 --- a/releases/7_0_17.php +++ b/releases/7_0_17.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.17 Release Announcement"); -?> - - <h1>PHP 7.0.17 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.17. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.17">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.17'); diff --git a/releases/7_0_18.php b/releases/7_0_18.php index 5a3751e698..58dd6390d7 100644 --- a/releases/7_0_18.php +++ b/releases/7_0_18.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.18 Release Announcement"); -?> - - <h1>PHP 7.0.18 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.18. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.18">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.18'); diff --git a/releases/7_0_19.php b/releases/7_0_19.php index a83318fe1f..fec2ea9f3c 100644 --- a/releases/7_0_19.php +++ b/releases/7_0_19.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.19 Release Announcement"); -?> - - <h1>PHP 7.0.19 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.19. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.19">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.19'); diff --git a/releases/7_0_2.php b/releases/7_0_2.php index e069ea38d8..813c098d58 100644 --- a/releases/7_0_2.php +++ b/releases/7_0_2.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.2 Release Announcement"); -?> - - <h1>PHP 7.0.2 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.2. 31 reported bugs has been fixed, including 6 security related issues. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.2">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.2'); diff --git a/releases/7_0_20.php b/releases/7_0_20.php index 91e403deab..4b889cdb55 100644 --- a/releases/7_0_20.php +++ b/releases/7_0_20.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.20 Release Announcement"); -?> - - <h1>PHP 7.0.20 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.20. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.20">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.20'); diff --git a/releases/7_0_21.php b/releases/7_0_21.php index 0fa6ef90e0..cf07d01170 100644 --- a/releases/7_0_21.php +++ b/releases/7_0_21.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.21 Release Announcement"); -?> - - <h1>PHP 7.0.21 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.21. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.21">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.21'); diff --git a/releases/7_0_22.php b/releases/7_0_22.php index b80b514ef0..812509b3e6 100644 --- a/releases/7_0_22.php +++ b/releases/7_0_22.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.22 Release Announcement"); -?> - - <h1>PHP 7.0.22 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.22. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.22">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.22'); diff --git a/releases/7_0_23.php b/releases/7_0_23.php index ff9df4a370..3a38345c01 100644 --- a/releases/7_0_23.php +++ b/releases/7_0_23.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.23 Release Announcement"); -?> - - <h1>PHP 7.0.23 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.23. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.23">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.23'); diff --git a/releases/7_0_24.php b/releases/7_0_24.php index baf73b3029..ab5dc4c77b 100644 --- a/releases/7_0_24.php +++ b/releases/7_0_24.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.24 Release Announcement"); -?> - - <h1>PHP 7.0.24 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.24. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.24">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.24'); diff --git a/releases/7_0_25.php b/releases/7_0_25.php index 60c621c141..4065ea5fad 100644 --- a/releases/7_0_25.php +++ b/releases/7_0_25.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.25 Release Announcement"); -?> - - <h1>PHP 7.0.25 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.25. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.25 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.25">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.25'); diff --git a/releases/7_0_26.php b/releases/7_0_26.php index 84cde09128..70867c5619 100644 --- a/releases/7_0_26.php +++ b/releases/7_0_26.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.26 Release Announcement"); -?> - - <h1>PHP 7.0.26 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.26. Several bugs have been fixed. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.26">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.26'); diff --git a/releases/7_0_27.php b/releases/7_0_27.php index d76cdf94d2..91f4052d43 100644 --- a/releases/7_0_27.php +++ b/releases/7_0_27.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.27 Release Announcement"); -?> - - <h1>PHP 7.0.27 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.27. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.27">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.27'); diff --git a/releases/7_0_28.php b/releases/7_0_28.php index 46cc942b8f..8bdecaae45 100644 --- a/releases/7_0_28.php +++ b/releases/7_0_28.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.28 Release Announcement"); -?> - - <h1>PHP 7.0.28 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.28. This is a security release. One security bug was fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.28">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.28'); diff --git a/releases/7_0_29.php b/releases/7_0_29.php index 4d235fc464..9a50d5a74b 100644 --- a/releases/7_0_29.php +++ b/releases/7_0_29.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.29 Release Announcement"); -?> - - <h1>PHP 7.0.29 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.29. This is a security release. One security bug was fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.29 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.29">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.29'); diff --git a/releases/7_0_3.php b/releases/7_0_3.php index 80ed7fbbef..e89065c8d3 100644 --- a/releases/7_0_3.php +++ b/releases/7_0_3.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.3 Release Announcement"); -?> - - <h1>PHP 7.0.3 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.3. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.3">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.3'); diff --git a/releases/7_0_30.php b/releases/7_0_30.php index b5b59760a8..a824ca5a6c 100644 --- a/releases/7_0_30.php +++ b/releases/7_0_30.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.30 Release Announcement"); -?> - - <h1>PHP 7.0.30 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.30. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.30 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.30">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.30'); diff --git a/releases/7_0_31.php b/releases/7_0_31.php index eedf1d8c8c..b25e53ddf7 100644 --- a/releases/7_0_31.php +++ b/releases/7_0_31.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.31 Release Announcement"); -?> - - <h1>PHP 7.0.31 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.31. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.31 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.31">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.31'); diff --git a/releases/7_0_32.php b/releases/7_0_32.php index 0c756a27bc..c5d356699b 100644 --- a/releases/7_0_32.php +++ b/releases/7_0_32.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.32 Release Announcement"); -?> - - <h1>PHP 7.0.32 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.32. This is a security release. One security bug has been fixed - in this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.32 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.32">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.32'); diff --git a/releases/7_0_33.php b/releases/7_0_33.php index 9bcd72c6b7..19f63b1be4 100644 --- a/releases/7_0_33.php +++ b/releases/7_0_33.php @@ -1,26 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.33 Release Announcement"); -?> - -<h1>PHP 7.0.33 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -7.0.33. Five security-related issues were fixed in this release. -All PHP 7.0 users are encouraged to upgrade to this version. -</p> - -<p>For source downloads of PHP 7.0.33 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.33">ChangeLog</a>. -</p> - -<p>Please note that according to the <a href="http://php.net/supported-versions.php">PHP version support timelines</a>, -PHP 7.0.33 is the last scheduled release of PHP 7.0 branch. There may be additional release if we discover -important security issues that warrant it, otherwise this release will be the final one in the PHP 7.0 branch. -If your PHP installation is based on PHP 7.0, it may be a good time to start making the plans for the upgrade -to PHP 7.1, PHP 7.2 or PHP 7.3. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.33'); diff --git a/releases/7_0_4.php b/releases/7_0_4.php index db41cdc195..6bf7bd95cb 100644 --- a/releases/7_0_4.php +++ b/releases/7_0_4.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.4 Release Announcement"); -?> - - <h1>PHP 7.0.4 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.4. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.4">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.4'); diff --git a/releases/7_0_5.php b/releases/7_0_5.php index 26727154b0..994d66b43c 100644 --- a/releases/7_0_5.php +++ b/releases/7_0_5.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.5 Release Announcement"); -?> - - <h1>PHP 7.0.5 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.5. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.5">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.5'); diff --git a/releases/7_0_6.php b/releases/7_0_6.php index 6ebe1cc1ff..b46f400c6e 100644 --- a/releases/7_0_6.php +++ b/releases/7_0_6.php @@ -1,25 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.6 Release Announcement"); -?> - - <h1>PHP 7.0.6 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.6. This is a security release. Several security bugs were fixed in - this release, including</p> - <ul> - <li>CVE-2016-3078</li> - <li>CVE-2016-3074</li> - </ul> - <p> - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.6">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.6'); diff --git a/releases/7_0_7.php b/releases/7_0_7.php index 937aa325e0..78d28585e4 100644 --- a/releases/7_0_7.php +++ b/releases/7_0_7.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.7 Release Announcement"); -?> - - <h1>PHP 7.0.7 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.7. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.7">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.7'); diff --git a/releases/7_0_8.php b/releases/7_0_8.php index ac53e0f20b..c4556e2abd 100644 --- a/releases/7_0_8.php +++ b/releases/7_0_8.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.8 Release Announcement"); -?> - - <h1>PHP 7.0.8 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.8. This is a security release. Several security bugs were fixed in - this release. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.8 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.8">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.8'); diff --git a/releases/7_0_9.php b/releases/7_0_9.php index 93bce497c7..ce2ff8fc72 100644 --- a/releases/7_0_9.php +++ b/releases/7_0_9.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_0_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.0.9 Release Announcement"); -?> - - <h1>PHP 7.0.9 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.0.9. This is a security release. Several security bugs were fixed in - this release, including the HTTP_PROXY issue. - - All PHP 7.0 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.0.9 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.0.9">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.0.9'); diff --git a/releases/7_1_0.php b/releases/7_1_0.php index a046897cdd..2a109bfb71 100644 --- a/releases/7_1_0.php +++ b/releases/7_1_0.php @@ -1,29 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.0 Release Announcement"); -?> - - <h1>PHP 7.1.0 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP 7.1.0. This release is the first point release in the 7.x series.</p> - - <p>PHP 7.1.0 comes with numerous improvements and new features such as</p> - - <ul> - <li><a href="https://wiki.php.net/rfc/nullable_types">Nullable types</a></li> - <li><a href="https://wiki.php.net/rfc/void_return_type">Void return type</a></li> - <li><a href="https://wiki.php.net/rfc/iterable">Iterable pseudo-type</a></li> - <li><a href="https://wiki.php.net/rfc/class_const_visibility">Class constant visiblity modifiers</a></li> - <li><a href="https://wiki.php.net/rfc/short_list_syntax">Square bracket syntax for <code>list()</code></a> and <a href="https://wiki.php.net/rfc/list_keys">the ability to specify keys in <code>list()</code></a></li> - <li><a href="https://wiki.php.net/rfc/multiple-catch">Catching multiple exceptions types</a></li> - <li><a href="https://wiki.php.net/rfc#php_71">Many more features and changes…</a></li> - </ul> - - <p>For source downloads of PHP 7.1.0 please visit our <a href="http://www.php.net/downloads">downloads</a> page, Windows binaries can be found on the <a href="http://windows.php.net/download">PHP for Windows</a> site. The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.0">ChangeLog</a>.</p> - - <p>The <a href="http://php.net/manual/en/migration71.php">migration guide</a> is available in the PHP Manual. Please consult it for the detailed list of new features and backward incompatible changes.</p> - - <p>Many thanks to all the contributors and supporters!</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.0'); diff --git a/releases/7_1_1.php b/releases/7_1_1.php index 43008be431..ae970a4026 100644 --- a/releases/7_1_1.php +++ b/releases/7_1_1.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.1 Release Announcement"); -?> - - <h1>PHP 7.1.1 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.1. Several bugs have been fixed. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.1">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.1'); diff --git a/releases/7_1_10.php b/releases/7_1_10.php index 9b73894f6c..76e4f903c0 100644 --- a/releases/7_1_10.php +++ b/releases/7_1_10.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.10 Release Announcement"); -?> - - <h1>PHP 7.1.10 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.10. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.10 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.10">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.10'); diff --git a/releases/7_1_11.php b/releases/7_1_11.php index 1648da6f9b..4658ee41f2 100644 --- a/releases/7_1_11.php +++ b/releases/7_1_11.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.11 Release Announcement"); -?> - - <h1>PHP 7.1.11 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.11. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.11 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.11">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.11'); diff --git a/releases/7_1_12.php b/releases/7_1_12.php index 51307109f0..a211b6da84 100644 --- a/releases/7_1_12.php +++ b/releases/7_1_12.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.12 Release Announcement"); -?> - - <h1>PHP 7.1.12 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.12. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.12 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.12">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.12'); diff --git a/releases/7_1_13.php b/releases/7_1_13.php index b5f210d37a..d113f9746e 100644 --- a/releases/7_1_13.php +++ b/releases/7_1_13.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.13 Release Announcement"); -?> - - <h1>PHP 7.1.13 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.13. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.13 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.13">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.13'); diff --git a/releases/7_1_14.php b/releases/7_1_14.php index fa2b419c8c..1abb54720b 100644 --- a/releases/7_1_14.php +++ b/releases/7_1_14.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.14 Release Announcement"); -?> - - <h1>PHP 7.1.14 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.14. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.14 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.14">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.14'); diff --git a/releases/7_1_15.php b/releases/7_1_15.php index e1c41fa80c..2f5ba58461 100644 --- a/releases/7_1_15.php +++ b/releases/7_1_15.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.15 Release Announcement"); -?> - - <h1>PHP 7.1.15 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.15. This is a security fix release, containing one security fix and many bug fixes. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.15 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.15">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.15'); diff --git a/releases/7_1_16.php b/releases/7_1_16.php index 47e7e66e82..0fb35f3f76 100644 --- a/releases/7_1_16.php +++ b/releases/7_1_16.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.16 Release Announcement"); -?> - - <h1>PHP 7.1.16 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.16. This is a security fix release, containing one security fix and many bug fixes. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.16 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.16">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.16'); diff --git a/releases/7_1_17.php b/releases/7_1_17.php index b2e6c62c1c..1e029938b9 100644 --- a/releases/7_1_17.php +++ b/releases/7_1_17.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.17 Release Announcement"); -?> - - <h1>PHP 7.1.17 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.17. This is a security fix release, containing many bugfixes. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.17">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.17'); diff --git a/releases/7_1_18.php b/releases/7_1_18.php index 6795aa1adf..4667a2c481 100644 --- a/releases/7_1_18.php +++ b/releases/7_1_18.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.18 Release Announcement"); -?> - - <h1>PHP 7.1.18 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.18. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.18">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.18'); diff --git a/releases/7_1_19.php b/releases/7_1_19.php index cce61643a1..7ce6dcad0e 100644 --- a/releases/7_1_19.php +++ b/releases/7_1_19.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.19 Release Announcement"); -?> - - <h1>PHP 7.1.19 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.19. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.19">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.19'); diff --git a/releases/7_1_2.php b/releases/7_1_2.php index 2c4867e35b..a61c0be692 100644 --- a/releases/7_1_2.php +++ b/releases/7_1_2.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.2 Release Announcement"); -?> - - <h1>PHP 7.1.2 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.2. Several bugs have been fixed. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.2">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.2'); diff --git a/releases/7_1_20.php b/releases/7_1_20.php index 0954c3e6cb..d243ab4382 100644 --- a/releases/7_1_20.php +++ b/releases/7_1_20.php @@ -1,22 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.20 Release Announcement"); -?> - - <h1>PHP 7.1.20 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.20. This is a security release. Several security bugs have been fixed - in this release. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.20">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.20'); diff --git a/releases/7_1_21.php b/releases/7_1_21.php index d4ad64a7c2..8f69295b0e 100644 --- a/releases/7_1_21.php +++ b/releases/7_1_21.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.21 Release Announcement"); -?> - - <h1>PHP 7.1.21 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.21. This is a bugfix release. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.21">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.21'); diff --git a/releases/7_1_22.php b/releases/7_1_22.php index 2f036df131..6b9b2f9da5 100644 --- a/releases/7_1_22.php +++ b/releases/7_1_22.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.22 Release Announcement"); -?> - - <h1>PHP 7.1.22 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.22. This is a security release. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.22">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.22'); diff --git a/releases/7_1_23.php b/releases/7_1_23.php index 177facd0ff..9b859f2deb 100644 --- a/releases/7_1_23.php +++ b/releases/7_1_23.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.23 Release Announcement"); -?> -<h1>PHP 7.1.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.1.23. -This is a bugfix release.</p> - -<p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.1.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.23">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.23'); diff --git a/releases/7_1_24.php b/releases/7_1_24.php index c494ecc463..081bd94f07 100644 --- a/releases/7_1_24.php +++ b/releases/7_1_24.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.24 Release Announcement"); -?> -<h1>PHP 7.1.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.1.24. -This is a bugfix release.</p> - -<p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.1.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.24">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.24'); diff --git a/releases/7_1_25.php b/releases/7_1_25.php index 09db20d0b1..84126d1158 100644 --- a/releases/7_1_25.php +++ b/releases/7_1_25.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.25 Release Announcement"); -?> -<h1>PHP 7.1.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.1.25. -This is a security release.</p> - -<p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.1.25 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.25">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.25'); diff --git a/releases/7_1_26.php b/releases/7_1_26.php index 704a9db18a..5dfaf6c96b 100644 --- a/releases/7_1_26.php +++ b/releases/7_1_26.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.26 Release Announcement"); -?> - - <h1>PHP 7.1.26 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.26. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.26">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.26'); diff --git a/releases/7_1_27.php b/releases/7_1_27.php index 7663c276c5..0d63843929 100644 --- a/releases/7_1_27.php +++ b/releases/7_1_27.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.27 Release Announcement"); -?> - - <h1>PHP 7.1.27 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.27. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.27">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.27'); diff --git a/releases/7_1_28.php b/releases/7_1_28.php index 357628ea78..5302a4ba02 100644 --- a/releases/7_1_28.php +++ b/releases/7_1_28.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.28 Release Announcement"); -?> - - <h1>PHP 7.1.28 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.28. This is a security release.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.28">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.28'); diff --git a/releases/7_1_29.php b/releases/7_1_29.php index a146a0373c..9c3bbc1aa0 100644 --- a/releases/7_1_29.php +++ b/releases/7_1_29.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.29 Release Announcement"); -?> - - <h1>PHP 7.1.29 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.29. This is a security release.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.29 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.29">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.29'); diff --git a/releases/7_1_3.php b/releases/7_1_3.php index 0fb8b3a7e4..026c6fd25e 100644 --- a/releases/7_1_3.php +++ b/releases/7_1_3.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.3 Release Announcement"); -?> - - <h1>PHP 7.1.3 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.3. Several bugs have been fixed. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.3">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.3'); diff --git a/releases/7_1_30.php b/releases/7_1_30.php index 5f2341075f..1bf9477091 100644 --- a/releases/7_1_30.php +++ b/releases/7_1_30.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.30 Release Announcement"); -?> - - <h1>PHP 7.1.30 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.30. This is a security release.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.30 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.30">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.30'); diff --git a/releases/7_1_31.php b/releases/7_1_31.php index 23cfe2ebac..80247466ee 100644 --- a/releases/7_1_31.php +++ b/releases/7_1_31.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.31 Release Announcement"); -?> - - <h1>PHP 7.1.31 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.31. This is a security release.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.31 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.31">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.31'); diff --git a/releases/7_1_32.php b/releases/7_1_32.php index f4425d9ef1..b674cd7117 100644 --- a/releases/7_1_32.php +++ b/releases/7_1_32.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.32 Release Announcement"); -?> - - <h1>PHP 7.1.32 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.32. This is a security release.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.32 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.32">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.32'); diff --git a/releases/7_1_33.php b/releases/7_1_33.php index ac5ad6bbc3..bcf1fb3093 100644 --- a/releases/7_1_33.php +++ b/releases/7_1_33.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.33 Release Announcement"); -?> - - <h1>PHP 7.1.33 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.33. This is a security release.</p> - - <p>All PHP 7.1 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.1.33 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.33">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.33'); diff --git a/releases/7_1_4.php b/releases/7_1_4.php index fb92d88dca..24556a444b 100644 --- a/releases/7_1_4.php +++ b/releases/7_1_4.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.4 Release Announcement"); -?> - - <h1>PHP 7.1.4 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.4. Several bugs have been fixed. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.4">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.4'); diff --git a/releases/7_1_5.php b/releases/7_1_5.php index 5968ff876e..d7a843ad02 100644 --- a/releases/7_1_5.php +++ b/releases/7_1_5.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.5 Release Announcement"); -?> - - <h1>PHP 7.1.5 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.5. Several bugs have been fixed. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.5">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.5'); diff --git a/releases/7_1_6.php b/releases/7_1_6.php index 23252770d0..6ecc220366 100644 --- a/releases/7_1_6.php +++ b/releases/7_1_6.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.6 Release Announcement"); -?> - - <h1>PHP 7.1.6 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.6. Several bugs have been fixed. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.6">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.6'); diff --git a/releases/7_1_7.php b/releases/7_1_7.php index 9e0eb93e02..77d7a6833c 100644 --- a/releases/7_1_7.php +++ b/releases/7_1_7.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.7 Release Announcement"); -?> - - <h1>PHP 7.1.7 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.7. This is a security release with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.7">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.7'); diff --git a/releases/7_1_8.php b/releases/7_1_8.php index 0fb22a4db7..6d5d7e6876 100644 --- a/releases/7_1_8.php +++ b/releases/7_1_8.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.8 Release Announcement"); -?> - - <h1>PHP 7.1.8 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.8. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.8 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.8">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.8'); diff --git a/releases/7_1_9.php b/releases/7_1_9.php index 9fcaa91580..1333ac52e6 100644 --- a/releases/7_1_9.php +++ b/releases/7_1_9.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_1_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.1.9 Release Announcement"); -?> - - <h1>PHP 7.1.9 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.1.9. This is a bugfix release, with several bug fixes included. - - All PHP 7.1 users are encouraged to upgrade to this version. - </p> - - <p>For source downloads of PHP 7.1.9 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.1.9">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.1.9'); diff --git a/releases/7_2_0.php b/releases/7_2_0.php index c378fbdf51..ec343b30b7 100644 --- a/releases/7_2_0.php +++ b/releases/7_2_0.php @@ -1,34 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.0 Release Announcement"); -?> - - <h1>PHP 7.2.0 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP 7.2.0. - This release marks the second feature update to the PHP 7 series.</p> - - <p>PHP 7.2.0 comes with numerous improvements and new features such as</p> - - <ul> - <li><a href="https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts">Convert numeric keys in object/array casts</a></li> - <li><a href="https://wiki.php.net/rfc/counting_non_countables">Counting of non-countable objects</a></li> - <li><a href="https://wiki.php.net/rfc/object-typehint">Object typehint</a></li> - <li><a href="https://wiki.php.net/rfc/hash-context.as-resource">HashContext as Object</a></li> - <li><a href="https://wiki.php.net/rfc/argon2_password_hash">Argon2 in password hash</a></li> - <li><a href="https://wiki.php.net/rfc/improved-tls-constants">Improve TLS constants to sane values</a></li> - <li><a href="https://wiki.php.net/rfc/mcrypt-viking-funeral">Mcrypt extension removed</a></li> - <li><a href="https://wiki.php.net/rfc/libsodium">New sodium extension</a></li> - </ul> - - <p>For source downloads of PHP 7.2.0 please visit our <a href="http://www.php.net/downloads">downloads</a> page - Windows binaries can be found on the <a href="http://windows.php.net/download">PHP for Windows</a> site. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.0">ChangeLog</a>.</p> - - <p>The <a href="http://php.net/manual/en/migration72.php">migration guide</a> is available in the PHP Manual. - Please consult it for the detailed list of new features and backward incompatible changes.</p> - - <p>Many thanks to all the contributors and supporters!</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.0'); diff --git a/releases/7_2_1.php b/releases/7_2_1.php index a9ac4ffd95..65dd6732b6 100644 --- a/releases/7_2_1.php +++ b/releases/7_2_1.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.1 Release Announcement"); -?> - - <h1>PHP 7.2.1 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.2.1. This is a bugfix release, with several bug fixes included.</p> - - <p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.2.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.1">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.1'); diff --git a/releases/7_2_10.php b/releases/7_2_10.php index 42df477ff6..a9a515d621 100644 --- a/releases/7_2_10.php +++ b/releases/7_2_10.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.10 Release Announcement"); -?> -<h1>PHP 7.2.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.10. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.10 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.10">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.10'); diff --git a/releases/7_2_11.php b/releases/7_2_11.php index f0cafdfa0a..5dd355fdb3 100644 --- a/releases/7_2_11.php +++ b/releases/7_2_11.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.11 Release Announcement"); -?> -<h1>PHP 7.2.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.11. -This is a bugfix release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.11 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.11">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.11'); diff --git a/releases/7_2_12.php b/releases/7_2_12.php index 05cadb7ba5..66b617c6cf 100644 --- a/releases/7_2_12.php +++ b/releases/7_2_12.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.12 Release Announcement"); -?> -<h1>PHP 7.2.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.12. -This is a bugfix release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.12 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.12">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.12'); diff --git a/releases/7_2_13.php b/releases/7_2_13.php index c6ea399305..e3758e05fd 100644 --- a/releases/7_2_13.php +++ b/releases/7_2_13.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.13 Release Announcement"); -?> -<h1>PHP 7.2.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.13. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.13 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.13">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.13'); diff --git a/releases/7_2_14.php b/releases/7_2_14.php index 8341405416..af6ebfb557 100644 --- a/releases/7_2_14.php +++ b/releases/7_2_14.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.14 Release Announcement"); -?> -<h1>PHP 7.2.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.14. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.14 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.14">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.14'); diff --git a/releases/7_2_15.php b/releases/7_2_15.php index bd3913dbab..cc5c76cd06 100644 --- a/releases/7_2_15.php +++ b/releases/7_2_15.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.15 Release Announcement"); -?> -<h1>PHP 7.2.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.15. -This is a bugfix release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.15 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.15">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.15'); diff --git a/releases/7_2_16.php b/releases/7_2_16.php index 14e31f1f05..0f1ef07bb7 100644 --- a/releases/7_2_16.php +++ b/releases/7_2_16.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.16 Release Announcement"); -?> -<h1>PHP 7.2.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.16. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.16 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.16">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.16'); diff --git a/releases/7_2_17.php b/releases/7_2_17.php index 55470f66b7..f0a1713981 100644 --- a/releases/7_2_17.php +++ b/releases/7_2_17.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.17 Release Announcement"); -?> -<h1>PHP 7.2.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.17. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.17 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.17">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.17'); diff --git a/releases/7_2_18.php b/releases/7_2_18.php index 5d5597f048..0685d2fa97 100644 --- a/releases/7_2_18.php +++ b/releases/7_2_18.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.18 Release Announcement"); -?> -<h1>PHP 7.2.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.18. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.18 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.18">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.18'); diff --git a/releases/7_2_19.php b/releases/7_2_19.php index 9e1adfc9fc..050bbd5325 100644 --- a/releases/7_2_19.php +++ b/releases/7_2_19.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.19 Release Announcement"); -?> -<h1>PHP 7.2.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.19. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.19 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.19">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.19'); diff --git a/releases/7_2_2.php b/releases/7_2_2.php index e920338404..bede0ff959 100644 --- a/releases/7_2_2.php +++ b/releases/7_2_2.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.2 Release Announcement"); -?> - - <h1>PHP 7.2.2 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.2.2. This is a bugfix release, with several bug fixes included.</p> - - <p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.2.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.2">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.2'); diff --git a/releases/7_2_20.php b/releases/7_2_20.php index 4f7de6b904..026a11a1b5 100644 --- a/releases/7_2_20.php +++ b/releases/7_2_20.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.20 Release Announcement"); -?> -<h1>PHP 7.2.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.20. -This is a bugfix release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.20 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.20">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.20'); diff --git a/releases/7_2_21.php b/releases/7_2_21.php index 81a8d6dd55..27152c9e24 100644 --- a/releases/7_2_21.php +++ b/releases/7_2_21.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.21 Release Announcement"); -?> -<h1>PHP 7.2.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.21. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.21 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.21">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.21'); diff --git a/releases/7_2_22.php b/releases/7_2_22.php index 492e4dddd6..77531edc24 100644 --- a/releases/7_2_22.php +++ b/releases/7_2_22.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.22 Release Announcement"); -?> - - <h1>PHP 7.2.22 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.2.22. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.2.22 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.22">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.22'); diff --git a/releases/7_2_23.php b/releases/7_2_23.php index edc3f3d42d..3d2b64db4b 100644 --- a/releases/7_2_23.php +++ b/releases/7_2_23.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.23 Release Announcement"); -?> - - <h1>PHP 7.2.23 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.2.23. This is a bugfix release.</p> - - <p>For source downloads of PHP 7.2.23 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.23">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.23'); diff --git a/releases/7_2_24.php b/releases/7_2_24.php index 24e155364e..3db825fbcb 100644 --- a/releases/7_2_24.php +++ b/releases/7_2_24.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.24 Release Announcement"); -?> -<h1>PHP 7.2.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.24. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.24 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.24">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.24'); diff --git a/releases/7_2_25.php b/releases/7_2_25.php index d867457a82..74a1744f7c 100644 --- a/releases/7_2_25.php +++ b/releases/7_2_25.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.25 Release Announcement"); -?> - - <h1>PHP 7.2.25 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.2.25. This is a bug fix release.</p> - - <p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.2.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.2.25">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.25'); diff --git a/releases/7_2_26.php b/releases/7_2_26.php index 422047dfab..a23dbdadee 100644 --- a/releases/7_2_26.php +++ b/releases/7_2_26.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.26 Release Announcement"); -?> -<h1>PHP 7.2.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.26. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.26 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.26">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.26'); diff --git a/releases/7_2_27.php b/releases/7_2_27.php index 78d901f7bc..3add983adf 100644 --- a/releases/7_2_27.php +++ b/releases/7_2_27.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.27 Release Announcement"); -?> -<h1>PHP 7.2.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.27. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.27 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.27">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.27'); diff --git a/releases/7_2_28.php b/releases/7_2_28.php index d802d289f4..2aa462c5c5 100644 --- a/releases/7_2_28.php +++ b/releases/7_2_28.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.28 Release Announcement"); -?> -<h1>PHP 7.2.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.28. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.28 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.28">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.28'); diff --git a/releases/7_2_29.php b/releases/7_2_29.php index c591793764..e0197b4baa 100644 --- a/releases/7_2_29.php +++ b/releases/7_2_29.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.29 Release Announcement"); -?> -<h1>PHP 7.2.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.29. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.29 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.29">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.29'); diff --git a/releases/7_2_3.php b/releases/7_2_3.php index 3409274ab0..c31724e442 100644 --- a/releases/7_2_3.php +++ b/releases/7_2_3.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.3 Release Announcement"); -?> -<h1>PHP 7.2.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -7.2.3. This is a security release with also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.3">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.3'); diff --git a/releases/7_2_30.php b/releases/7_2_30.php index 3dc7b05897..f8dd3a2638 100644 --- a/releases/7_2_30.php +++ b/releases/7_2_30.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.30 Release Announcement"); -?> -<h1>PHP 7.2.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.30. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.30 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.30">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.30'); diff --git a/releases/7_2_31.php b/releases/7_2_31.php index c8f2e8ee95..f282b227a2 100644 --- a/releases/7_2_31.php +++ b/releases/7_2_31.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.31 Release Announcement"); -?> -<h1>PHP 7.2.31 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.31. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.31 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.31">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.31'); diff --git a/releases/7_2_32.php b/releases/7_2_32.php index 3be0a8f4d1..804c4a5d93 100644 --- a/releases/7_2_32.php +++ b/releases/7_2_32.php @@ -1,30 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.2.32 Release Announcement'); -?> -<h1>PHP 7.2.32 Release Announcement</h1> - -<p> - The PHP development team announces the immediate availability of PHP 7.2.32. - This is a security release impacting the - <a href="https://windows.php.net/">official Windows builds</a> of PHP. -</p> - -<p> - For windows users running an official build, this release contains a - patched version of <a href="https://curl.haxx.se">libcurl</a> addressing - <a href="https://curl.haxx.se/docs/CVE-2020-8169.html">CVE-2020-8169</a>. -</p> - -<p> - For all other consumers of PHP, this release is functionally identical - to PHP 7.2.31 and no upgrade from that point release is necessary. -</p> - -<p> - For source downloads of PHP 7.2.32 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.32">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.32'); diff --git a/releases/7_2_33.php b/releases/7_2_33.php index 31ae85b05b..9f9eebe547 100644 --- a/releases/7_2_33.php +++ b/releases/7_2_33.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.33 Release Announcement"); -?> -<h1>PHP 7.2.33 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.33. -This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.33 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.33">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.33'); diff --git a/releases/7_2_34.php b/releases/7_2_34.php index 9d759fb1c2..46dd3e91ca 100644 --- a/releases/7_2_34.php +++ b/releases/7_2_34.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_34.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.2.34 Release Announcement'); -?> -<h1>PHP 7.2.34 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.34. This is a security release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.34 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.2.34">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.34'); diff --git a/releases/7_2_4.php b/releases/7_2_4.php index 1ecea1c544..92e62d13cd 100644 --- a/releases/7_2_4.php +++ b/releases/7_2_4.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.4 Release Announcement"); -?> -<h1>PHP 7.2.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.4. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.4">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.4'); diff --git a/releases/7_2_5.php b/releases/7_2_5.php index 126ec23a82..5cdd6b8bd4 100644 --- a/releases/7_2_5.php +++ b/releases/7_2_5.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.5 Release Announcement"); -?> -<h1>PHP 7.2.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.5. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.5">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.5'); diff --git a/releases/7_2_6.php b/releases/7_2_6.php index 3a5062c331..bd0b133448 100644 --- a/releases/7_2_6.php +++ b/releases/7_2_6.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.6 Release Announcement"); -?> -<h1>PHP 7.2.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.6. -This is a primarily a bugfix release which includes a memory corruption fix for EXIF.</p> - -<p>PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.6">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.6'); diff --git a/releases/7_2_7.php b/releases/7_2_7.php index 650de04cca..390b530de5 100644 --- a/releases/7_2_7.php +++ b/releases/7_2_7.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.7 Release Announcement"); -?> -<h1>PHP 7.2.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.7. -This is a primarily a bugfix release which includes a segfault fix for opcache.</p> - -<p>PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.7">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.7'); diff --git a/releases/7_2_8.php b/releases/7_2_8.php index 6321957566..3a9ae6f20e 100644 --- a/releases/7_2_8.php +++ b/releases/7_2_8.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.8 Release Announcement"); -?> -<h1>PHP 7.2.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.8. -This is a security release which also contains several minor bug fixes.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.8 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.8">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.8'); diff --git a/releases/7_2_9.php b/releases/7_2_9.php index d84cb3bb03..6bd8a0e3f5 100644 --- a/releases/7_2_9.php +++ b/releases/7_2_9.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_2_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.2.9 Release Announcement"); -?> -<h1>PHP 7.2.9 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.2.9. -This is a bugfix release.</p> - -<p>All PHP 7.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.2.9 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.2.9">ChangeLog</a>. -</p> -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.2.9'); diff --git a/releases/7_3_0.php b/releases/7_3_0.php index 341880d1f6..fe5f499bce 100644 --- a/releases/7_3_0.php +++ b/releases/7_3_0.php @@ -1,34 +1,3 @@ <?php -// $Id$ -$_SERVER['BASE_PAGE'] = 'releases/7_3_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.0 Release Announcement"); -?> - - <h1>PHP 7.3.0 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP 7.3.0. - This release marks the third feature update to the PHP 7 series.</p> - - <p>PHP 7.3.0 comes with numerous improvements and new features such as</p> - - <ul> - <li><a href="http://php.net/manual/migration73.new-features.php#migration73.new-features.core.heredoc">Flexible Heredoc and Nowdoc Syntax</a></li> - <li><a href="http://php.net/manual/migration73.other-changes.php#migration73.other-changes.pcre">PCRE2 Migration</a></li> - <li><a href="http://php.net/manual/migration73.new-features.php#migration73.new-features.mbstring">Multiple MBString Improvements</a></li> - <li><a href="http://php.net/manual/migration73.new-features.php#migration73.new-features.ldap">LDAP Controls Support</a></li> - <li><a href="http://php.net/manual/migration73.new-features.php#migration73.new-features.fpm">Improved FPM Logging</a></li> - <li><a href="http://php.net/manual/migration73.windows-support.php#migration73.windows-support.core.file-descriptors">Windows File Deletion Improvements</a></li> - <li><a href="http://php.net/manual/migration73.deprecated.php">Several Deprecations</a></li> - </ul> - - <p>For source downloads of PHP 7.3.0 please visit our <a href="http://www.php.net/downloads">downloads</a> page - Windows binaries can be found on the <a href="http://windows.php.net/download">PHP for Windows</a> site. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.0">ChangeLog</a>.</p> - - <p>The <a href="http://php.net/manual/en/migration73.php">migration guide</a> is available in the PHP Manual. - Please consult it for the detailed list of new features and backward incompatible changes.</p> - - <p>Many thanks to all the contributors and supporters!</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.0'); diff --git a/releases/7_3_1.php b/releases/7_3_1.php index bda9a534c2..2305051833 100644 --- a/releases/7_3_1.php +++ b/releases/7_3_1.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.1 Release Announcement"); -?> - - <h1>PHP 7.3.1 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.1. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.1">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.1'); diff --git a/releases/7_3_10.php b/releases/7_3_10.php index fd4ba6fce6..fe47a7b6e0 100644 --- a/releases/7_3_10.php +++ b/releases/7_3_10.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.10 Release Announcement"); -?> - - <h1>PHP 7.3.10 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.10. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.10 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.10">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.10'); diff --git a/releases/7_3_11.php b/releases/7_3_11.php index 8460d14e62..7840729141 100644 --- a/releases/7_3_11.php +++ b/releases/7_3_11.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.11 Release Announcement"); -?> - - <h1>PHP 7.3.11 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.11. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.11 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.11">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.11'); diff --git a/releases/7_3_12.php b/releases/7_3_12.php index 4b4c5ebe3f..c67d75b094 100644 --- a/releases/7_3_12.php +++ b/releases/7_3_12.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.12 Release Announcement"); -?> - - <h1>PHP 7.3.12 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.12. This is a bug fix release.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.12">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.12'); diff --git a/releases/7_3_13.php b/releases/7_3_13.php index bef3efa123..c9a41b9e96 100644 --- a/releases/7_3_13.php +++ b/releases/7_3_13.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.13 Release Announcement"); -?> - - <h1>PHP 7.3.13 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.13. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.13">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.13'); diff --git a/releases/7_3_14.php b/releases/7_3_14.php index 8b5cc6c509..cccb01b287 100644 --- a/releases/7_3_14.php +++ b/releases/7_3_14.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.14 Release Announcement"); -?> - - <h1>PHP 7.3.14 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.14. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.14">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.14'); diff --git a/releases/7_3_15.php b/releases/7_3_15.php index 05ae2592e4..57af0a2eb1 100644 --- a/releases/7_3_15.php +++ b/releases/7_3_15.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.15 Release Announcement"); -?> - - <h1>PHP 7.3.15 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.15. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.15">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.15'); diff --git a/releases/7_3_16.php b/releases/7_3_16.php index b440a2fe2a..122b0d3592 100644 --- a/releases/7_3_16.php +++ b/releases/7_3_16.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.16 Release Announcement"); -?> - - <h1>PHP 7.3.16 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.16. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.16">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.16'); diff --git a/releases/7_3_17.php b/releases/7_3_17.php index ab1a507cbf..b1f970c3f7 100644 --- a/releases/7_3_17.php +++ b/releases/7_3_17.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.17 Release Announcement"); -?> - - <h1>PHP 7.3.17 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.17 This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.17 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.17">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.17'); diff --git a/releases/7_3_18.php b/releases/7_3_18.php index 8140f69421..a43f5e826d 100644 --- a/releases/7_3_18.php +++ b/releases/7_3_18.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.18 Release Announcement"); -?> - - <h1>PHP 7.3.18 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.18 This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.18 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.18">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.18'); diff --git a/releases/7_3_19.php b/releases/7_3_19.php index 5389c25fed..1254b8f92d 100644 --- a/releases/7_3_19.php +++ b/releases/7_3_19.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.19 Release Announcement"); -?> - - <h1>PHP 7.3.19 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.19. This is a bug fix release.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.19">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.19'); diff --git a/releases/7_3_2.php b/releases/7_3_2.php index f08fb78755..af5a921ad9 100644 --- a/releases/7_3_2.php +++ b/releases/7_3_2.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.2 Release Announcement"); -?> - - <h1>PHP 7.3.2 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.2. This is a bugfix release, with several bug fixes included.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.2">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.2'); diff --git a/releases/7_3_20.php b/releases/7_3_20.php index 9bc7fe0e6d..d2914c862e 100644 --- a/releases/7_3_20.php +++ b/releases/7_3_20.php @@ -1,23 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.20 Release Announcement'); -?> -<h1>PHP 7.3.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.20. This is a security release impacting the -<a href="https://windows.php.net/">official Windows builds</a> of PHP.</p> - -<p>For windows users running an official build, this release contains a -patched version of <a href="https://curl.haxx.se">libcurl</a> addressing -<a href="https://curl.haxx.se/docs/CVE-2020-8169.html">CVE-2020-8169</a>.</p> - -<p>For all other consumers of PHP, this is a bug fix release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.20'); diff --git a/releases/7_3_21.php b/releases/7_3_21.php index a7cb5f5289..2f634da5b6 100644 --- a/releases/7_3_21.php +++ b/releases/7_3_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.21 Release Announcement'); -?> -<h1>PHP 7.3.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.21. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.21'); diff --git a/releases/7_3_22.php b/releases/7_3_22.php index ae8e1a70d0..17093fbded 100644 --- a/releases/7_3_22.php +++ b/releases/7_3_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.22 Release Announcement'); -?> -<h1>PHP 7.3.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.22. This is a bug fix release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.22 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.22">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.22'); diff --git a/releases/7_3_23.php b/releases/7_3_23.php index 18b49f7954..510e56bb3f 100644 --- a/releases/7_3_23.php +++ b/releases/7_3_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.23 Release Announcement'); -?> -<h1>PHP 7.3.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.23. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.23 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.23">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.23'); diff --git a/releases/7_3_24.php b/releases/7_3_24.php index 419243a022..899c27d185 100644 --- a/releases/7_3_24.php +++ b/releases/7_3_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.24 Release Announcement'); -?> -<h1>PHP 7.3.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.24. This is a bug fix release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.24 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.24">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.24'); diff --git a/releases/7_3_25.php b/releases/7_3_25.php index 4a3c8f1883..53780af762 100644 --- a/releases/7_3_25.php +++ b/releases/7_3_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.25 Release Announcement'); -?> -<h1>PHP 7.3.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.25. This is a bug fix release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.25">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.25'); diff --git a/releases/7_3_26.php b/releases/7_3_26.php index b71d12a922..aed3f4f9f1 100644 --- a/releases/7_3_26.php +++ b/releases/7_3_26.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.26 Release Announcement'); -?> -<h1>PHP 7.3.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.26. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.26 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.26">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.26'); diff --git a/releases/7_3_27.php b/releases/7_3_27.php index 2706ed3363..d4f3dc0281 100644 --- a/releases/7_3_27.php +++ b/releases/7_3_27.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.27 Release Announcement'); -?> -<h1>PHP 7.3.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.27. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.27 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.27">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.27'); diff --git a/releases/7_3_28.php b/releases/7_3_28.php index 805117c14d..0d34ce2d90 100644 --- a/releases/7_3_28.php +++ b/releases/7_3_28.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.28 Release Announcement'); -?> -<h1>PHP 7.3.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.28. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.28 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.28">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.28'); diff --git a/releases/7_3_29.php b/releases/7_3_29.php index 3527c2b341..a6eec40f17 100644 --- a/releases/7_3_29.php +++ b/releases/7_3_29.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.29 Release Announcement'); -?> -<h1>PHP 7.3.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.29. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.29 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.29">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.29'); diff --git a/releases/7_3_3.php b/releases/7_3_3.php index d73d139a4d..986fde9aa9 100644 --- a/releases/7_3_3.php +++ b/releases/7_3_3.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.3 Release Announcement"); -?> - - <h1>PHP 7.3.3 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.3. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.3">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.3'); diff --git a/releases/7_3_30.php b/releases/7_3_30.php index 9824a78b8b..e6be86e4da 100644 --- a/releases/7_3_30.php +++ b/releases/7_3_30.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.30 Release Announcement'); -?> -<h1>PHP 7.3.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.30. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.30 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.30">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.30'); diff --git a/releases/7_3_31.php b/releases/7_3_31.php index 0fe4f9603a..c650ebe693 100644 --- a/releases/7_3_31.php +++ b/releases/7_3_31.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.31 Release Announcement'); -?> -<h1>PHP 7.3.31 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.31. This is a security release fixing CVE-2021-21706.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.31 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.31">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.31'); diff --git a/releases/7_3_32.php b/releases/7_3_32.php index cb6b856c32..c65b18af01 100644 --- a/releases/7_3_32.php +++ b/releases/7_3_32.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.32 Release Announcement'); -?> -<h1>PHP 7.3.32 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.32. This is a security release.</p> - -<p>All PHP 7.3 FPM users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.32 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.32">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.32'); diff --git a/releases/7_3_33.php b/releases/7_3_33.php index 5db6251178..67675cd7fe 100644 --- a/releases/7_3_33.php +++ b/releases/7_3_33.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.3.33 Release Announcement'); -?> -<h1>PHP 7.3.33 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.3.33. This is a security release.</p> - -<p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.3.33 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.3.33">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.33'); diff --git a/releases/7_3_4.php b/releases/7_3_4.php index 236e209806..869bc7423c 100644 --- a/releases/7_3_4.php +++ b/releases/7_3_4.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.4 Release Announcement"); -?> - - <h1>PHP 7.3.4 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.4. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.4">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.4'); diff --git a/releases/7_3_5.php b/releases/7_3_5.php index 86d6337a18..3894a396c2 100644 --- a/releases/7_3_5.php +++ b/releases/7_3_5.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.5 Release Announcement"); -?> - - <h1>PHP 7.3.5 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.5. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.5">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.5'); diff --git a/releases/7_3_6.php b/releases/7_3_6.php index 7ba5632df4..0c41bc708c 100644 --- a/releases/7_3_6.php +++ b/releases/7_3_6.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.6 Release Announcement"); -?> - - <h1>PHP 7.3.6 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.6. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.6">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.6'); diff --git a/releases/7_3_7.php b/releases/7_3_7.php index f69a4cea70..4797039a9c 100644 --- a/releases/7_3_7.php +++ b/releases/7_3_7.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.7 Release Announcement"); -?> - - <h1>PHP 7.3.7 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.7. This is a bug fix release.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.7">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.7'); diff --git a/releases/7_3_8.php b/releases/7_3_8.php index c2813e803a..bd2097ce46 100644 --- a/releases/7_3_8.php +++ b/releases/7_3_8.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.8 Release Announcement"); -?> - - <h1>PHP 7.3.8 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.8. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.8 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.8">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.8'); diff --git a/releases/7_3_9.php b/releases/7_3_9.php index 4f8af952af..8733e009db 100644 --- a/releases/7_3_9.php +++ b/releases/7_3_9.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_3_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.3.9 Release Announcement"); -?> - - <h1>PHP 7.3.9 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.3.9. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.3 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.3.9 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.3.9">ChangeLog</a>. - </p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.3.9'); diff --git a/releases/7_4_0.php b/releases/7_4_0.php index fa7ef03022..501a0fa8a2 100644 --- a/releases/7_4_0.php +++ b/releases/7_4_0.php @@ -1,37 +1,3 @@ <?php -// $Id$ -$_SERVER['BASE_PAGE'] = 'releases/7_4_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.0 Release Announcement"); -?> -<h1>PHP 7.4.0 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.0. -This release marks the fourth feature update to the PHP 7 series.</p> - -<p>PHP 7.4.0 comes with numerous improvements and new features such as:</p> - -<ul> - -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.typed-properties">Typed Properties</a></li> -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.arrow-functions">Arrow Functions</a></li> -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.type-variance">Limited Return Type Covariance and Argument Type Contravariance</a></li> -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.unpack-inside-array">Unpacking Inside Arrays</a></li> -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.numeric-literal-separator">Numeric Literal Separator</a></li> -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.weakreference">Weak References</a></li> -<li><a href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.tostring-exceptions">Allow Exceptions from __toString()</a></li> -<li><a href="https://www.php.net/manual/opcache.configuration.php#ini.opcache.preload">Opcache Preloading</a></li> -<li><a href="https://www.php.net/manual/migration74.deprecated.php">Several Deprecations</a></li> -<li><a href="https://www.php.net/manual/migration74.removed-extensions.php">Extensions Removed from the Core</a></li> -</ul> - -<p>For source downloads of PHP 7.4.0 please visit our <a href="http://www.php.net/downloads">downloads</a> page -Windows binaries can be found on the <a href="http://windows.php.net/download">PHP for Windows</a> site. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.0">ChangeLog</a>.</p> - -<p>The <a href="http://php.net/manual/en/migration74.php">migration guide</a> is available in the PHP Manual. -Please consult it for the detailed list of new features and backward incompatible changes.</p> - -<p>Many thanks to all the contributors and supporters!</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.0'); diff --git a/releases/7_4_1.php b/releases/7_4_1.php index 3c07495df6..7c2c6b730b 100644 --- a/releases/7_4_1.php +++ b/releases/7_4_1.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.1 Release Announcement"); -?> - - <h1>PHP 7.4.1 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.4.1. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.4.1 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.1">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.1'); diff --git a/releases/7_4_10.php b/releases/7_4_10.php index 1797dd20af..c1634efede 100644 --- a/releases/7_4_10.php +++ b/releases/7_4_10.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.10 Release Announcement'); -?> -<h1>PHP 7.4.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.10. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.10 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.10">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.10'); diff --git a/releases/7_4_11.php b/releases/7_4_11.php index 9d02f55150..fdd569653e 100644 --- a/releases/7_4_11.php +++ b/releases/7_4_11.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.11 Release Announcement'); -?> -<h1>PHP 7.4.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.11. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.11 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.11">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.11'); diff --git a/releases/7_4_12.php b/releases/7_4_12.php index 74a708eafc..0d7387fc9c 100644 --- a/releases/7_4_12.php +++ b/releases/7_4_12.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.12 Release Announcement'); -?> -<h1>PHP 7.4.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.12. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.12">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.12'); diff --git a/releases/7_4_13.php b/releases/7_4_13.php index 50c1e2f7db..a404a05dbd 100644 --- a/releases/7_4_13.php +++ b/releases/7_4_13.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.13 Release Announcement'); -?> -<h1>PHP 7.4.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.13. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.13">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.13'); diff --git a/releases/7_4_14.php b/releases/7_4_14.php index 9399b78ca3..b219cbdb53 100644 --- a/releases/7_4_14.php +++ b/releases/7_4_14.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.14 Release Announcement'); -?> -<h1>PHP 7.4.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.14. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.14">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.14'); diff --git a/releases/7_4_15.php b/releases/7_4_15.php index e6c53a0383..1e9632779b 100644 --- a/releases/7_4_15.php +++ b/releases/7_4_15.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.15 Release Announcement'); -?> -<h1>PHP 7.4.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.15. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.15">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.15'); diff --git a/releases/7_4_16.php b/releases/7_4_16.php index 2578cdcb02..18fa565750 100644 --- a/releases/7_4_16.php +++ b/releases/7_4_16.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.16 Release Announcement'); -?> -<h1>PHP 7.4.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.16. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.16">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.16'); diff --git a/releases/7_4_18.php b/releases/7_4_18.php index 8375246bff..47c7c761cb 100644 --- a/releases/7_4_18.php +++ b/releases/7_4_18.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.18 Release Announcement'); -?> -<h1>PHP 7.4.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.18. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.18 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.18">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.18'); diff --git a/releases/7_4_19.php b/releases/7_4_19.php index ad25264a8e..665db8da53 100644 --- a/releases/7_4_19.php +++ b/releases/7_4_19.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.19 Release Announcement'); -?> -<h1>PHP 7.4.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -7.4.19. This release reverts a bug related to PDO_pgsql that was -introduced in PHP 7.4.18.</p> - -<p>PHP 7.4 users that use PDO_pgsql are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.19">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.19'); diff --git a/releases/7_4_2.php b/releases/7_4_2.php index c34ac73959..08be764f34 100644 --- a/releases/7_4_2.php +++ b/releases/7_4_2.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.2 Release Announcement"); -?> -<h1>PHP 7.4.2 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.4.2. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.4.2 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.2">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.2'); diff --git a/releases/7_4_20.php b/releases/7_4_20.php index eecabb9601..15eaf045ee 100644 --- a/releases/7_4_20.php +++ b/releases/7_4_20.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.20 Release Announcement'); -?> -<h1>PHP 7.4.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.20. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.20'); diff --git a/releases/7_4_21.php b/releases/7_4_21.php index 0b6cd79568..9448b4b128 100644 --- a/releases/7_4_21.php +++ b/releases/7_4_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.21 Release Announcement'); -?> -<h1>PHP 7.4.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.21. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.21'); diff --git a/releases/7_4_22.php b/releases/7_4_22.php index facb553fc1..914433fdff 100644 --- a/releases/7_4_22.php +++ b/releases/7_4_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.22 Release Announcement'); -?> -<h1>PHP 7.4.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.22. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.22 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.22">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.22'); diff --git a/releases/7_4_23.php b/releases/7_4_23.php index 4105884a32..912c0945b6 100644 --- a/releases/7_4_23.php +++ b/releases/7_4_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.23 Release Announcement'); -?> -<h1>PHP 7.4.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.23. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.23 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.23">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.23'); diff --git a/releases/7_4_24.php b/releases/7_4_24.php index 27a65cf2ea..be951fac55 100644 --- a/releases/7_4_24.php +++ b/releases/7_4_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.24 Release Announcement'); -?> -<h1>PHP 7.4.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.24. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.24 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.24">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.24'); diff --git a/releases/7_4_25.php b/releases/7_4_25.php index c46af6c7df..b761331c63 100644 --- a/releases/7_4_25.php +++ b/releases/7_4_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.25 Release Announcement'); -?> -<h1>PHP 7.4.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.25. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.25">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.25'); diff --git a/releases/7_4_26.php b/releases/7_4_26.php index 7bcd9f2681..4f1ce707ba 100644 --- a/releases/7_4_26.php +++ b/releases/7_4_26.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.26 Release Announcement'); -?> -<h1>PHP 7.4.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.26. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.26 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.26">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.26'); diff --git a/releases/7_4_27.php b/releases/7_4_27.php index dfacc4c993..fec7b31b7f 100644 --- a/releases/7_4_27.php +++ b/releases/7_4_27.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.27 Release Announcement'); -?> -<h1>PHP 7.4.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.27. This is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.27 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.27">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.27'); diff --git a/releases/7_4_28.php b/releases/7_4_28.php index 97d8c7c43a..b77ca812a1 100644 --- a/releases/7_4_28.php +++ b/releases/7_4_28.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.28 Release Announcement'); -?> -<h1>PHP 7.4.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.28. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.28 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.28">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.28'); diff --git a/releases/7_4_29.php b/releases/7_4_29.php index 4e02a2ca59..3f793ce11b 100644 --- a/releases/7_4_29.php +++ b/releases/7_4_29.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.29 Release Announcement'); -?> -<h1>PHP 7.4.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.29. This is a security release for Windows users.</p> - -<p>This is primarily a release for Windows users due to necessarily -upgrades to the OpenSSL and zlib dependencies in which security issues -have been found. All PHP 7.4 on Windows users are encouraged to upgrade -to this version.</p> - -<p>For source downloads of PHP 7.4.29 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.29">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.29'); diff --git a/releases/7_4_3.php b/releases/7_4_3.php index 96a8b1fd90..c23d7c01c4 100644 --- a/releases/7_4_3.php +++ b/releases/7_4_3.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.3 Release Announcement"); -?> -<h1>PHP 7.4.3 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.4.3. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.4.3 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.3">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.3'); diff --git a/releases/7_4_30.php b/releases/7_4_30.php index edb9012276..341a148100 100644 --- a/releases/7_4_30.php +++ b/releases/7_4_30.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.30 Release Announcement'); -?> -<h1>PHP 7.4.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.30. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.30 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.30">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.30'); diff --git a/releases/7_4_32.php b/releases/7_4_32.php index e73bc9d12c..87e38ad190 100644 --- a/releases/7_4_32.php +++ b/releases/7_4_32.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.32 Release Announcement'); -?> -<h1>PHP 7.4.32 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.32. This is a security release.</p> - -<p>This release addresses an infinite recursion with specially -constructed phar files, and prevents a clash with variable name mangling for -the __Host/__Secure HTTP headers.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.32 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.32">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.32'); diff --git a/releases/7_4_33.php b/releases/7_4_33.php index 7f14768196..2f1c77e8ff 100644 --- a/releases/7_4_33.php +++ b/releases/7_4_33.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.33 Release Announcement'); -?> -<h1>PHP 7.4.33 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.33.</p> - -<p>This is security release that fixes an OOB read due to insufficient -input validation in imageloadfont(), and a buffer overflow in -hash_update() on long parameter.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.33 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.33">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.33'); diff --git a/releases/7_4_4.php b/releases/7_4_4.php index 0046574d36..60bd9fc2a7 100644 --- a/releases/7_4_4.php +++ b/releases/7_4_4.php @@ -1,19 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.4 Release Announcement"); -?> -<h1>PHP 7.4.4 Release Announcement</h1> - - <p>The PHP development team announces the immediate availability of PHP - 7.4.4. This is a security release which also contains several bug fixes.</p> - - <p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - - <p>For source downloads of PHP 7.4.4 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.4">ChangeLog</a>. - </p> - - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.4'); diff --git a/releases/7_4_5.php b/releases/7_4_5.php index de4b53ba73..c6eaf7f2e5 100644 --- a/releases/7_4_5.php +++ b/releases/7_4_5.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.5 Release Announcement"); -?> -<h1>PHP 7.4.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -7.4.5. This is a security release which also contains several bug fixes.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.5 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.5">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.5'); diff --git a/releases/7_4_6.php b/releases/7_4_6.php index a276594960..d917c283c6 100644 --- a/releases/7_4_6.php +++ b/releases/7_4_6.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.6 Release Announcement"); -?> -<h1>PHP 7.4.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -7.4.6. This is a security release which also contains several bug fixes.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.6 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.6">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.6'); diff --git a/releases/7_4_7.php b/releases/7_4_7.php index c6577df801..c63afb01c6 100644 --- a/releases/7_4_7.php +++ b/releases/7_4_7.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header("PHP 7.4.7 Release Announcement"); -?> -<h1>PHP 7.4.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -7.4.7. This release is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.7 please visit our <a href="http://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="http://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="http://www.php.net/ChangeLog-7.php#7.4.7">ChangeLog</a>. -</p> - -<?php site_footer(); ?> +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.7'); diff --git a/releases/7_4_8.php b/releases/7_4_8.php index f703e6ab59..014c98079b 100644 --- a/releases/7_4_8.php +++ b/releases/7_4_8.php @@ -1,24 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.8 Release Announcement'); -?> -<h1>PHP 7.4.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.8. -This is a security release impacting the <a -href="https://windows.php.net/">official Windows builds</a> of PHP.</p> - -<p>For windows users running an official build, this release contains a -patched version of <a href="https://curl.haxx.se">libcurl</a> addressing -<a href="https://curl.haxx.se/docs/CVE-2020-8169.html">CVE-2020-8169</a>.</p> - -<p>For all other consumers of PHP, this is a bug fix release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.8 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.8">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.8'); diff --git a/releases/7_4_9.php b/releases/7_4_9.php index d2227705e7..3362ed04a0 100644 --- a/releases/7_4_9.php +++ b/releases/7_4_9.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/7_4_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 7.4.9 Release Announcement'); -?> -<h1>PHP 7.4.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 7.4.9. This is a security release.</p> - -<p>All PHP 7.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 7.4.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-7.php#7.4.9">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('7.4.9'); diff --git a/releases/8.0/release.inc b/releases/8.0/release.inc index 84e5115ac7..c3dcfef158 100644 --- a/releases/8.0/release.inc +++ b/releases/8.0/release.inc @@ -31,12 +31,11 @@ $expectedText = message('this_is_expected', $lang); <div class="php8-logo"> <img src="/images/php8/logo_php8.svg" alt="php8" height="126" width="343"> </div> - <div class="php8-title"><?= message('main_title', $lang) ?></div> <div class="php8-subtitle"><?= message('main_subtitle', $lang) ?></div> - <div class="php8-button-wrapper center"> - <a class="php8-button php8-button_light" href="/downloads"><?= message('upgrade_now', $lang) ?></a> - </div> </div> + <br /> + + <?php require __DIR__ . '/../../include/newer-version-available.php' ?> </section> <section class="php8-section center"> diff --git a/releases/8.1/release.inc b/releases/8.1/release.inc index 2485d64995..ed12bf8d22 100644 --- a/releases/8.1/release.inc +++ b/releases/8.1/release.inc @@ -28,12 +28,11 @@ common_header(message('common_header', $lang)); <div class="php8-logo"> <img src="/images/php8/logo_php8_1.svg" alt="php8.1" height="126" width="343"> </div> - <div class="php8-title"><?= message('main_title', $lang) ?></div> <div class="php8-subtitle"><?= message('main_subtitle', $lang) ?></div> - <div class="php8-button-wrapper center"> - <a class="php8-button php8-button_light" href="/downloads"><?= message('upgrade_now', $lang) ?></a> - </div> </div> + <br /> + + <?php require __DIR__ . '/../../include/newer-version-available.php' ?> </section> <section class="php8-section center"> diff --git a/releases/8.2/release.inc b/releases/8.2/release.inc index 7fbacf9a4b..2fa856ec15 100644 --- a/releases/8.2/release.inc +++ b/releases/8.2/release.inc @@ -25,12 +25,11 @@ common_header(message('common_header', $lang)); <div class="php8-logo"> <img src="/images/php8/logo_php8_2.svg" alt="PHP 8.2" height="126" width="343"> </div> - <div class="php8-title"><?= message('main_title', $lang) ?></div> <div class="php8-subtitle"><?= message('main_subtitle', $lang) ?></div> - <div class="php8-button-wrapper center"> - <a class="php8-button php8-button_light" href="/downloads"><?= message('upgrade_now', $lang) ?></a> - </div> </div> + <br /> + + <?php require __DIR__ . '/../../include/newer-version-available.php' ?> </section> <section class="php8-section center"> diff --git a/releases/8.3/release.inc b/releases/8.3/release.inc index 0277ce66d6..a01f06b0d7 100644 --- a/releases/8.3/release.inc +++ b/releases/8.3/release.inc @@ -25,12 +25,11 @@ common_header(message('common_header', $lang)); <div class="php8-logo"> <img src="/images/php8/logo_php8_3.svg" alt="PHP 8.3" height="126" width="343"> </div> - <div class="php8-title"><?= message('main_title', $lang) ?></div> <div class="php8-subtitle"><?= message('main_subtitle', $lang) ?></div> - <div class="php8-button-wrapper center"> - <a class="php8-button php8-button_light" href="/downloads"><?= message('upgrade_now', $lang) ?></a> - </div> </div> + <br /> + + <?php require __DIR__ . '/../../include/newer-version-available.php' ?> </section> <section class="php8-section center"> diff --git a/releases/8.4/release.inc b/releases/8.4/release.inc index d83664812c..25353b3a94 100644 --- a/releases/8.4/release.inc +++ b/releases/8.4/release.inc @@ -26,12 +26,10 @@ common_header(message('common_header', $lang)); <div class="php8-logo"> <img src="/images/php8/logo_php8_4.svg" alt="PHP 8.4" height="126" width="343"> </div> - <div class="php8-title"><?= message('main_title', $lang) ?></div> <div class="php8-subtitle"><?= message('main_subtitle', $lang) ?></div> - <div class="php8-button-wrapper center"> - <a class="php8-button php8-button_light" href="/downloads"><?= message('upgrade_now', $lang) ?></a> - </div> </div> + + <?php require __DIR__ . '/../../include/newer-version-available.php' ?> </section> <section class="php8-section center"> diff --git a/releases/8.5/header.inc b/releases/8.5/header.inc new file mode 100644 index 0000000000..d60aa0e24f --- /dev/null +++ b/releases/8.5/header.inc @@ -0,0 +1,21 @@ +<?php + +use phpweb\Metadata\VersionData; +use phpweb\Themes\SuperBanner; +use phpweb\Util; + +function drawVersionHeader(VersionData $version, string $title, string $subtitle = ''): void +{ + echo SuperBanner::renderBanner(Util::bufferOutput(function () use ($version, $title, $subtitle) { + ?> + <div style="text-align: center; display: flex; flex-direction: column; gap: 1em"> + <img src="<?= safe($version->logoUrl) ?>" style="width: 100%; height: 80px; object-fit: contain"/> + <div> + + <div style="font-size: 35px; margin-top: 1em; font-weight: 500"><?= safe($title) ?></div> + <div style="font-size: 18px; font-weight: 500; margin-top: 0.75em"><?= safe($subtitle) ?></div> + </div> + </div> + <?php + })); +} diff --git a/releases/8.5/release.inc b/releases/8.5/release.inc index 650ad6d05e..6cdd72eca6 100644 --- a/releases/8.5/release.inc +++ b/releases/8.5/release.inc @@ -14,6 +14,8 @@ $_SERVER['BASE_PAGE'] = 'releases/8.5/' . $lang . '.php'; include_once __DIR__ . '/common.php'; +$examples = (require __DIR__ . '/../../include/releases-comparisons.inc')['8.5'] ?? []; + common_header(message('common_header', $lang)); ?> <!-- hero --> diff --git a/releases/8_0_0.php b/releases/8_0_0.php index ae6b66388e..3cc3f374e1 100644 --- a/releases/8_0_0.php +++ b/releases/8_0_0.php @@ -1,35 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.0 Release Announcement'); -?> -<h1>PHP 8.0.0 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.0. This release marks the latest major release of the PHP language.</p> - -<p>PHP 8.0 comes with numerous improvements and new features such as:</p> -<ul> - <li>Union Types</li> - <li>Named Arguments</li> - <li>Match Expressions</li> - <li>Attributes</li> - <li>Constructor Property Promotion</li> - <li>Nullsafe Operator</li> - <li>Weak Maps</li> - <li>Just In Time Compilation</li> - <li>And much much more...</li> -</ul> - -<p>Take a look at the <a href="https://www.php.net/releases/8.0/">PHP 8.0 Announcement Addendum</a> for more information.</p> - -<p>For source downloads of PHP 8.0.0 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.0">ChangeLog</a>. -</p> - -<p>The <a href="http://php.net/manual/en/migration80.php">migration guide</a> is available in the PHP Manual. -Please consult it for the detailed list of new features and backward incompatible changes.</p> - -<p>Many thanks to all the contributors and supporters!</p> - -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.0'); diff --git a/releases/8_0_1.php b/releases/8_0_1.php index 97cf5d488c..5baa7ed346 100644 --- a/releases/8_0_1.php +++ b/releases/8_0_1.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.1 Release Announcement'); -?> -<h1>PHP 8.0.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.1. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.1">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.1'); diff --git a/releases/8_0_10.php b/releases/8_0_10.php index 3440b5811a..b683298e89 100644 --- a/releases/8_0_10.php +++ b/releases/8_0_10.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.10 Release Announcement'); -?> -<h1>PHP 8.0.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.10. This is a security fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.10 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.10">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.10'); diff --git a/releases/8_0_11.php b/releases/8_0_11.php index 82d4f2c268..96b1016270 100644 --- a/releases/8_0_11.php +++ b/releases/8_0_11.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.11 Release Announcement'); -?> -<h1>PHP 8.0.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.11. This is a security release fixing CVE-2021-21706.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.11 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.11">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.11'); diff --git a/releases/8_0_12.php b/releases/8_0_12.php index a7213e88d4..92179a17af 100644 --- a/releases/8_0_12.php +++ b/releases/8_0_12.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.12 Release Announcement'); -?> -<h1>PHP 8.0.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.12. This is a security fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.12">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.12'); diff --git a/releases/8_0_13.php b/releases/8_0_13.php index c1e366aa03..868541ddaf 100644 --- a/releases/8_0_13.php +++ b/releases/8_0_13.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.13 Release Announcement'); -?> -<h1>PHP 8.0.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.13. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.13">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.13'); diff --git a/releases/8_0_14.php b/releases/8_0_14.php index 746631c021..c3082740d1 100644 --- a/releases/8_0_14.php +++ b/releases/8_0_14.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.14 Release Announcement'); -?> -<h1>PHP 8.0.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.14. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.14">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.14'); diff --git a/releases/8_0_15.php b/releases/8_0_15.php index 4f51db67df..3170dc2ee3 100644 --- a/releases/8_0_15.php +++ b/releases/8_0_15.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.15 Release Announcement'); -?> -<h1>PHP 8.0.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.15. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.15">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.15'); diff --git a/releases/8_0_16.php b/releases/8_0_16.php index 7aa6047e4b..8e86b8181f 100644 --- a/releases/8_0_16.php +++ b/releases/8_0_16.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.16 Release Announcement'); -?> -<h1>PHP 8.0.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.16. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.16">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.16'); diff --git a/releases/8_0_17.php b/releases/8_0_17.php index 573ae2afad..c724eacf07 100644 --- a/releases/8_0_17.php +++ b/releases/8_0_17.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.17 Release Announcement'); -?> -<h1>PHP 8.0.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.17. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.17 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.17">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.17'); diff --git a/releases/8_0_18.php b/releases/8_0_18.php index c7ef94398f..7e604f8bd4 100644 --- a/releases/8_0_18.php +++ b/releases/8_0_18.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.18 Release Announcement'); -?> -<h1>PHP 8.0.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.18. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.18 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.18">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.18'); diff --git a/releases/8_0_19.php b/releases/8_0_19.php index daba4a4713..a226ba5f50 100644 --- a/releases/8_0_19.php +++ b/releases/8_0_19.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.19 Release Announcement'); -?> -<h1>PHP 8.0.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.19. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.19">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.19'); diff --git a/releases/8_0_2.php b/releases/8_0_2.php index bff64c685b..66725ce5f7 100644 --- a/releases/8_0_2.php +++ b/releases/8_0_2.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.2 Release Announcement'); -?> -<h1>PHP 8.0.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.2. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.2 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.2">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.2'); diff --git a/releases/8_0_20.php b/releases/8_0_20.php index 9a65e32733..a13aeb8b19 100644 --- a/releases/8_0_20.php +++ b/releases/8_0_20.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.20 Release Announcement'); -?> -<h1>PHP 8.0.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.20. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.20'); diff --git a/releases/8_0_21.php b/releases/8_0_21.php index a05a0774fd..020f759c94 100644 --- a/releases/8_0_21.php +++ b/releases/8_0_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.21 Release Announcement'); -?> -<h1>PHP 8.0.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.21. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.21'); diff --git a/releases/8_0_22.php b/releases/8_0_22.php index 91ee6b1ace..d5a0ef62cd 100644 --- a/releases/8_0_22.php +++ b/releases/8_0_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.22 Release Announcement'); -?> -<h1>PHP 8.0.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.22. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.22 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.22">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.22'); diff --git a/releases/8_0_23.php b/releases/8_0_23.php index 6903fca2e2..5f05020b17 100644 --- a/releases/8_0_23.php +++ b/releases/8_0_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.23 Release Announcement'); -?> -<h1>PHP 8.0.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.23. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.23 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.23">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.23'); diff --git a/releases/8_0_24.php b/releases/8_0_24.php index 8c81909d3b..e46af89a0c 100644 --- a/releases/8_0_24.php +++ b/releases/8_0_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.24 Release Announcement'); -?> -<h1>PHP 8.0.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.24. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.24 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.24">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.24'); diff --git a/releases/8_0_25.php b/releases/8_0_25.php index 4e6bf58dea..7e5c6f51b7 100644 --- a/releases/8_0_25.php +++ b/releases/8_0_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.25 Release Announcement'); -?> -<h1>PHP 8.0.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.25. This is a security fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.25">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.25'); diff --git a/releases/8_0_26.php b/releases/8_0_26.php index afde40c40e..f4e0f1afe3 100644 --- a/releases/8_0_26.php +++ b/releases/8_0_26.php @@ -1,21 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.26 Release Announcement'); -?> -<h1>PHP 8.0.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.26. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.26 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.26">ChangeLog</a>. -</p> - -<p>Please note, this is the last bug-fix release for the 8.0.x series. -Security fix support will continue until 26 Nov 2023. -For more information, please check our -<a href="https://www.php.net/supported-versions.php">Supported Versions</a> page.</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.26'); diff --git a/releases/8_0_27.php b/releases/8_0_27.php index 2c14ca3fc3..af0b13c896 100644 --- a/releases/8_0_27.php +++ b/releases/8_0_27.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.27 Release Announcement'); -?> -<h1>PHP 8.0.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.27. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.27 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.27">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.27'); diff --git a/releases/8_0_28.php b/releases/8_0_28.php index 523ccf6843..c05b78d924 100644 --- a/releases/8_0_28.php +++ b/releases/8_0_28.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.28 Release Announcement'); -?> -<h1>PHP 8.0.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.28. This is a security release -that addresses CVE-2023-0567, CVE-2023-0568, and CVE-2023-0662</p> - -<p>All PHP 8.0 users are advised to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.28 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.28">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.28'); diff --git a/releases/8_0_29.php b/releases/8_0_29.php index 6054bc1907..6945c12d59 100644 --- a/releases/8_0_29.php +++ b/releases/8_0_29.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.29 Release Announcement'); -?> -<h1>PHP 8.0.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.29. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.29 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/#php-8.0">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.29">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.29'); diff --git a/releases/8_0_3.php b/releases/8_0_3.php index 9a6cc42fe0..bb9272d8ce 100644 --- a/releases/8_0_3.php +++ b/releases/8_0_3.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.3 Release Announcement'); -?> -<h1>PHP 8.0.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.3. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.3 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.3">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.3'); diff --git a/releases/8_0_30.php b/releases/8_0_30.php index a246a73725..68a6f2e1fa 100644 --- a/releases/8_0_30.php +++ b/releases/8_0_30.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.30 Release Announcement'); -?> -<h1>PHP 8.0.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.30. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.30 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.30">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.30'); diff --git a/releases/8_0_5.php b/releases/8_0_5.php index 838c1362ca..84265ae560 100644 --- a/releases/8_0_5.php +++ b/releases/8_0_5.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.5 Release Announcement'); -?> -<h1>PHP 8.0.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.5. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.5 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.5">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.5'); diff --git a/releases/8_0_6.php b/releases/8_0_6.php index d9b60c7670..cd5499d3a8 100644 --- a/releases/8_0_6.php +++ b/releases/8_0_6.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.6 Release Announcement'); -?> -<h1>PHP 8.0.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP -8.0.6. This release reverts a bug related to PDO_pgsql that was -introduced in PHP 8.0.5.</p> - -<p>PHP 8.0 users that use PDO_pgsql are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.6 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.6">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.6'); diff --git a/releases/8_0_7.php b/releases/8_0_7.php index 5a80f55bf8..229d0b1c01 100644 --- a/releases/8_0_7.php +++ b/releases/8_0_7.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.7 Release Announcement'); -?> -<h1>PHP 8.0.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.7. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.7 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.7">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.7'); diff --git a/releases/8_0_8.php b/releases/8_0_8.php index b0445a42b6..4974127ad0 100644 --- a/releases/8_0_8.php +++ b/releases/8_0_8.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.8 Release Announcement'); -?> -<h1>PHP 8.0.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.8. This is a security release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.8 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download#php-8.0">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.8">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.8'); diff --git a/releases/8_0_9.php b/releases/8_0_9.php index 6adbbc7e86..820937aec1 100644 --- a/releases/8_0_9.php +++ b/releases/8_0_9.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_0_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.0.9 Release Announcement'); -?> -<h1>PHP 8.0.9 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.0.9. This is a bug fix release.</p> - -<p>All PHP 8.0 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.0.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.0.9">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.0.9'); diff --git a/releases/8_1_0.php b/releases/8_1_0.php index 051b37701d..2e6f92c20a 100644 --- a/releases/8_1_0.php +++ b/releases/8_1_0.php @@ -1,35 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.0 Release Announcement'); -?> -<h1>PHP 8.1.0 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.0. This release marks the latest minor release of the PHP language.</p> - -<p>PHP 8.1 comes with numerous improvements and new features such as:</p> -<ul> - <li><a href="https://www.php.net/manual/en/language.enumerations.php">Enumerations</a></li> - <li><a href="https://wiki.php.net/rfc/readonly_properties_v2">Readonly properties</a></li> - <li><a href="https://wiki.php.net/rfc/fibers">Fibers</a></li> - <li><a href="https://wiki.php.net/rfc/pure-intersection-types">Pure Intersection Types</a></li> - <li><a href="https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.core.never-type">never</a> return type</li> - <li><a href="https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.core.callable-syntax">First-class Callable Syntax</a></li> - <li>"final" modifier for class constants</li> - <li>New <a href="https://www.php.net/manual/en/function.fsync.php">fsync</a> and <a href="https://www.php.net/manual/en/function.fdatasync.php">fdatasync</a> functions</li> - <li>New <a href="https://www.php.net/manual/en/function.array-is-list.php">array_is_list</a> function</li> - <li>Explicit <a href="https://www.php.net/manual/en/migration81.new-features.php#migration81.new-features.core.octal-literal-prefix">Octal numeral notation</a></li> - <li>And much much more...</li> -</ul> - -<p>For source downloads of PHP 8.1.0 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.0">ChangeLog</a>. -</p> - -<p>The <a href="http://php.net/manual/en/migration81.php">migration guide</a> is available in the PHP Manual. -Please consult it for the detailed list of new features and backward incompatible changes.</p> - -<p>Many thanks to all the contributors and supporters!</p> - -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.0'); diff --git a/releases/8_1_1.php b/releases/8_1_1.php index b1a4bc316c..7a7364115c 100644 --- a/releases/8_1_1.php +++ b/releases/8_1_1.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.1 Release Announcement'); -?> -<h1>PHP 8.1.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.1. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.1">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.1'); diff --git a/releases/8_1_10.php b/releases/8_1_10.php index 7ddc3808aa..bf693be8d5 100644 --- a/releases/8_1_10.php +++ b/releases/8_1_10.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.10 Release Announcement'); -?> -<h1>PHP 8.1.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.10. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.10 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.10">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.10'); diff --git a/releases/8_1_11.php b/releases/8_1_11.php index 18af88719b..2523d7b0a4 100644 --- a/releases/8_1_11.php +++ b/releases/8_1_11.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.11 Release Announcement'); -?> -<h1>PHP 8.1.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.11. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.11 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.11">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.11'); diff --git a/releases/8_1_12.php b/releases/8_1_12.php index ebd073b0d7..a8f7c37a33 100644 --- a/releases/8_1_12.php +++ b/releases/8_1_12.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.12 Release Announcement'); -?> -<h1>PHP 8.1.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.12. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.12">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.12'); diff --git a/releases/8_1_13.php b/releases/8_1_13.php index 25eb5e8a0e..43ebd20579 100644 --- a/releases/8_1_13.php +++ b/releases/8_1_13.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.13 Release Announcement'); -?> -<h1>PHP 8.1.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.13. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.13">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.13'); diff --git a/releases/8_1_14.php b/releases/8_1_14.php index 92dbf3314f..ecec578f2c 100644 --- a/releases/8_1_14.php +++ b/releases/8_1_14.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.14 Release Announcement'); -?> -<h1>PHP 8.1.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.14. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.14">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.14'); diff --git a/releases/8_1_15.php b/releases/8_1_15.php index 380b29236c..8e9630e2af 100644 --- a/releases/8_1_15.php +++ b/releases/8_1_15.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.15 Release Announcement'); -?> -<h1>PHP 8.1.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.15. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.15">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.15'); diff --git a/releases/8_1_16.php b/releases/8_1_16.php index 9ab02bb0ec..82c7486b73 100644 --- a/releases/8_1_16.php +++ b/releases/8_1_16.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.16 Release Announcement'); -?> -<h1>PHP 8.1.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.16. This is a security release that addresses CVE-2023-0567, CVE-2023-0568, and CVE-2023-0662.</p> - -<p>All PHP 8.1 users are advised to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.16">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.16'); diff --git a/releases/8_1_17.php b/releases/8_1_17.php index 4d733f3e4f..c17ae5f0bc 100644 --- a/releases/8_1_17.php +++ b/releases/8_1_17.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.17 Release Announcement'); -?> -<h1>PHP 8.1.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.17. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.17 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.17">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.17'); diff --git a/releases/8_1_18.php b/releases/8_1_18.php index abf412d0fb..0c62eda1ca 100644 --- a/releases/8_1_18.php +++ b/releases/8_1_18.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.18 Release Announcement'); -?> -<h1>PHP 8.1.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.18. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.18 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.18">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.18'); diff --git a/releases/8_1_19.php b/releases/8_1_19.php index ffc298232d..f4d8eec11f 100644 --- a/releases/8_1_19.php +++ b/releases/8_1_19.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.19 Release Announcement'); -?> -<h1>PHP 8.1.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.19. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.19">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.19'); diff --git a/releases/8_1_2.php b/releases/8_1_2.php index 3bf0bd29e4..5d91045161 100644 --- a/releases/8_1_2.php +++ b/releases/8_1_2.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.2 Release Announcement'); -?> -<h1>PHP 8.1.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.2. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.2 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.2">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.2'); diff --git a/releases/8_1_20.php b/releases/8_1_20.php index ec70ee3873..ea54ff3542 100644 --- a/releases/8_1_20.php +++ b/releases/8_1_20.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.20 Release Announcement'); -?> -<h1>PHP 8.1.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.20. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.20'); diff --git a/releases/8_1_21.php b/releases/8_1_21.php index 43c45a81c2..1cc92bee1d 100644 --- a/releases/8_1_21.php +++ b/releases/8_1_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.21 Release Announcement'); -?> -<h1>PHP 8.1.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.21. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.21'); diff --git a/releases/8_1_22.php b/releases/8_1_22.php index 874e79ae45..18e48a1252 100644 --- a/releases/8_1_22.php +++ b/releases/8_1_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.22 Release Announcement'); -?> -<h1>PHP 8.1.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.22. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.22 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.22">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.22'); diff --git a/releases/8_1_23.php b/releases/8_1_23.php index 0a299b2cad..157a4cfacd 100644 --- a/releases/8_1_23.php +++ b/releases/8_1_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.23 Release Announcement'); -?> -<h1>PHP 8.1.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.23. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.23 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.23">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.23'); diff --git a/releases/8_1_24.php b/releases/8_1_24.php index 98550cb72f..dfde6fb5bb 100644 --- a/releases/8_1_24.php +++ b/releases/8_1_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.24 Release Announcement'); -?> -<h1>PHP 8.1.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.24. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.24 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.24">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.24'); diff --git a/releases/8_1_25.php b/releases/8_1_25.php index ddfc309f64..c7b64a9f7f 100644 --- a/releases/8_1_25.php +++ b/releases/8_1_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.25 Release Announcement'); -?> -<h1>PHP 8.1.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.25. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.25">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.25'); diff --git a/releases/8_1_26.php b/releases/8_1_26.php index 07d343693b..18d8f2ee0a 100644 --- a/releases/8_1_26.php +++ b/releases/8_1_26.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.26 Release Announcement'); -?> -<h1>PHP 8.1.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.26. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.26 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.26">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.26'); diff --git a/releases/8_1_27.php b/releases/8_1_27.php index 3c9785ec13..5dafd0d498 100644 --- a/releases/8_1_27.php +++ b/releases/8_1_27.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.27 Release Announcement'); -?> -<h1>PHP 8.1.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.27. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.27 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.27">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.27'); diff --git a/releases/8_1_28.php b/releases/8_1_28.php index 80c929d634..bc027bc438 100644 --- a/releases/8_1_28.php +++ b/releases/8_1_28.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.28 Release Announcement'); -?> -<h1>PHP 8.1.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.28. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.28 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.28">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.28'); diff --git a/releases/8_1_29.php b/releases/8_1_29.php index 006082179c..96ec24ac7e 100644 --- a/releases/8_1_29.php +++ b/releases/8_1_29.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.29 Release Announcement'); -?> -<h1>PHP 8.1.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.29. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.29 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.29">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.29'); diff --git a/releases/8_1_3.php b/releases/8_1_3.php index 7eed1a4bed..a9c40c252e 100644 --- a/releases/8_1_3.php +++ b/releases/8_1_3.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.3 Release Announcement'); -?> -<h1>PHP 8.1.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.3. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.3 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.3">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.3'); diff --git a/releases/8_1_30.php b/releases/8_1_30.php index 1502782d58..a2112ae657 100644 --- a/releases/8_1_30.php +++ b/releases/8_1_30.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.30 Release Announcement'); -?> -<h1>PHP 8.1.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.30. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.30 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.30">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.30'); diff --git a/releases/8_1_31.php b/releases/8_1_31.php index cc2c31c624..c5d51ab9a4 100644 --- a/releases/8_1_31.php +++ b/releases/8_1_31.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.31 Release Announcement'); -?> -<h1>PHP 8.1.31 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.31. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.31 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.31">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.31'); diff --git a/releases/8_1_32.php b/releases/8_1_32.php index 2e339e9da3..d3263bbf1c 100644 --- a/releases/8_1_32.php +++ b/releases/8_1_32.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_32.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.32 Release Announcement'); -?> -<h1>PHP 8.1.32 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.32. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.32 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.32">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.32'); diff --git a/releases/8_1_33.php b/releases/8_1_33.php index 8fadb7715a..4a0ac1a919 100644 --- a/releases/8_1_33.php +++ b/releases/8_1_33.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_33.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.33 Release Announcement'); -?> -<h1>PHP 8.1.33 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.33. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.33 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.33">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.33'); diff --git a/releases/8_1_34.php b/releases/8_1_34.php index a2d54499ff..00fe690f65 100644 --- a/releases/8_1_34.php +++ b/releases/8_1_34.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_34.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.34 Release Announcement'); -?> -<h1>PHP 8.1.34 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.34. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.34 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.1">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.34">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.34'); diff --git a/releases/8_1_4.php b/releases/8_1_4.php index ad2c897c07..81ea3d6edd 100644 --- a/releases/8_1_4.php +++ b/releases/8_1_4.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.4 Release Announcement'); -?> -<h1>PHP 8.1.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.4. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.4 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.4">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.4'); diff --git a/releases/8_1_5.php b/releases/8_1_5.php index a76cd4ecd6..8912ad067d 100644 --- a/releases/8_1_5.php +++ b/releases/8_1_5.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.5 Release Announcement'); -?> -<h1>PHP 8.1.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.5. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.5 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.5">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.5'); diff --git a/releases/8_1_6.php b/releases/8_1_6.php index 9ce817d5ce..4ccaf34921 100644 --- a/releases/8_1_6.php +++ b/releases/8_1_6.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.6 Release Announcement'); -?> -<h1>PHP 8.1.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.6. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.6 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.6">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.6'); diff --git a/releases/8_1_7.php b/releases/8_1_7.php index 8b16e13d7c..1d8e1c0273 100644 --- a/releases/8_1_7.php +++ b/releases/8_1_7.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.7 Release Announcement'); -?> -<h1>PHP 8.1.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.7. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.7 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.7">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.7'); diff --git a/releases/8_1_8.php b/releases/8_1_8.php index fe21935e3f..d1dcbdd1ea 100644 --- a/releases/8_1_8.php +++ b/releases/8_1_8.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.8 Release Announcement'); -?> -<h1>PHP 8.1.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.8. This is a security release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.8 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.8">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.8'); diff --git a/releases/8_1_9.php b/releases/8_1_9.php index 6db4495493..fda9953772 100644 --- a/releases/8_1_9.php +++ b/releases/8_1_9.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_1_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.1.9 Release Announcement'); -?> -<h1>PHP 8.1.9 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.1.9. This is a bug fix release.</p> - -<p>All PHP 8.1 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.1.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.1.9">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.1.9'); diff --git a/releases/8_2_0.php b/releases/8_2_0.php index 3464cebeb3..789e842678 100644 --- a/releases/8_2_0.php +++ b/releases/8_2_0.php @@ -1,35 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.0 Release Announcement'); -?> -<h1>PHP 8.2.0 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.0. This release marks the latest minor release of the PHP language.</p> - -<p>PHP 8.2 comes with numerous improvements and new features such as:</p> - -<ul> - <li><a href="https://www.php.net/manual/en/language.oop5.basic.php#language.oop5.basic.class.readonly">Readonly classes</a></li> - <li><a href="https://www.php.net/manual/en/migration82.new-features.php#migration82.new-features.core.type-system">Disjunctive Normal Form (DNF) Types</a></li> - <li>New stand-alone types: <a href="https://wiki.php.net/rfc/null-false-standalone-types">null, false</a>, and <a href="https://wiki.php.net/rfc/true-type">true</a></li> - <li><a href="https://www.php.net/manual/en/book.random.php">New "Random" extension</a></li> - <li><a href="https://www.php.net/manual/en/migration82.new-features.php#migration82.new-features.core.constant-in-traits">Constants in traits</a></li> - <li><a href="https://www.php.net/manual/en/migration82.deprecated.php#migration82.deprecated.core.dynamic-properties">Deprecate dynamic properties</a></li> - <li>And much much more...</li> -</ul> - -<p> - For source downloads of PHP 8.2.0 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.0">ChangeLog</a>. -</p> - -<p> - The <a href="https://php.net/manual/en/migration82.php">migration guide</a> is available in the PHP Manual. - Please consult it for the detailed list of new features and backward incompatible changes. -</p> - -<p>Kudos to all the contributors and supporters!</p> - -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.0'); diff --git a/releases/8_2_1.php b/releases/8_2_1.php index c109c8af82..2fc1c06084 100644 --- a/releases/8_2_1.php +++ b/releases/8_2_1.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.1 Release Announcement'); -?> -<h1>PHP 8.2.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.1. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.1">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.1'); diff --git a/releases/8_2_10.php b/releases/8_2_10.php index a4745f9053..9a339969b1 100644 --- a/releases/8_2_10.php +++ b/releases/8_2_10.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.10 Release Announcement'); -?> -<h1>PHP 8.2.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.10. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.10 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.10">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.10'); diff --git a/releases/8_2_11.php b/releases/8_2_11.php index 9c0bfe7dca..6c03fea83b 100644 --- a/releases/8_2_11.php +++ b/releases/8_2_11.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.11 Release Announcement'); -?> -<h1>PHP 8.2.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.11. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.11 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.11">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.11'); diff --git a/releases/8_2_12.php b/releases/8_2_12.php index 00a30d03b9..74ac1e25a0 100644 --- a/releases/8_2_12.php +++ b/releases/8_2_12.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.12 Release Announcement'); -?> -<h1>PHP 8.2.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.12. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.12">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.12'); diff --git a/releases/8_2_13.php b/releases/8_2_13.php index 6fdb264f39..5650d40b28 100644 --- a/releases/8_2_13.php +++ b/releases/8_2_13.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.13 Release Announcement'); -?> -<h1>PHP 8.2.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.13. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.13">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.13'); diff --git a/releases/8_2_14.php b/releases/8_2_14.php index 1266d326b3..86148fd07f 100644 --- a/releases/8_2_14.php +++ b/releases/8_2_14.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.14 Release Announcement'); -?> -<h1>PHP 8.2.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.14. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.14">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.14'); diff --git a/releases/8_2_15.php b/releases/8_2_15.php index b4731ee515..c2efcbc6c1 100644 --- a/releases/8_2_15.php +++ b/releases/8_2_15.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.15 Release Announcement'); -?> -<h1>PHP 8.2.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.15. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.15">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.15'); diff --git a/releases/8_2_16.php b/releases/8_2_16.php index 8dc7c813ce..13a777d9cf 100644 --- a/releases/8_2_16.php +++ b/releases/8_2_16.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.16 Release Announcement'); -?> -<h1>PHP 8.2.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.16. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.16">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.16'); diff --git a/releases/8_2_17.php b/releases/8_2_17.php index 9e0d21f10f..60492c64ef 100644 --- a/releases/8_2_17.php +++ b/releases/8_2_17.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.17 Release Announcement'); -?> -<h1>PHP 8.2.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.17. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.17 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.17">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.17'); diff --git a/releases/8_2_18.php b/releases/8_2_18.php index 60f96e5549..d11cb90d71 100644 --- a/releases/8_2_18.php +++ b/releases/8_2_18.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.18 Release Announcement'); -?> -<h1>PHP 8.2.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.18. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.18 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.18">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.18'); diff --git a/releases/8_2_19.php b/releases/8_2_19.php index 7701ed5373..da2c5f289a 100644 --- a/releases/8_2_19.php +++ b/releases/8_2_19.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.19 Release Announcement'); -?> -<h1>PHP 8.2.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.19. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.19">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.19'); diff --git a/releases/8_2_2.php b/releases/8_2_2.php index 0f488813d5..b2a71d0dab 100644 --- a/releases/8_2_2.php +++ b/releases/8_2_2.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.2 Release Announcement'); -?> -<h1>PHP 8.2.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.2. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.2 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.2">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.2'); diff --git a/releases/8_2_20.php b/releases/8_2_20.php index 64ec632ce0..928c40a8ee 100644 --- a/releases/8_2_20.php +++ b/releases/8_2_20.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.20 Release Announcement'); -?> -<h1>PHP 8.2.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.20. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.20'); diff --git a/releases/8_2_21.php b/releases/8_2_21.php index 68ede9a86d..0f3262141b 100644 --- a/releases/8_2_21.php +++ b/releases/8_2_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.21 Release Announcement'); -?> -<h1>PHP 8.2.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.21. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.21'); diff --git a/releases/8_2_22.php b/releases/8_2_22.php index 55fe48d179..16d113035e 100644 --- a/releases/8_2_22.php +++ b/releases/8_2_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.22 Release Announcement'); -?> -<h1>PHP 8.2.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.22. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.22 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.22">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.22'); diff --git a/releases/8_2_23.php b/releases/8_2_23.php index 708af5690e..ab497ceed0 100644 --- a/releases/8_2_23.php +++ b/releases/8_2_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.23 Release Announcement'); -?> -<h1>PHP 8.2.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.23. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.23 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.23">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.23'); diff --git a/releases/8_2_24.php b/releases/8_2_24.php index d65b9c85e4..bee4961cf5 100644 --- a/releases/8_2_24.php +++ b/releases/8_2_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.24 Release Announcement'); -?> -<h1>PHP 8.2.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.24. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.24 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.24">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.24'); diff --git a/releases/8_2_25.php b/releases/8_2_25.php index e79a6067b5..4153c80f7d 100644 --- a/releases/8_2_25.php +++ b/releases/8_2_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.25 Release Announcement'); -?> -<h1>PHP 8.2.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.25. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.25">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.25'); diff --git a/releases/8_2_26.php b/releases/8_2_26.php index 8bd2c45fa8..aae73ca254 100644 --- a/releases/8_2_26.php +++ b/releases/8_2_26.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.26 Release Announcement'); -?> -<h1>PHP 8.2.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.26. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.26 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.26">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.26'); diff --git a/releases/8_2_27.php b/releases/8_2_27.php index fc9ca929f5..7505256927 100644 --- a/releases/8_2_27.php +++ b/releases/8_2_27.php @@ -1,20 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.27 Release Announcement'); -?> -<h1>PHP 8.2.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.27. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.27 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.27">ChangeLog</a>. -</p> - -<p>Please note, this is the last bug-fix release for the 8.2.x series. Security fix support will continue until 31 Dec 2026. - For more information, please check our <a href="https://www.php.net/supported-versions">Supported Versions</a> page. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.27'); diff --git a/releases/8_2_28.php b/releases/8_2_28.php index 51b3b55f65..91b34d9d79 100644 --- a/releases/8_2_28.php +++ b/releases/8_2_28.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.28 Release Announcement'); -?> -<h1>PHP 8.2.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.28. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.28 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.28">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.28'); diff --git a/releases/8_2_29.php b/releases/8_2_29.php index 8c605a2c8b..e04a5ebbae 100644 --- a/releases/8_2_29.php +++ b/releases/8_2_29.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.29 Release Announcement'); -?> -<h1>PHP 8.2.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.29. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.29 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.29">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.29'); diff --git a/releases/8_2_3.php b/releases/8_2_3.php index 66deb4073c..5e66808eb9 100644 --- a/releases/8_2_3.php +++ b/releases/8_2_3.php @@ -1,17 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.3 Release Announcement'); -?> -<h1>PHP 8.2.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.3. This is a security release -that addresses CVE-2023-0567, CVE-2023-0568, and CVE-2023-0662.</p> - -<p>All PHP 8.2 users are advised to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.3 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.3">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.3'); diff --git a/releases/8_2_30.php b/releases/8_2_30.php index 519c7f648a..236e1c3c33 100644 --- a/releases/8_2_30.php +++ b/releases/8_2_30.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.30 Release Announcement'); -?> -<h1>PHP 8.2.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.30. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.30 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.2">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.30">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.30'); diff --git a/releases/8_2_31.php b/releases/8_2_31.php index 45a267791a..810f8a61ee 100644 --- a/releases/8_2_31.php +++ b/releases/8_2_31.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.31 Release Announcement'); -?> -<h1>PHP 8.2.31 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.31. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.31 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.2">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.31">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.31'); diff --git a/releases/8_2_4.php b/releases/8_2_4.php index c67828f5ab..dd0dc62c1a 100644 --- a/releases/8_2_4.php +++ b/releases/8_2_4.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.4 Release Announcement'); -?> -<h1>PHP 8.2.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.4. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.4 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.4">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.4'); diff --git a/releases/8_2_5.php b/releases/8_2_5.php index 9344a22deb..7b661c23e2 100644 --- a/releases/8_2_5.php +++ b/releases/8_2_5.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.5 Release Announcement'); -?> -<h1>PHP 8.2.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.5. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.5 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.5">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.5'); diff --git a/releases/8_2_6.php b/releases/8_2_6.php index 73d0165311..8d743ae84f 100644 --- a/releases/8_2_6.php +++ b/releases/8_2_6.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.6 Release Announcement'); -?> -<h1>PHP 8.2.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.6. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.6 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.6">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.6'); diff --git a/releases/8_2_7.php b/releases/8_2_7.php index 6eb5f34dd4..40437a6e58 100644 --- a/releases/8_2_7.php +++ b/releases/8_2_7.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.7 Release Announcement'); -?> -<h1>PHP 8.2.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.7. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.7 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.7">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.7'); diff --git a/releases/8_2_8.php b/releases/8_2_8.php index e69e8608af..fb8bb41f7f 100644 --- a/releases/8_2_8.php +++ b/releases/8_2_8.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.8 Release Announcement'); -?> -<h1>PHP 8.2.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.8. This is a bug fix release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.2.8 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.8">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.8'); diff --git a/releases/8_2_9.php b/releases/8_2_9.php index a86172fd6c..5d2738855c 100644 --- a/releases/8_2_9.php +++ b/releases/8_2_9.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_2_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.2.9 Release Announcement'); -?> -<h1>PHP 8.2.9 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.2.9. This is a security release.</p> - -<p>All PHP 8.2 users are encouraged to upgrade to this version.</p> - -<p><b>Windows source and binaries are not synchronized and do not contain a fix for GH-11854.</b></p> - -<p>For source downloads of PHP 8.2.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.2.9">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.2.9'); diff --git a/releases/8_3_0.php b/releases/8_3_0.php index 367240b3cd..ff259ca6ec 100644 --- a/releases/8_3_0.php +++ b/releases/8_3_0.php @@ -1,27 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.0 Release Announcement'); -?> -<h1>PHP 8.3.0 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.0. This release marks -the latest minor release of the PHP language.</p> - -<p>PHP 8.3 comes with numerous improvements and new features such as:</p> - -<ul> - <li><a href="https://www.php.net/manual/en/migration83.new-features.php#migration83.new-features.core.typed-class-constants">Typed Class Constants</a></li> - <li><a href="https://www.php.net/manual/en/migration83.new-features.php#migration83.new-features.core.fetch-class-constant-dynamically-syntax">Fetch class constant dynamically syntax</a></li> - <li><a href="https://www.php.net/manual/en/migration83.new-features.php#migration83.new-features.core.readonly-modifier-improvements">Readonly Amendments</a></li> - <li><a href="https://www.php.net/manual/en/migration83.new-features.php#migration83.new-features.core.override-attribute">Override Attribute</a></li> - <li><a href="https://www.php.net/manual/en/random-randomizer.getbytesfromstring.php">New Randomizer method Random\Randomizer::getBytesFromString</a></li> - <li><a href="https://www.php.net/manual/en/function.json-validate.php">New function json_validate</a></li> - <li>And much much more...</li> -</ul> - -<p>For source downloads of PHP 8.3.0 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.0">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.0'); diff --git a/releases/8_3_1.php b/releases/8_3_1.php index d3291a0dcf..60680c77a3 100644 --- a/releases/8_3_1.php +++ b/releases/8_3_1.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.1 Release Announcement'); -?> -<h1>PHP 8.3.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.1. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.1">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.1'); diff --git a/releases/8_3_10.php b/releases/8_3_10.php index 7fc47ddc78..e111813f90 100644 --- a/releases/8_3_10.php +++ b/releases/8_3_10.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.10 Release Announcement'); -?> -<h1>PHP 8.3.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.10. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.10 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.10">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.10'); diff --git a/releases/8_3_11.php b/releases/8_3_11.php index 8cb487d355..6480fd86a7 100644 --- a/releases/8_3_11.php +++ b/releases/8_3_11.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.11 Release Announcement'); -?> -<h1>PHP 8.3.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.11. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.11 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.11">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.11'); diff --git a/releases/8_3_12.php b/releases/8_3_12.php index b064e47c28..15b22ecb6d 100644 --- a/releases/8_3_12.php +++ b/releases/8_3_12.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.12 Release Announcement'); -?> -<h1>PHP 8.3.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.12. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.12">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.12'); diff --git a/releases/8_3_13.php b/releases/8_3_13.php index 44a7cf0ee6..6672f71de0 100644 --- a/releases/8_3_13.php +++ b/releases/8_3_13.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.13 Release Announcement'); -?> -<h1>PHP 8.3.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.13. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.13">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.13'); diff --git a/releases/8_3_14.php b/releases/8_3_14.php index aae1320cc3..e4e4409862 100644 --- a/releases/8_3_14.php +++ b/releases/8_3_14.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.14 Release Announcement'); -?> -<h1>PHP 8.3.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.14. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.14">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.14'); diff --git a/releases/8_3_15.php b/releases/8_3_15.php index 81a5b8b1ea..196f0cc3df 100644 --- a/releases/8_3_15.php +++ b/releases/8_3_15.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.15 Release Announcement'); -?> -<h1>PHP 8.3.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.15. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.15">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.15'); diff --git a/releases/8_3_16.php b/releases/8_3_16.php index 3d2f717d2d..14979e3c68 100644 --- a/releases/8_3_16.php +++ b/releases/8_3_16.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.16 Release Announcement'); -?> -<h1>PHP 8.3.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.16. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.16">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.16'); diff --git a/releases/8_3_17.php b/releases/8_3_17.php index 553ce9f4ca..5641ac5741 100644 --- a/releases/8_3_17.php +++ b/releases/8_3_17.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.17 Release Announcement'); -?> -<h1>PHP 8.3.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.17. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.17 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.17">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.17'); diff --git a/releases/8_3_19.php b/releases/8_3_19.php index 5adc780252..5410118777 100644 --- a/releases/8_3_19.php +++ b/releases/8_3_19.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.19 Release Announcement'); -?> -<h1>PHP 8.3.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.19. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.19">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.19'); diff --git a/releases/8_3_2.php b/releases/8_3_2.php index fed841f429..3c376a5b46 100644 --- a/releases/8_3_2.php +++ b/releases/8_3_2.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.2 Release Announcement'); -?> -<h1>PHP 8.3.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.2. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.2 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.2">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.2'); diff --git a/releases/8_3_20.php b/releases/8_3_20.php index 9e49def999..1fb12eab4e 100644 --- a/releases/8_3_20.php +++ b/releases/8_3_20.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.20 Release Announcement'); -?> -<h1>PHP 8.3.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.20. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.20'); diff --git a/releases/8_3_21.php b/releases/8_3_21.php index 581566b02e..f423543376 100644 --- a/releases/8_3_21.php +++ b/releases/8_3_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.21 Release Announcement'); -?> -<h1>PHP 8.3.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.21. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.21'); diff --git a/releases/8_3_22.php b/releases/8_3_22.php index 5ecced5f7f..d848e85aa1 100644 --- a/releases/8_3_22.php +++ b/releases/8_3_22.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_22.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.22 Release Announcement'); -?> -<h1>PHP 8.3.22 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.22. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.22 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.22">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.22'); diff --git a/releases/8_3_23.php b/releases/8_3_23.php index c8b1427cbb..d8bfbf88e8 100644 --- a/releases/8_3_23.php +++ b/releases/8_3_23.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_23.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.23 Release Announcement'); -?> -<h1>PHP 8.3.23 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.23. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.23 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.23">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.23'); diff --git a/releases/8_3_24.php b/releases/8_3_24.php index 5d80183131..d9e85f11f8 100644 --- a/releases/8_3_24.php +++ b/releases/8_3_24.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_24.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.24 Release Announcement'); -?> -<h1>PHP 8.3.24 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.24. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.24 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.24">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.24'); diff --git a/releases/8_3_25.php b/releases/8_3_25.php index 2d43719031..70f3ac6299 100644 --- a/releases/8_3_25.php +++ b/releases/8_3_25.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_25.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.25 Release Announcement'); -?> -<h1>PHP 8.3.25 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.25. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.25 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.25">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.25'); diff --git a/releases/8_3_26.php b/releases/8_3_26.php index 49d0bf9004..76bbf6a31c 100644 --- a/releases/8_3_26.php +++ b/releases/8_3_26.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_26.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.26 Release Announcement'); -?> -<h1>PHP 8.3.26 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.26. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.26 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.26">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.26'); diff --git a/releases/8_3_27.php b/releases/8_3_27.php index 9154f25684..334e7d1d0d 100644 --- a/releases/8_3_27.php +++ b/releases/8_3_27.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_27.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.27 Release Announcement'); -?> -<h1>PHP 8.3.27 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.27. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.27 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.27">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.27'); diff --git a/releases/8_3_28.php b/releases/8_3_28.php index 66dd2ebf3b..a7a462cc5a 100644 --- a/releases/8_3_28.php +++ b/releases/8_3_28.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_28.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.28 Release Announcement'); -?> -<h1>PHP 8.3.28 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.28. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.28 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.28">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.28'); diff --git a/releases/8_3_29.php b/releases/8_3_29.php index 7e62ec5dbf..158b5249da 100644 --- a/releases/8_3_29.php +++ b/releases/8_3_29.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_29.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.29 Release Announcement'); -?> -<h1>PHP 8.3.29 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.29. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.29 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.3">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.29">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.29'); diff --git a/releases/8_3_3.php b/releases/8_3_3.php index 509b9f1ae7..48eefb4f82 100644 --- a/releases/8_3_3.php +++ b/releases/8_3_3.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.3 Release Announcement'); -?> -<h1>PHP 8.3.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.3. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.3 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.3">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.3'); diff --git a/releases/8_3_30.php b/releases/8_3_30.php index cf906d52c1..e3a9c4d887 100644 --- a/releases/8_3_30.php +++ b/releases/8_3_30.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_30.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.30 Release Announcement'); -?> -<h1>PHP 8.3.30 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.30. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.30 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.3">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.30">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.30'); diff --git a/releases/8_3_31.php b/releases/8_3_31.php index 31bfb9d865..de0abd9a6c 100644 --- a/releases/8_3_31.php +++ b/releases/8_3_31.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_31.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.31 Release Announcement'); -?> -<h1>PHP 8.3.31 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.31. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.31 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.3">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.31">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.31'); diff --git a/releases/8_3_4.php b/releases/8_3_4.php index 77c7247544..c959666a3e 100644 --- a/releases/8_3_4.php +++ b/releases/8_3_4.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.4 Release Announcement'); -?> -<h1>PHP 8.3.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.4. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.4 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.4">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.4'); diff --git a/releases/8_3_6.php b/releases/8_3_6.php index 3814fdb07f..958c69dfd3 100644 --- a/releases/8_3_6.php +++ b/releases/8_3_6.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.6 Release Announcement'); -?> -<h1>PHP 8.3.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.6. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.6 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.6">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.6'); diff --git a/releases/8_3_7.php b/releases/8_3_7.php index 4f9b39f2df..440d81ba55 100644 --- a/releases/8_3_7.php +++ b/releases/8_3_7.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.7 Release Announcement'); -?> -<h1>PHP 8.3.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.7. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.7 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.7">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.7'); diff --git a/releases/8_3_8.php b/releases/8_3_8.php index 0fda20e54d..0949236937 100644 --- a/releases/8_3_8.php +++ b/releases/8_3_8.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.8 Release Announcement'); -?> -<h1>PHP 8.3.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.8. This is a security release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.8 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.8">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.8'); diff --git a/releases/8_3_9.php b/releases/8_3_9.php index 0041c4dfc8..6858f1d9a3 100644 --- a/releases/8_3_9.php +++ b/releases/8_3_9.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_3_9.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.3.9 Release Announcement'); -?> -<h1>PHP 8.3.9 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.3.9. This is a bug fix release.</p> - -<p>All PHP 8.3 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.3.9 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.3.9">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.3.9'); diff --git a/releases/8_4_1.php b/releases/8_4_1.php index 2dcd4e15e5..8e6bae2d80 100644 --- a/releases/8_4_1.php +++ b/releases/8_4_1.php @@ -1,26 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.1 Release Announcement'); -?> -<h1>PHP 8.4.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.1. This release marks -the latest minor release of the PHP language.</p> - -<p>PHP 8.4 comes with numerous improvements and new features such as:</p> - -<ul> - <li><a href="https://www.php.net/manual/en/migration84.new-features.php#migration84.new-features.core.property-hooks">Property Hooks</a></li> - <li><a href="https://www.php.net/manual/en/migration84.new-features.php#migration84.new-features.core.asymmetric-property-visibility">Asymmetric Property Visibility</a></li> - <li><a href="https://www.php.net/manual/en/migration84.new-features.php#migration84.new-features.core.lazy-objects">Lazy Objects</a></li> - <li><a href="https://www.php.net/manual/en/migration84.new-features.php#migration84.new-features.pdo">PDO driver-specific subclasses</a></li> - <li><a href="https://www.php.net/manual/en/migration84.new-classes.php#migration84.new-classes.bcmath">BCMath object type</a></li> - <li>And much much more...</li> -</ul> - -<p>For source downloads of PHP 8.4.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.1">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.1'); diff --git a/releases/8_4_10.php b/releases/8_4_10.php index 638a6a8abc..500c1cb24d 100644 --- a/releases/8_4_10.php +++ b/releases/8_4_10.php @@ -1,18 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_10.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.10 Release Announcement'); -?> -<h1>PHP 8.4.10 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.10. This is a security release.</p> - -<p>Version 8.4.9 was skipped because it was tagged without including security patches.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.10 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.10">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.10'); diff --git a/releases/8_4_11.php b/releases/8_4_11.php index d2e7ff9cc4..66c00a0ed1 100644 --- a/releases/8_4_11.php +++ b/releases/8_4_11.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_11.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.11 Release Announcement'); -?> -<h1>PHP 8.4.11 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.11. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.11 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.11">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.11'); diff --git a/releases/8_4_12.php b/releases/8_4_12.php index 217e7ef52c..283067b61e 100644 --- a/releases/8_4_12.php +++ b/releases/8_4_12.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_12.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.12 Release Announcement'); -?> -<h1>PHP 8.4.12 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.12. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.12 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.12">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.12'); diff --git a/releases/8_4_13.php b/releases/8_4_13.php index da85dde5be..3f309d1d5d 100644 --- a/releases/8_4_13.php +++ b/releases/8_4_13.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_13.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.13 Release Announcement'); -?> -<h1>PHP 8.4.13 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.13. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.13 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.13">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.13'); diff --git a/releases/8_4_14.php b/releases/8_4_14.php index 3065bdcc78..ca49abe6f0 100644 --- a/releases/8_4_14.php +++ b/releases/8_4_14.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_14.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.14 Release Announcement'); -?> -<h1>PHP 8.4.14 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.14. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.14 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.14">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.14'); diff --git a/releases/8_4_15.php b/releases/8_4_15.php index cc8187cd6c..653bbb7690 100644 --- a/releases/8_4_15.php +++ b/releases/8_4_15.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_15.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.15 Release Announcement'); -?> -<h1>PHP 8.4.15 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.15. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.15 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.15">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.15'); diff --git a/releases/8_4_16.php b/releases/8_4_16.php index e02dd3590f..9a2442c3fe 100644 --- a/releases/8_4_16.php +++ b/releases/8_4_16.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_16.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.16 Release Announcement'); -?> -<h1>PHP 8.4.16 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.16. This is a security release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.16 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.4">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.16">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.16'); diff --git a/releases/8_4_17.php b/releases/8_4_17.php index f57189ccc3..b14b411354 100644 --- a/releases/8_4_17.php +++ b/releases/8_4_17.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_17.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.17 Release Announcement'); -?> -<h1>PHP 8.4.17 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.17. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.17 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.4">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.17">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.17'); diff --git a/releases/8_4_18.php b/releases/8_4_18.php index a54a949e9c..5fdfe66ea5 100644 --- a/releases/8_4_18.php +++ b/releases/8_4_18.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_18.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.18 Release Announcement'); -?> -<h1>PHP 8.4.18 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.18. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.18 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.4">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.18">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.18'); diff --git a/releases/8_4_19.php b/releases/8_4_19.php index 1843bc08c2..81f5b1eaa9 100644 --- a/releases/8_4_19.php +++ b/releases/8_4_19.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_19.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.19 Release Announcement'); -?> -<h1>PHP 8.4.19 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.19. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.19 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.4">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.19">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.19'); diff --git a/releases/8_4_2.php b/releases/8_4_2.php index 35d4a25347..5a4cb2faf1 100644 --- a/releases/8_4_2.php +++ b/releases/8_4_2.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.2 Release Announcement'); -?> -<h1>PHP 8.4.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.2. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.2 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.2">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.2'); diff --git a/releases/8_4_20.php b/releases/8_4_20.php index d684a68c78..31db1b7436 100644 --- a/releases/8_4_20.php +++ b/releases/8_4_20.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_20.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.20 Release Announcement'); -?> -<h1>PHP 8.4.20 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.20. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.20 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.4">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.20">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.20'); diff --git a/releases/8_4_21.php b/releases/8_4_21.php index 6e7a032d2b..f52f5943f4 100644 --- a/releases/8_4_21.php +++ b/releases/8_4_21.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_21.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.21 Release Announcement'); -?> -<h1>PHP 8.4.21 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.21. This is a security release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.21 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.4">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.21">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.21'); diff --git a/releases/8_4_3.php b/releases/8_4_3.php index e1700cba28..ed5089a94e 100644 --- a/releases/8_4_3.php +++ b/releases/8_4_3.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.3 Release Announcement'); -?> -<h1>PHP 8.4.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.3. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.3 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.3">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.3'); diff --git a/releases/8_4_4.php b/releases/8_4_4.php index 71646fb84d..07d23b750c 100644 --- a/releases/8_4_4.php +++ b/releases/8_4_4.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.4 Release Announcement'); -?> -<h1>PHP 8.4.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.4. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.4 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.4">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.4'); diff --git a/releases/8_4_5.php b/releases/8_4_5.php index 4f30e44070..b58ffcbe22 100644 --- a/releases/8_4_5.php +++ b/releases/8_4_5.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.5 Release Announcement'); -?> -<h1>PHP 8.4.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.5. This is a security release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.5 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.5">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.5'); diff --git a/releases/8_4_6.php b/releases/8_4_6.php index 8be76d8473..2c98723e39 100644 --- a/releases/8_4_6.php +++ b/releases/8_4_6.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.6 Release Announcement'); -?> -<h1>PHP 8.4.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.6. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.6 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.6">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.6'); diff --git a/releases/8_4_7.php b/releases/8_4_7.php index a2bebfd0af..31acc3e8f3 100644 --- a/releases/8_4_7.php +++ b/releases/8_4_7.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_7.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.7 Release Announcement'); -?> -<h1>PHP 8.4.7 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.7. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.7 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.7">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.7'); diff --git a/releases/8_4_8.php b/releases/8_4_8.php index 63f7c9dbca..e04612e899 100644 --- a/releases/8_4_8.php +++ b/releases/8_4_8.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_4_8.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.4.8 Release Announcement'); -?> -<h1>PHP 8.4.8 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.4.8. This is a bug fix release.</p> - -<p>All PHP 8.4 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.4.8 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.4.8">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.4.8'); diff --git a/releases/8_5_0.php b/releases/8_5_0.php index eee873f794..133ff64d57 100644 --- a/releases/8_5_0.php +++ b/releases/8_5_0.php @@ -1,30 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_5_0.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.0 Release Announcement'); -?> -<h1>PHP 8.5.0 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.0. This release marks the latest minor release of the PHP language.</p> - -<p>PHP 8.5 comes with numerous improvements and new features such as:</p> -<ul> - <li>New "URI" extension</li> - <li>New pipe operator (|>)</li> - <li>Clone With</li> - <li>New #[\NoDiscard] attribute</li> - <li>Support for closures, casts, and first class callables in constant expressions</li> - <li>And much much more...</li> -</ul> -<p> - For source downloads of PHP 8.5.0 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, - Windows source and binaries can be found on <a href="https://windows.php.net/download/">windows.php.net/download/</a>. - The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.0">ChangeLog</a>. -</p> -<p> - The <a href="https://php.net/manual/en/migration85.php">migration guide</a> is available in the PHP Manual. - Please consult it for the detailed list of new features and backward incompatible changes. -</p> -<p>Kudos to all the contributors and supporters!</p> - -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.0'); diff --git a/releases/8_5_1.php b/releases/8_5_1.php index 6f32a19afd..87a73b0d0a 100644 --- a/releases/8_5_1.php +++ b/releases/8_5_1.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_5_1.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.1 Release Announcement'); -?> -<h1>PHP 8.5.1 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.1. This is a security release.</p> - -<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.5.1 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.5">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.1">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.1'); diff --git a/releases/8_5_2.php b/releases/8_5_2.php index 77237286e9..40147856d6 100644 --- a/releases/8_5_2.php +++ b/releases/8_5_2.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_5_2.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.2 Release Announcement'); -?> -<h1>PHP 8.5.2 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.2. This is a bug fix release.</p> - -<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.5.2 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.5">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.2">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.2'); diff --git a/releases/8_5_3.php b/releases/8_5_3.php index d0d9457ebe..dcb5ac225b 100644 --- a/releases/8_5_3.php +++ b/releases/8_5_3.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8.5.3.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.3 Release Announcement'); -?> -<h1>PHP 8.5.3 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.3. This is a bug fix release.</p> - -<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.5.3 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.5">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.3">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.3'); diff --git a/releases/8_5_4.php b/releases/8_5_4.php index 37742318f7..945929b97b 100644 --- a/releases/8_5_4.php +++ b/releases/8_5_4.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_5_4.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.4 Release Announcement'); -?> -<h1>PHP 8.5.4 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.4. This is a bug fix release.</p> - -<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.5.4 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.5">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.4">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.4'); diff --git a/releases/8_5_5.php b/releases/8_5_5.php index 295b7e79cf..81043e7234 100644 --- a/releases/8_5_5.php +++ b/releases/8_5_5.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_5_5.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.5 Release Announcement'); -?> -<h1>PHP 8.5.5 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.5. This is a bug fix release.</p> - -<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.5.5 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.5">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.5">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.5'); diff --git a/releases/8_5_6.php b/releases/8_5_6.php index 579cdac2e1..ed77727484 100644 --- a/releases/8_5_6.php +++ b/releases/8_5_6.php @@ -1,16 +1,3 @@ <?php -$_SERVER['BASE_PAGE'] = 'releases/8_5_6.php'; -include_once __DIR__ . '/../include/prepend.inc'; -site_header('PHP 8.5.6 Release Announcement'); -?> -<h1>PHP 8.5.6 Release Announcement</h1> - -<p>The PHP development team announces the immediate availability of PHP 8.5.6. This is a security release.</p> - -<p>All PHP 8.5 users are encouraged to upgrade to this version.</p> - -<p>For source downloads of PHP 8.5.6 please visit our <a href="https://www.php.net/downloads.php">downloads page</a>, -Windows source and binaries can also be found <a href="https://www.php.net/downloads.php?os=windows&version=8.5">there</a>. -The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#8.5.6">ChangeLog</a>. -</p> -<?php site_footer(); +include __DIR__ . '/template.inc'; +handle_release_announcement('8.5.6'); diff --git a/releases/template.inc b/releases/template.inc new file mode 100644 index 0000000000..edfa8fa98e --- /dev/null +++ b/releases/template.inc @@ -0,0 +1,97 @@ +<?php + +use phpweb\Metadata\PointReleaseData; + +require_once __DIR__ . '/../include/prepend.inc'; + +function handle_release_announcement(string $version) +{ + $pointRelease = PointReleaseData::Create($version); + $featureRelease = $pointRelease->parent; + $latestPointRelease = $featureRelease->latestRelease; + + ob_start(); + ?> + <div class="panel"> + <div class="headline">PHP <?= safe($featureRelease->label) ?> Releases</div> + <div class="body"> + <div style="display: flex; gap: 0.5em; margin-bottom: 1em"> + <svg title="Security Release" style="width: 1.2em; height: 1.2em" fill="red" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M320 64C324.6 64 329.2 65 333.4 66.9L521.8 146.8C543.8 156.1 560.2 177.8 560.1 204C559.6 303.2 518.8 484.7 346.5 567.2C329.8 575.2 310.4 575.2 293.7 567.2C121.3 484.7 80.6 303.2 80.1 204C80 177.8 96.4 156.1 118.4 146.8L306.7 66.9C310.9 65 315.4 64 320 64zM320 130.8L320 508.9C458 442.1 495.1 294.1 496 205.5L320 130.9L320 130.9z"/></svg> + Indicates security patches + </div> + + <ul> + <?php foreach (array_reverse($featureRelease->releases) as $navRelease) { ?> + <li style="display: flex; gap: 0.5em; align-items: center"> + <a href="<?= safe($navRelease->announcementUrl) ?>"> + <?= safe($navRelease->label) ?> + </a> + <?php if ($navRelease->isSecurity) { ?> + <svg title="Security Release" style="width: 1.2em; height: 1.2em" fill="red" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M320 64C324.6 64 329.2 65 333.4 66.9L521.8 146.8C543.8 156.1 560.2 177.8 560.1 204C559.6 303.2 518.8 484.7 346.5 567.2C329.8 575.2 310.4 575.2 293.7 567.2C121.3 484.7 80.6 303.2 80.1 204C80 177.8 96.4 156.1 118.4 146.8L306.7 66.9C310.9 65 315.4 64 320 64zM320 130.8L320 508.9C458 442.1 495.1 294.1 496 205.5L320 130.9L320 130.9z"/></svg> + <?php } ?> + + <?php if ($navRelease->label === $pointRelease->label) { ?> (Viewing)<?php } ?> + </li> + <?php } ?> + </ul> + </div> + </div> + <?php + $sidebar = ob_get_clean(); + + ob_start(); + site_header( + 'PHP ' . $pointRelease->label . ' Release Announcement', +// ['header' => PageTheme::buildVersionHeader($featureRelease, title: 'PHP ' . $pointRelease->label, subtitle: 'Release Announcement')] + ); + if ($latestPointRelease && version_compare($pointRelease->label, $latestPointRelease->label)) { + ?> + <div class="warning"> + <div style="font-weight: bold; margin-bottom: 1em">This Release is Outdated</div> + <p> + The latest release of PHP <?= safe($featureRelease->label) ?> is PHP + <strong> + <a href="<?= safe($latestPointRelease->announcementUrl) ?>"><?= safe($latestPointRelease->label) ?></a> + </strong>. + + It is recommended to upgrade to the latest release. + </p> + </div> + <?php + } + + foreach ($pointRelease->announcementFilePathsByLanguage as $lang => $path) { + echo file_get_contents($path); + } + ?> + <h2>Source Code</h2> + <ul> + <?php foreach ($pointRelease->sources as $source) { ?> + <li style="margin-bottom: 0.5em"> + <a href="<?= safe($source->downloadUrl) ?>"><?= safe($source->name) ?></a> + <div role="list"> + <?php foreach ($source->hashes as $hashType => $hashValue) { ?> + <div role="listitem"><strong><?= safe($hashType) ?>:</strong> <span style="word-break: break-all"><?= safe($hashValue) ?></span></div> + <?php } ?> + </div> + </li> + <?php } ?> + </ul> + + <h2>Change Log</h2> + <ul> + <?php foreach ($pointRelease->changedModules as $module) { ?> + <li> + <div style="font-weight: bold"><?= safe($module->name) ?></div> + <ul> + <?php foreach ($module->changes as $change) { ?> + <li><?= safe($change->message) ?></li> + <?php } ?> + </ul> + </li> + <? } ?> + </ul> + <?php + + site_footer(['sidebar' => $sidebar]); +} diff --git a/sandbox/boot.inc b/sandbox/boot.inc new file mode 100644 index 0000000000..5a17b78e52 --- /dev/null +++ b/sandbox/boot.inc @@ -0,0 +1,112 @@ +<?php + +namespace phpsandbox; + +use Throwable; +use function implode; +use function json_encode; +use function ob_get_clean; + +class GlobalSandbox +{ + private static ?GlobalSandbox $gs = null; + + /** @var list<array> */ + public array $error_logs = []; + + public static function shared(): self + { + return self::$gs ??= new self(); + } + + public function __construct() + { + set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline) { + $this->error_logs[] = [ + 'errno' => $errno, + 'message' => $errstr, + 'file' => $errfile, + 'line' => $errline, + ]; + }); + } + + public function formatException(Throwable $e): array + { + $stack = [[ + 'file' => $e->getFile(), + 'line' => $e->getLine(), + ]]; + + foreach ($e->getTrace() as $trace) { + $where = []; + + if (isset($trace['class'])) { + $where[] = $trace['class']; + } + + if (isset($trace['function'])) { + $where[] = $trace['function']; + } + + + $stack[] = [ + 'file' => $trace['file'], + 'line' => (int)$trace['line'], + ]; + + $stack[count($stack) - 2]['where'] = implode('->', $where); + } + + /** @var array<string, list<string>> $fileLineCache */ + $fileLineCache = []; + foreach ($stack as $idx => $item) { + if (!$item['file'] || !file_exists($item['file'])) { + $stack[$idx]['snippet'] = null; + continue; + } + + $lines = $fileLineCache[$item['file']] ??= explode("\n", file_get_contents($item['file'])); + $stack[$idx]['snippet'] = trim($lines[(int)$item['line'] - 1] ?? ''); + } + + return [ + 'message' => $e->getMessage(), + 'stack' => $stack, + 'previous' => $e->getPrevious() ? $this->formatException($e->getPrevious()) : null, + ]; + } + + public function run() + { + $result = [ + 'response_type' => 'text/plain', + ]; + + $this->error_logs = []; + $output = null; + $result = null; + $path = 'success'; + + try { + ob_start(); + require "./entry.php"; + $result['mode'] = 'success'; + $result['buffer'] = ob_get_clean(); + } catch (Throwable $e) { + $result['mode'] = 'success'; + $result['exception'] = $this->formatException($e); + $result['buffer'] = (string)$e; + ob_get_clean(); + } + + $result['errors'] = $this->error_logs; + + echo json_encode($result); + } +} + +GlobalSandbox::shared()->run(); + + + diff --git a/sandbox/code-upgrades.php b/sandbox/code-upgrades.php new file mode 100644 index 0000000000..1d93082205 --- /dev/null +++ b/sandbox/code-upgrades.php @@ -0,0 +1,68 @@ +<?php + +include_once '../include/prepend.inc'; + +$release_examples = require_once __DIR__ . '/../include/releases-comparisons.inc'; + +site_header('Upgrade Snippets', ['css' => ['theme-gst.css'], 'include_section' => false]); + +?> +<style> + .ibox { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + background: white; + border-radius: 0.5em; + overflow: hidden; + border: 1px solid #dddddd; + } + + .ibox-header { + color: #222222; + padding: 0.5em 0.75em; + border-bottom: 1px solid #dddddd; + } + + .ibox-content-flex { + padding: 0.5em; + flex: 1 1; + display: flex; + } +</style> +<div class="gst-primary gst-primary-container"> + <div class="gst-content-p"> + <?php foreach ($release_examples as $releaseId => $releaseExample) { ?> + <h1><?= safe($releaseId) ?></h1> + <div style="display: flex; flex-direction: column; gap: 4em"> + <?php foreach ($releaseExample as $example) { ?> + <div style="display: flex; flex-direction: column; gap: 1em"> + <div style="padding-bottom: 0.5em; width: min(700px, 100%); margin-left: auto; margin-right: auto;"> + <div style="font-size: 24px; text-align: center; border: 0; font-weight: 500"><?= safe($example['title']) ?></div> + <div style="font-size: 16px; margin-top: 1em; line-height: 1.6"><?= $example['about'] ?></div> + </div> + <div style="display: flex; flex-direction: column; gap: 1em"> + <div style="flex: 1 1; display: grid; grid-template-columns: <?= str_repeat('1fr ', count($example['examples']))?>; gap: 2em"> + <?php foreach ($example['examples'] as $snippet) { + + ?> + <div class="ibox"> + <div class="ibox-header"><?= safe($snippet['label']) ?></div> + <div class="ibox-content-flex" style="padding: 1em"> + <?= highlight_php_trimmed($snippet['body']) ?> + </div> + </div> + <?php } ?> + </div> + </div> + </div> + <?php } ?> + </div> + <?php } ?> + </div> +</div> +<?php + + +site_footer(['include_section' => false]); diff --git a/sandbox/example.txt b/sandbox/example.txt new file mode 100644 index 0000000000..07d684c257 --- /dev/null +++ b/sandbox/example.txt @@ -0,0 +1,37 @@ +<?php + +# Every PHP file starts in a kind of "direct output" mode where +# any content is sent straight to the user. +# +# To use "PHP" code we must first enter the PHP context by using the +# <?php opening tag. + +# In PHP mode we write output using "Echo" +echo "Hello World!"; +echo PHP_EOL . PHP_EOL; + + +# In PHP, variables are declared by using the $ prefix +$name = "Joe Blogs"; +echo "Your name is: " . $name; +echo PHP_EOL . PHP_EOL; + + +# PHP uses `.` to concatenate variables as strings. +# This may be different to languages where you may expect to use `+`. +# This is to ensure there can be no mix-up between +# addition and concatenating + +echo "Concatenation: " . ("1" . "1") . PHP_EOL; +echo "Addition: " . ("1" + "1") . PHP_EOL; +echo PHP_EOL; + + +# Here we will perform a basic for loop +$max_loops = 5; +for ($i = 0; $i < $max_loops; $i++) { + echo "Loop " . ($i + 1) . PHP_EOL; +} + +echo PHP_EOL; + diff --git a/sandbox/sandbox.php b/sandbox/sandbox.php new file mode 100644 index 0000000000..87d9ec0da6 --- /dev/null +++ b/sandbox/sandbox.php @@ -0,0 +1,191 @@ +<?php + +include_once '../include/prepend.inc'; + +site_header(); + +?> +<style> + .ibox { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + background: white; + border-radius: 0.5em; + overflow: hidden; + border: 1px solid #4D4D4D; + } + + .ibox-header { + background: #4D4D4D; + color: white; + padding: 0.2em 0.75em; + } + + .ibox-content-fixed { + padding: 0.5em; + flex: 0 0 fit-content; + } + + .ibox-content-flex { + padding: 0.5em; + flex: 1 1; + display: flex; + } + + .ibox-abs-outer { + position: relative; + height: 100%; + width: 100%; + } + + .ibox-abs-inner { + position: absolute; + inset: 0; + } + + .exception-stack-frame { + padding: 1em 0.25em; + display: flex; + gap: 1em; + align-items: center; + } + + .exception-stack-frame + .exception-stack-frame { + border-top: 1px solid #eeeeee; + } + + .exception-stack-frame-snippet { + border: 1px dashed #4D4D4D; + background: whitesmoke; + padding: 0.5em; + font-family: 'courier new', courier, monospace; + white-space: pre-wrap; + border-radius: 0.25em; + } + + #exception-message { + font-size: larger; + } +</style> +<div> + <div style="font-size: 30px; padding-bottom: 0.5em">PHP Sandbox</div> + <div style="display: flex; flex-direction: column; gap: 1em; height: 700px"> + <div style="flex: 1 1; display: grid; grid-template-columns: 1fr 1fr; gap: 1em; height: 400px"> + <div class="ibox"> + <div class="ibox-header">Editor</div> + <div class="ibox-content-flex"> + <textarea id="code" style="border: 0; padding: 0.5em; resize: none; flex: 1 1; font-family: 'courier new', monospace"><?= htmlspecialchars(file_get_contents(__DIR__ . '/example.txt')) ?></textarea> + </div> + <div class="ibox-content-fixed"> + <button id="run" style="padding: 0.5em 2em; border-radius: 0.25em">Run Code</button> + </div> + </div> + <div class="ibox"> + <div class="ibox-header">Output</div> + <div class="ibox-content-flex" style="padding: 0"> + <div id="exception" class="ibox-abs-outer" style="flex: 1 1"> + <div class="ibox-abs-inner" style="overflow-y: scroll; padding: 1em; display: flex; flex-direction: column; gap: 1em"> + <div style="padding: 1em; background: #da314d; color: white; border-radius: 5px; margin-bottom: 0.5em"> + <div style="font-size: smaller; font-weight: bold; margin-bottom: 0.5em">An Exception Occurred</div> + <div id="exception-message"></div> + </div> + + <div style="display: flex; flex-direction: column; gap: 0.25em"> + <div style="font-weight: bold">Stack Trace</div> + <div>The stack trace shows the path the code took before it encountered the error. The last code to execute is at the top.</div> + + <div id="exception-stack" style="display: flex; flex-direction: column"></div> + </div> + </div> + </div> + <iframe id="preview-html" style="width: 100%; height: 100%; border: 0; overflow-y: scroll " sandbox="allow-scripts"></iframe> + <div id="preview-plain" style="width: 100%; height: 100%; border: 0; overflow-y: scroll; white-space: pre-wrap; padding: 1em"></div> + </div> + </div> + </div> + <div style="flex: 0 0 180px"> + <div class="ibox"> + <div class="ibox-header">Debug</div> + <div class="ibox-content-flex" style="padding: 0"> + <div class="ibox-abs-outer"> + <div class="ibox-abs-inner" style="overflow-y: scroll; padding: 0.5em"> + <table cellpadding="2" cellspacing="0" style="width: 100%; font-family: 'courier new', monospace"> + <tbody id="error-log"></tbody> + </table> + </div> + </div> + </div> + </div> + </div> + </div> +</div> + +<script type="module"> + import {PHPSandbox} from "/js/sandbox.js"; + const sandbox = new PHPSandbox({ + "boot.php": <?= json_encode(file_get_contents(__DIR__ . '/boot.inc')) ?>, + }); + + const sourceInput = document.getElementById("code"); + const htmlOutput = document.getElementById("preview-html"); + const plainTextOutput = document.getElementById("preview-plain"); + const exceptionOutput = document.getElementById("exception"); + const exceptionMessage = document.getElementById("exception-message"); + const exceptionStack = document.getElementById("exception-stack"); + + const errorLogTable = document.getElementById("error-log"); + + function showResult(element) { + [htmlOutput, exceptionOutput, plainTextOutput].forEach((elem) => { + elem.style.display = (elem.id === element.id) ? 'block' : 'none'; + }) + } + + showResult(plainTextOutput); + + document.querySelector('#run').addEventListener('click', () => { + sandbox.execute({"entry.php": sourceInput.value}) + .then(result => { + console.log(result); + + while (errorLogTable.firstChild) { + errorLogTable.removeChild(errorLogTable.firstChild); + } + + result.errors.forEach((error) => { + $('<tr>').append( + $('<td style="width: 200px">').text(error.file + ':' + error.line), + $('<td>').text(error.message) + ).appendTo(errorLogTable); + }); + + if (result.exception) { + const ex = result.exception; + $(exceptionMessage).text(ex.message); + + $(exceptionStack) + .empty() + .append( + ...ex.stack.map((sf, idx) => $('<div class="exception-stack-frame">').append( + $('<div style="flex: 0 0 20px; font-size: larger">').text('#' + (idx + 1)), + $('<div style="flex: 1 1">').append( + $('<div style="margin-bottom: 0.25em">').text(sf.file + ':' + sf.line + (sf.where ? (' (Within ' + sf.where + ')') : '')), + $('<div class="exception-stack-frame-snippet">').text(sf.snippet), + ) + )) + ); + + showResult(exceptionOutput); + } else { + showResult(plainTextOutput); + $(plainTextOutput).text(result.buffer); + } + }); + }); +</script> + +<?php + +site_footer(); diff --git a/src/I18n/Languages.php b/src/I18n/Languages.php index a74fc65469..211d11fe1e 100644 --- a/src/I18n/Languages.php +++ b/src/I18n/Languages.php @@ -56,6 +56,64 @@ final class Languages 'zh' => 'Chinese (Simplified)', ]; + public const ACTIVE_ONLINE_LANGUAGES_EX = [ + 'en' => [ + 'label_en' => 'English', + 'label_loc' => 'English', + 'icon' => '/images/language-flags/en.webp', + ], + 'de' => [ + 'label_en' => 'German', + 'label_loc' => 'Deutsch', + 'icon' => '/images/language-flags/de.png', + ], + 'es' => [ + 'label_en' => 'Spanish', + 'label_loc' => 'Español', + 'icon' => '/images/language-flags/es.png', + ], + 'fr' => [ + 'label_en' => 'French', + 'label_loc' => 'Français', + 'icon' => '/images/language-flags/fr.png', + ], + 'it' => [ + 'label_en' => 'Italian', + 'label_loc' => 'Italiano', + 'icon' => '/images/language-flags/it.png', + ], + 'ja' => [ + 'label_en' => 'Japanese', + 'label_loc' => '日本語', + 'icon' => '/images/language-flags/ja.png', + ], + 'pt_BR' => [ + 'label_en' => 'Brazilian Portuguese', + 'label_loc' => 'Português (Brasil)', + 'icon' => '/images/language-flags/br.png', + ], + 'ru' => [ + 'label_en' => 'Russian', + 'label_loc' => 'Русский', + 'icon' => '/images/language-flags/ru.png', + ], + 'tr' => [ + 'label_en' => 'Turkish', + 'label_loc' => 'Türkçe', + 'icon' => '/images/language-flags/tr.png', + ], + 'uk' => [ + 'label_en' => 'Ukrainian', + 'label_loc' => 'Українська', + 'icon' => '/images/language-flags/uk.webp', + ], + 'zh' => [ + 'label_en' => 'Chinese (Simplified)', + 'label_loc' => '简体中文', + 'icon' => '/images/language-flags/zh.webp', + ], + ]; + /** * Convert between language codes back and forth * diff --git a/src/Metadata/ChangeLine.php b/src/Metadata/ChangeLine.php new file mode 100644 index 0000000000..924fdb5dc1 --- /dev/null +++ b/src/Metadata/ChangeLine.php @@ -0,0 +1,12 @@ +<?php + +namespace phpweb\Metadata; + +readonly class ChangeLine +{ + public function __construct( + public string $message, + ) { + + } +} diff --git a/src/Metadata/ChangeModule.php b/src/Metadata/ChangeModule.php new file mode 100644 index 0000000000..47e075d125 --- /dev/null +++ b/src/Metadata/ChangeModule.php @@ -0,0 +1,14 @@ +<?php + +namespace phpweb\Metadata; + +readonly class ChangeModule +{ + public function __construct( + public string $name, + /** @var list<ChangeLine> */ + public array $changes, + ) { + + } +} diff --git a/src/Metadata/PointReleaseData.php b/src/Metadata/PointReleaseData.php new file mode 100644 index 0000000000..7bc83226f0 --- /dev/null +++ b/src/Metadata/PointReleaseData.php @@ -0,0 +1,137 @@ +<?php + +namespace phpweb\Metadata; + +use phpweb\ProjectGlobals; +use function in_array; +use function preg_match; + +final class PointReleaseData +{ + public readonly int $major; + public readonly int $minor; + public readonly int $patch; + public readonly string $parentLabel; + + private ?array $_changedModuleCache = null; + private static array $releaseAnnouncementCache = []; + + public static function Create(string $label): PointReleaseData + { + return new PointReleaseData($label); + } + + public function __construct(public readonly string $label, private ?array $_data = null) + { + [$major, $minor, $patch] = explode('.', $label); + $this->major = $major; + $this->minor = $minor; + $this->patch = $patch; + $this->parentLabel = $major . '.' . $minor; + } + + public VersionData $parent { + get => VersionData::Create($this->major . '.' . $this->minor); + } + + public string $downloadUrl { + get => '/downloads.php?version=' . $this->label; + } + + public string $announcementUrl { + get => '/releases/' . $this->major . '_' . $this->minor . '_' . $this->patch . '.php'; + } + + public bool $isSecurity { + get => in_array('security', $this->data()['tags'] ?? [], true); + } + + /** + * @phpstan-import-type ReleaseDataArray from ReleaseRawDataLoader + * @phpstan-return ReleaseRawDataLoader + */ + protected function data(): array + { + return $this->_data ??= ReleaseRawDataLoader::releaseDataForLabel($this->label); + } + + /** + * @var list<ReleaseFile> + */ + public array $sources { + get { + $files = []; + $allowedHashes = ['sha1', 'sha256']; + + foreach ($this->data()['source'] as $file) { + $hashes = array_filter( + $file, + fn(string $k) => in_array($k, $allowedHashes, true), + ARRAY_FILTER_USE_KEY + ); + + $files[] = new ReleaseFile(filename: $file['filename'], name: $file['name'], hashes: $hashes); + } + + return $files; + } + } + + /** + * @var array<string, string> + */ + public array $announcementFilePathsByLanguage { + get { + /* as this includes a folder scan, release announcements are cached by feature release */ + self::$releaseAnnouncementCache[$this->parentLabel] ??= (function () { + $dataPath = ProjectGlobals::getDataPathForRelease($this->major . '.' . $this->minor) . '/announcements'; + if (!is_dir($dataPath)) { + return []; + } + + $map = []; + foreach (scandir($dataPath) as $fileName) { + $filePath = $dataPath . '/' . $fileName; + if (!preg_match('/^(\d+_\d+_\d+).html$/', $fileName, $matches)) { + continue; + } + + [$major, $minor, $patch] = explode('_', $matches[1]); + $map[$major . '.' . $minor . '.' . $patch]['en'] = $filePath; + } + + return $map; + })(); + + return self::$releaseAnnouncementCache[$this->parentLabel][$this->label] ?? []; + } + } + + /** + * @var array<string, ChangeModule> + */ + public array $changedModules { + get { + if ($this->_changedModuleCache === null) { + $path = ProjectGlobals::getIncludeDataPath() + . '/releases/' . $this->major . '.' . $this->minor . '/changelist.inc'; + + if (!file_exists($path)) { + return []; + } + + $source = (require $path)[$this->label] ?? []; + foreach ($source['modules'] as $moduleId => $lines) { + $lx = []; + foreach ($lines as $line) { + $lx[] = new ChangeLine($line['message']); + } + + $this->_changedModuleCache[$moduleId] = new ChangeModule($moduleId, $lx); + } + } + + return $this->_changedModuleCache; + } + } +} diff --git a/src/Metadata/ReleaseFile.php b/src/Metadata/ReleaseFile.php new file mode 100644 index 0000000000..5796183ef4 --- /dev/null +++ b/src/Metadata/ReleaseFile.php @@ -0,0 +1,19 @@ +<?php + +namespace phpweb\Metadata; + +class ReleaseFile +{ + public function __construct( + public readonly string $filename, + public readonly string $name, + public readonly array $hashes, + ) { + } + + public string $downloadUrl { + get { + return '/distributions/' . $this->filename; + } + } +} diff --git a/src/Metadata/ReleaseRawDataLoader.php b/src/Metadata/ReleaseRawDataLoader.php new file mode 100644 index 0000000000..3303db618b --- /dev/null +++ b/src/Metadata/ReleaseRawDataLoader.php @@ -0,0 +1,92 @@ +<?php + +namespace phpweb\Metadata; + +use function ksort; +use function uksort; + +require_once __DIR__ . '/../../include/releases.inc'; +require_once __DIR__ . '/../../include/version.inc'; + +/** + * @phpstan-type ReleaseDataArray = array{ + * label: string, + * date: string, + * source: list<array{filename:string, name:string}>, + * windows?: list<array{filename:string, name:string}> + * } + */ +class ReleaseRawDataLoader +{ + /** + * Returns all the revisions structured as $result[8.4][8.4.3] = [ ... ] + * + * @return array<string, array<string, ReleaseDataArray> + */ + static function allReleaseDataByVersionByLabel(): array + { + static $cache = null; + if (!$cache) { + $flatten = static function (array $source) use (&$cache): void { + foreach ($source as $majorVersions) { + foreach ($majorVersions as $label => $revision) { + $revision['label'] = $label; + [$major, $minor] = explode('.', $label); + $cache[$major . '.' . $minor][$label] = $revision; + } + } + }; + + $flatten($GLOBALS['RELEASES']); + $flatten($GLOBALS['OLDRELEASES']); + + uksort($cache, version_compare(...)); + + foreach($cache as $major => $versions) { + uksort($cache[$major], version_compare(...)); + } + } + + return $cache; + } + + /** + * Returns all the revisions structured as $result[8.4.3] = [ ... ] + * + * @return array<string, ReleaseDataArray> + */ + static function allReleasesByLabel(): array + { + static $cache = null; + if (!$cache) { + $cache = []; + foreach (self::allReleaseDataByVersionByLabel() as $majorVersions) { + foreach ($majorVersions as $label => $revision) { + $cache[$label] = $revision; + } + } + } + + return $cache; + } + + /** + * @return array<string, ReleaseDataArray> + */ + static function allReleasesForVersion(string $version): array + { + return self::allReleaseDataByVersionByLabel()[$version] ?? []; + } + + /** + * @return ReleaseDataArray + */ + static function releaseDataForLabel(string $label): array + { + return self::allReleasesByLabel()[$label] ?? [ + 'announcement' => '', + 'source' => [], + 'windows' => [], + ]; + } +} diff --git a/src/Metadata/VersionData.php b/src/Metadata/VersionData.php new file mode 100644 index 0000000000..9111b18428 --- /dev/null +++ b/src/Metadata/VersionData.php @@ -0,0 +1,159 @@ +<?php + +namespace phpweb\Metadata; + +use DateTimeImmutable; +use function array_key_last; +use function array_reverse; +use function array_unique; +use function get_active_branches; +use function get_branch_bug_eol_date; +use function get_branch_security_eol_date; +use function ksort; + +final class VersionData +{ + private static $_cache = []; + private static $_all = null; + + public readonly int $majorVersion; + public readonly int $minorVersion; + + private ?DateTimeImmutable $_bugfixEOL = null; + private ?DateTimeImmutable $_securityEOL = null; + private ?array $_pointReleases = null; + + public function __construct(public readonly string $label) + { + [$majorVersion, $minorVersion] = explode('.', $label); + $this->majorVersion = $majorVersion; + $this->minorVersion = $minorVersion; + } + + public static function Create(string $label): VersionData + { + return self::$_cache[$label] ?? new VersionData($label); + } + + /** + * Returns an associative array of the latest versions of PHP + * + * @return array<string, VersionData> + */ + public static function getSupportedVersions(): array + { + $ready = []; + foreach (get_active_branches() as $versions) { + foreach ($versions as $versionId => $version) { + $ready[$versionId] = self::Create($versionId); + } + } + + return array_reverse($ready); + } + + public ?DateTimeImmutable $bugfixEOL { + get { + if ($this->_bugfixEOL === null) { + $eol = get_branch_bug_eol_date($this->label); + $this->_bugfixEOL = $eol ? DateTimeImmutable::createFromInterface($eol) : null; + } + + return $this->_bugfixEOL; + } + } + + public ?DateTimeImmutable $securityEOL { + get { + if ($this->_securityEOL === null) { + $eol = get_branch_security_eol_date($this->label); + $this->_securityEOL = $eol ? DateTimeImmutable::createFromInterface($eol) : null; + } + + return $this->_securityEOL; + } + } + + public string $logoUrl { + get => '/images/php8/logo_php' .$this->majorVersion . '_' . $this->minorVersion . '.svg'; + } + + public ?string $aboutPageURL { + get { + return '/releases/' . $this->label . '/en.php'; + } + } + + /** + * @var array<string, PointReleaseData> + */ + public array $releases { + get { + if ($this->_pointReleases === null) { + $releases = []; + foreach (ReleaseRawDataLoader::allReleasesForVersion($this->label) as $label => $data) { + $releases[$label] = new PointReleaseData($label, $data); + } + + $this->_pointReleases = $releases; + } + + return $this->_pointReleases; + } + } + + /** + * Finds the last release associated with this version + */ + public ?PointReleaseData $latestRelease { + get { + $all = $this->releases; + + return $all[array_key_last($all)] ?? null; + } + } + + /** + * Provides an array of code examples that show how code can be upgraded + * to use new functionality in this version. + */ + public array $upgradeSnippets { + /** + * @return list<array> + */ + get { + static $cache = null; + $cache ??= require __DIR__ . '/../../include/releases-comparisons.inc'; + + return $cache[$this->label]; + } + } + + /** + * Returns an array of descriptions about what is particularly special for a new version + * for use on things like the homepage + * + * @return list<array{title:string, about?:string, short?:string}> + */ + public function getMajorFeatureDescriptions(): array + { + static $cache = null; + $cache ??= require __DIR__ . '/../../include/branch-meta.inc'; + + return $cache[$this->label]['features'] ?? []; + } + + /** + * Gets the root-relative URL for the upgrade documentation + */ + public string $migrationUri { + get => '/migration' . $this->majorVersion . $this->minorVersion; + } + + /** + * Get the root-relative URL for the download page for this version + */ + public string $downloadUri { + get => '/downloads.php?version=' . $this->label; + } +} diff --git a/src/Navigation/NavCardItem.php b/src/Navigation/NavCardItem.php new file mode 100644 index 0000000000..22beef36dd --- /dev/null +++ b/src/Navigation/NavCardItem.php @@ -0,0 +1,16 @@ +<?php + +namespace phpweb\Navigation; + +final class NavCardItem +{ + public function __construct( + public string $title, + public string $about, + public ?string $image, + public string $href, + public string $href_label, + public ?string $id = null, + ) { + } +} diff --git a/src/News/Entry.php b/src/News/Entry.php index 00b82ebfd8..e14844bacd 100755 --- a/src/News/Entry.php +++ b/src/News/Entry.php @@ -39,6 +39,8 @@ class Entry protected $id = ''; + protected $summary = ''; + public function setTitle(string $title): self { $this->title = $title; return $this; @@ -96,6 +98,14 @@ public function setContent(string $content): self { return $this; } + public function setSummary(string $content): self { + if (empty($content)) { + throw new \Exception('Summary must not be empty'); + } + $this->summary = $content; + return $this; + } + public function getId(): string { return $this->id; } @@ -138,6 +148,10 @@ public function save(): self { $content = self::ce($dom, "content", null, [], $item); + if ($this->summary !== '') { + self::ce($dom, "summary", $this->summary, [], $item); + } + // Slurp content into our DOM. $tdoc = new \DOMDocument("1.0", "utf-8"); $tdoc->formatOutput = true; diff --git a/src/ProjectGlobals.php b/src/ProjectGlobals.php new file mode 100644 index 0000000000..10294dd54c --- /dev/null +++ b/src/ProjectGlobals.php @@ -0,0 +1,23 @@ +<?php + +namespace phpweb; + +use function realpath; + +final class ProjectGlobals +{ + public static function getIncludeDataPath(): string + { + return realpath(__DIR__ . '/../include'); + } + + public static function getDataPathForRelease(string $version): string + { + return realpath(__DIR__ . '/../data/releases/' . $version); + } + + public static function getProjectRoot(): string + { + return realpath(__DIR__ . '/../'); + } +} diff --git a/src/Themes/Assets.php b/src/Themes/Assets.php new file mode 100644 index 0000000000..1720724a04 --- /dev/null +++ b/src/Themes/Assets.php @@ -0,0 +1,31 @@ +<?php + +namespace phpweb\Themes; + +use phpweb\ProjectGlobals; +use function filemtime; +use function str_ends_with; + +final class Assets +{ + /** + * Provides for the eventual remapping of assets to long-term cachable storage by + * rewriting them from a pre-calculated array + */ + public static function mapUrl(string $path): string + { + if (str_ends_with($path, '.js') || str_ends_with($path, '.css')) { + return '/cached.php?f=' . $path . '&t=' . filemtime(ProjectGlobals::getProjectRoot() . $path); + } + + return $path; + } + + /** + * HTML encoded mapUrl + */ + public static function mapSafeUrl(string $path): string + { + return safe(self::mapUrl($path)); + } +} diff --git a/src/Themes/PageTheme.php b/src/Themes/PageTheme.php new file mode 100644 index 0000000000..495f9cd3eb --- /dev/null +++ b/src/Themes/PageTheme.php @@ -0,0 +1,77 @@ +<?php + +namespace phpweb\Themes; + +use Closure; +use function is_string; +use function ob_start; +use function safe; +use function site_footer; +use function site_header; + +class PageTheme +{ + private const BOTTOM_NAV = [ + 'PHP' => [ + ['My PHP.net', '/my.php'], + ['Downloads', '/downloads.php'], + ['Contact', '/contact.php'], + ['Other PHP.net sites', '/sites.php'], + ], + 'Learn' => [ + ['Documentation', '/docs.php'], + ['Get Involved', 'get-involved.php'], + ['Help', '/support.php'], + ], + 'The PHP Foundation' => [ + ['About the Foundation', 'https://thephp.foundation/', '_blank'], + ['Sponsor', 'https://thephp.foundation/sponsor/', '_blank'], + ['Contact', 'https://thephp.foundation/contact/', '_blank'], + ], + 'Legal' => [ + ['Privacy Policy', '/privacy.php'], + ], + ]; + + public static function renderIntoTemplate(array $config, string|Closure $content): string + { + /* sections get hidden for this new mechanism */ + $config['include_section'] ??= false; + + ob_start(); + site_header($config['title'], $config); + + if (is_string($content)) { + echo $content; + } else { + echo $content(); + } + ?> + + <div class="gst-primary gst-primary-container"> + <div class="gst-content-p"> + <div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.5em"> + <?php foreach (self::BOTTOM_NAV as $sectionLabel => $links) { ?> + <div> + <div style="font-weight: bold"><?= safe($sectionLabel) ?></div> + <br /> + + <div role="list"> + <?php foreach ($links as $link) { ?> + <a role="listitem" style="display: block; margin-bottom: 0.5em; border-bottom: 0" + href="<?= safe($link[1]) ?>" + target="<?= $link[2] ?: '_self' ?>"> + <?= safe($link[0]) ?> + </a> + <?php } ?> + </div> + </div> + <?php } ?> + </div> + </div> + </div> + <?php + site_footer(['footer' => false, ...$config]); + return ob_get_clean(); + } +} diff --git a/src/Themes/SuperBanner.php b/src/Themes/SuperBanner.php new file mode 100644 index 0000000000..de549278f5 --- /dev/null +++ b/src/Themes/SuperBanner.php @@ -0,0 +1,37 @@ +<?php + +namespace phpweb\Themes; + +final class SuperBanner +{ + public static function renderBanner(string $content): string + { + ob_start(); + ?> + <style> + .superbanner { + color: white; + } + </style> + <div class="gst-secondary-container gst-primary superbanner"> + <div style="position: relative; "> + <svg style="position: absolute; inset: 0; height: 100%; width: 100%; opacity: 0.1; z-index: 1" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"> + <defs> + <radialGradient id="Gradient1" cx="50%" cy="50%" fx="0.441602%" fy="50%" r=".5"><animate attributeName="fx" dur="34s" values="0%;3%;0%" repeatCount="indefinite"></animate><stop offset="0%" stop-color="rgba(210, 203, 255, 1)"></stop><stop offset="100%" stop-color="rgba(51, 63, 124, 0)"></stop></radialGradient> + <radialGradient id="Gradient2" cx="50%" cy="50%" fx="2.68147%" fy="50%" r=".5"><animate attributeName="fx" dur="23.5s" values="0%;3%;0%" repeatCount="indefinite"></animate><stop offset="0%" stop-color="rgba(133, 109, 255, 1)"></stop><stop offset="100%" stop-color="rgba(51, 63, 124, 0)"></stop></radialGradient> + <radialGradient id="Gradient3" cx="50%" cy="50%" fx="0.836536%" fy="50%" r=".5"><animate attributeName="fx" dur="21.5s" values="0%;3%;0%" repeatCount="indefinite"></animate><stop offset="0%" stop-color="rgba(210, 203, 255, 1)"></stop><stop offset="100%" stop-color="rgba(51, 63, 124, 0)"></stop></radialGradient> + </defs> + <rect x="13.744%" y="1.18473%" width="100%" height="100%" fill="url(#Gradient1)" transform="rotate(334.41 50 50)"><animate attributeName="x" dur="20s" values="25%;0%;25%" repeatCount="indefinite"></animate><animate attributeName="y" dur="21s" values="0%;25%;0%" repeatCount="indefinite"></animate><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="7s" repeatCount="indefinite"></animateTransform></rect> + <rect x="-2.17916%" y="35.4267%" width="100%" height="100%" fill="url(#Gradient2)" transform="rotate(255.072 50 50)"><animate attributeName="x" dur="23s" values="-25%;0%;-25%" repeatCount="indefinite"></animate><animate attributeName="y" dur="24s" values="0%;50%;0%" repeatCount="indefinite"></animate><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="12s" repeatCount="indefinite"></animateTransform></rect> + <rect x="9.00483%" y="14.5733%" width="100%" height="100%" fill="url(#Gradient3)" transform="rotate(139.903 50 50)"><animate attributeName="x" dur="25s" values="0%;25%;0%" repeatCount="indefinite"></animate><animate attributeName="y" dur="12s" values="0%;25%;0%" repeatCount="indefinite"></animate><animateTransform attributeName="transform" type="rotate" from="360 50 50" to="0 50 50" dur="9s" repeatCount="indefinite"></animateTransform></rect> + </svg> + + <div class="gst-content-p" style="position: relative; z-index: 2; padding-top: 3em; padding-bottom: 3em"> + <?= $content ?> + </div> + </div> + </div> + <?php + return ob_get_clean(); + } +} diff --git a/src/Util.php b/src/Util.php new file mode 100644 index 0000000000..a7912cb74e --- /dev/null +++ b/src/Util.php @@ -0,0 +1,23 @@ +<?php + +namespace phpweb; + +use Closure; +use Throwable; +use function ob_get_clean; + +class Util +{ + public static function bufferOutput(Closure $closure): string + { + try { + ob_start(); + $closure(); + + return ob_get_clean(); + } catch (Throwable $e) { + ob_get_clean(); + throw $e; + } + } +} diff --git a/styles/landing.css b/styles/landing.css new file mode 100644 index 0000000000..8be462ea8e --- /dev/null +++ b/styles/landing.css @@ -0,0 +1,353 @@ + +/* + * HEADER + * Contains the giant PHP and our 3x lead elements + */ +.landing-hdr { + margin-bottom: 3em; +} + +@media (min-width: 901px) { + .landing-hdr { + display: grid; + grid-template-columns: 2fr 1fr; + gap: 1.5em; + } +} + +@media (max-width: 900px) { + .landing-hdr { + display: flex; + flex-direction: column; + gap: 1em; + } +} + +.landing-hdr-block { + padding: 1em; +} + +.landing-hdr-block + .landing-hdr-block { + border-top: 1px dashed #4a5568; +} + +.landing-hdr-title { + font-size: larger; + margin-bottom: 0.25em; +} + +.landing-hdr-tagline { + margin-bottom: 0; + font-size: 24px; +} + +.landing-hdr-content { + +} + +/* + * LAST RELEASE HERO CARD + */ + +.landing-lrel-card { + display: flex; + flex-direction: column; + box-sizing: border-box; +} + +.landing-lrel-card-inner { + display: flex; + flex-direction: column; + flex-grow: 1; + overflow: hidden; + gap: 1em; + padding: 1em; +} + +.landing-lrel-img { + width: 100%; + height: 60px; + object-fit: contain; + object-position: center center; + margin-top: 1em; + margin-bottom: 1em; +} + +.gst-light .landing-lrel-img { + background: #aaaaaa; + padding: 1em; + border-radius: var(--card-radius); + box-sizing: border-box; +} + +@media (max-width: 400px) { + .landing-lrel-img { + height: 40px; + margin-top: 0.25em; + margin-bottom: 0.25em; + } +} + +.landing-lrel-featuring { + font-weight: bold; + margin-bottom: 0.25em; +} + +.landing-lrel-latest { + display: flex; + flex-direction: column; + gap: 0.5em; + text-align: center; +} + +.landing-lrel-features { + margin-bottom: 0; +} + +.landing-lrel-label { + display: inline-flex; + padding: 0.25em 0.75em; + border-radius: 0.5em; + font-size: 90%; +} + +.landing-lrel-buttons { + display: flex; + flex-direction: column; + gap: 0.25em; + width: 100%; +} + +/* + * CARD LAYOUT + */ + +.landing-cc-card-img { + height: 80px; + width: 80px; + object-fit: contain; + overflow: hidden; +} + +.landing-cc-card-content { + padding: 1.5em; + flex: 1 1; + display: flex; + flex-direction: column; + gap: 1em; +} + +.landing-cc-card-title { + font-size: 125%; + font-weight: 500; +} + +.landing-cc-card-body { + flex: 1 1; +} + +/* + * LAST RELEASE HERO CARD + */ + +.landing-lrv { + overflow: hidden; + position: relative; + background: #4F5B93; + border-radius: var(--card-radius); + margin: 0 auto 2em; + width: min(1440px, 100%); + border: 1px solid #555555; +} + +.landing-lrv-animate { + position: absolute; + inset: 0; + opacity: 0.5; +} + +@media (prefers-reduced-motion: reduce) { + .landing-lrv-animate { + display: none; + } +} + +.landing-lrv-inner-padding { + position: relative; +} + +@media (max-width: 900px) { + .landing-lrv-inner-padding { + padding: 1em; + } + + .landing-lrv-inner { + display: flex; + flex-direction: column; + gap: 2em; + } +} + +@media (min-width: 901px) { + .landing-lrv-inner-padding { + padding: 2em; + } + + .landing-lrv-inner { + display: grid; + gap: 2em; + align-items: center; + grid-template-columns: 1fr 1fr; + } +} + +.landing-lrv-highlights { + display: grid; + gap: 1em; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); +} + +.landing-lrv-highlight { + background: #44444477; + color: white; + border-radius: 0.5em; + padding: 1em; + font-size: smaller; +} + +.landing-lrv-highlight-title { + font-weight: 500; +} + +/* + * ECOSYSTEM BANNER + * Full-width banner intended to promote ecosystem components as a single element + */ + +.gst-primary-banner { + display: flex; + flex-direction: row; + gap: 2em; + align-items: center; + padding: 0 5em; + color: var(--primary-container-color); +} + +@media (max-width: 700px) { + .gst-primary-banner { + flex-direction: column; + padding: 0; + gap: 1em; + text-align: center; + } +} + +.gst-primary-text { + font-size: 24px; + line-height: 1.3; +} + +/* + * SECTIONS + */ + + +.landing-section-header { + font-size: 18px; + text-align: center; + text-decoration: none !important; + margin: 0; + padding: 0; + color: var(--section-title); + line-height: 1.3; + font-weight: 500; +} + + +/* + * MICRO LABEL + * Key-Value label intended to be used for versions + */ + +.landing-ml { + font-size: smaller; + border-radius: 0.75em; + border: 1px solid #77777755; + overflow: hidden; + display: inline-flex; + align-items: center; +} + +.landing-ml-label { + padding: 0.15em 0.5em; + background: #00000044; + border-right: 1px solid #777777; +} + +.landing-ml-value { + padding: 0.15em 0.5em; +} + +/* + * CARD BUTTON + */ + +.landing-card-btn { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + box-sizing: border-box; + + /* "Chunk" styling: chunky padding and thick borders */ + padding: 14px 32px; + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-size: 1.1rem; + font-weight: 700; + text-decoration: none; + text-align: center; + letter-spacing: 0.5px; + cursor: pointer; + + /* Colors & Border */ + color: #111111 !important; + background-color: #ffffff; + border: 2px solid #111111; + border-radius: 0.5em; + + /* Smooth transitions for hover/active states */ + transition: all 0.2s ease-in-out; +} + +@media (max-width: 600px) { + .landing-card-btn { + padding: 4px 16px !important; + } +} + +/* Hover state */ +.landing-card-ovh:hover .landing-card-btn, +.landing-card-ovh:active .landing-card-btn, +.landing-card-btn:hover { + color: #ffffff !important; + background-color: #222222; + /* Shifts the button slightly and expands shadow for a "lifting" effect */ + transform: translate(-2px, -2px); + box-shadow: 6px 6px 0px 0px #000000; + border-color: transparent; +} + +/* Focus state for accessibility */ +.landing-card-btn:focus-visible { + outline: 4px solid #818cf8; +} + +#foundation-sponsor-carousel { + mask-image: linear-gradient( + to right, + transparent 0%, + black 10%, + black 90%, + transparent 100% + ); +} diff --git a/styles/theme-gst.css b/styles/theme-gst.css new file mode 100644 index 0000000000..9778de0af2 --- /dev/null +++ b/styles/theme-gst.css @@ -0,0 +1,234 @@ +:root { + --card-radius: 0.5em; +} + +.gst-dark { + background-image: url(/images/bg-texture-00.svg); + + /* spec: main content area, solid background */ + --primary-container-bg: #252525; + --primary-container-color: whitesmoke; + --primary-container-border: #333333; + --primary-card-bg: #303030; + --primary-card-color: whitesmoke; + --primary-card-border: #222222; + + /* spec: secondary content area, allows background to show through, not for main text */ + --secondary-container-bg: transparent; + --secondary-container-color: whitesmoke; + --secondary-card-bg: #444444; + --secondary-card-color: whitesmoke; + --secondary-card-border: #222222; + + --section-title: whitesmoke; + --leader-color: whitesmoke; +} + +.gst-light { + background-color: #fafafa; + background-image: url(/images/bg-texture-light.png); + background-repeat: repeat; + + /* spec: main content area, solid background */ + --primary-container-bg: #ffffff; + --primary-container-color: #333333; + --primary-container-border: #eeeeee; + --primary-card-bg: #fcfcfc; + --primary-card-color: #222222; + --primary-card-border: #f7f7f7; + + /* spec: secondary content area, allows background to show through, not for main text */ + --secondary-card-bg: #ffffff; + --secondary-card-color: #222222; + --secondary-card-border: #eeeeee; + + --section-title: #222222; + --leader-color: #222222; +} + +/* + * Global Theming + */ + +.gst-primary { + --card-bg: var(--primary-card-bg); + --card-color: var(--primary-card-color); + --card-border: var(--primary-card-border); +} + +.gst-primary-container { + position: relative; + background: var(--primary-container-bg); + border-top: 1px solid var(--primary-container-border); + border-bottom: 1px solid var(--primary-container-border); + color: var(--primary-container-color); +} + +.gst-secondary { + --card-bg: var(--secondary-card-bg); + --card-color: var(--secondary-card-color); + --card-border: var(--secondary-card-border); +} + +.gst-secondary-container { + position: relative; + background-color: var(--secondary-container-bg); + color: var(--secondary-container-color); + + background-image: url(/images/bg-texture-dark.png); +} + +.gst-content, .gst-content-p { + width: min(1440px, 100%); + margin: 0 auto; + box-sizing: border-box; +} + +.gst-content-p h1, .gst-content-p h2, .gst-content-p h3 { + color: var(--card-color); +} + +.gst-content-p { + padding: 5em 1em; +} + +.gst-sbc { + display: flex; + flex-direction: row; + gap: 2em; +} + +.gst-sbc-main { + flex: 1 0 300px; +} + +.gst-sbc-sidebar { + flex: 0 0 320px; +} + +@media (max-width: 600px) { + .gst-content-p { + padding: 1em 1em; + } +} + +/* + * Clickable Navigation Card + */ + +.gst-navcard { + all: unset; + border-radius: var(--card-radius); + display: flex; + flex-direction: row; + flex-grow: 1; + gap: 0.25em; + overflow: hidden; + cursor: pointer; + background: var(--card-bg); + color: var(--card-color) !important; + outline: 3px transparent; + transition: all 0.2s ease-in-out; + border: 1px solid var(--card-border); +} + +.gst-navcard:hover { + outline: 3px solid #53576d; + overflow: hidden;; + transition: all 0.2s ease-in-out; +} + +.gst-navcad:focus { + outline: 3px solid #eeeeee; +} + +/* + * Basic Card + */ + +.gst-card { + border-radius: var(--card-radius); + display: flex; + flex-direction: column; + flex-grow: 1; + overflow: hidden; + background: var(--card-bg); + color: var(--card-color); + border: 1px solid var(--card-border); +} + +.gst-card-title { + padding: 1.5em; + font-weight: bold; +} + +.gst-card-content { + padding: 1.5em; +} + +/* + * CGRID + * + * Displays in an auto-repeating grid, however, when the space is too small, it significantly collapses + * the gap and changes the separation from such large padding, into a vertical list + */ + +.gst-cgrid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); + gap: 1.5em; + margin: 0; + padding: 0; + list-style-type: none; +} + +.gst-cgrid-card { + border-radius: var(--card-radius); + overflow: hidden; +} + +@media (max-width: 700px) { + .gst-cgrid { + gap: 0; + overflow: hidden; + border-radius: var(--card-radius); + animation: ease; + } + + .gst-cgrid-card { + border-radius: 0 !important; + overflow: hidden; + } + + .gst-cgrid-card + .gst-cgrid-card { + margin-top: 3px; + } +} + +/* + * Micro Label + */ + +/* + * MICRO LABEL + * Key-Value label intended to be used for versions + */ + +.gst-statuslabel { + font-size: smaller; + border-radius: 0.75em; + border: 1px solid #77777755; + overflow: hidden; + display: inline-flex; + align-items: center; +} + +.gst-statuslabel-label { + padding: 0.15em 0.5em; + background: #00000044; + border-right: 1px solid #777777; +} + +.gst-statuslabel-value { + padding: 0.15em 0.5em; +} diff --git a/thanks.php b/thanks.php index 1b68444bed..b79b82bb5d 100644 --- a/thanks.php +++ b/thanks.php @@ -10,7 +10,7 @@ <ul class="thanks-list"> <li class="thanks"> <a href="http://www.easydns.com/?V=698570efeb62a6e2" class="thanks__logo"> - <img src="images/sponsors/easydns.png" alt="easyDNS"> + <img src="assets/images/sponsors/easydns.png" alt="easyDNS"> </a> <section> <strong class="thanks__heading"><a href="http://www.easydns.com/?V=698570efeb62a6e2">easyDNS</a></strong> @@ -20,7 +20,7 @@ <li class="thanks"> <a href="https://www.myrasecurity.com/ddos-protection/" class="thanks__logo thanks__logo--dark"> - <img src="images/sponsors/myra.png" alt="Myra Security"> + <img src="assets/images/sponsors/myra.png" alt="Myra Security"> </a> <section> <strong class="thanks__heading"><a href="https://www.myrasecurity.com/ddos-protection/">Myra Security</a></strong> @@ -30,7 +30,7 @@ <li class="thanks"> <a href="https://sinnerg.nl" class="thanks__logo thanks__logo--white"> - <img src="images/sponsors/sinnerg.jpg" alt="SinnerG"> + <img src="assets/images/sponsors/sinnerg.jpg" alt="SinnerG"> </a> <section> <strong class="thanks__heading"><a href="https://sinnerg.nl">SinnerG</a></strong> @@ -42,7 +42,7 @@ <li class="thanks"> <a href="https://digitalocean.com" class="thanks__logo"> - <img src="images/sponsors/digitalocean.png" alt="DigitalOcean"> + <img src="assets/images/sponsors/digitalocean.png" alt="DigitalOcean"> </a> <section> <strong class="thanks__heading"><a href="https://digitalocean.com">DigitalOcean</a></strong> @@ -54,7 +54,7 @@ <li class="thanks"> <a href="https://eukhost.com/" class="thanks__logo"> - <img src="images/sponsors/eukhost.svg" alt="EUKhost"> + <img src="assets/images/sponsors/eukhost.svg" alt="EUKhost"> </a> <section> <strong class="thanks__heading"><a href="https://eukhost.com/">EUKhost</a></strong> diff --git a/var/.gitignore b/var/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/var/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore