WAP(無線應用協議)透過 WAP 網關將行動裝置請求轉為 HTTP 送達 Web 伺服器。PHP 作為伺服端腳本,動態輸出 WML(Wireless Markup Language)頁面,滿足個性化服務需求。WML 基於嚴格 XML,輸出格式必須合規,且受限於行動裝置頻寬與螢幕尺寸。
在 Apache httpd.conf 或 .htaccess 添加:
AddType text/vnd.wap.wml .wml
AddType image/vnd.wap.wbmp .wbmp
AddType application/vnd.wap.wmlc .wmlc
AddType text/vnd.wap.wmlscript .wmls
AddType application/vnd.wap.wmlscriptc .wmlsc
<?php
header("Content-type: text/vnd.wap.wml");
echo "<wml><card><p>";
echo date("l dS of F Y h:i:s A");
echo "</p></card></wml>";
?>
.php 經解析器處理header() 必須在任何輸出前調用,宣告 WML 類型WBMP 為黑白點陣圖格式,PHP GD 庫(≥1.8)支援原生生成:
<?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.ini 啟用 extension=php_gd.dll。
| 場景 | 解決方案 |
|---|---|
| 主流 UTF-8 手機(Nokia 7110、Ericsson R320 等) | 輸出前將 GB2312/Big5 轉為 UTF-8(使用 iconv 或 mb_convert_encoding) |
| 少數支援 GB2312 終端 | 在 header 指定 charset:header("Content-type: text/vnd.wap.wml; charset=gb2312"); |
掌握 PHP 輸出 WAP 內容,可快速構建行動增值服務,拓展商業應用場景。