Boas!
A princípio criei este pequeno código essencialmente para impedir certos utilizadores de registarem nicks menos próprios, mas rápidamente o adaptei tambem para filtrar certas palavras em posts.
Devo tambem referir que já tinha experimentado outros códigos que existem por aí e que supostamente teriam o mesmo efeito, mas a verdade é que nenhum funcionou da maneira que pretendia, já para não falar dos que nem sequer funcionavam. LoL
Mas vamos ao que importa.
Portanto vamos precisar de 2 ficheiros, um de texto a que podemos nomear de
lista.txt e o do código propriamente dito, por exemplo
teste.phpAtenção que neste caso ambos os ficheiros tem de estar no mesmo directório!
No nosso ficheiro lista.txt vamos escrever o seguinte e exactamente como aqui está:
teste|
palavrão|
www|
lista|[/list]
Esta será portanto a lista de palavras que queremos remover.
Vamos então ao código:
<?php
$frase = "Aqui está um palavrão que queremos remover e vamos tambem retirar as iniciais www."; //A frase que vamos filtrar.
$dados = file("lista.txt"); //Inserimos a lista numa array
$c = count($dados); //Contamos o número de linhas
for ($i = $c-1; $i>= 0; $i--) //Com a funçao 'for' vamos percorrer a nossa lista
{
$verificar = @explode("|",$dados[$i]); //Neste exemplo utilizo o separador "|", mas tambem podem utilizar a função trim(), fica ao critério de cada um.
if (eregi("($verificar[0])", "".trim($frase)."")) //Se na frase existirem palavras impróprias...
$frase = eregi_replace("$verificar[0]", "[censurado]", $frase); //Vamos substituír essas palavras pela palavra 'censurado'. Obviamente, a palavra de substituição será uma a vossa escolha.
}
//Por fim temos a frase filtrada e pronta a ser exibida.
echo $frase;
?>
Neste exemplo o resultado será este:
Aqui está um [censurado] que queremos remover e vamos tambem retirar as iniciais [censurado].E pronto, temos um filtro de palavras, basta adicionar as palavras que queremos remover no ficheiro de texto.
Espero que seja útil a alguem.
Nota: Existem várias funções para ler ficheiros mas penso que com esta forma o código corre mais rápido.