Foros del Web » Programando para Internet » PHP »

Problema con expresiones regulares...

Estas en el tema de Problema con expresiones regulares... en el foro de PHP en Foros del Web. Hola... he buscado y he buscado, pero o no entiendo lo que encuentro, o no me sirve... Resulta que estoy tratando de hacer mi propio ...
  #1 (permalink)  
Antiguo 29/06/2007, 07:22
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Problema con expresiones regulares...

Hola... he buscado y he buscado, pero o no entiendo lo que encuentro, o no me sirve...

Resulta que estoy tratando de hacer mi propio manejador de templates, pero no he pasado más allá del template XD... no puedo transformar nada con php...

El asunto es el sgte.

Tengo en un archivo .tpl, el sgte. código, que debería ser transformado...

Código:
<% if var_1="[var1]" con="==" var_2="[var2]" %>
Y con PHP hago lo sgte. ( Después de leer el archivo y obtener el contenido )

Código PHP:
preg_replace("/<\% if var_1=\"\[(\w+)\]\" con=\"(.*?)\" var_2=\"\[(\w+)\]\" \%>/e""if(\$$1 $2 \$$3) { "$htmlText); 
En realidad no tengo idea de que estoy haciendo con el preg_replace...

He leido el código de Smarty para obtener una idea, pero quedo marcando ocupado XD...

Agradecería mucho su ayuda, a ver si me dicen como se hace esto
  #2 (permalink)  
Antiguo 29/06/2007, 07:28
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema con expresiones regulares...

Creo, en una vista rápida, que lo que hace es tomar el valor de [var1], usar el valor de "con" como operador y usarlo con [var2].

Por lo que, si el código es como lo pusiste, la expresión regular construye

if($var1 == $var2) {


Saludos.
  #3 (permalink)  
Antiguo 29/06/2007, 08:34
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Re: Problema con expresiones regulares...

Si, el código es tal como lo puse...

Pero al ejecutarlo me tira este error...

Código:
Parse error: syntax error, unexpected T_IF in C:\Documents and Settings\FM\Mis documentos\Eric\www\Test\test.php(28) : regexp code on line 1

Fatal error: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Failed evaluating code: if($var1 == $var2) { in C:\Documents and Settings\FM\Mis documentos\Eric\www\Test\test.php on line 28
La linea 28 es el preg_replace que puse anteriormente...

Como lo soluciono? Gracias :)
  #4 (permalink)  
Antiguo 29/06/2007, 08:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema con expresiones regulares...

preg_replace simplemente cambia cadenas, no debería "ejecutar" nada.
¿cambiaste el patrón o la llamada a la función?
  #5 (permalink)  
Antiguo 29/06/2007, 08:57
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Re: Problema con expresiones regulares...

Cita:
Iniciado por alvlin Ver Mensaje
preg_replace simplemente cambia cadenas, no debería "ejecutar" nada.
¿cambiaste el patrón o la llamada a la función?
Nop. preg_replace con el modificador 'e' valua las ocurrencias como código php antes
de realizar la sustitución.
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 04:38.