史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 程式 & 網頁設計技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-06-01, 01:57 PM   #1 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 軟體 - WAP與PHP程式設計之基礎篇

WAP與PHP程式設計之基礎篇

WAP的發展離不開其WWW的底蘊,畢竟,整個WAP協議的制定參照了WWW的模型,並且盡可能地沿用了Internet的諸多標準和技術,如WML語言脫胎於HTML與XML,WMLScript與傳統的腳本語言也很相似。的確,WAP雖然是個新名詞,但是它卻與傳統的國際互連網密不可分地結合著,在結構上如此,在技術上更是如此。
  
  在WAP協議中提到WAP網頁面所使用的標記語言為WML,當需要進行較高階的操作,如使用終端機的某些資源時,可以使用WMLScript腳本語言,這兩種語言很簡單,甚至可以用簡陋來形容,特別是它們對資料庫的操作幾乎無能為力,這種"缺陷"與WAP廣闊的商務和應用前景格格不入,但我們並不是無能為力的,由於WAP和WWW的交融,我們仍然可以使用WWW的技術與資源來解決資料庫的訪問問題,因為畢竟多數資料庫仍處於有線網路內。
  
  目前最流行的網頁編程語言和資料庫的搭配是什麼?相信很多人會說出"PHP"與"MySQL"這兩個名字。它們屬於WWW或者有線互連網的範疇,由於使用方便與功能強大的特點而美名傳播,那麼它們能夠為WAP服務嗎?答案是肯定的。不熟悉WAP或者PHP的人或許有些不解,畢竟在傳統意義上PHP提供的是WWW的內容與服務,對於WAP,它們能"相容"嗎?

  PHP粗解

  看了WAP的介紹,大家應該開始逐步理解PHP為何仍能為WAP服務了。PHP與HTML、WML、Javascript、Java都不一樣,它是在服務器端執行的,而Javascript、Java等都執行在瀏覽器端,相對於WAP,WMLScript執行於客戶機端,但是,以上的這些語言都可以很容易與PHP結合起來。   

  PHP具有很大的靈活性,在WWW中,它可以產生所需要的任何HTML代碼,甚至Javascript代碼。同樣,在WAP中,我們仍然可以利用PHP這種動態、靈活的特點,產生任意的WML代碼,這樣,PHP自然能夠為WAP服務。   
  
  之所以使用PHP來提供WAP服務,除了它靈活的特點外,還由於PHP可以方便的使用資料庫。用戶可以使用PHP存取Oracle、Sybase、MS SQL、MySQL、dBase、Informix等任何支持ODBC標準的資料庫,這點正好迎合了WAP商務的需求。   

  在實用中,一般需要建立PHP文件,當用戶向服務器發出瀏覽該PHP文件的請求時,服務器將根據文件中的代碼產生相應的HTML或WML內容,並發送給瀏覽器或WAP終端。   
  如想獲取關於PHP的訊息,可以前往http://www.php.com檢視。

  PHP-WML

  PHP的系統平台、工作方式、安裝方法,這些都不在本文的討論範圍內,畢竟我們的重點是PHP如何與WAP協作。一般而言,為了能讓PHP工作,我們需要帶有PHP模塊的Web服務器,或者說支持PHP的服務器,Apache是世界上最流行的Web服務器,另外,我們還需要安裝PHP軟件以及如MySQL這樣的資料庫,具體內容可以查閱相關書籍或網站。下面我們討論如何讓PHP產生WML代碼。
  
  在WWW中,PHP產生的第一行內容往往是: content-type: text/html
  
  但是,WAP終端是讀不懂這樣的標題的。WAP終端從服務器下載的單位是Deck,瀏覽的單位是Card,一般一個Deck就組成一個WML文件。那麼,為WAP服務時,PHP文件中往往需要包含如下的代碼:

  header("Content-type:text/vnd.wap.wml");
  echo "<xml version=\"1.01">\n"
  echo"<! DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"\"http://www.wapforum.org//DTD//wml_1.1.xml\">\n";

  以上三行代碼產生了WML文件(Deck)的文件頭,這樣WAP終端就可以識別所下載的Deck是否WML格式,並且接著顯示餘下的Deck內容。
  
  下面是一個最簡單的Deck,它在WAP終端上顯示"Hello World"。

 <?xml version="1.0" encoding="ISO-8859-1"?> <! DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org//DTD//wml_1.1.xml">
  </xml>
  <!--Nokia Parser Info:Phone = Nokia 7110; Height = 90; Width = 130; CurrentDeckSize = 38; MaxDeckSize = 1600; CardsOnEachLine = 5; CardsVerticalGap = 30-->
  </card id="card1" ordered="true" newcontext="false">
  <p align="left">
  Hello World
  </p>
  </card>
  </wml>

  我們建立的相應的PHP文件如下:

  <?php
  header("Content-type:text/vnd.wap.wml");
  echo "<?xml version=\"1.0\">\n";
  echo "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org//DTD//wml_1.1.xml\">\n";
  echo "\n";
  echo "<!--Nokia Parser Info: Phone = Nokia 7110; Height = 90; Width = 130; CurrentDeckSize = 38; MaxDeckSize = 1600; CardsOnEachLine = 5; CardsVerticalGap = 30-->\n";
  echo "<card id=\"card1\" ordered=\"true\" newcontext=\"false\"> ";
  echo "<p align=\"left\">\n";
  echo "Hello World";
  echo "</p>";
  echo "</card>";
  echo "</wml>";
  ?>

  我們可以將該文件存為index.php3,當WAP終端瀏覽該網站時,Web服務器會自動根據index.php3的內容產生如上所列的WML內容,並發送給網關進行處理。WAP終端收到該Deck後,將會在顯示屏上顯示"Hello World"的字樣。
  
  以上是關於PHP在WAP中最簡單的應用,它只是簡單地產生若干行WML代碼,並沒有牽扯到資料庫的訪問。其實,PHP強大的功能可以為WAP提供很豐富的服務,而最值得挖掘的就是其強大的資料庫支持
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
向 psac 送花的會員:
longlie (2007-10-21)
感謝您發表一篇好文章
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 07:55 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1