Eleminar Caracteres Especiais
#1
Posted 04/01/2005, 00:50
~ ` ! @ # $ % ^ & * ( ) _ - + = \ | { } [ ] " ' ; : < , . > / ? 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 ...
Hospedagem de Sites // Revenda de Hospedagem // Streaming & Web Rádio // Domínios // Vps
Hospedagem Ilimitada -> R$ 15,00 ao Mês + 30 Dias Grátis
Outros Sites: Jogos Loucos em Flash | Divulgue seu site Gratis | Web Masters Dicas & Tutoriais
#2
Posted 04/01/2005, 01:34
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.
#3
Posted 04/01/2005, 11:06
Hospedagem de Sites // Revenda de Hospedagem // Streaming & Web Rádio // Domínios // Vps
Hospedagem Ilimitada -> R$ 15,00 ao Mês + 30 Dias Grátis
Outros Sites: Jogos Loucos em Flash | Divulgue seu site Gratis | Web Masters Dicas & Tutoriais
#4
Posted 04/01/2005, 12:15
PHP |
<?php $chars = array("~","!","\$","@"); // coloca todos aqui $texto = "!@#$#@$39-2384-238~dkfçoasjfasd"; // seu texto $texto2 = str_replace($chars,"",$texto); echo $texto2; ?> |
#5
Posted 04/03/2008, 09:01
não para resgatar automáticamente
ex.
"ção" e substituir por "cao"
sem ter que inserir manualmente este caracteres
se for "Ç" substitur por "c"
#6
Posted 04/03/2008, 09:26
Não entendi o motivo de reviver um tópico de mais de 3 anos atrás. Pode explicar direito o seu post? Até maisolá
não para resgatar automáticamente
ex.
"ção" e substituir por "cao"
sem ter que inserir manualmente este caracteres
se for "Ç" substitur por "c"
#7
Posted 04/03/2008, 09:49
olá
não dá 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?
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.
#9
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.
Na atual versão do Invision aqui no fórum e com os plugins disponíveis, não tem como. Até maisJá que reviveu , Paulo, como faz esses codebox igual do LucasMS com o PHP grifado?
Obrigado!
#10
Posted 04/03/2008, 10:41
vou dar uma vista de olhos, brigado, Paulo, sinceramente estava com saudades de postar num fórum com a língua PortuguesaPR deu a solução aqui.
<UPDATE>
ESTÁ JÁ NA MINHA LIVRARIA
UM ABRAÇO
</UPDATE>
Edição feita por: CWEBNET, 04/03/2008, 10:44.
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)