用 PHP 程式設計語言開發動態 WAP 頁面

來源:互聯網
上載者:User

簡介:這是用 PHP 程式設計語言開發動態 WAP 頁面的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。

class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=324410' scrolling='no'>

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 應用程式。

摘自:新浪科技

“用 PHP 程式設計語言開發動態 WAP 頁面”的更多相關文章 》

愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具

http://biancheng.dnbcw.info/php/324410.html pageNo:15

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.