Rent A Coder

Filtro de palabras en PHP

Imprimir Imprimir - Enviar a un amigo Enviar a un amigo

A raíz de un tema que vi en un foro, se me ocurrío hacer una pequeña función en PHP para censurar ciertas palabras en un texto. En realidad es bastante simple lo que hace, y gracias al poder de las expresiones regulares tiene muchas posibilidades. Aqui dejo la función y después paso a comentarla.

<?php
function filtrado($texto, $reemplazo = false) {
$filtradas = 'p?uta, mierda, pendej[ao]s?';

$f = explode(',', $filtradas);
$f = array_map('trim', $f);
$filtro = implode('|', $f);

return ($reemplazo) ? preg_replace("#$filtro#i", $reemplazo, $texto) : preg_match("#$filtro#i", $texto) ;
}
?>

Ahora la explicación:

  • Línea 3: Aquí se definen las palabras a buscar separadas por coma. Se puede hacer uso de comodines. Por ejemplo, “p?uta” censura “puta” y “uta“; “pendej[ao]s?” censura “pendeja“, “pendejo“, “pendejos“, “pendejas“.
  • Línea 5: Dividimos las palabras en un arreglo.
  • Línea 6: Limpiamos los posibles espacios en blanco alrededor de la palabra.
  • Línea 7: Las unimos con el caracter |.
  • Línea 9: El segundo parametro es opcional. Si se pone, se retorna la cadena del primer parametro con las palabras prohibidas reemplazadas por el texto que se haya pasado como segundo parametro. Si no se especifica el segundo parametro, entonces la funcion retorna verdadero en caso de que se haya encontrado alguna palabra en el texto o falso en caso de que la cadena este limpia.

Ejemplo | Código del ejemplo

Tags: , , ,

  1. Un Comentario to “Filtro de palabras en PHP”

  2. Por Homer0 el Jun 19, 2008 | Responder@Homer0

    Muy bueno y sencillo, agregado al del.icio.us

    Saludos

Post a Comment