Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

swinguinha

[Resolvido] Retirar espaços e acentos das urls amigaveis

Recommended Posts

Olá pessoal!!

 

Estou migrando meu site para que utilize urls amigaveis, so que estou com o seguinte problema:

 

não sei como retirar os espaços em branco e acentos das urls..

 

ex:

 

a url abaixo direciona para a pagina da cantora Ana Carolina..

 

http://127.0.0.1/cifras/artistas/Ana Carolina/

 

eu conseguir fazer q ela execute assim..

 

http://127.0.0.1/cifras/artistas/ana-Carolina.htm

 

mais isso digitando diretamente no navegador..

se q nos links dinamicos ela fica com o espaço

 

http://127.0.0.1/cifras/artistas/Ana Carolina.htm

ai que ta meu problema como alterar isso nos links dinamicos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae amigo,

 

Criei essa função aqui para diretorios. Ela remove espaços (troca por um _), acentos e qualquer caractere que não seja letra ou número:

function FiltroDiretorio($campo) {
			
	$campo = strtolower($campo); // Transforma tudo pra minúsculo

	$this->padraoreplace = "[^a-zA-Z0-9_]"; // Determina que apenas letras e números e underlines poderão existir

	$this->array_r = array("á" => "a", "à" => "a", "â" => "a", "ã" => "a", "ä" => "a", "é" => "e", "è" => "e", "ê" => "e", "ë" => "e", "í" => "i", "î" => "i", "ì" => "i", "ï" => "i", "ô" => "o", "õ" => "o", "ó" => "o", "ò" => "o", "ö" => "o", "ú" => "u", "ù" => "u", "û" => "u", "ü" => "u", "ñ" => "n", "ç" => "c", " " => "_"); // array de substituição
			
	$campo = strtr($campo, $this->array_r); // Substitui acentos e espaços
			
	$campo = ereg_replace($this->padraoreplace, "", $campo); // Substitui caracteres especiais por caractere vazio
			
	return $campo; // Retorna campo
}

Pra usar é só fazer:

 

FiltroDiretorio("oáéèâ Amo #$#@#");

Vai retornar:

 

oaeeaamo

Falo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não.

 

Funciona perfeitamente aqui. Se você tiver algum erro, por favor me comunique pra eu poder consertar.

 

Falo

Compartilhar este post


Link para o post
Compartilhar em outros sites

como imprimir na tela fora da função...

 

como eu chamo a função no meu codigo html..

eu teria q colocar o que para chamar a função de tem o nome de FiltroDiretorio...

 

FiltroDiretorio("oáéèâ Amo #$#@#");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou com problema nisso também. só com acentos eu uso UTF-8.

Já li tudo no fórum e não achei a solução para meu problema.

na palavra história ele fica hist?oria

Algum idéia de como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tive esse problema em todos os meu texto q tinha acentos ficavam assim..

tem que ver se paginas tb estão em sicronismo como o banco de dados..

se as paginas q você criou tb esta em UTF-8..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim está tudo certo..

descobri que eu estava fazendo dentro da classe errada.. ( era falta de atenção minha).

Eu uso outra função essa ai de cima dá pau...

comigo esta tudo certo .... caso não conseguiu posta ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui com outra função tb mais estou com duvida na formação do link.

 

<?php echo limparString ("ôêãõéèéí çoçandó ãì? Ana Carolina");?>

 

ele executa o texto normal.. mais como eu coloco um link aii...

 

<?php echo $row_artistasRS['artista']; ?> esse aqui chama os artistas cadastrado no banco de dados

 

quero fazer um link com esses dados dinamicos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.