Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 48 → Rev 49

/trunk/scripts/bibliotheque/Outils.php
New file
0,0 → 1,68
<?php
class Outils {
public static function recupererTableauConfig($param) {
$tableau = array();
$tableauPartiel = explode(',', Config::get($param));
$tableauPartiel = array_map('trim', $tableauPartiel);
foreach ($tableauPartiel as $champ) {
if (strpos($champ, '=') === false) {
$tableau[] = $champ;
} else {
list($cle, $val) = explode('=', $champ);
$tableau[$cle] = $val;
}
}
return $tableau;
}
 
public static function extraireRequetes($cheminFichierSql) {
$contenu = file_get_contents($cheminFichierSql);
if ($contenu === false){
throw new Exception("Impossible d'ouvrir le fichier SQL : $cheminFichierSql");
}
 
$requetesExtraites = explode(";\n", $contenu);
if (count($requetesExtraites) == 0){
throw new Exception("Aucune requête n'a été trouvée dans le fichier SQL : $cheminFichierSql");
}
 
$requetes = array();
foreach ($requetesExtraites as $requete) {
if (trim($requete) != '') {
$requetes[] = $requete;
}
}
return $requetes;
}
 
/**
* Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
* Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
*
* @param string le message d'information.
* @param int le nombre de départ à afficher.
* @return void le message est affiché dans la console.
*/
public static function afficherAvancement($message, $depart = 0) {
static $avancement = array();
if (! array_key_exists($message, $avancement)) {
$avancement[$message] = $depart;
echo "$message : ";
 
$actuel =& $avancement[$message];
echo $actuel++;
} else {
$actuel =& $avancement[$message];
 
// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
$passage = 0;
if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
$passage = 1;
}
 
echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
echo $actuel++;
}
}
}
?>