post

Normalizar textos e formatar para URL com PHP

Publicado em: 30/12/2020 / Atualizado em: 17/03/2021

Categorias: BlogPHP

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('/[-!@#$%¨&*><:;.,°º\)\}\]]+/' , '' , 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

Publicações recomendadas:


Inscreva-se em Nossa News:

Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.

Bruno Devs News


Link Curto para 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 e sugira um publicação sobre um assunto que tenha dificuldades de resolver.

Clique aqui e entre em contato


Comentários