Foros del Web » Programando para Internet » PHP »

Preg_match con varias coincidencias

Estas en el tema de Preg_match con varias coincidencias en el foro de PHP en Foros del Web. Hola, quería preguntar si existe alguna otra función en PHP o una modificación de esta que permita lo siguiente: Código que tengo: if (preg_match("/palabra-censurada-1/", $variable)) ...
  #1 (permalink)  
Antiguo 28/06/2012, 05:34
 
Fecha de Ingreso: octubre-2011
Mensajes: 34
Antigüedad: 13 años, 2 meses
Puntos: 2
Preg_match con varias coincidencias

Hola, quería preguntar si existe alguna otra función en PHP o una modificación de esta que permita lo siguiente:

Código que tengo:

if (preg_match("/palabra-censurada-1/", $variable))
{
//Se encontró coincidencia.
}

Me gustaría que te dejase poder poner varias dentro del mismo preg_match. Algo así como esto:

if (preg_match("/palabra-censurada-1/", "/palabra-censurada-2/", "/palabra-censurada-3/", $variable))
{
//Se encontró coincidencia.
}

Es decir, censurar varias palabras.

No me sirven las expresiones regulares ya que son palabras exactas.
Por otros lado, pensé en hacerlo con swich, pero swich no admite cosas como estas ¿verdad?:

case "%palabra-censurada%" (Es decir que da igual lo que tenga antes o después el caso es que incluya "palabra-censurada").

¿Alguien conoce alguna posibilidad?

Saluditos!
  #2 (permalink)  
Antiguo 28/06/2012, 06:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 19 años, 3 meses
Puntos: 84
Respuesta: Preg_match con varias coincidencias

Pues creo que preg_match no admite varias palabras.
Supongo que lo que quieres hacer, es filtrar varias palabras, y si aparece alguna de estas en el contenido, darle un mensaje de error al usuario.

Lo que se me ocurre es que crees un array con esas palabras, y luego te pases por el array comprobandolas.

Por ejemplo:


Código PHP:
$filtroPalabras = array("palabra1","palabra2","palabra3") ;
$coincidencia ;
foreach(
$filtroPalabras as $index => $palabra)
{
    if (
preg_match("/".$palabra."/"$variable))
        
$coincidencia  ;
}

if (
$coincidencia == )
{
    
// Aqui hacemos lo que queramos hacer si ha habido alguna coincidencia.


Como tampoco se muy bien lo que quieres hacer, pues no se me ocurre ahora mismo nada mas.
__________________
» Presupuesto Pagina Web
  #3 (permalink)  
Antiguo 29/06/2012, 07:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Preg_match con varias coincidencias

De hecho no es que preg_match() acepte una o varias palabras, eso es ridículo de argumentar, pues lo que acepta son expresiones regulares.

Y vamos, que las expresiones regulares son tan amplias que si admiten múltiples palabras por decirlo así.
Cita:
/(foo|candy|bar)/
Si no saben investiguen, estudien, lean esto:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: coincidencias, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:07.