WAP/WML 核心概念
- WAP:無線應用協議,定義移動設備訪問網絡的標準棧。
- WML:無線標記語言,基於 XML,類似 HTML 但更精簡,單位為
<deck>(卡片集),每張卡片 <card> 為一個屏幕內容。
- WMLScript:客戶端腳本,類似 JavaScript 但更輕量,用於表單驗證、本地計算。
PHP 生成 WML 的關鍵:正確的 MIME 頭
<?php
header('Content-Type: text/vnd.wap.wml; charset=utf-8');
echo '
動態內容:從 MySQL 讀取數據
<?php
$mysqli = new mysqli('localhost', 'user', 'pass', 'wap_db');
$res = $mysqli->query('SELECT title, url FROM news LIMIT 10');
?>
<wml>
<card id="list" title="新聞列表">
<p>
<?php while ($row = $res->fetch_assoc()): ?>
<a href="<?= htmlspecialchars($row['url']) ?>"><?= htmlspecialchars($row['title']) ?></a><br/>
<?php endwhile; ?>
</p>
</card>
</wml>
表單提交與 WMLScript 驗證
<card id="login" title="登入" newcontext="true">
<do type="accept" label="登入"><go href="login.php" method="post">
<postfield name="user" value="$(username)"/>
<postfield name="pass" value="$(password)"/>
</go></do>
<p>
用戶:<input name="username" type="text" /><br/>
密碼:<input name="password" type="password" /><br/>
</p>
</card>
現代替代方案
- WAP 2.0 (XHTML Mobile Profile) 已取代 WML,現代移動開發直接輸出響應式 HTML5 + CSS3。
- PHP 框架(Laravel/Symfony)配合
Mobile-Detect 庫自動識別設備,輸出適配視圖。
- 若維護舊系統,上述 WML 生成方式仍有效;新項目請勿使用 WML。