Chargement dynamique de l'extension

Imprimer
Voici une fonction, utilisé dans SQLiteManager, permettant de verifier la presence de l'extension SQLite et le cas echeant, tente de la charger dynamiquement :
function SQLiteLoaded() {
$SQL_SERVER_OS = strtoupper(substr(PHP_OS, 0, 3));
if($SQL_SERVER_OS == 'WIN') {
$preffix= 'php_'; $extName = 'sqlite'; $suffix = '.dll';
} elseif($SQL_SERVER_OS == 'NET') {
$preffix= 'php_'; $extName = 'sqlite'; $suffix = '.nlm';
} elseif(($SQL_SERVER_OS == 'LIN') || ($SQL_SERVER_OS == 'DAR')) {
$preffix= ''; $extName = 'sqlite'; $suffix = '.so';
}
if(substr(phpversion(), 0, 1) == '5') return true;
$extensions = get_loaded_extensions();
foreach ($extensions as $key=>$ext) $extensions[$key] = strtolower($ext);
if (!extension_loaded($extName) && !in_array('sqlite', get_loaded_extensions())) {
if (@dl($preffix.$extName.$suffix)) {
return true;
} else {
return false;
}
} else return true;
}

Cette fonction fonctionne pour les plateformes Windows, Linux, Mac et Netware. Si vous utilisez d'autre plateformes, ajouter ses specificité en commentaires.