====== PUBLIMSI : lecture d'un fichier json ====== Certains utilisateurs ont changé de groupe pendant la période 2013-2018. Pour l'export des publications au format Bibtex dans le cadre de l'évaluation HCERES, ces changements ont été notés dans un fichier json. { "correctifs": [ { "login": "rick", "avant": 2017, "groupe": "ABC" }, { "login": "morty", "avant": 2018, "groupe": "DEF" } ] } On peut récupérer assez rapidement la liste des logins à modifier dans un tableau : $url = "correctif.json"; $json = file_get_contents($url); $parsed_json = json_decode($json); // On compte le nombre de logins à modifier $combien = count($parsed_json->{'correctifs'}); // Tableau des logins à modifier $a_modifier = array(); for ($i = 0; $i < $combien; $i++) { $a_modifier[$i] = $parsed_json->{'correctifs'}[$i]->{'login'}; } La fonction corrige_groupe est appelée avec une année (celle de la publication à exporter). Elle renvoie le bon groupe. class Personnels { public $login; public $nom_famille; public $prenom; public $mail; public $organisme; public $fonction; public $groupe; public $login_ccsd; public $IdHAL; function corrige_groupe($annee_publi,$parsed_json) { // Le fichier Json où tout est indiqué $combien = count($parsed_json->{'correctifs'}); // Tableau des logins à modifier for ($i=0;$i<$combien;$i++) { $qui=$parsed_json -> {'correctifs'}[$i]->{'login'}; $annee_max=$parsed_json -> {'correctifs'}[$i]->{'avant'}; if (($qui == $this->login) AND ($annee_publi<$annee_max)) { $this->groupe=$parsed_json -> {'correctifs'}[$i]->{'groupe'}; } } } }