Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2909 → Rev 2910

/branches/v2.25-scarificateur/scripts/bibliotheque/SqlUtil.php
New file
0,0 → 1,37
<?php
// declare(encoding='UTF-8');
/**
* Contient des méthodes utiles pour manipuler le SQL.
*
* @category CEL
* @package Scripts
* @subpackage Bibliotheque
* @author Mathias CHOUET <mathias@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
*/
class SqlUtil {
 
public static function extraireRequetes($contenuSql) {
$contenuSansCommentaire = self::supprimerCommentaires($contenuSql);
$requetesExtraites = preg_split("/;\e*\t*\r*\n/", $contenuSansCommentaire);
if (count($requetesExtraites) == 0){
throw new Exception("Aucune requête n'a été trouvée dans le contenu SQL.");
}
 
$requetes = array();
foreach ($requetesExtraites as $requete) {
if (trim($requete) != '') {
$requetes[] = rtrim(trim($requete), ';');
}
}
return $requetes;
}
 
private static function supprimerCommentaires($contenuSql) {
return preg_replace('/(## |--).*?\r*\n/', '', $contenuSql);
}
}