WAP/WML (ヒント & 裏ワザ) - PHPプロ!マニュアル

Smartyマニュアル

ヒント & 裏ワザ - WAP/WML

WAP/WML

WAP/WML テンプレートはテンプレートコンテンツに加え、php によって Content-Type ヘッダ が渡される必要があります。これを実行する容易な方法は、 ヘッダを出力するカスタム関数を記述する事です。 もし キャッシュ を有効にしている場合はキャッシュは機能しないので、 {insert} タグを用いて出力を行います ({insert} タグはキャッシュされない事を覚えていて下さい)。 もしテンプレートの前にブラウザに何か出力されていると、 ヘッダの出力は失敗する可能性があります。

例 18-6. WML Content-Type ヘッダを出力するために {insert} を使用する

<?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 へようこそ!
   OK を押すと次に進みます……
  </p>
 </card>
 <!-- 二枚目のカード -->
 <card id="two">
  <p>
   どう?簡単でしょ?
  </p>
 </card>
</wml>

閲覧履歴



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)