Rev 599 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass BasevegVerif extends VerificateurDonnees {private $synonymes;private $niveaux;private $motifs;//obligatoirepublic function definirTraitementsColonnes() {$this->initialiserParametresVerif();if ($this->colonne_num == 1 ) {$this->verifierColonne();} elseif ($this->colonne_num == 2 ) {$this->verifierColonne();} elseif ($this->colonne_num == 4 ) {$this->verifierNiveaux();}}public function initialiserParametresVerif() {$this->niveaux = array('CLA','ALL','ORD','ASS','GRPT','SUBORD','SUBASS','BC','SUBCLA','DC','SUBALL');$this->synonymes = array('incl','=','?','illeg','pp','pmaxp','pminp','compl','ambig','non','inval','nn','ined');$this->motifs= $this->inverserTableau(array('/^[0-9]+$/' => 1,'/(?:[0-9]{2}\/$|[0-9]{2}\/[0-9]\.$|[0-9]{2}\/(?:[0-9]\.){1,5}[0-9]$|[0-9]{2}\/(?:[0-9]\.){4,5}[0-9]\/[0-9]+(?:bis|ter|quater){0,1}$)|incertae sedis/' => 2));//présence de '=' , '= ?' et ',' dans les valeurs des paramètres. ne pas utiliser getParametresTableau.}//++---------------------------------traitements des colonnes baseveg------------------------------------++/**** verifie le champ niveau*/public function verifierNiveaux(){if (preg_match("/^syn(.+)$/", $this->colonne_valeur, $retour) == 1) {$synonymes = explode(' ', trim($retour[1]));foreach($synonymes as $syn){if (!in_array($syn, $this->synonymes)) {$this->noterErreur();}}} elseif($this->colonne_valeur != '') {if (!in_array($this->colonne_valeur , $this->niveaux)) {$this->noterErreur();}}}/**** vérifie un motif sur la valeur entière d'une colonne par expression régulière**/public function verifierColonne(){$motif = $this->motifs[$this->colonne_num];if (preg_match($motif, $this->colonne_valeur) == 0 && $this->verifierSiVide() == false){$this->noterErreur();}}/**** vérifie si une colonne est vide ou non de valeurs**/public function verifierSiVide(){$vide = ($this->colonne_valeur == '') ? true : false;return $vide;}/*--------------------------------------------OUtils-------------------------------------------*///attention , dans les motifs !!private function inverserTableau($tableau) {$inverse = array();foreach ($tableau as $cle => $valeurs) {$valeurs = explode(';', $valeurs);foreach ($valeurs as $valeur) {$inverse[$valeur] = $cle;}}return $inverse;}}?>