[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / verifier / verifier / telephone.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 /**
7 * Vérifie un numéro de téléphone. Pour l'instant seulement avec le schéma français.
8 *
9 * @param string $valeur
10 * La valeur à vérifier.
11 * @param array $options
12 * [INUTILISE].
13 * @return string
14 * Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
15 */
16 function verifier_telephone_dist($valeur, $options=array()){
17 $erreur = _T('verifier:erreur_telephone');
18 if (!is_string($valeur))
19 return $erreur;
20 $ok = '';
21
22 // On accepte differentes notations, les points, les tirets, les espaces, les slashes
23 $tel = preg_replace("#\.|/|-| #i",'',$valeur);
24
25 if (preg_match("/^\+33/", $tel)) {
26 $options['pays'] = 'FR';
27 $tel = preg_replace('/^\+33/','0',$valeur);
28 }
29 if (preg_match("/^\+34/", $tel)) {
30 $options['pays'] = 'ES';
31 $tel = preg_replace('/^\+34/','',$valeur);
32 }
33 if (preg_match("/^\+41/", $tel)) {
34 $options['pays'] = 'CH';
35 $tel = preg_replace('/^\+41/','0',$valeur);
36 }
37
38 switch($options['pays']){
39 case 'CH':
40 if (!preg_match("/^0[1-9]{9}$/",$tel)) return $erreur;
41 break;
42 case 'ES':
43 if (!preg_match("/^[69][0-9]{8}$/",$tel)) return $erreur;
44 break;
45 case 'FR':
46 if (!preg_match("/^0[1-9][0-9]{8}$/",$tel)) return $erreur;
47 default:
48 // On interdit les 000 etc. mais je pense qu'on peut faire plus malin
49 // TODO finaliser les numéros à la con
50 if($tel == '0000000000') return $erreur;
51 break;
52 }
53
54 return $ok;
55 }