VersionPress\Utils\SystemInfo::getPhpInfo PHP Method

getPhpInfo() public static method

Returns phpinfo() as an array. Based on http://php.net/manual/en/function.phpinfo.php#87463.
public static getPhpInfo ( ) : array
return array
    public static function getPhpInfo()
    {
        ob_start();
        phpinfo(-1);
        $pi = preg_replace(['#^.*<body>(.*)</body>.*$#ms', '#<h2>PHP License</h2>.*$#ms', '#<h1>Configuration</h1>#', "#\r?\n#", "#</(h1|h2|h3|tr)>#", '# +<#', "#[ \t]+#", '#&nbsp;#', '#  +#', '# class=".*?"#', '%&#039;%', '#<tr>(?:.*?)" src="(?:.*?)=(.*?)" alt="PHP Logo" /></a>' . '<h1>PHP Version (.*?)</h1>(?:\\n+?)</td></tr>#', '#<h1><a href="(?:.*?)\\?=(.*?)">PHP Credits</a></h1>#', '#<tr>(?:.*?)" src="(?:.*?)=(.*?)"(?:.*?)Zend Engine (.*?),(?:.*?)</tr>#', "# +#", '#<tr>#', '#</tr>#'], ['$1', '', '', '', '</$1>' . "\n", '<', ' ', ' ', ' ', '', ' ', '<h2>PHP Configuration</h2>' . "\n" . '<tr><td>PHP Version</td><td>$2</td></tr>' . "\n" . '<tr><td>PHP Egg</td><td>$1</td></tr>', '<tr><td>PHP Credits Egg</td><td>$1</td></tr>', '<tr><td>Zend Engine</td><td>$2</td></tr>' . "\n" . '<tr><td>Zend Egg</td><td>$1</td></tr>', ' ', '%S%', '%E%'], ob_get_clean());
        $sections = explode('<h2>', strip_tags($pi, '<h2><th><td>'));
        unset($sections[0]);
        $pi = [];
        foreach ($sections as $section) {
            $n = substr($section, 0, strpos($section, '</h2>'));
            preg_match_all('#%S%(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?(?:<td>(.*?)</td>)?%E%#', $section, $askapache, PREG_SET_ORDER);
            foreach ($askapache as $m) {
                // The default implementation generates notice about index 2, sometimes, so shutup operator has been
                // added around the whole right side
                $pi[$n][$m[1]] = @(!isset($m[3]) || $m[2] == $m[3] ? $m[2] : array_slice($m, 2));
            }
        }
        $pi['Extensions'] = get_loaded_extensions();
        return $pi;
    }