Função para URLs amigáveis Carlos Eduardo Ranzi
Como vocês podem ver, as URLs do PHP.com.br são baseadas nos títulos dos posts. Mas como fazemos isso ? Simples, por meio de uma função que transforma uma frase qualquer (com acentuação, caracteres malucos, hífens) em uma string que possa ser utilizada como base para uma URL.

Esta função chamada url_amigavel() segue a seguir. Basicamente ela trabalha com uma tabela de conversão de caracteres $table. A função strtr() é utilizada para traduzir os caracteres de uma string com base na tabela de conversão $table. Após realizar a tradução, convertemos para minísculo, removemos algumas coisas indesejáveis e por fim os espaços e sublinhados são convertidos em hívens. Veja a seguir o resultado.

  1. <?php
  2. function url_amigavel($string)
  3. {
  4.     $table = array(
  5.         'Š'=>'S''š'=>'s''Đ'=>'Dj''đ'=>'dj''Ž'=>'Z',
  6.         'ž'=>'z''Č'=>'C''č'=>'c''Ć'=>'C''ć'=>'c',
  7.         'À'=>'A''Á'=>'A''Â'=>'A''Ã'=>'A''Ä'=>'A',
  8.         'Å'=>'A''Æ'=>'A''Ç'=>'C''È'=>'E''É'=>'E',
  9.         'Ê'=>'E''Ë'=>'E''Ì'=>'I''Í'=>'I''Î'=>'I',
  10.         'Ï'=>'I''Ñ'=>'N''Ò'=>'O''Ó'=>'O''Ô'=>'O',
  11.         'Õ'=>'O''Ö'=>'O''Ø'=>'O''Ù'=>'U''Ú'=>'U',
  12.         'Û'=>'U''Ü'=>'U''Ý'=>'Y''Þ'=>'B''ß'=>'Ss',
  13.         'à'=>'a''á'=>'a''â'=>'a''ã'=>'a''ä'=>'a',
  14.         'å'=>'a''æ'=>'a''ç'=>'c''è'=>'e''é'=>'e',
  15.         'ê'=>'e''ë'=>'e''ì'=>'i''í'=>'i''î'=>'i',
  16.         'ï'=>'i''ð'=>'o''ñ'=>'n''ò'=>'o''ó'=>'o',
  17.         'ô'=>'o''õ'=>'o''ö'=>'o''ø'=>'o''ù'=>'u',
  18.         'ú'=>'u''û'=>'u''ý'=>'y''ý'=>'y''þ'=>'b',
  19.         'ÿ'=>'y''Ŕ'=>'R''ŕ'=>'r',
  20.     );
  21.     // Traduz os caracteres em $string, baseado no vetor $table
  22.     $string strtr($string$table);
  23.     // converte para minúsculo
  24.     $string strtolower($string);
  25.     // remove caracteres indesejáveis (que não estão no padrão)
  26.     $string preg_replace("/[^a-z0-9_\s-]/"""$string);
  27.     // Remove múltiplas ocorrências de hífens ou espaços
  28.     $string preg_replace("/[\s-]+/"" "$string);
  29.     // Transforma espaços e underscores em hífens
  30.     $string preg_replace("/[\s_]/""-"$string);
  31.     // retorna a string
  32.     return $string;
  33. }
  34. var_dump(url_amigavel('Isso é um teste de ação'));
  35. // string(23) "isso-e-um-teste-de-acao"
  36. ?>


Comentários

André Gomes: Cara muito util.. valeu
Jackson Meires: Obrigado Carlos, pela dica funcionou blz
 


Você precisa realizar login pelo Facebook para enviar posts, comentários, apagar posts ou baixar posts em PDF. Para isso, clique no botão "Login no facebook".



Receba os posts por email: (?)

Conheça o Adianti Framework para PHP:

  • Desenvolvimento com componentes;
  • Formulários e datagrids.
  • Versão Web e Desktop (Gtk);
  • Multiplataforma;
  • Desenhe as interfaces;
  • IDE própria (Adianti Studio).
Ver detalhes...

Tenha mais produtividade com:

Adianti Studio: IDE para PHP

  • Leve e rápido;
  • Syntax highlight;
  • Gerência de projetos;
  • Navegação em banco de dados;
  • Autocomplete e plugins.
Mais informações...