_filename)) { $i = 0; $headers = array(); $filedata = file($this->_filename); for ($i = 0; $i < count($filedata); $i++) { // Première ligne, index 0 = headers if (!$i) { foreach (str_getcsv($filedata[$i], ';') as $headerdata) { $headers[] = trim($headerdata); } } else { $linedata = str_getcsv($filedata[$i], ';'); $nline = $i - 1; $this->_db[$nline] = array(); for ($j = 0; $j < count($linedata); $j++) { $this->_db[$nline][$headers[$j]] = trim($linedata[$j]); } } } if (empty($this->_db)) { throw new Exception('Aucun adhérent n’est présent', 200); } } else { throw new Exception('Le fichier d’entrée est introuvable', 404); } } /** * @return Csvdb * * Retourne l'instance du Singleton */ public static function getInstance() { if (is_null(self::$_instance)) { self::$_instance = new Csvdb(); } return self::$_instance; } /** * @param $id * @return array|null * * Retourne un adhérent en fonction de son identifiant */ public function get($id) { foreach ($this->_db as $item) { if ($item['identifiant'] == $id) { return $item; } } return null; } /** * @return array * * Retourne toute la base de données */ public function getAll() { return $this->_db; } }