[PLUGINS] ~maj des plugins
[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 // 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);
32 }
33 if (preg_match($prefixe_ES, $tel)) {
34 $options['pays'] = 'ES';
35 $tel = preg_replace($prefixe_ES,'',$tel);
36 }
37 if (preg_match($prefixe_CH, $tel)) {
38 $options['pays'] = 'CH';
39 $tel = preg_replace($prefixe_CH,'0',$tel);
40 }
41
42 switch($options['pays']){
43 case 'CH':
44 if (!preg_match("/^0[1-9]{9}$/",$tel)) return $erreur;
45 break;
46 case 'ES':
47 if (!preg_match("/^[69][0-9]{8}$/",$tel)) return $erreur;
48 break;
49 case 'FR':
50 if (!preg_match("/^0[1-9][0-9]{8}$/",$tel)) return $erreur;
51 default:
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;
56 break;
57 }
58
59 return $ok;
60 }