ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- var/softaculous/tcexam/check_utf8.php000064400000002107152343305300013716 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); return mysqli_get_server_info($con); } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); if(!empty($serverClaimsUtf8mb4Support)){ echo 'utf8mb4'; } ?>var/softaculous/moodle43/check_utf8.php000075500000015772152343432640014112 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/zen/check_utf8.php000075500000004562152345664040013256 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } case 'utf8mb4_520': return version_compare($db_version, '5.6', '>='); case 'general': return (hasUtf8mb4Support('utf8mb4') || hasUtf8mb4Support('utf8mb4_520')); } } return false; } function getVersion() { $software = getVersionComplete(); if ($software) { if (isMariaDB()) { preg_match("/\d+(\.\d+){2,}-MariaDB/", $software, $matches); if ($matches) { return str_replace('-MariaDB', '', $matches[0]); } return $software; // just in case… } else { return $software; } } return '0.0.0'; } function getVersionComplete() { global $connection; $connection = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); if ($connection) { $query = mysqli_fetch_array(mysqli_query($connection, "SELECT version()")); if ($query) { return $query['version()']; } } return null; } function isMariaDB() { $db_version = getVersionComplete(); if ($db_version && stristr($db_version, 'mariadb')) { // version includes note if mariadb return true; } return false; } $charset_value = getCollationSetClause(); if(!empty($charset_value)){ echo ''.$charset_value.''; } ?>var/softaculous/moodle51/check_utf8.php000064400000015772152351053330014100 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle50/check_utf8.php000064400000015772152351337750014112 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle29/check_utf8.php000075500000013603152360511670014105 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo 'utf8mb4'; echo '
'; echo ''.$row_format.''; } ?>var/softaculous/moodle41/check_utf8.php000064400000015772152360630230014077 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle39/check_utf8.php000075500000013603152361453620014107 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo 'utf8mb4'; echo '
'; echo ''.$row_format.''; } ?>var/softaculous/moodle28/check_utf8.php000075500000013603152363065420014104 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo 'utf8mb4'; echo '
'; echo ''.$row_format.''; } ?>var/softaculous/moodle42/check_utf8.php000075500000013603152363604450014102 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo 'utf8mb4'; echo '
'; echo ''.$row_format.''; } ?>var/softaculous/joomla310/check_utf8.php000075500000002107152365062720014157 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); return mysqli_get_server_info($con); } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); if(!empty($serverClaimsUtf8mb4Support)){ echo 'utf8mb4'; } ?>var/softaculous/moodle44/check_utf8.php000064400000015772152366303450014111 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle30/check_utf8.php000064400000015772152367602320014103 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle45/check_utf8.php000064400000015772152367710500014111 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle311/check_utf8.php000075500000015772152370736760014202 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function detect_collation(){ // Create connection $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); // We want only utf8 compatible collations. $collation = null; $query = "SHOW COLLATION WHERE Collation LIKE 'utf8mb4\_%' AND Charset = 'utf8mb4'"; $result = mysqli_query($con, $query); while ($row = mysqli_fetch_assoc($result)) { $collation = $row['Collation']; if (strtoupper($row['Default']) === 'YES') { $collation = $row['Collation']; break; } } if (!$collation) { $result = mysqli_fetch_array(mysqli_query($con, "SELECT @@collation_database;")); $value = $result['@@collation_database']; if (strpos($value, 'utf8_') === 0 || strpos($value, 'utf8mb4_') === 0) { $collation = $value; } } return $collation; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); $collation = detect_collation(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo $utf8 = 'utf8mb4'; echo '
'; echo ''.$row_format.''; } if(!empty($utf8) && $utf8 == 'utf8mb4'){ echo '
'; echo ''.$collation.''; } ?>var/softaculous/moodle38/check_utf8.php000075500000013603152372476720014116 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo 'utf8mb4'; echo '
'; echo ''.$row_format.''; } ?>var/softaculous/moodle27/check_utf8.php000075500000013603152375126320014103 0ustar00='); } else { return version_compare($client_version, '5.5.3', '>='); } } function get_dbtype() { $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $details = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $details)){ return 'mariadb'; } return 'mysqli'; } function get_engine_type(){ return 'innodb'; } /** * Get the version of the database connector. * * @return string The database connector version. * * @since 12.1 */ function getVersion(){ global $con; $con = mysqli_connect("[[softdbhost]]","[[softdbuser]]","[[softdbpass]]","[[softdb]]"); $ver = mysqli_get_server_info($con); if(preg_match('/mariadb/is', $ver)){ preg_match('/-(.*?)-mariadb/is', $ver, $matches); if(empty($matches[1])){ preg_match('/(.*?)-mariadb/is', $ver, $matches); } if(!empty($matches[1])){ $ver = $matches[1]; } } return $ver; } function get_row_format($table = null) { global $con; $rowformat = null; if (is_antelope_file_format_no_more_supported()) { $rowformat = 'Barracuda'; return $rowformat; } $sql = "SHOW VARIABLES LIKE 'innodb_file_format'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if (isset($table)) { $rowformat = $rec['row_format']; } else { $rowformat = $rec['value']; } } return $rowformat; } function is_antelope_file_format_no_more_supported() { // Breaking change: Antelope file format support has been removed from both MySQL and MariaDB. // The following InnoDB file format configuration parameters were deprecated and then removed: // - innodb_file_format // - innodb_file_format_check // - innodb_file_format_max // - innodb_large_prefix // 1. MySQL: deprecated in 5.7.7 and removed 8.0.0+. $ismysqlge8d0d0 = (get_dbtype() == 'mysqli') && version_compare(getVersion(), '8.0.0', '>='); // 2. MariaDB: deprecated in 10.2.0 and removed 10.3.1+. $ismariadbge10d3d1 = (get_dbtype() == 'mariadb') && version_compare(getVersion(), '10.3.1', '>='); return $ismysqlge8d0d0 || $ismariadbge10d3d1; } function is_compressed_row_format_supported($cached = true) { $engine = get_engine_type(); $info = getVersion(); if (version_compare($info, '5.5.0') < 0) { // MySQL 5.1 is not supported here because we cannot read the file format. $compressedrowformatsupported = false; } else if ($engine !== 'innodb' and $engine !== 'xtradb') { // Other engines are not supported, most probably not compatible. $compressedrowformatsupported = false; } else if (!is_file_per_table_enabled()) { $compressedrowformatsupported = false; } else if (get_row_format() !== 'Barracuda') { $compressedrowformatsupported = false; } else { // All the tests passed, we can safely use ROW_FORMAT=Compressed in sql statements. $compressedrowformatsupported = true; } return $compressedrowformatsupported; } function is_file_per_table_enabled() { global $con; $sql = "SHOW VARIABLES LIKE 'innodb_file_per_table'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } function get_row_format_sql($engine = null, $collation = null) { $rowformat = ''; $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $engine = get_engine_type(); if (($engine === 'innodb' || $engine === 'xtradb') && !empty($serverClaimsUtf8mb4Support)) { if (is_compressed_row_format_supported()) { $rowformat = "ROW_FORMAT=COMPRESSED"; } else { $rowformat = "ROW_FORMAT=DYNAMIC"; } } return $rowformat; } function is_large_prefix_enabled() { global $con; if (is_antelope_file_format_no_more_supported()) { // Breaking change: Antelope file format support has been removed, only Barracuda. return true; } $sql = "SHOW VARIABLES LIKE 'innodb_large_prefix'"; $result = mysqli_query($con, $sql); if ($rec = $result->fetch_assoc()) { // MySQL 8 BC: information_schema.* returns the fields in upper case. $rec = array_change_key_case($rec, CASE_LOWER); if ($rec['value'] == 'ON') { return true; } } return false; } $serverClaimsUtf8mb4Support = serverClaimsUtf8mb4Support(); $row_format = get_row_format_sql(); if(!empty($serverClaimsUtf8mb4Support) && !empty($row_format)){ echo 'utf8mb4'; echo '
'; echo ''.$row_format.''; } ?>