WAP/WML页面

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>