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>