Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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..
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
Cara não vou ter problema com encoding type nessa sua função?
Não.
Funciona perfeitamente aqui. Se você tiver algum erro, por favor me comunique pra eu poder consertar.
Falo
Então pelo menos aqui eu tive problema ...
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 #$#@#");
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?
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..
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
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..
<a href='<?php echo limparString ("ôêãõéèéí çoçandó ãì? Ana Carolina");?>'> Ana Carolina </a>Ok galera!!!
muito obrigado pelas dicas... conseguir resolver meu problema...
para retirar de texto
eu uso
header("Content-Type: text/html; charset=ISO-8859-1",true);
Para remover o espaço você pode usar o explode e depois o implode para colocar o -
Acentos
Tem vários lugares
http://www.google.com.br/search?client=fir...Pesquisa+Google
o ideal é você juntar tudo em uma única função.