Update config.php

Preliminary code to check for DB version
This commit is contained in:
Brian Huisman 2023-05-05 12:58:28 -04:00
parent 803155547d
commit 8a8623b440
2 changed files with 49 additions and 29 deletions

View file

@ -6,7 +6,7 @@ $_RDATA = array();
require __DIR__.'/config.ini.php';
// Check version compatibility
// Check PHP version compatibility
if (PHP_VERSION_ID < 70200)
throw new Exception('Orcinus Site Search requires a PHP version ">= 7.2.0". You are running '.PHP_VERSION.'.');
@ -24,6 +24,26 @@ if ($err[0])
$_DDATA['pdo']->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$_DDATA['pdo']->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$version = $_DDATA['pdo']->query('SELECT VERSION() AS `sql_version`;');
$err = $version->errorInfo();
if ($err[0] != '00000')
throw new Exception('Could not read database version: '.$err[2]);
$version = $version->fetchAll();
$_DDATA['version'] = $version[0]['sql_version'];
// Check Database version compatibility
if (preg_match('/^(\d+)\.(\d+)\.(\d+)-?(.*)$/', $_DDATA['version'], $ver)) {
// if (strpos($ver[4], 'MariaDB') === 0) {
// if ((int)$ver[1] < 10 || (int)$ver[3] < 5)
// throw new Exception('Orcinus Site Search requires a MariaDB version ">= 10.0.5". You are running '.$_DDATA['version'].'.');
// } else {
// if ((int)$ver[1] < 8 || (int)$ver[3] < 17)
// throw new Exception('Orcinus Site Search requires a MySQL version ">= 8.0.17". You are running '.$_DDATA['version'].'.');
// }
}
$_DDATA['tables'] = $_DDATA['pdo']->query(
'SHOW TABLES FROM `'.$_DDATA['database'].'` LIKE \''.$_DDATA['tbprefix'].'%\';'
);
@ -720,33 +740,33 @@ $_RDATA['s_weights'] = array(
);
$_RDATA['sp_punct'] = array(
"\u{00AB}" => '"', "\u{00AD}" => '-', "\u{00B4}" => '\'', "\u{00B7}" => '•',
"\u{00BB}" => '"', "\u{00F7}" => '/', "\u{01C0}" => '|', "\u{01C3}" => '!',
"\u{02B9}" => '\'', "\u{02BA}" => '"', "\u{02BC}" => '\'', "\u{02C4}" => '^',
"\u{02C6}" => '^', "\u{02C8}" => '\'', "\u{02CB}" => '`', "\u{02CD}" => '_',
"\u{02DC}" => '~', "\u{0300}" => '`', "\u{0301}" => '\'', "\u{0302}" => '^',
"\u{0303}" => '~', "\u{030B}" => '"', "\u{030E}" => '"', "\u{0331}" => '_',
"\u{0332}" => '_', "\u{0338}" => '/', "\u{0589}" => ':', "\u{05C0}" => '|',
"\u{05C3}" => ':', "\u{066A}" => '%', "\u{066D}" => '*', "\u{200B}" => ' ',
"\u{2010}" => '-', "\u{2011}" => '-', "\u{2012}" => '-', "\u{2013}" => '-',
"\u{2014}" => '-', "\u{2015}" => '-', "\u{2016}" => '|', "\u{2017}" => '_',
"\u{2018}" => '\'', "\u{2019}" => '\'', "\u{201A}" => ',', "\u{201B}" => '\'',
"\u{201C}" => '"', "\u{201D}" => '"', "\u{201E}" => '"', "\u{201F}" => '"',
"\u{2024}" => '•', "\u{2025}" => '••', "\u{2026}" => '...', "\u{2027}" => '•',
"\u{2032}" => '\'', "\u{2033}" => '"', "\u{2034}" => '\'', "\u{2035}" => '`',
"\u{2036}" => '"', "\u{2037}" => '\'', "\u{2038}" => '^', "\u{2039}" => '<',
"\u{203A}" => '>', "\u{203D}" => '?', "\u{2042}" => '*', "\u{2043}" => '•',
"\u{2044}" => '/', "\u{2045}" => '[', "\u{2046}" => ']', "\u{2047}" => '??',
"\u{2048}" => '?!', "\u{2049}" => '!?', "\u{204E}" => '*', "\u{204F}" => ';',
"\u{2051}" => '**', "\u{2052}" => '%', "\u{2053}" => '~', "\u{2055}" => '*',
"\u{2060}" => ' ', "\u{20E5}" => '\\', "\u{2212}" => '-', "\u{2215}" => '/',
"\u{2216}" => '\\', "\u{2217}" => '*', "\u{2223}" => '|', "\u{2236}" => ':',
"\u{223C}" => '~', "\u{2264}" => '<', "\u{2265}" => '>', "\u{2266}" => '<',
"\u{2267}" => '>', "\u{2303}" => '^', "\u{2329}" => '<', "\u{232A}" => '>',
"\u{266F}" => '#', "\u{2731}" => '*', "\u{2758}" => '|', "\u{2762}" => '!',
"\u{27E6}" => '[', "\u{27E8}" => '<', "\u{27E9}" => '>', "\u{2983}" => '{',
"\u{2984}" => '}', "\u{3003}" => '"', "\u{3008}" => '<', "\u{3009}" => '>',
"\u{301B}" => ']', "\u{301C}" => '~', "\u{301D}" => '"', "\u{301E}" => '"',
"\u{00AB}" => '"', "\u{00AD}" => '-', "\u{00B4}" => '\'', "\u{00B7}" => '•',
"\u{00BB}" => '"', "\u{00F7}" => '/', "\u{01C0}" => '|', "\u{01C3}" => '!',
"\u{02B9}" => '\'', "\u{02BA}" => '"', "\u{02BC}" => '\'', "\u{02C4}" => '^',
"\u{02C6}" => '^', "\u{02C8}" => '\'', "\u{02CB}" => '`', "\u{02CD}" => '_',
"\u{02DC}" => '~', "\u{0300}" => '`', "\u{0301}" => '\'', "\u{0302}" => '^',
"\u{0303}" => '~', "\u{030B}" => '"', "\u{030E}" => '"', "\u{0331}" => '_',
"\u{0332}" => '_', "\u{0338}" => '/', "\u{0589}" => ':', "\u{05C0}" => '|',
"\u{05C3}" => ':', "\u{066A}" => '%', "\u{066D}" => '*', "\u{200B}" => ' ',
"\u{2010}" => '-', "\u{2011}" => '-', "\u{2012}" => '-', "\u{2013}" => '-',
"\u{2014}" => '-', "\u{2015}" => '-', "\u{2016}" => '|', "\u{2017}" => '_',
"\u{2018}" => '\'', "\u{2019}" => '\'', "\u{201A}" => ',', "\u{201B}" => '\'',
"\u{201C}" => '"', "\u{201D}" => '"', "\u{201E}" => '"', "\u{201F}" => '"',
"\u{2024}" => '•', "\u{2025}" => '••', "\u{2026}" => '...', "\u{2027}" => '•',
"\u{2032}" => '\'', "\u{2033}" => '"', "\u{2034}" => '\'', "\u{2035}" => '`',
"\u{2036}" => '"', "\u{2037}" => '\'', "\u{2038}" => '^', "\u{2039}" => '<',
"\u{203A}" => '>', "\u{203D}" => '?', "\u{2042}" => '*', "\u{2043}" => '•',
"\u{2044}" => '/', "\u{2045}" => '[', "\u{2046}" => ']', "\u{2047}" => '??',
"\u{2048}" => '?!', "\u{2049}" => '!?', "\u{204E}" => '*', "\u{204F}" => ';',
"\u{2051}" => '**', "\u{2052}" => '%', "\u{2053}" => '~', "\u{2055}" => '*',
"\u{2060}" => ' ', "\u{20E5}" => '\\', "\u{2212}" => '-', "\u{2215}" => '/',
"\u{2216}" => '\\', "\u{2217}" => '*', "\u{2223}" => '|', "\u{2236}" => ':',
"\u{223C}" => '~', "\u{2264}" => '<', "\u{2265}" => '>', "\u{2266}" => '<',
"\u{2267}" => '>', "\u{2303}" => '^', "\u{2329}" => '<', "\u{232A}" => '>',
"\u{266F}" => '#', "\u{2731}" => '*', "\u{2758}" => '|', "\u{2762}" => '!',
"\u{27E6}" => '[', "\u{27E8}" => '<', "\u{27E9}" => '>', "\u{2983}" => '{',
"\u{2984}" => '}', "\u{3003}" => '"', "\u{3008}" => '<', "\u{3009}" => '>',
"\u{301B}" => ']', "\u{301C}" => '~', "\u{301D}" => '"', "\u{301E}" => '"',
"\u{FEFF}" => ' '
);

View file

@ -187,7 +187,7 @@ if ($_RDATA['s_searchable_pages']) {
$_SDATA['formatted'][] = $term;
// Regexp for later use pattern matching results
$_SDATA['terms'][$key][2] = preg_quote(strtolower($_SDATA['terms'][$key][1]), '/');
$_SDATA['terms'][$key][2] = preg_quote(strtolower($term), '/');
$_SDATA['terms'][$key][2] = strtr($_SDATA['terms'][$key][2], $_RDATA['s_latin_pcre']);
$_SDATA['terms'][$key][2] = '/('.$_SDATA['terms'][$key][2].')/iu';