WAP的發展離不開其WWW的底蘊,畢竟,整個WAP協議的制定參照了WWW的模型,並且盡可能地沿用了Internet的諸多標准和技術,如WML語言脫胎於HTML與xml(標准化越來越近了),WMLScript與傳統的腳本語言也很相似。的確,WAP雖然是個新名詞,但是它卻與傳統的國際互聯網密不可分地結合著,在結構上如此,在技術上更是如此。
在WAP協議中提到WAP頁面所使用的標記語言為WML,當需要進行較高級的操作,如使用終端機的某些資源時,可以使用WMLScript腳本語言,這兩種語言很簡單,甚至可以用簡陋來形容,特別是它們對數據庫的操作幾乎無能為力,這種"缺陷"與WAP廣闊的商務和應用前景格格不入,但我們並不是無能為力的,由於WAP和WWW的交融,我們仍然可以使用WWW的技術與資源來解決數據庫的訪問問題,因為畢竟多數數據庫仍處於有線網絡內。
目前最流行的網頁編程語言和數據庫的搭配是什麼?相信很多人會說出"php(做為現在的主流開發語言)"與"MySQL(和PHP搭配之最佳組合)"這兩個名字。它們屬於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(和PHP搭配之最佳組合)、dBase、Informix等任何支持ODBC標准的數據庫,這點正好迎合了WAP商務的需求。
在實用中,一般需要建立php(做為現在的主流開發語言)文件,當用戶向服務器發出浏覽該php(做為現在的主流開發語言)文件的請求時,服務器將根據文件中的代碼產生相應的HTML或WML內容,並發送給浏覽器或WAP終端。
如想獲取關於php(做為現在的主流開發語言)的信息,可以前往http://www.php(做為現在的主流開發語言).com查看。
php(做為現在的主流開發語言)-WML
php(做為現在的主流開發語言)的系統平台、工作方式、安裝方法,這些都不在本文的討論范圍內,畢竟我們的重點是php(做為現在的主流開發語言)如何與WAP協作。一般而言,為了能讓php(做為現在的主流開發語言)工作,我們需要帶有php(做為現在的主流開發語言)模塊的Web服務器,或者說支持php(做為現在的主流開發語言)的服務器,apache(Unix平台最流行的WEB服務器平台)是世界上最流行的Web服務器,另外,我們還需要安裝php(做為現在的主流開發語言)軟件以及如MySQL(和PHP搭配之最佳組合)這樣的數據庫,具體內容可以查閱相關書籍或網站。下面我們討論如何讓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">
"
echo"<! DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""http://www.wapforum.org//DTD//wml_1.1.xml(標准化越來越近了)">
";
以上三行代碼產生了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(標准化越來越近了)">