Jump to content


Photo

Proibir Palavrões


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

#1 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 08/10/2009, 17:07

Olha eu dei uma olhadinha no forum mais não encontrei do jeito que eu quero!!!

eu tenho uma estrutura if e else e se tiver palavrões aparece uma mensagem e se não tiver execulta minha linha de código eu coloquei os palavrões em um array mais não sei que função usar para bloquear o texto.

nota eu não quero da replace e sim bloquear o texto

$palavrao = array('palavrão1' , 'palavrão2' , 'palavrão3')


#2 Sharths

Sharths

    Novato no fórum

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

Posted 08/10/2009, 17:14

não conheço o codigo em php mas em asp é possivel alterar determinada escrita... exemplo:

<% replace(texto, chr(13), "<br>" %>


explicação do codigo:

texto = seria a variavel que chama o texto... ou o texto em si.
chr(13) = texto a ser alterado, no caso eh um caracter em ansii que determina a quebra de linha...
<br> = palavra/comando que ele poe no lugar da palavra retirada



não sei se isso ajuda, mas tentei...

Edição feita por: Sharths, 08/10/2009, 17:14.


#3 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 08/10/2009, 17:29

Sharths obrigado por ter tentado mais o que eu quero é bloquear e não dar replace e eu só trabalho com PHP!!!

Vlw

#4 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 09/10/2009, 09:30

o replace não serve?

na verdade, se tiver algum palavrão, o que você quer fazer? travar o script?

aí primeiro de tudo: criar um array, como você fez, com os palavrões
segundo: localizar estes palavroes em uma string
terceiro: criar condições... se tiver palavrões, dar um stop, jogar um alert, travar o script... se não tiver, passar e inserir, ou qualquer coisa que você queira!

// Edit:

Tente essa função para localizar algo em uma string

você pode fazer...

$buscaPalavrao = strpos($texto,$palavrao);if($buscaPalavrao == true){die();}

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#5 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 09/10/2009, 10:24

O problema é: você não vai conseguir bloquear os palavrões. Peguemos shit como exemplo. Veja como é fácil driblar: s-h-i-t, s.h.i.t, s h i t, shiit, sshhiitt, entre outras infinitas variantes. Replace simples não adianta porque pode trocar qualquer palavra que contenha um "palavrão" no meio, exempli gratia: cúmulo. Teria que ser uma expressão regular com bordas:

<?php

$message = 'you a fuckin lame boy u dont know what ta fuck u talkin bout';
$badwords = array('fuckin', 'lame', 'fuck');

print preg_replace(
	array_map(create_function('$w', 'return "{\\b$w\\b}i";'), $badwords),
	array_map(create_function('$w', 'return str_repeat("*", strlen($w));'), $badwords),
	$message
);

?>
Mas mesmo assim é aquilo que eu disse: não adianta muita coisa.

Ok, um exemplo para bloqueio, eu esqueci:

<?php

if (preg_match(sprintf('{\b(%s)\b}i', implode('|', $badwords)), $message)) {
	// mensagem de erro
}

?>
[]’sAté mais

#6 Carlos Maniero

Carlos Maniero

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino

Posted 13/10/2009, 12:20

Paulo Ricardo era isso mesmo que eu queria e em relação ao xxxxxxmulo na hora de cria o array eu coloquei um espaço no começo e no fim!!!




1 user(s) are reading this topic

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

IPB Skin By Virteq