Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $prenom = "GÉRARD";
- analysePrenom($prenom);
- function analysePrenom($prenom)
- {
- if($prenom == null)
- {
- echo "out";
- return false;
- }
- $caracteres = "['a-z|A-Z|à|â|ä|é|è|ê|ë|î|ï|ô|ö|ù|û|ü|ÿ|ç|æ|œ|'|-|\040)]";
- $speciaux = "[(À|Â|Ä|É|È|Ê|Ë|Î|Ï|Ô|Ö|Ù|Û|Ü|Ÿ|Ç|Æ|Œ)]";
- $lig_maj = "[Æ|Œ]";
- echo mb_strlen($prenom, 'UTF-8');
- for ($i = 0 ; $i <= mb_strlen($prenom, 'UTF-8') ; $i++) // Remplacement des diacritiques et ligatures majuscules
- {
- //if (mb_ereg_match("#$speciaux#", $prenom[$i]))
- //{
- echo "spé";
- //$prenom[$i] = diacritiquesToLisibles($prenom[$i]);
- $prenom[$i] = convertirDiacritiquesToMajuscule($prenom[$i]);
- //}
- else if (mb_ereg_match("#$lig_maj#", $prenom[$i]))
- {
- $prenom[$i] = ligaturesToMinuscule($prenom[$i]);
- //echo "l30";
- }
- echo $prenom[$i];
- }
- if(mb_ereg_match("#($caracteres){1,}#", $prenom)) // Si le prénom ne contient que des caractères autorisés
- {
- echo $prenom . ' OK';
- // TODO : tester la règle des tirets et espaces
- // TODO : enlever les espaces de début et de fin
- }
- }
- function diacritiquesToLisibles($diacritique)
- {
- echo '+' . $diacritique . '+';
- switch($diacritique)
- {
- case 'À':
- return 'À';
- break;
- case 'Â':
- return 'Â';
- break;
- case 'Ä':
- return 'Ã';
- break;
- case 'à':
- return 'à';
- break;
- case 'â':
- return 'â';
- break;
- case 'ä':
- return 'ã';
- break;
- case 'É':
- return 'É';
- break;
- case 'È':
- return 'È';
- break;
- case 'Ê':
- return 'Ê';
- break;
- case 'Ë':
- return 'Ë';
- break;
- case 'é':
- return 'é';
- break;
- case 'è':
- return 'è';
- break;
- case 'ê':
- return 'ê';
- break;
- case 'ë':
- return 'ë';
- break;
- case 'Î':
- return 'Î';
- break;
- case 'Ï':
- return 'Ï';
- break;
- case 'î':
- return 'î';
- break;
- case 'ï':
- return 'ï';
- break;
- case 'Ô':
- return 'Ô';
- break;
- case 'Ö':
- return 'Ö';
- break;
- case 'ô':
- return 'ô';
- break;
- case 'ö':
- return 'ö';
- break;
- case 'Ù':
- return 'Ù';
- break;
- case 'Û':
- return 'Û';
- break;
- case 'Ü':
- return '&220';
- break;
- case 'ù':
- return 'ù';
- break;
- case 'û':
- return 'û';
- break;
- case 'ü':
- return 'ü';
- break;
- case 'Ÿ':
- return 'ÿ';
- break;
- case 'ÿ':
- return 'ÿ';
- break;
- case 'Ç':
- return 'Ç';
- break;
- case 'ç':
- return 'ç';
- break;
- case 'Æ':
- return 'Æ';
- break;
- case 'æ':
- return 'æ';
- break;
- case 'Œ':
- return 'Œ';
- break;
- case 'œ':
- return 'œ';
- break;
- default:
- return;
- break;
- }
- }
- function convertirDiacritiquesToMajuscule($diacritique) // convertit les diacritiques majuscules en leur équivalent minuscule non accentué
- {
- echo 'aaa ' . $diacritique . 'aaa';
- switch($diacritique)
- {
- case 'À':
- case 'Â':
- case 'Ä':
- case 'à':
- case 'â':
- case 'ä':
- return 'A';
- break;
- case 'É':
- case 'È':
- case 'Ê':
- case 'Ë':
- case 'é':
- case 'è':
- case 'ê':
- case 'ë':
- echo "zzzzzzzzzzzzzzzzzz";
- return 'E';
- break;
- case 'Î':
- case 'Ï':
- case 'î':
- case 'ï':
- return 'I';
- break;
- case 'Ô':
- case 'Ö':
- case 'ô':
- case 'ö':
- return 'O';
- break;
- case 'Ù':
- case 'Û':
- case 'Ü':
- case 'ù':
- case 'û':
- case 'ü':
- return 'U';
- break;
- case 'Ÿ':
- case 'ÿ':
- return 'Y';
- break;
- case 'Ç':
- case 'ç':
- return 'C';
- break;
- case 'Æ':
- return 'æ';
- break;
- case 'Œ':
- return 'œ';
- break;
- default:
- return;
- break;
- }
- }
- function ligaturesToMinuscule($ligature)
- {
- if ($ligature === 'Æ')
- {
- return 'æ';
- }
- else if ($ligature === 'Œ')
- {
- return 'œ';
- }
- }
- function ligaturesToMajuscule($ligature)
- {
- if ($ligature === 'æ')
- {
- return 'Æ';
- }
- else if ($ligature === 'œ')
- {
- return 'Œ';
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement