2051e24f64a2873933b59755cc24fff6d7a2da51
4 if (!defined("_ECRIRE_INC_VERSION")) return;
7 * Vérifie un numéro de téléphone. Pour l'instant seulement avec le schéma français.
9 * @param string $valeur
10 * La valeur à vérifier.
11 * @param array $options
14 * Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
16 function verifier_telephone_dist($valeur, $options=array()){
17 $erreur = _T('verifier:erreur_telephone');
18 if (!is_string($valeur))
22 // On accepte differentes notations, les points, les tirets, les espaces, les slashes
23 $tel = preg_replace("#\.|/|-| #i",'',$valeur);
25 // Pour les prefixes, on accepte les notations +33 et 0033
26 $prefixe_FR = "/^(\+|00)33/";
27 $prefixe_ES = "/^(\+|00)34/";
28 $prefixe_CH = "/^(\+|00)41/";
29 if (preg_match($prefixe_FR, $tel)) {
30 $options['pays'] = 'FR';
31 $tel = preg_replace($prefixe_FR,'0',$tel);
33 if (preg_match($prefixe_ES, $tel)) {
34 $options['pays'] = 'ES';
35 $tel = preg_replace($prefixe_ES,'',$tel);
37 if (preg_match($prefixe_CH, $tel)) {
38 $options['pays'] = 'CH';
39 $tel = preg_replace($prefixe_CH,'0',$tel);
42 switch($options['pays']){
44 if (!preg_match("/^0[1-9]{9}$/",$tel)) return $erreur;
47 if (!preg_match("/^[69][0-9]{8}$/",$tel)) return $erreur;
50 if (!preg_match("/^0[1-9][0-9]{8}$/",$tel)) return $erreur;
52 // On interdit les 000 etc. mais je pense qu'on peut faire plus malin
53 // On interdit egalement les "numéros" tout en lettres
54 // TODO finaliser les numéros à la con
55 if(intval($tel) == 0) return $erreur;