Advertisement
RodrigoFP

Remover acentos em uma string para criar urls amigáveis

Apr 19th, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. Essa função literalmente e muito útil para quem quer fazer urls amigáveis sem muita dificuldade ela concerte o texto não só para o minusculo como também retira todo caractere invalido e acentuações perfeitamente sem margem de erro. Suas aplicações são infinitas você pode usar essa da forma que você desejar use a sua imaginação.
  2.  
  3. A Função
  4. ----------------------------------------------------------------------------------------------------------------------------------
  5. <?php
  6. function removeAcentos($string, $slug = false) {
  7. $string = strtolower($string);
  8.  
  9. // Código ASCII das vogais
  10. $ascii['a'] = range(224, 230);
  11. $ascii['e'] = range(232, 235);
  12. $ascii['i'] = range(236, 239);
  13. $ascii['o'] = array_merge(range(242, 246), array(240, 248));
  14. $ascii['u'] = range(249, 252);
  15.  
  16. // Código ASCII dos outros caracteres
  17. $ascii['b'] = array(223);
  18. $ascii['c'] = array(231);
  19. $ascii['d'] = array(208);
  20. $ascii['n'] = array(241);
  21. $ascii['y'] = array(253, 255);
  22.  
  23. foreach ($ascii as $key=>$item) {
  24. $acentos = '';
  25. foreach ($item AS $codigo) $acentos .= chr($codigo);
  26. $troca[$key] = '/['.$acentos.']/i';
  27. }
  28.  
  29. $string = preg_replace(array_values($troca), array_keys($troca), $string);
  30.  
  31. // Slug?
  32. if ($slug) {
  33. // Troca tudo que não for letra ou número por um caractere ($slug)
  34. $string = preg_replace('/[^a-z0-9]/i', $slug, $string);
  35. // Tira os caracteres ($slug) repetidos
  36. $string = preg_replace('/' . $slug . '{2,}/i', $slug, $string);
  37. $string = trim($string, $slug);
  38. }
  39.  
  40. return $string;
  41. }?>
  42.  
  43.  
  44. -----------------------------------------------------------------------------------------------------------------------------------
  45. Usando a função método 1
  46.  
  47. <?php
  48. // Apenas remove os acentos
  49. echo removeAcentos(' [Resolvido] » Problemas na conversão de página html');
  50. // [resolvido] » problemas na conversao de pagina html ?>
  51.  
  52. -----------------------------------------------------------------------------------------------------------------------------------
  53. Usando a função método 2
  54.  
  55. <?php
  56. // Cria um slug da string
  57. echo removeAcentos(' [Resolvido] » Problemas na conversão de página html', '-');
  58. // resolvido-problemas-na-conversao-de-pagina-html ?>
  59.  
  60. -----------------------------------------------------------------------------------------------------------------------------------
  61. Usando a função método 3
  62.  
  63. Você pode usar esta função em valores de variáveis em texto como por exemplo.
  64.  
  65. <?php $texto ='Não quero acentuação nesse texto';
  66. echo removeAcentos($texto, '-');
  67. // nao-quero-acentuacao-nesse-texto ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement