post
Normalizar textos e formatar para URL com PHP
Publicado em: 30/12/2020 / Atualizado em: 17/03/2021
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.
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.