在公司的網站中, 我發現需要一個可以無線接收我的電子郵件,股市資訊等. 不想要付錢給人來得到我要的資訊, 我決定了開發一個無線網站.這樣的資訊在網際網路上是沒問題的,但是它被分散得難以收集。我需要可以執行 php ,存取資料庫,並且我需要 PHP 為我做另外的功能。這篇文章含蓋了wml 的基礎, 如何建立你的 apache Server 和 php 。這些基礎可讓你建立環境並且自己學習往後的應用.
需 求
你要對 Apache Web Server, Php 和 html 有點經驗. 對系統的要求來說,我是用 apache 1.3.9, php3, 和 Red Hat Linux 6.0 來示范. 我還沒碰到在 windows 上跑 Apache, 和 PHP3 或 PHP4 上的任何問題.
在這篇文章,我將指導你接觸的領域: wml 的介紹,在 Apache 上設定無線 appications ,並且建立你的第一個 WML/PHP 網頁.大部份的資訊可從網際網路上收集.
WML 簡 介
WML 代表無線的標注語言. WAP 電話或類似的設備被用來以 WML 寫成的網頁。WML 基於它類似於 XML 的句法和 scrictness 。使用過了 html 的任何人將不有問題學習 WML 。許多標簽和屬性是一樣的,況且標簽不多. WML 允許程式開發者開發動態的內容, 盡管為這篇文章我們將以PHP作為動態的語言.
WML 基 礎
在 WML 你能使用許多子頁 ( 叫 "cards'' ) 在一個 WML 頁中 (叫 " deck") .每個 WML card 的作用像在網頁中被顯示的內容.下列將是我們 .wml 頁的例子 。在我的 Server 上,我在 ~ /wireless/home.wml 儲存了這個檔案
<wml>
<card id='home'> <p> 我的第一個測試頁 </p>
</card>
</wml>
不同於 HTML ,如果你不colse 標簽, 例如 <wml> </wml>,則你的程式碼將不正確. 此例子會在任何無線的設備上產生一簡單的測試信息“我的第一個測試頁”。
設 定 Apache
好, 現在有趣的部分.為了 apache 能 catch 住無線設備到訪你的Server, 你需要建立你的 httpd.conf ( 我的檔案位於 /etc/httpd/conf/) 檔案, 我用 PHP3 因此所有的變化會被記錄。在你開始以前,你可以備份你的 httpd.conf 檔案,以防萬一:)
步驟 1 :第一, 我們需要 AddType 功能增加一新的 MIME 類型。你需要到你定義 php 的 Script 中。看起來像下面一樣:
<IfModule mod_php3.c>
AddType application/x-httpd-php3 .php3 .php .phtml
AddType application/x-httpd-php3-source .phps
</IfModule>
要改為:
<IfModule mod_php3.c>
AddType application/x-httpd-php3 .php3 .php .phtml .wml
AddType application/x-httpd-php3-source .phps
</IfModule>
這會用 PHP compiler 在所有的 .wml 頁.
步驟 2 :去除Mark(Uncomment)apache Load Module 和 Add Module
變更:
#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c
成:
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c
步驟 3 : 用 apache mod_rewrite module (只適用 1.2+版以上 ). 用這個,你可以即時的 rewite requested URL(當條件符合時). 需要把這片斷碼放在網頁的底部.
RewriteEngine On
# Catch most WAP browsers
RewriteCond %{HTTP_ACCEPT} text/vnd\.wap\.wml [OR]
# WinWAP, WAPjag
RewriteCond %{HTTP_USER_AGENT} wap [OR]
#Nokia emulators (sdk)
RewriteCond %{HTTP_USER_AGENT} 7110
# Rewrite to where your wireless page is located
RewriteRule ^[\./](.*)$ /home/mydirectory/wireless/home.wml [L]
現在要重新啟動 apache server.
產生你第一個無線 WML/PHP 網頁
Ok, 既然我們萬事俱備, 讓我們建立第一個網頁。為了能正常運作,你需傳送正確的 header 資訊.
<?php
# Send the header information<br>
header("Content-type: text/vnd.wap.wml");
?>
# put in the wml code
<wml>
<card id='home'>
<p>
My first test page
<p>
</card>
</wml>
你剛完成了你的第一個“簡單”的無線網頁。現在, 讓我們試著更努力做一些較難的東西吧。
你需要檢查你 WAP 兼容的網站設備。我使用 Phone.com 軟件開發工具包, 它包含 UP.Simulator , 可以檢查我的無線網頁。選擇不同的電話並且看他們的無線網頁通過不同的設備時看起來的長像。
更多的資訊在:
http://updev.phone.com
http://www.wapforum.org
http://www.wap.com
http://www.waplinks.com