Ir para conteúdo

POWERED BY:

Arquivado

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

Linkin

Filtro contra palavrões

Recommended Posts

Seguinte galéra to montando um filtro contra palavroes.....só que eu faço de um geito que o codigo ficaria enorme....Entao gostaria de saber um geito usando array saca ? ai eu colocava os palavroes na array ai se tivese algum palavrao que tivese na array que concidia no texto ele substituia por *** saca ? ..... ajudem ai pliz ! T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

sua dúvida está onde ? Criar um array ?!?

 

Aí vai, imagine que você quer criar um array de palavras então?

$palavra = array("futebol","mulher","música","internet");

Para percorrer este array você pode usar uma estrutura de repetirção for ou while:

 

for($i=0;$i<4;$i++){  echo $fruta[$i]."\n";}

Há uma matéria na coluna php sobre este assunto, acesse http://www.imasters.com.br/web/conteudo/co...p?codcoluna=295.

 

Veja mais detalhes em http://br.php.net/manual/pt_BR/ref.array.php.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Walace acho que voce nao me entendeu mt bem....é assim oia:Eu quero fazer um filtro contra palavroes ai vou armazenar os palavroes em uma array... ai eu vo pegar os posts vindos do mysql ai se tiver alguma palavra nesses posts que existem dentro do array ele vai substituir essa palavra pelos caracteres "****" endenteu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No primeiro codigo que te passei está a forma como você vai inserir suas palavras no array.

 

você pode usar

array_push($sua_array, "palavrão");
para colocar dados também.

 

No FOR que está no meu primeiro post está a forma na qual você poderá pesquisar seu array em busca de uma palavra.

 

Eu pelo menos entendi isso :unsure:

 

Se não for explica novamente que vamos tentar dar uma olhada :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo, nao estou entendeo muito sera que voce pode me dar um exemplo d de filtro?

 

 

tipo

 

 

um exemplo com uma item só no arraysó pra mim entender

 

 

tipo......

 

eu to tentando fazer aqui em casa mais nao ta dando certo oia:

 

<?$msg="Ai  seu cara de bunda voce fez coco e xixi na cama hahaha";$palavra= array("bunda","coco","xixi","huhu");for($n=0;$n>=3;$n++){$palavra[$n];if(strstr($msg)==$palavra[$n]){$msg=str_replace("$palavra[$n]", "******", $msg);}}echo $msg;?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... com base em seu codigo alterei algumas coisinhas:

 

-na linha do for você estava fazendo o teste incorreto, compare.

-logo após o for você colocou $palavra[$n], porque ? Não precisa.

 

O if(strstr) também não é necessário já que você quer trocar quando encontrar certo, o próprio str_replace se encarrega disso, se não existir a ocorrência ele não tem como trocar.

 

Testa lá, agora acho que funcionou, qualquer coisa manda aí:

<?  $msg="Ai  seu cara de bunda voce fez coco e xixi na cama hahaha";  $palavra= array("bunda","coco","xixi","huhu");  for($n=0;$n<3;$n++)  {        $msg=str_replace($palavra[$n], "******", $msg);  }  echo $msg;?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como fazer um for dentro de um while ? Porque ?

 

Claro que tem cara... olha, teu for está funcionando, o que você tem a fazer é o seguinte:

 

-faz um while, for ou sei lá o que para ler teu banco de dados;

-dentro deste while coloca este for que você tem aí, mas antes seta a variável $msg, mais ou menos assim:

 

//aqui você coloca sua linha while que lê o bdwhile(xxxxxxxxxxxxxxxxx){  $msg="Ai  seu cara de bunda voce fez coco e xixi na cama hahaha";   $palavra= array("bunda","coco","xixi","huhu");   for($n=0;$n<3;$n++)   {       $msg=str_replace($palavra[$n], "******", $msg);   } //fim do for echo $msg;} //fim do while

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.