Ir para conteúdo

POWERED BY:

Arquivado

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

MuitoCurioso

[Resolvido] Como filtrar palavrões?

Recommended Posts

Olá, amigos:

 

Tenho essa dificuldades. Se puderem ajudar, agradeço.

 

Como fazer para filtrar a palavra LOUCO, no exemplo, em um título com várias palavras?

 

Só está funcionando, se o usuário publicar somente a palavra LOUCO. Se ele escrever, por exemplo, ELE É LOUCO, o filtro não pega nada.

Também gostaria de incluir várias palavras proibidas - e não somente uma.

 

 

<?php

if(isset($_POST['Enviar'])){

   $titulo = $_POST['titulo'];


   if($titulo == "louco"){ 

      echo "<script>alert('Não pode ter palavrões')</script>";
      echo "<script>history.go(-1);</script>";
      exit;
}

.
.
. //segue o código.

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia utilizar preg_match

 

<?php

$texto = 'Um texto muito LouCO para testar';

$palavras = array(
   'louco',
   'besta',
   'idiota'
);

if( preg_match( sprintf( '/%s/i', implode( '|', $palavras ) ), $texto ) )
{
  echo 'Titulo possui palavra(s) proibida(s)';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Eu tinha feito uma função destas há um tempo atrás. Se você quiser, está prontinha aí:

 

    /**
    * Verifica e retira palavrões de strings
    * e campos de texto
    * @return String
    */
   function verificaPalavroes($string){
       // Retira espaços, hífens e pontuações da String
       $arrayRemover = array( '.', '-', ' ' );
       $arrayNormal = array( "", "", "" );
       $normal = str_replace($arrayRemover, $arrayNormal, $string);

       // Remove os acentos da string
       $de = 'àáãâéêíóõôúüç';
       $para   = 'aaaaeeiooouuc';
       $string_final = strtr(strtolower($normal), $de, $para);

       // Array em Filtro de Palavrões
       $array = array('arrombado',
                      'arrombada',
                      'buceta',
                      'boceta',
                      'bocetao',
                      'bucetinha',
                      'bucetao',
                      'bucetaum',
                      'blowjob',
                      '#@?$%~',
                      'caralinho',
                      'caralhao',
                      'caralhaum',
                      'caralhex',
                      'c*',
                      'cacete',
                      'cacetinho',
                      'cacetao',
                      'cacetaum',
                      'epenis',
                      'foder',
                      'f****',
                      'fodase',
                      'fodasi',
                      'fodassi',
                      'fodassa',
                      'fodinha',
                      'fodao',
                      'fodaum',
                      'foda1',
                      'fodona',
                      'f***',
                      'fodeu',
                      'fodasse',
                      'fuckoff',
                      'fuckyou',
                      'fuck',
                      'filhodaputa',
                      'filhadaputa',
                      'gozo',
                      'gozar',
                      'gozada',
                      'gozadanacara',
                      'm*****',
                      'merdao',
                      'merdaum',
                      'merdinha',
                      'vadia',
                      'vasefoder',
                      'venhasefoder',
                      'voufoder',
                      'vasefuder',
                      'venhasefuder',
                      'voufuder',
                      'vaisefoder',
                      'vaisefuder',
                      'venhasefuder',
                      'vaisifude',
                      'v****',
                      'vaisifuder',
                      'vasifuder',
                      'vasefuder',
                      'vasefoder',
                      'pirigueti',
                      'piriguete',
                      'p****',
                      'porraloca',
                      'porraloka',
                      'porranacara',
                      '#@?$%~',
                      'putinha',
                      'putona',
                      'putassa',
                      'putao',
                      'punheta',
                      'putamerda',
                      'putaquepariu',
                      'putaquemepariu',
                      'putaquetepariu',
                      'putavadia',
                      'pqp',
                      'putaqpariu',
                      'putaqpario',
                      'putaqparil',
                      'peido',
                      'peidar',
                      'xoxota',
                      'xota',
                      'xoxotinha',
                      'xoxotona'
           );

       if(in_array($string_final, $array)){
           return true;
       } else {
           return false;
       }
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia utilizar preg_match

 

<?php

$texto = 'Um texto muito LouCO para testar';

$palavras = array(
   'louco',
   'besta',
   'idiota'
);

if( preg_match( sprintf( '/%s/i', implode( '|', $palavras ) ), $texto ) )
{
  echo 'Titulo possui palavra(s) proibida(s)';
}

 

 

Fiz, como abaixo, mas não filtrou...

					$titulo = $_POST['titulo']; 

				$palavras = array( 
					'louco', 
					'besta', 
					'idiota' 
				); 

				if( preg_match( sprintf( '/%s/i', implode( '|', $palavras ) ), $titulo ) ) 
				{ 
				   echo 'Titulo possui palavra(s) proibida(s)'; 
				}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o titulo que você testou?

Adicionou os outros palavrões proibidos no array?

Verificou se a variável $titulo recebeu o valor correto?

echo $titulo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o titulo que você testou?

Adicionou os outros palavrões proibidos no array?

Verificou se a variável $titulo recebeu o valor correto?

echo $titulo;

 

Publiquei: Um dia de louco

Gravou inteiro no banco de dados.

Onde errei?

 

 

Olá.

 

Eu tinha feito uma função destas há um tempo atrás. Se você quiser, está prontinha aí:

 

    /**
    * Verifica e retira palavrões de strings
    * e campos de texto
    * @return String
    */
   function verificaPalavroes($string){
       // Retira espaços, hífens e pontuações da String
       $arrayRemover = array( '.', '-', ' ' );
       $arrayNormal = array( "", "", "" );
       $normal = str_replace($arrayRemover, $arrayNormal, $string);

       // Remove os acentos da string
       $de = 'àáãâéêíóõôúüç';
       $para   = 'aaaaeeiooouuc';
       $string_final = strtr(strtolower($normal), $de, $para);

       // Array em Filtro de Palavrões
       $array = array('arrombado',
                      'arrombada',
                      'buceta',
                      'boceta',
                      'bocetao',
                      'bucetinha',
                      'bucetao',
                      'bucetaum',
                      'blowjob',
                      '#@?$%~',
                      'caralinho',
                      'caralhao',
                      'caralhaum',
                      'caralhex',
                      'c*',
                      'cacete',
                      'cacetinho',
                      'cacetao',
                      'cacetaum',
                      'epenis',
                      'foder',
                      'f****',
                      'fodase',
                      'fodasi',
                      'fodassi',
                      'fodassa',
                      'fodinha',
                      'fodao',
                      'fodaum',
                      'foda1',
                      'fodona',
                      'f***',
                      'fodeu',
                      'fodasse',
                      'fuckoff',
                      'fuckyou',
                      'fuck',
                      'filhodaputa',
                      'filhadaputa',
                      'gozo',
                      'gozar',
                      'gozada',
                      'gozadanacara',
                      'm*****',
                      'merdao',
                      'merdaum',
                      'merdinha',
                      'vadia',
                      'vasefoder',
                      'venhasefoder',
                      'voufoder',
                      'vasefuder',
                      'venhasefuder',
                      'voufuder',
                      'vaisefoder',
                      'vaisefuder',
                      'venhasefuder',
                      'vaisifude',
                      'v****',
                      'vaisifuder',
                      'vasifuder',
                      'vasefuder',
                      'vasefoder',
                      'pirigueti',
                      'piriguete',
                      'p****',
                      'porraloca',
                      'porraloka',
                      'porranacara',
                      '#@?$%~',
                      'putinha',
                      'putona',
                      'putassa',
                      'putao',
                      'punheta',
                      'putamerda',
                      'putaquepariu',
                      'putaquemepariu',
                      'putaquetepariu',
                      'putavadia',
                      'pqp',
                      'putaqpariu',
                      'putaqpario',
                      'putaqparil',
                      'peido',
                      'peidar',
                      'xoxota',
                      'xota',
                      'xoxotinha',
                      'xoxotona'
           );

       if(in_array($string_final, $array)){
           return true;
       } else {
           return false;
       }
   }

 

 

Como sou iniciante em PHP, não consegui entender onde especifico que o filtro deve ser aplicado ao título do texto publicado. Poderia me responder?

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando a lista de palavroes do Guilherme #3, pode fazer um replace para os palavroes algo assim

 


	$msg = "O google plus veio pra f**** com o facebook, mas o mark mandou para #@?$%~,...o google ficou puto da cara";

       $array = array('arrombado',
                      'arrombada',
                      'buceta',
                      'boceta',
                      'bocetao',
                      'bucetinha',
                      'bucetao',
                      'bucetaum',
                      'blowjob',
                      '#@?$%~',
                      'caralinho',
                      'caralhao',
                      'caralhaum',
                      'caralhex',
                      'c*',
                      'cacete',
                      'cacetinho',
                      'cacetao',
                      'cacetaum',
                      'epenis',
                      'foder',
                      'f****',
                      'fodase',
                      'fodasi',
                      'fodassi',
                      'fodassa',
                      'fodinha',
                      'fodao',
                      'fodaum',
                      'foda1',
                      'fodona',
                      'f***',
                      'fodeu',
                      'f****',
                      'fudeu',
                      'fodasse',
                      'fuckoff',
                      'fuckyou',
                      'fuck',
                      'filhodaputa',
                      'filhadaputa',
                      'gozo',
                      'gozar',
                      'gozada',
                      'gozadanacara',
                      'm*****',
                      'merdao',
                      'merdaum',
                      'merdinha',
                      'vadia',
                      'vasefoder',
                      'venhasefoder',
                      'voufoder',
                      'vasefuder',
                      'venhasefuder',
                      'voufuder',
                      'vaisefoder',
                      'vaisefuder',
                      'venhasefuder',
                      'vaisifude',
                      'v****',
                      'vaisifuder',
                      'vasifuder',
                      'vasefuder',
                      'vasefoder',
                      'pirigueti',
                      'piriguete',
                      'p****',
                      'porraloca',
                      'porraloka',
                      'porranacara',
                      '#@?$%~',
                      'putinha',
                      'putona',
                      'putassa',
                      'putao',
                      'punheta',
                      'putamerda',
                      'putaquepariu',
                      'putaquemepariu',
                      '#@?$%~',
                      'putavadia',
                      'puto',
                      'pqp',
                      'putaqpariu',
                      'putaqpario',
                      'putaqparil',
                      'peido',
                      'peidar',
                      'xoxota',
                      'xota',
                      'xoxotinha',
                      'xoxotona'
           );

  for($n=0;$n<count($array);$n++)
  {
		$msg=str_replace($array[$n], "[CENSURADO]", $msg);
  }

echo $msg;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem a função adicionada, certo?

 

Então você faz o seguinte na string que quer filtrar o palavrão:

if(verificaPalavroes($palavra) == true){
  // execute sua ação
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem a função adicionada, certo?

 

Então você faz o seguinte na string que quer filtrar o palavrão:

if(verificaPalavroes($palavra) == true){
  // execute sua ação
}

 

DEU CERTO, Guilherme!

Agradeço a você, ao Coelho e ao Loko!

 

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.