Jump to content


Photo

Eleminar Caracteres Especiais


  • Faça o login para participar
9 replies to this topic

#1 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 04/01/2005, 00:50

Como posso elminar os caracteres especiais como:

~ ` ! @ # $ % ^ & * ( ) _ - + = \ | { } [ ] " ' ; : < , . > / ? e espaço de uma frase?

Já tentei varias coisas, mas não busca tudo de uma vez ...

alguem pode me ajudar a fazer isso?


a frase tem q sair toda junta sem os caracteres que citei, se tiver qualquer um desses ai, ele mostra um msg de erro ...

#2 Thales Medeiros

Thales Medeiros

    24 Horas

  • Usuários
  • 426 posts
  • Sexo:Não informado
  • Localidade:Juiz de Fora/MG
  • Interesses:Programação em geral. Programo em PHP, ASP, PERL, VB, Delphi, C/C++, Java e com banco d dados&lt;br&gt;&lt;br&gt;Gosto tb d ajudar. Se precisar d mim, basta postar uma msg no Forum! Se eu souber, te responderei...

Posted 04/01/2005, 01:34

Ôpa.. Blz?

Se vc quiser eliminar caracteres especiais de uma string, vc pode usar a função preg_replace() (eu prefiro usar o regexp do Perl, que é um algoritmo otimizado, mas tb existe a função ereg_replace()). Quando a substituição dentro de uma string houver muitos caracteres a serem buscados, o melhor a ser feito é utilizar expressões regulares. Não vou ficar falando aqui sobre isto, pois você pode obter uma descrição completa no seguinte endereço:

http://www.php.net/m...R/ref.regex.php

Se desejar substituir caracteres que não sejam números e letras, pode-se usar a procura por caracteres non-word. Caracteres non-word são todos os caracteres que não estejam nestes intervalos [0-9A-Za-z] E o caractere de sublinhado (underline) _. Ou seja... Como você também quer removê-lo, precisamos substituir não só os caracteres NON-WORD, mas também os sublinhados. Caracteres WORD são \w. Caracteres NON-WORD são \W. Portanto, a busca é assim:

$novastring=preg_replace("/[_\W]/", "", $string);

Se você deseja gerar uma mensagem de erro caso algum caractere seja encontrado, pode fazer o seguinte:

if($novastring<>$string) die("mensagem de erro");

Ou, se você não deseja fazer a substituição, se desejar fazer somente a busca pelos caracteres citados, então pode usar a função preg_match().

Para referência das funções, consulte o manual:

http://www.php.net/m...reg-replace.php
http://www.php.net/m....preg-match.php

Espero ter ajudado!

Um abraço,
Thales Medeiros.
Sucesso é ganhar dinheiro fazendo o que você faria de graça.

#3 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 04/01/2005, 11:06

ajudou sim, valeu mesmo

#4 LucasMS

LucasMS

    Super Veterano

  • Usuários
  • 2076 posts
  • Sexo:Não informado

Posted 04/01/2005, 12:15

acho q nem precisa regex.

PHP
<?php



$chars
= array("~","!","\$","@"); // coloca todos aqui
$texto = "!@#$#@$39-2384-238~dkfçoasjfasd"; // seu texto
$texto2 = str_replace($chars,"",$texto);
echo
$texto2;



?>


#5 CWEBNET

CWEBNET

    Normal

  • Usuários
  • 107 posts
  • Sexo:Não informado

Posted 04/03/2008, 09:01

olá
não para resgatar automáticamente
ex.
"ção" e substituir por "cao"

sem ter que inserir manualmente este caracteres

se for "Ç" substitur por "c"
Disponíbilidade e Humildade faz o Profissional!

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 04/03/2008, 09:26

olá
não para resgatar automáticamente
ex.
"ção" e substituir por "cao"

sem ter que inserir manualmente este caracteres

se for "Ç" substitur por "c"

Não entendi o motivo de reviver um tópico de mais de 3 anos atrás. Pode explicar direito o seu post? (y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 CWEBNET

CWEBNET

    Normal

  • Usuários
  • 107 posts
  • Sexo:Não informado

Posted 04/03/2008, 09:49

--- o correcto ---

olá
não para resgatar automáticamente
ex.
"ção" e substituir por "cao"

sem ter que inserir manualmente este caracteres

se for "Ç" substitur por "c"


Não entendi o motivo de reviver um tópico de mais de 3 anos atrás. Pode explicar direito o seu post? (y)


Olá Paulo Obrigado pela rápida resposta,
1º não tinha reparado nas datas
2º Se está on-line posso reviver à vontade ou não? Correcto!!!!
3º a questão (o português tinha um erro) é o seguinte:

como resgatar todos os caracteres especial (ex. ç) e substitui por "c" mas automáticamente ou seja, em vez de colocar um $ex = str_replace('ç','c', $ex) ;

quem diz o ç diz todas as restantes ex. cães etc..
isto porquê: porque quero apanhar um titulo e passar para uma url tipo:

Campo Titulo: Orçamentos
na url fica: http://site.com/orcamentos

não queria substitui por espaços vazios nem _, entedes a questão?
se não ficaria
http://site.com/or_amentos e tem que ser todos os caracteres pois não sei o que vai ser inserido no campo titulo pelo user!!!

obrigado Paulo

Edição feita por: CWEBNET, 04/03/2008, 09:50.

Disponíbilidade e Humildade faz o Profissional!

#8 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 04/03/2008, 10:20

Já que reviveu :mellow:, Paulo, como faz esses codebox igual do LucasMS com o PHP grifado?
Obrigado!
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#9 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 04/03/2008, 10:32

como resgatar todos os caracteres especial (ex. ç) e substitui por "c" mas automáticamente ou seja, em vez de colocar um $ex = str_replace('ç','c', $ex) ;

quem diz o ç diz todas as restantes ex. cães etc..
isto porquê: porque quero apanhar um titulo e passar para uma url tipo:

Campo Titulo: Orçamentos
na url fica: http://site.com/orcamentos

não queria substitui por espaços vazios nem _, entedes a questão?
se não ficaria
http://site.com/or_amentos e tem que ser todos os caracteres pois não sei o que vai ser inserido no campo titulo pelo user!!!

obrigado Paulo


PR deu a solução aqui.


Já que reviveu :mellow:, Paulo, como faz esses codebox igual do LucasMS com o PHP grifado?
Obrigado!

Na atual versão do Invision aqui no fórum e com os plugins disponíveis, não tem como. (y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#10 CWEBNET

CWEBNET

    Normal

  • Usuários
  • 107 posts
  • Sexo:Não informado

Posted 04/03/2008, 10:41

PR deu a solução aqui.

vou dar uma vista de olhos, brigado, Paulo, sinceramente estava com saudades de postar num fórum com a língua Portuguesa



<UPDATE>

ESTÁ JÁ NA MINHA LIVRARIA
UM ABRAÇO

</UPDATE>

Edição feita por: CWEBNET, 04/03/2008, 10:44.

Disponíbilidade e Humildade faz o Profissional!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq