Como remover qualquer tipo de acentuação e retirada de caracteres especiais para urls amigáveis

<?php

// Função para remoção de qualquer tipo de acentuação e retirada de caracteres especiais para criação de urls amigaveis
// Autor Ryumaru

function removeAcentos($string, $slug = false) {

// Caracteres a serem mantidos so que decodificados
$table = array(
'Š'=>'S', 'š'=>'s', 'Đ'=>'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',
);

// Traduz os caracteres em $string, baseado no vetor $table
$string = strtr($string, $table);

// Converte para minúsculo
$string = strtolower($string);

// Remove caracteres indesejáveis (que não estão no padrão)
$string = preg_replace("/[^a-z0-9_\s-]/", "", $string);

// Remove múltiplas ocorrências de hífens ou espaços
$string = preg_replace("/[\s-]+/", " ", $string);

// Faz a retirada de espaços multiplos no texto para evitar que a url fique com mais de uma hifen entre os espaçamentos
$string = trim($string);

// Transforma espaços e underscores em $slug
$string = preg_replace("/[\s_]/", $slug, $string);

// retorna a string
return $string;
}

// Puxa a função para realizar seu funcionamento
echo 'http://m...content-available-to-author-only...e.com/'.removeAcentos('Testando com 18 espaçamentos ....... função de criação de URL amigaveis em PHP versão 2.0 atual com coreções de caracteres como estes que não vao aparecer no código no resultado = *~|•√π÷×§Δ£¢€¥^°±\©®™℅[]¡¿-+()<>=:!? @#$%¨&* em geral com a retirada total de todo ou qualquer caractere invalido existente nesta texto que ira virar URL de site vai la com espaço novamente com mais, com um espaço grande ao lado aqui agora ', '-');

?>

Link oficial: https://ideone.com/QUGuYW

  • 3 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Utilizando SMTP

O que é SMTP e por que usá-lo ?O SMTP (Simple Mail Transfer Protocol) é um protocolo que permite,...

Habilitado Serviço POP3 e SMTP no Gmail

Vídeo Explicativo: Para aqueles que não perceberam, o acesso POP3 do Gmail foi...

O que é e como funciona um Domínio Adicional?

OBS: Antes do tutorial vale lembrar que precisa adquirir um plano da Gubax que aceite domínios...

Trabalhando com htaccess

Deny/Allow1. Bloqueia - Libera2. Exemplos: Libera ou bloqueia acesso a uma determinada faixa de...

Redirecionamento

Redirecionamento com frames Quando você quiser fazer um redirecionamento mantendo o endereço do...