[CSS] +fix page header and title color
[lhc/web/www.git] / www / plugins / verifier / verifier / code_postal.php
1 <?php
2
3 // Sécurité
4 if (!defined('_ECRIRE_INC_VERSION')) {
5 return;
6 }
7
8 /**
9 * Un code postal francais est compose de 5 chiffres
10 * http://fr.wikipedia.org/wiki/Code_postal_en_France
11 * a completer pour d'autre pays
12 *
13 * cf : http://fr.wikipedia.org/wiki/Codes_postaux
14 *
15 * La regexp par défaut doit valider toutes les possibilités
16 * -* combinaisons de chiffres et de lettres et aussi tiret
17 * -* notations internationales cf : http://en.wikipedia.org/wiki/List_of_postal_codes#On_the_use_of_country_codes
18 *
19 * @param string $valeur
20 * La valeur à vérifier.
21 * @param array $options
22 * pays => code pays
23 * @return string
24 * Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
25 */
26 function verifier_code_postal_dist($valeur, $options = array()) {
27 $erreur = _T('verifier:erreur_code_postal');
28 if (!is_string($valeur)) {
29 return $erreur;
30 }
31
32 $ok = '';
33
34 $pays = isset($options['pays']) ? $options['pays'] : '';
35 switch ($pays) {
36 case 'FR':
37 if (!preg_match(',^((0[1-9])|([1-8][0-9])|(9[0-8]))[0-9]{3}$,', $valeur)) {
38 return $erreur;
39 }
40 break;
41 case 'DZ':// Algérie
42 case 'DE':// Allemagne
43 case 'BY':// Bielorussie
44 case 'BA':// Bosnie Herzégovine
45 case 'HR':// Croatie
46 case 'ES':// Espagne
47 case 'FI':// Finlande
48 case 'GT':// Guatemala
49 case 'IT':// Italie
50 case 'LT':// Lituanie
51 case 'MY':// Malaisie
52 case 'MA':// Maroc
53 case 'MX':// Mexique
54 case 'ME':// Montenegro
55 case 'LK':// Sri lanka
56 case 'UA':// Ukraine
57 // 5 chiffres
58 if (!preg_match(',^[0-9]{5}$,', $valeur)) {
59 return $erreur;
60 }
61 break;
62 default:
63 if (!preg_match('/^[A-Z]{1,2}[-|\s][0-9]{3,6}$|^[0-9]{3,6}$|^[0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}$|^[A-Z]{1,2} [0-9|A-Z]{2,5}[-|\s][0-9|A-Z]{2,4}/i', $valeur)) {
64 return $erreur;
65 }
66 break;
67 }
68
69 return $ok;
70 }