WAP 請求流程:手機微瀏覽器 → WAP 閘道器(編碼壓縮/協定轉換) → WAP 伺服器(PHP 處理) → 閘道器 → 手機。與 Web 架構類似,但輸出需嚴格符合 WML(XML 子集)規範。
text/vnd.wap.wml .wml
image/vnd.wap.wbmp .wbmp
application/vnd.wap.wmlc .wmlc
text/vnd.wap.wmlscript .wmls
application/vnd.wap.wmlscriptc .wmlsc
<?php
header("Content-type: text/vnd.wap.wml");
echo "<wml><card>";
echo date("l dS of F Y h:i:s A");
echo "</card></wml>";
?>
關鍵點:header() 必須在任何輸出前發送;WML 語法極嚴格,任何錯誤導致無法顯示。
<?php
header("Content-type: image/vnd.wap.wbmp");
$im = imagecreate(50, 50);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagerectangle($im, 5, 5, 20, 20, $black);
imagewbmp($im);
imagedestroy($im);
?>
需啟用 php_gd.dll 擴展(GD 1.8+ 支援 WBMP)。
iconv 或 mb_convert_encoding 將 GB2312 → UTF-8 輸出。charset=gb2312:header("Content-type: text/vnd.wap.wml; charset=gb2312");