Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 880 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 880 Rev 890
1
<?php
1
<?php
2
class Outils {
2
class Outils {
3
 
3
 
4
	public static function recupererTableauConfig($parametres) {
4
	public static function recupererTableauConfig($parametres) {
5
		$tableau = array();
5
		$tableau = array();
6
		$tableauPartiel = explode(',', $parametres);
6
		$tableauPartiel = explode(',', $parametres);
7
		$tableauPartiel = array_map('trim', $tableauPartiel);
7
		$tableauPartiel = array_map('trim', $tableauPartiel);
8
		foreach ($tableauPartiel as $champ) {
8
		foreach ($tableauPartiel as $champ) {
9
			if (strpos($champ, '=') === false) {
9
			if (strpos($champ, '=') === false) {
10
				$tableau[] = $champ;
10
				$tableau[] = $champ;
11
			} else {
11
			} else {
12
				list($cle, $val) = explode('=', $champ);
12
				list($cle, $val) = explode('=', $champ);
13
				$clePropre = trim($cle);
13
				$clePropre = trim($cle);
14
				$valeurPropre = trim($val);
14
				$valeurPropre = trim($val);
15
				$tableau[$clePropre] = $valeurPropre;
15
				$tableau[$clePropre] = $valeurPropre;
16
			}
16
			}
17
		}
17
		}
18
		return $tableau;
18
		return $tableau;
19
	}
19
	}
20
 
20
 
21
	public static function extraireRequetes($contenuSql) {
21
	public static function extraireRequetes($contenuSql) {
22
		$requetesExtraites = explode(";\n", $contenuSql);
22
		$requetesExtraites = preg_split("/;\e*\t*\r*\n/", $contenuSql);
23
		if (count($requetesExtraites) == 0){
23
		if (count($requetesExtraites) == 0){
24
			throw new Exception("Aucune requête n'a été trouvée dans le fichier SQL : $cheminFichierSql");
24
			throw new Exception("Aucune requête n'a été trouvée dans le fichier SQL : $cheminFichierSql");
25
		}
25
		}
26
 
26
 
27
		$requetes = array();
27
		$requetes = array();
28
		foreach ($requetesExtraites as $requete) {
28
		foreach ($requetesExtraites as $requete) {
29
			if (trim($requete) != '') {
29
			if (trim($requete) != '') {
30
				$requetes[] = rtrim(trim($requete), ';');
30
				$requetes[] = rtrim(trim($requete), ';');
31
			}
31
			}
32
		}
32
		}
33
		return $requetes;
33
		return $requetes;
34
	}
34
	}
35
 
35
 
36
	/**
36
	/**
37
	* Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
37
	* Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
38
	* Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
38
	* Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
39
	*
39
	*
40
	* @param string le message d'information.
40
	* @param string le message d'information.
41
	* @param int le nombre de départ à afficher.
41
	* @param int le nombre de départ à afficher.
42
	* @return void le message est affiché dans la console.
42
	* @return void le message est affiché dans la console.
43
	*/
43
	*/
44
	public static function afficherAvancement($message, $depart = 0) {
44
	public static function afficherAvancement($message, $depart = 0) {
45
		static $avancement = array();
45
		static $avancement = array();
46
		if (! array_key_exists($message, $avancement)) {
46
		if (! array_key_exists($message, $avancement)) {
47
			$avancement[$message] = $depart;
47
			$avancement[$message] = $depart;
48
			echo "$message : ";
48
			echo "$message : ";
49
 
49
 
50
			$actuel =& $avancement[$message];
50
			$actuel =& $avancement[$message];
51
			echo $actuel++;
51
			echo $actuel++;
52
		} else {
52
		} else {
53
			$actuel =& $avancement[$message];
53
			$actuel =& $avancement[$message];
54
 
54
 
55
			// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
55
			// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
56
			$passage = 0;
56
			$passage = 0;
57
			if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
57
			if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
58
				$passage = 1;
58
				$passage = 1;
59
			}
59
			}
60
 
60
 
61
			echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
61
			echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
62
			echo $actuel++;
62
			echo $actuel++;
63
		}
63
		}
64
	}
64
	}
65
 
65
 
66
	/**
66
	/**
67
	 * @link http://gist.github.com/385876
67
	 * @link http://gist.github.com/385876
68
	 */
68
	 */
69
	public function transformerTxtTsvEnTableau($file = '', $delimiter = "\t") {
69
	public function transformerTxtTsvEnTableau($file = '', $delimiter = "\t") {
70
		$str = file_get_contents($file);
70
		$str = file_get_contents($file);
71
		$lines = explode("\n", $str);
71
		$lines = explode("\n", $str);
72
		$field_names = explode($delimiter, array_shift($lines));
72
		$field_names = explode($delimiter, array_shift($lines));
73
		foreach ($lines as $line) {
73
		foreach ($lines as $line) {
74
			// Skip the empty line
74
			// Skip the empty line
75
			if (empty($line)) continue;
75
			if (empty($line)) continue;
76
			$fields = explode($delimiter, $line);
76
			$fields = explode($delimiter, $line);
77
			$_res = array();
77
			$_res = array();
78
			foreach ($field_names as $key => $f) {
78
			foreach ($field_names as $key => $f) {
79
				$_res[$f] = isset($fields[$key]) ? $fields[$key] : '';
79
				$_res[$f] = isset($fields[$key]) ? $fields[$key] : '';
80
			}
80
			}
81
			$res[] = $_res;
81
			$res[] = $_res;
82
		}
82
		}
83
		return $res;
83
		return $res;
84
	}
84
	}
85
}
85
}
86
?>
86
?>