array(
'dom' => array('bitwise' => 1, 'title' => 'DOMElement'),
'soap' => array('bitwise' => 2, 'title' => 'SoapClient'),
'xmlwriter' => array('bitwise' => 4, 'title' => 'XMLWriter'),
'imagemagick' => array('bitwise' => 8, 'title' => 'Imagick'),
),
'extensions' => array(
'zendopt' => array('bitwise' => 1, 'title' => 'Zend Optimizer'),
'xcache' => array('bitwise' => 2, 'title' => 'XCache'),
'eaccelerator' => array('bitwise' => 4, 'title' => 'eAccelerator'),
'ioncube' => array('bitwise' => 8, 'title' => 'ionCube Loader'),
'PDO' => array('bitwise' => 16, 'title' => 'PDO'),
'pdo_mysql' => array('bitwise' => 32, 'title' => 'pdo_mysql'),
'pdo_pgsql' => array('bitwise' => 64, 'title' => 'pdo_pgsql'),
'pdo_sqlite' => array('bitwise' => 128, 'title' => 'pdo_sqlite'),
'pdo_oci' => array('bitwise' => 256, 'title' => 'pdo_oci'),
'pdo_odbc' => array('bitwise' => 512, 'title' => 'pdo_odbc'),
),
'phpinfo' => array(
'zlib' => array('bitwise' => 1, 'title' => 'zlib'),
'mbstring' => array('bitwise' => 2, 'title' => 'mbstring'),
'exif' => array('bitwise' => 4, 'title' => 'exif'),
'zlib' => array('bitwise' => 8, 'title' => 'zlib'),
),
'functions' => array(
'sockets' => array('bitwise' => 1, 'title' => 'fsockopen'),
'mcrypt' => array('bitwise' => 2, 'title' => 'mcrypt_encrypt'),
'simplexml' => array('bitwise' => 4, 'title' => 'simplexml_load_string'),
'ldap' => array('bitwise' => 8, 'title' => 'ldap_connect'),
'mysqli' => array('bitwise' => 16, 'title' => 'mysqli_connect'),
'imap' => array('bitwise' => 32, 'title' => 'imap_open'),
'ftp' => array('bitwise' => 64, 'title' => 'ftp_login'),
'pspell' => array('bitwise' => 128, 'title' => 'pspell_new'),
'apc' => array('bitwise' => 256, 'title' => 'apc_cache_info'),
'curl' => array('bitwise' => 512, 'title' => 'curl_init'),
'iconv' => array('bitwise' => 1024, 'title' => 'iconv'),
),
'php_ini' => array(
'post_max_size' => 'post_max_size',
'upload_max_filesize' => 'upload_max_filesize',
'safe_mode' => 'safe_mode',
),
);
foreach($check as $cat_name => $category)
{
foreach($category as $name => $what)
{
if(!isset($info[$cat_name]))
{
$info[$cat_name] = 0;
}
switch($cat_name)
{
case "classes":
if(class_exists($what['title']))
{
$info[$cat_name] |= $what['bitwise'];
}
break;
case "extensions":
if(extension_loaded($what['title']))
{
$info[$cat_name] |= $what['bitwise'];
}
break;
case "phpinfo":
if(array_key_exists($what['title'], $phpinfo))
{
$info[$cat_name] |= $what['bitwise'];
}
break;
case "functions":
if(function_exists($what['title']))
{
$info[$cat_name] |= $what['bitwise'];
}
break;
case "php_ini":
if(ini_get($what) != 0)
{
$info[$name] = ini_get($what);
}
else
{
$info[$name] = 0;
}
break;
}
}
}
// Host URL & hostname
// Dropped fetching host details since v.1.8.16 as http://www.whoishostingthis.com API seems to be down and this info is not required by MyBB.
$info['hosturl'] = $info['hostname'] = "unknown/local";
if($_SERVER['HTTP_HOST'] == 'localhost')
{
$info['hosturl'] = $info['hostname'] = "localhost";
}
if(isset($_SERVER['HTTP_USER_AGENT']))
{
$info['useragent'] = $_SERVER['HTTP_USER_AGENT'];
}
// We need a unique ID for the host so hash it to keep it private and send it over
$id = $_SERVER['HTTP_HOST'].time();
if(function_exists('sha1'))
{
$info['clientid'] = sha1($id);
}
else
{
$info['clientid'] = md5($id);
}
$string = "";
$amp = "";
foreach($info as $key => $value)
{
$string .= $amp.$key."=".urlencode($value);
$amp = "&";
}
$server_stats_url = 'https://community.mybb.com/server_stats.php?'.$string;
$return = array();
$return['info_sent_success'] = false;
if(fetch_remote_file($server_stats_url) !== false)
{
$return['info_sent_success'] = true;
}
$return['info_image'] = "";
$return['info_get_string'] = $string;
return $return;
}
/**
* parser_php_info
* Function to get and parse the list of PHP info into a usuable array
*
* @return Array An array of all the extensions installed in PHP
*/
function parse_php_info()
{
ob_start();
phpinfo(INFO_MODULES);
$phpinfo_html = ob_get_contents();
ob_end_clean();
$phpinfo_html = strip_tags($phpinfo_html, "