Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/07/2009, 12:45
Avatar de Fernand0
Fernand0
 
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Expresiones Regulares Tags

Gracias pateketrueke.. funciono a la perfeccion con el \s* ^^


Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>testing</title>
</head>

<body style="font-family: Lucida Sans Unicode; font-size: 11px;">
hola <$Name> <$LastName> como estas?!!
<br/>
    <if $Name==$Name>
    if:1
        <if $Name==$LastName>
        if:2
        </if>
        <else>
        else:2
        </else>
    </if>
    <else>
    else:1
    </else>
</body>
</html> 
Fragmento..
Código php:
Ver original
  1. function ifParser($matches)
  2.     {
  3.         $ifCatcher='%<if\s*(.+)>((?:[^<]|(?R))+)</if>\s*(?:<else>((?:[^<]|(?R))+)</else>)?%';  
  4.        
  5.         if(is_array($matches))
  6.         {
  7.             preg_match('%(.+)([^\w]+[==|!=|<=|>=|<|>|&&|\|\|]+)(.+)%', $matches[1], $c0nd);
  8.            
  9.             if(substr($c0nd[1], 0, 1)=='$') $c0nd[1]="'".$this->_var[substr($c0nd[1], 1)]."'";
  10.             if(substr($c0nd[3], 0, 1)=='$') $c0nd[3]="'".$this->_var[substr($c0nd[3], 1)]."'";
  11.            
  12.             $cond=$c0nd[1].$c0nd[2].$c0nd[3];
  13.             $_eval='if('.$cond.') $matches=$matches[2]; else $matches=$matches[3];';
  14.             eval($_eval);
  15.         }
  16.        
  17.         return(preg_replace_callback($ifCatcher, array($this, 'ifParser'), $matches));
  18.     }

Lo que si no funciona si pongo otras etiquetas dentro del if o else, estoy viendo como hacerlo, despues si me sale modifico el codigo

Saludos

Última edición por Fernand0; 03/07/2009 a las 13:09