Foros del Web » Programando para Internet » PHP »

ayuda con eval en if

Estas en el tema de ayuda con eval en if en el foro de PHP en Foros del Web. hola como estan? necesito comparar urls contra expresiones regulares dinamicas para ver si coinciden con las q busco yo tengo este code Cita: //traigo las ...
  #1 (permalink)  
Antiguo 21/12/2010, 14:50
 
Fecha de Ingreso: junio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 3
ayuda con eval en if

hola como estan? necesito comparar urls contra expresiones regulares dinamicas para ver si coinciden con las q busco yo
tengo este code

Cita:
//traigo las URL que serian correctas ej: carlos.com, google.com.ar
$sT=mysql_query("SELECT * FROM tomas");
$elif ="";
while($t= mysql_fetch_object($sT))
{
//creo el eval, acacreo q esta el problema
$elif .= 'preg_match ("/(http\:\/\/|http\:\/\/www\.)'.$toma.'(\/(.*))/i", $col)) || ';
}
$elif = substr($elif,0,strlen($elif)-4);

if(eval($elif))
{
echo "coincide";
}
por favor si no me explico bien haganmelo saber mnuchas gracias
  #2 (permalink)  
Antiguo 21/12/2010, 14:52
 
Fecha de Ingreso: diciembre-2010
Mensajes: 31
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: ayuda con eval en if

Una pregunta, porqué usas un eval y no directamente con el preg_match?

Además, en esta línea

Código PHP:
Ver original
  1. $elif = substr($elif,0,strlen($elif)-4);

$elif podría estar vacía y fallaría el substr...
  #3 (permalink)  
Antiguo 21/12/2010, 15:22
 
Fecha de Ingreso: junio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: ayuda con eval en if

porque necesito que el if quede algo asi

if(preg_match(expresion,$url) || preg_match(expresion,$url))
{

}

donde por cada url de toma se agrega un preg match al if, y no se me ocurre otram anera q con eval
saludos
  #4 (permalink)  
Antiguo 21/12/2010, 15:37
 
Fecha de Ingreso: diciembre-2010
Mensajes: 32
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: ayuda con eval en if

Si estas haciendo un OR (||) es porque con al menos una coincidencia ya estaría bien. Entonces lo que haces es algo así:

Código PHP:
$sT=mysql_query("SELECT * FROM tomas");
$elif ="";
$coincide false;
while(
$tmysql_fetch_object($sT))
{
//creo el eval, acacreo q esta el problema
   
if(preg_match ("/(http\:\/\/|http\:\/\/www\.)".$toma."(\/(.*))/i"$col))) {
        
$coincide true;
   }
}

if(
$coincide)
{
echo 
"coincide";

Si te sigue fallando, pega el error, tal vez esta mal la expresión regular.

PD: la variable $col no se de donde sale, pero supongo que tiene que ver con $t, lo mismo con la variable $toma

Etiquetas: eval
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 22:53.