post

Normalizar textos e formatar para URL com PHP

Publicado em: 30/12/2020

Categorias: #Devs e apps brcriativusBlogPHP

Caso precise formatar ou normalizar textos com acentuações para por exemplo gerar um slug ou url através de um titulo, essa função pode lhe ajudar.

Existe varias maneiras de serem feitos, vou mostrar uma delas abaixo junto com o exemplo abaixo:

Exemplo:
Titulo: Vivendo um dia de cão, e suas ações
Normalizado: Vivendo um dia de cao, e suas acoes
Formatado para url: vivendo-um-dia-de-cao-e-suas-acoes

Visualizar exemplo em produção: https://normalizar-textos-e-formatar-para-url-com-php.brunoalbim.repl.co/

Código para normalização das palavras:

function normalize($string) {
    $table = array(
        'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
        'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
        'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
        'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
        'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
        'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
        'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
        'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r',
    );
    return strtr($string, $table);
}

Código para formatar para url:

function formate_url($string) {
  $string = preg_replace('/[[email protected]#$%¨&*><:;.,°º\)\}\]]+/' , '' , trim($string));
  $string = preg_replace('/[ \/\(\{\[]+/' , '-' , trim($string));
  return strtolower(normalize($string));
}

Os scripts acima podem ser encontrados em execução em tempo real no link abaixo:

https://repl.it/@brunoalbim/Normalizar-textos-e-formatar-para-URL-com-PHP#index.php


Link de compartilhamento

Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.

bruno.art.br/pb/652

ID de Referência: 652

Sugira uma publicação

Envie uma mensagem para mim, e sugira alguma publicação de algum tema que tenha dificuldades de resolver.

Clique aqui e entre em contato


Comentários