2011-02-16 19 views
5

¿Cómo puedo analizar {if game > 4}{somecontent}{/if} desde una plantilla usando PHP.if declaraciones en plantillas php usando tpl

+1

¿Qué quieres exactamente "analizar"? ¿Cuál es tu resultado esperado? – Phil

+0

También podría ser útil conocer el * tipo * de la plantilla de PHP. Hay mas de uno. – cwallenpoole

+0

digamos que index.tpl tiene esta condición. luego establecemos $ game = 5. Esto significa que cuando se analiza el archivo tpl, se muestra {algún contenido} ya que la condición que lo contiene es verdadera –

Respuesta

5

¿Qué pasa con el uso de PHP antiguo simple? Es mucho más rápido y mucho más simple.

<?php if ($game > 4): ?> 
some content 
<?php endif ?> 

Si realmente insisten, aquí es un comienzo (no probado):

<?php 
preg_match_all('/\{if ([^}]+)\}.+?\{\/if\}/s', $content, $matches) 

foreach ($matches as $match) 
{ 
    $expression = $match[1]; 

    // Evaluate expression 

    $content = preg_replace($match[0], $true ? $match[1] : '', $content); 
} 
?> 

Esto es bastante simple, se obtienen de muy peluda cuando se quiere trabajar con instrucciones anidadas.

+0

Lo que pasa es que quiero entender cómo se podría hacer usando php.Es sobre mi curva de aprendizaje. Sé que php es mucho más rápido y mucho más simple, pero cuando los proyectos crecen con muchos temas, es más fácil usar plantillas. –

+0

"los proyectos crecen muy grandes" no debería llevar a "hacer rodar su propio sistema de plantillas". Si no puede manejar uno de los sistemas de creación de plantillas probados y confiables, dudo que sea una buena idea crear uno propio. –

+0

@user Definitivamente no es más sencillo si está escribiendo el motor de plantillas usted mismo – Phil

Cuestiones relacionadas