Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como faço pra censurar uma palavra exata?
Por exemplo: "PUTA" eu irei criar o preg_replace para substituir para "$@#%".
Mais o problema é isso:
comPUTAdor por exemplo tem "PUTA" no meio.
Ja tentei com str_repalce e preg_replace e sempre captura.
Como faço pra não capturar ?
#2 Bebeu???
#1
Use strpos para filtrar antes de substituir
<?php
$blocked_words="melancia,bosta";//list of offensive word
$review_from_user ="Este é um texto para testar o script PHP que bloqueia palavras num texto. Ele deve bloquear as palavras melancia e bosta."; //review from user
$blocked_words_expo = explode(",", $blocked_words);
foreach($blocked_words_expo as $rmv)
{
if(strpos($review_from_user,$rmv)==true)
{
$review_from_user = str_replace($rmv,'%$#%$*',$review_from_user);
}
}
echo $review_from_user;Williams Duarte vai toma no seu cú porra todo post que tento ajuda você vem enche o saco já falei com os moderadores e nada que se dane então niguem pediu sua opnião se lascar vai_|_
#3 Não baixe o nível.
Veja o que você postou, um código para sql injection, preste atenção na pergunta antes de postar qualquer código tosco no fórum, eu e outros membros estamos aqui ainda para ajudar também, muitos caras bons já abondaram o barco, e se outros geeks saírem o fórum volta a 10 anos atrás.
E os mais novos ficam a ver navios, ou melhor ficam a ver códigos de sql injection invés de um código que simplesmente faz a troca de uma string pela outra.
>
#2 Bebeu???
#1
Use strpos para filtrar antes de substituir
<?php
$blocked_words="melancia,bosta";//list of offensive word
$review_from_user ="Este é um texto para testar o script PHP que bloqueia palavras num texto. Ele deve bloquear as palavras melancia e bosta."; //review from user
$blocked_words_expo = explode(",", $blocked_words);
foreach($blocked_words_expo as $rmv)
{
if(strpos($review_from_user,$rmv)==true)
{
$review_from_user = str_replace($rmv,'%$#%$*',$review_from_user);
}
}
echo $review_from_user;
Não adiantou por exemplo a Palavra "ComPUTAdor" ficou "Com%$#%$dor" por conter palavra "P.U.T.A!" no meio, não consigo resolver.
Amigo o que deseja fazer e similar a uma lista de bloqueio como e utilizado em servidores para bloqueio de palavras chaves, então, será um serviço que quase impossível de moderar sempre acharão maneiras de modificar.
Recomendo que utilize um campo de ativo ou aceito onde você ler a noticias. modifica caso tenha sido ofensivo ou excluir.
Será um semelhante a um sistema de comentários.
Adicione espaços antes e depois na $rmv.
$rmv=' '.$rmv.' ';
if(strpos($review_from_user,$rmv)===true)
{
$review_from_user = str_replace("",'%$#%$*',$review_from_user);
}
Na conferência do strpos use 3 sinais de igual, se não, caso a palavra que você deseja retirar esteja no inicio da string, ela cai na posição '0' e na comparação passa a ser falsa, logo não é removida.