WAP/WML页面

WAP/WML页面需要发送PHP的Content-Type 头信息。 简单的方法是写一个自定义函数来显示头部信息。 但当开启了缓存时,你将需要使用 {insert}来使其生效。记住{insert}是不会被缓存的! 确认在模板输出前没有任何的其他内容输出到浏览器,否则头信息将会发送失败。


Example 21.6. 使用 {insert} 来插入一个WML类型的文件头

  1. <?php
  2.  
  3. // 确保apache已经配置使用.wml的后缀!
  4. // 将以下函数放在你的程序当中,或者在Smarty.addons.php里面
  5. function insert_header($params)
  6. {
  7. // 此函数需要名为 $content 的参数
  8. if (empty($params['content'])) {
  9. return;
  10. }
  11. header($params['content']);
  12. return;
  13. }
  14.  
  15. ?>
  16.  

Smarty模板中的 insert 标签必须按照下面方式来写:

  1. {insert name=header content="Content-Type: text/vnd.wap.wml"}
  2.  
  3. <?xml version="1.0"?>
  4. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
  5.  
  6. <!-- 开始新的WML -->
  7. <wml>
  8. <!-- 第一张卡片 -->
  9. <card>
  10. <do type="accept">
  11. <go href="#two"/>
  12. </do>
  13. <p>
  14. 欢迎使用Smarty版的WAP页面!
  15. 按“确定”继续...
  16. </p>
  17. </card>
  18. <!-- 第二张卡片 -->
  19. <card id="two">
  20. <p>
  21. 很简单,不是吗?
  22. </p>
  23. </card>
  24. </wml>
  25.  

原文: https://www.smarty.net/docs/zh_CN/tips.wap.tpl