Help with my PHP template class -
i want separate output of html program code in projects, wrote simple database class.
<?php class template { private $template; function load($filepath) { if(!$this->template = file_get_contents($filepath)) $this->error('error: failed open <strong>' . $filepath . '</strong>'); } function replace($var, $content) { $this->template = str_replace("{$var}", $content, $this->template); } function display() { echo $this->template; } function error($errormessage) { die('die() template class: <strong>' . $errormessage . '</strong>'); } } ?>
the thing need display()
method. example use code:
$tplobj = new template(); $tplobj->load('index.php'); $tplobj->replace('{title}', 'homepage'); $tplobj->display();
and index.php
file this:
<html> <head> <title>{title}</title> </head> <body> <h1>{title}</h1> <?php if($something) { echo '$something true'; } else { echo '$something false'; } ?> </body> </html>
i'm wondering if php code in there run? or sent browser plaintext? using eval()
in template class hate function :p
thanks.
no. come out plain text.
'echo' outputs without parsing php code.
you don't need fall on using eval. there other ways example using output buffering.
Comments
Post a Comment