Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. <?php
  2.  
  3. $prenom = "GÉRARD";
  4.  
  5. analysePrenom($prenom);
  6.  
  7. function analysePrenom($prenom)
  8. {
  9.  
  10.  
  11. if($prenom == null)
  12. {
  13. echo "out";
  14. return false;
  15. }
  16.  
  17. $caracteres = "['a-z|A-Z|à|â|ä|é|è|ê|ë|î|ï|ô|ö|ù|û|ü|ÿ|ç|æ|œ|'|-|\040)]";
  18. $speciaux = "[(À|Â|Ä|É|È|Ê|Ë|Î|Ï|Ô|Ö|Ù|Û|Ü|Ÿ|Ç|Æ|Œ)]";
  19. $lig_maj = "[Æ|Œ]";
  20.  
  21. echo mb_strlen($prenom, 'UTF-8');
  22.  
  23. for ($i = 0 ; $i <= mb_strlen($prenom, 'UTF-8') ; $i++) // Remplacement des diacritiques et ligatures majuscules
  24. {
  25. //if (mb_ereg_match("#$speciaux#", $prenom[$i]))
  26. //{
  27. echo "spé";
  28.  
  29. //$prenom[$i] = diacritiquesToLisibles($prenom[$i]);
  30.  
  31. $prenom[$i] = convertirDiacritiquesToMajuscule($prenom[$i]);
  32. //}
  33.  
  34. else if (mb_ereg_match("#$lig_maj#", $prenom[$i]))
  35. {
  36. $prenom[$i] = ligaturesToMinuscule($prenom[$i]);
  37. //echo "l30";
  38. }
  39.  
  40. echo $prenom[$i];
  41. }
  42.  
  43. if(mb_ereg_match("#($caracteres){1,}#", $prenom)) // Si le prénom ne contient que des caractères autorisés
  44. {
  45. echo $prenom . ' OK';
  46. // TODO : tester la règle des tirets et espaces
  47. // TODO : enlever les espaces de début et de fin
  48. }
  49. }
  50.  
  51. function diacritiquesToLisibles($diacritique)
  52. {
  53. echo '+' . $diacritique . '+';
  54.  
  55. switch($diacritique)
  56. {
  57. case 'À':
  58. return '&#192';
  59. break;
  60.  
  61. case 'Â':
  62. return '&#194';
  63. break;
  64.  
  65. case 'Ä':
  66. return '&#195';
  67. break;
  68.  
  69. case 'à':
  70. return '&#224';
  71. break;
  72.  
  73. case 'â':
  74. return '&#226';
  75. break;
  76.  
  77. case 'ä':
  78. return '&#227';
  79. break;
  80.  
  81. case 'É':
  82. return '&#201';
  83. break;
  84.  
  85. case 'È':
  86. return '&#200';
  87. break;
  88.  
  89. case 'Ê':
  90. return '&#202';
  91. break;
  92.  
  93. case 'Ë':
  94. return '&#203';
  95. break;
  96.  
  97. case 'é':
  98. return '&#233';
  99. break;
  100.  
  101. case 'è':
  102. return '&#232';
  103. break;
  104.  
  105. case 'ê':
  106. return '&#234';
  107. break;
  108.  
  109. case 'ë':
  110. return '&#235';
  111. break;
  112.  
  113. case 'Î':
  114. return '&#206';
  115. break;
  116.  
  117. case 'Ï':
  118. return '&#207';
  119. break;
  120.  
  121. case 'î':
  122. return '&#238';
  123. break;
  124.  
  125. case 'ï':
  126. return '&#239';
  127. break;
  128.  
  129. case 'Ô':
  130. return '&#212';
  131. break;
  132.  
  133. case 'Ö':
  134. return '&#214';
  135. break;
  136.  
  137. case 'ô':
  138. return '&#244';
  139. break;
  140.  
  141. case 'ö':
  142. return '&#246';
  143. break;
  144.  
  145. case 'Ù':
  146. return '&#217';
  147. break;
  148.  
  149. case 'Û':
  150. return '&#219';
  151. break;
  152.  
  153. case 'Ü':
  154. return '&220';
  155. break;
  156.  
  157. case 'ù':
  158. return '&#249';
  159. break;
  160.  
  161. case 'û':
  162. return '&#251';
  163. break;
  164.  
  165. case 'ü':
  166. return '&#252';
  167. break;
  168.  
  169. case 'Ÿ':
  170. return '&#255';
  171. break;
  172.  
  173. case 'ÿ':
  174. return '&#255';
  175. break;
  176.  
  177. case 'Ç':
  178. return '&#199';
  179. break;
  180.  
  181. case 'ç':
  182. return '&#231';
  183. break;
  184.  
  185. case 'Æ':
  186. return '&#198';
  187. break;
  188.  
  189. case 'æ':
  190. return '&#230';
  191. break;
  192.  
  193. case 'Œ':
  194. return '&#140';
  195. break;
  196.  
  197. case 'œ':
  198. return '&#156';
  199. break;
  200.  
  201. default:
  202. return;
  203. break;
  204. }
  205. }
  206.  
  207. function convertirDiacritiquesToMajuscule($diacritique) // convertit les diacritiques majuscules en leur équivalent minuscule non accentué
  208. {
  209. echo 'aaa ' . $diacritique . 'aaa';
  210.  
  211. switch($diacritique)
  212. {
  213. case 'À':
  214. case 'Â':
  215. case 'Ä':
  216. case 'à':
  217. case 'â':
  218. case 'ä':
  219. return 'A';
  220. break;
  221.  
  222. case 'É':
  223. case 'È':
  224. case 'Ê':
  225. case 'Ë':
  226. case 'é':
  227. case 'è':
  228. case 'ê':
  229. case 'ë':
  230.  
  231. echo "zzzzzzzzzzzzzzzzzz";
  232. return 'E';
  233. break;
  234.  
  235. case 'Î':
  236. case 'Ï':
  237. case 'î':
  238. case 'ï':
  239. return 'I';
  240. break;
  241.  
  242. case 'Ô':
  243. case 'Ö':
  244. case 'ô':
  245. case 'ö':
  246. return 'O';
  247. break;
  248.  
  249. case 'Ù':
  250. case 'Û':
  251. case 'Ü':
  252. case 'ù':
  253. case 'û':
  254. case 'ü':
  255. return 'U';
  256. break;
  257.  
  258. case 'Ÿ':
  259. case 'ÿ':
  260. return 'Y';
  261. break;
  262.  
  263. case 'Ç':
  264. case 'ç':
  265. return 'C';
  266. break;
  267.  
  268. case 'Æ':
  269. return 'æ';
  270. break;
  271.  
  272. case 'Œ':
  273. return 'œ';
  274. break;
  275.  
  276. default:
  277. return;
  278. break;
  279. }
  280. }
  281.  
  282. function ligaturesToMinuscule($ligature)
  283. {
  284. if ($ligature === 'Æ')
  285. {
  286. return '&#230';
  287. }
  288.  
  289. else if ($ligature === 'Œ')
  290. {
  291. return '&#339';
  292. }
  293. }
  294.  
  295. function ligaturesToMajuscule($ligature)
  296. {
  297. if ($ligature === 'æ')
  298. {
  299. return '&#198';
  300. }
  301.  
  302. else if ($ligature === 'œ')
  303. {
  304. return '&#338';
  305. }
  306. }
  307. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement