WAP/WML页面需要发送PHP的Content-Type 头信息。
简单的方法是写一个自定义函数来显示头部信息。
但当开启了缓存时,你将需要使用
{insert}来使其生效。
记住{insert}是不会被缓存的!
确认在模板输出前没有任何的其他内容输出到浏览器,否则头信息将会发送失败。
Example 21.6. 使用 {insert} 来插入一个WML类型的文件头
<?php
// 确保apache已经配置使用.wml的后缀!
// 将以下函数放在你的程序当中,或者在Smarty.addons.php里面
function insert_header($params)
{
// 此函数需要名为 $content 的参数
if (empty($params['content'])) {
return;
}
header($params['content']);
return;
}
?>
Smarty模板中的 insert 标签必须按照下面方式来写:
{insert name=header content="Content-Type: text/vnd.wap.wml"}
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- 开始新的WML 根 -->
<wml>
<!-- 第一张卡片 -->
<card>
<do type="accept">
<go href="#two"/>
</do>
<p>
欢迎使用Smarty版的WAP页面!
按“确定”继续...
</p>
</card>
<!-- 第二张卡片 -->
<card id="two">
<p>
很简单,不是吗?
</p>
</card>
</wml>