4 if (!defined('_ECRIRE_INC_VERSION')) {
9 * Vérifie un numéro de téléphone. Pour l'instant seulement avec le schéma français.
11 * @param string $valeur
12 * La valeur à vérifier.
13 * @param array $options
16 * Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
18 function verifier_telephone_dist($valeur, $options = array()) {
19 $erreur = _T('verifier:erreur_telephone');
20 if (!is_string($valeur)) {
25 // On accepte differentes notations, les points, les tirets, les espaces, les slashes
26 $tel = preg_replace('#\.|/|-| #i', '', $valeur);
28 // Pour les prefixes, on accepte les notations +33 et 0033
29 $prefixe_FR = '/^(\+|00)33/';
30 $prefixe_ES = '/^(\+|00)34/';
31 $prefixe_CH = '/^(\+|00)41/';
32 if (preg_match($prefixe_FR, $tel)) {
33 $options['pays'] = 'FR';
34 $tel = preg_replace($prefixe_FR, '0', $tel);
36 if (preg_match($prefixe_ES, $tel)) {
37 $options['pays'] = 'ES';
38 $tel = preg_replace($prefixe_ES, '', $tel);
40 if (preg_match($prefixe_CH, $tel)) {
41 $options['pays'] = 'CH';
42 $tel = preg_replace($prefixe_CH, '0', $tel);
45 $pays = isset($options['pays']) ?
$options['pays'] : null;
48 if (!preg_match('/^0[1-9]{9}$/', $tel)) {
53 if (!preg_match('/^[69][0-9]{8}$/', $tel)) {
58 if (!preg_match('/^0[1-9][0-9]{8}$/', $tel)) {
63 // On interdit les 000 etc. mais je pense qu'on peut faire plus malin
64 // On interdit egalement les "numéros" tout en lettres
65 // TODO finaliser les numéros à la con
66 if (intval($tel) == 0) {