怎樣用PHP編程語言開發動態WAP頁面_PHP教程
推薦:淺談PHP5 OOP編程之代理與定制異常(2)三、 拋出異常 你可能已經從上面的代碼中注意到,你捕獲的是一個稱為QueryException(我們將在后面實現這個對象)的異常。一個異常類似于一個錯誤,然而卻更具有一般性。描述一個異常的最好的方法是使用emergency。盡管一個emergency可以不會是致命的,但是還
WAP(無線通訊協議)是在數字移動電話、個人手持設備(PDA等)及計算機之間進行通訊的開放性全球標準協議。隨著無線通訊的不斷發展,靜態的WAP頁面在很多方面已經不能滿足用戶個性化的要求,因此開發者可以在WAP服務器端使用諸如PHP等語言產生動態的WML頁面,來滿足用戶的需要。
WAP的應用結構非常類似于Internet,一個典型的WAP應用請求步驟描述如下:
1. 具有WAP用戶代理功能的移動終端(如WAP手機),通過內部運行的微瀏覽器向某一網站發送WAP服務請求。該請求先由WAP網關截獲,對信息內容進行編碼壓縮,以減少網絡數據流量,同時根據需要將WAP協議轉換成HTTP協議。
2. 協議將處理后的請求轉送到相應WAP服務器。在WAP服務器端,根據頁面擴展名等屬性,被請求的頁面直接或由服務器端腳本解釋后輸出,再經過網關傳回給用戶。
從上述的WAP應用流程可以發現,生成動態WAP頁面與動態產生Web網頁的過程非常相似。但是由于WAP應用使用的WML語言來源于語法嚴格的XML,因此要求輸出的格式必須按WAP網頁的規范輸出。同時,由于WAP協議的應用范圍及移動客戶端的軟、硬件配置等局限性,對每次輸出的頁面的大小、圖像的格式及容量都有一定限制。本文筆者將以PHP語言為例,和廣大網絡程序開發愛好者共同探討動態輸出WAP頁面的方法和應用。
輸出簡單的動態WAP頁面
由于生成WAP頁面的過程和生成一般的Web頁面非常類似,筆者通過一個最簡單的WAP頁面的例子來介紹。不過提醒一句:由于需要PHP解釋器來解釋該程序并輸出WAP頁面,因此所有類似的程序應以“php”為擴展名哦。
< ?php
header("Content-type: text/vnd.wap.wml"); //定義輸出文檔為WML類型
echo (" ");
echo ( "Hello WAP" );
echo ("");
?>
該實例可以在WAP手機模擬器中瀏覽,輸出一句經典的“Hello WAP”語句,但是在普通的網絡瀏覽器中是無法識別的,原因很簡單,在程序開頭聲明了該輸出文檔為WML類型,只有WAP設備能夠識別并解釋。不過又要提醒一句:常見的HTML語言對規范性要求不嚴,大多數瀏覽器能“寬容”地接受其中的編寫錯誤,但是WML的規范相當嚴格,任何的錯誤都可能導致無法輸出所需的頁面。
實例1 動態生成圖像
WAP使用的圖像是一種特殊的黑白圖像格式:WBMP。開發者可以使用一些現有的工具將一般圖像轉換成WBMP格式,然后在WML文檔中使用。但是如果在WAP程序中能動態地生成所需圖像(如股市的K線圖),將會使程序有極其廣闊的應用前景。PHP提供了強大的圖形繪制功能,下面的實例將將在WAP模擬器中顯示一個黑色的矩形框。
(注意:要使用GD的圖像函數庫,必須在PHP配置中加載“PHP_GD.DLL”庫文件。)
< ?PHP
Header("Content-type: image/vnd.wap.wbmp"); //定義輸出的圖像格式為WBMP
Sim = ImageCreate(50, 50);
Swhite = ImageColorAllocate(Sim,255,255,255);
Sblack = ImageColorAllocate(Sim,0,0,0);
ImageRectangle(Sim, 5, 5, 20, 20, Sblack);
ImageWBMP(Sim);
ImageDestroy(Sim);
?>
實例2 處理漢字
作為一種全球應用的協議,WAP選擇了UNICODE 2.0作為其標準字符集編碼,能夠同時處理英、中、日、法等多種文字。但是開發者日常處理的漢字是GB2312編碼,不同的內碼標準必定不能通用,因此,如果不在兩種編碼之間通過碼制的轉換,就會出現漢字亂碼的現象。目前的大多數WAP手機(Nokia7110、愛立信R320S等等)都使用UTF-8(即UNICODE)來編碼的。如果直接在WML使用中文字符(GB2312編碼),將會產生亂碼,導致手機用戶無法識別,因此在輸出中文之前,必須使用程序或函數(關于此類的PHP函數庫,網絡上已有非常多技術上成熟的產品可以下載)對中文進行UNICODE的編碼。而在少數支持GB2312編碼的手機或WAP終端設備中,開發者只需在程序中定義文檔的內碼類型后,即可直接正確顯示漢字,看一個實例:
< ?php
header("Content-type: text/vnd.wap.wml; charset=gb2312"); //定義字符的編碼為GB2312
echo ("");
echo ("你好");
echo ("");
?>
在程序的“header”語句中,定義了文字的編碼為GB2312,如果用戶的手機支持GB2312編碼,將會顯示“你好”的字樣。
作為未來網絡通訊的主導,WAP程序的開發已日趨熱門。相信通過本文的閱讀,能使開發者對使用PHP進行WAP開發有一個初步的印象,希望廣大讀者能在本文的基礎上,參考WML語言,開發出更加強大的WAP應用程序。
分享:淺談PHP5 OOP編程之代理與定制異常(1)一、 DBQuery對象 現在,我們的DBQuery對象簡單地模仿一個存儲過程一旦被執行,即返回一個必須進行保存的結果資源;并且如果你想使用該結果集上的函數(例如num_rows()或fetch_row())的話,你必須傳遞MySqlDB對象。那么,如果由DBQuery對象來實現MySqlDB對
- 相關鏈接:
- 教程說明:
PHP教程-怎樣用PHP編程語言開發動態WAP頁面。