PHP原生模板引擎 PHP Native Template

未分类 飞快学 378浏览

PHP本身就具备模板引擎,在显示要求不高的情况下,是很好的选择。

<?php
require_once 'db_config.php';
 
try {
    $dsn = "mysql:host=$db_host;dbname=$db_name;charset=utf8";
    $db = new PDO($dsn, $db_user, $db_pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $sql = "select * from film limit 20";
    $result = $db->query($sql);
    // foreach($result->FetchAll() as $row)
    //     printf("%s<br/>\n", $row['title']);
}  catch (PDOException $err) {
    echo $err->getMessage();
}
?>
 
<!DOCTYPE html>
<html>
  <body>
     <h1>Films</h1>
     <table>
         <?php foreach($result->FetchAll() as $key => $row): ?>
             <?php if ($key%2==0) : ?>
             <tr bgcolor="red">
             <?php else : ?>
             <tr bgcolor="green">
             <?php endif ?>  
             <td> <?= $key+1 ?> </td>
             <td>  <?= $row['title'] ?> </td>
             <td>  <?= $row['length'] ?> </td>
         </tr>
         <?php endforeach; ?>
     </table>
     <p>There are <?= $result->rowCount() ?> films.</p>
  </body>
</html>

上述代码在一个文件中,很清晰的可以看出由两部分组成:1)第1部分的代码完全是 PHP,功能是从数据库中获取数据;2)第2部分的代码主要是 HTML,PHP原生模板嵌入其中,用于显示数据。按照 MVC 来划分,第1部分是控制器和模型(Controller 和 Model),第2部分是视图 (View)。

上述代码运行的效果如下:

php-template-p01

【权威参考】

模板语法: Smarty vs PHP http://www.smarty.net/syntax_comparison