我一直在使用 h2O 模板引擎 (h ttp://www.h2o-template.org/ )
虽然它适用于基本的 html,因为我使用了它附带的演示文件。
我的代码:
<?php
/**
* Simple example rendering a user list
* ------------------------------------
*
* @credit - adapt from ptemplates sample
*/
require 'h2o.php';
$template = new H2o('test.html', array(
'cache_dir' => dirname(__FILE__)
));
$time_start = microtime(true);
echo $template->render(array(
'users' => array(
array(
'username' => 'peter <h1>asdfasdf</h1>',
'tasks' => array('school', 'writing'),
'user_id' => 1,
),
array(
'username' => 'anton',
'tasks' => array('go shopping <h1>je</h1'),
'user_id' => 2,
),
array(
'username' => 'john doe',
'tasks' => array('write report', 'call tony', 'meeting with arron'),
'user_id' => 3
),
array(
'username' => 'foobar',
'tasks' => array(),
'user_id' => 4
)
)
));
echo "in ".(microtime(true) - $time_start)." seconds\n<br/>";
和模板文件 test.html:
{% extends 'layout.html' %}
{% block title %}Userlist | {{ block.super }}{% endblock %}
{% block content %}
<h2>Userlist</h2>
<ul>
{% for user in users limit:3 %}
<li>
<a href="/users/{{ user.username|urlencode }}">{{ user.username|truncate 4 }}</a> -
{{ user.tasks.first | safe }}
</li>
{% if not user.username == 'foobar' %}
haha
{% endif %}
{% endfor %}
</ul>
{% endblock %}
如此处所述,我将如何在 PDO/Mysql 中执行此操作-语法在某种程度上类似于 Twig,但 H2O 网站上的文档中没有关于从数据库查询的任何内容。