色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

php作wap開發(fā)時(shí)遇到的問題

瀏覽:78日期:2024-02-02 08:48:47

選擇自 slamdunk3 的 Blog

1.文件格式首先要遇到的問題肯定是文件格式,在作web開發(fā)時(shí),大家都是用的html或xhtml,到了wap開發(fā)時(shí),就得用wml了.什么是wml?大家可以去查更詳細(xì)的資料,我這里只是略微的提到.在我看來wml類似于xml,有非常嚴(yán)格的格式,在作wap頁(yè)面時(shí),都得用wml來作為顯示.

wml的語法非常簡(jiǎn)單,在用php作動(dòng)態(tài)輸出時(shí),一定要發(fā)送一個(gè)頭信息,標(biāo)明本頁(yè)面是wml,而不是別的什么*ml.

header('Content-type: text/vnd.wap.wml; charset='gb2312'');?>

這里用的字符集是gb2312,在移動(dòng)的平臺(tái)上是沒有任何問題的,但在聯(lián)通的平臺(tái)上就不行了,一定得用utf-8,為了更通用,還是用utf-8更安全.即

header('Content-type: text/vnd.wap.wml; charset='utf-8'');?>

2.編碼

上面說了字符集都應(yīng)采用utf-8,這是一種容納了多國(guó)語言的字符集,一個(gè)漢字是占雙字節(jié),utf-8占了4個(gè)字節(jié),因此其容納的信息量更大.在手機(jī)上編寫的漢字,在將頁(yè)面內(nèi)碼轉(zhuǎn)成utf-8后,以后再打開就可能是一堆亂碼.因此大家在作注釋時(shí),盡可能的用英文注釋,省得以后看不懂.像editplus,ultraedit等工具都可以轉(zhuǎn)文件內(nèi)碼.

3.適配

世界各大手機(jī)廠商真是有病,開發(fā)出的手機(jī)千奇百怪,可以支持的格式也是五花八門.比如鈴聲,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.這雖然是把手機(jī)的檔次和成本拉開了,但卻苦了作手機(jī)開發(fā)的兄弟們了.因?yàn)椴豢杀苊獾囊獙?duì)手機(jī)所能支持的圖片,鈴聲等多媒體信息作出一個(gè)匹配,這個(gè)匹配的處理,我們一般叫做手機(jī)適配.要作手機(jī)適配,我們一般得有如下資料.

1)一份詳細(xì)的手機(jī)適配資料表,里面應(yīng)詳細(xì)的說明手機(jī)所能支持的鈴聲,圖片格式,還得有手機(jī)型號(hào)等信息2)要正確的獲取手機(jī)的UA,什么是UA,就是(user agent),實(shí)際上就是用戶的手機(jī)信息.

有了上面的東東我們才能做出適配.以下給出一個(gè)我寫的在wap開發(fā)中用到的類,可以用來取手機(jī)號(hào),手機(jī)UA.

/*** 類名: mobile* 描述: 手機(jī)信息類* 其他: 偶然 編寫*/class mobile{/*** 函數(shù)名稱: getPhoneNumber* 函數(shù)功能: 取手機(jī)號(hào)* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回號(hào)碼,失敗返回false* 其它說明: 說明*/function getPhoneNumber(){if (isset($_SERVER['HTTP_X_NETWORK_INFO'])){$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);Return $getstr1;}elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])){$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];Return $getstr2;}elseif (isset($_SERVER['HTTP_X_UP_SUBNO'])){$str3 = $_SERVER['HTTP_X_UP_SUBNO'];$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);Return $getstr3;}elseif (isset($_SERVER['DEVICEID'])){Return $_SERVER['DEVICEID'];}else{Return false;}}

/*** 函數(shù)名稱: getHttpHeader* 函數(shù)功能: 取頭信息* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回號(hào)碼,失敗返回false* 其它說明: 說明*/function getHttpHeader(){$str = '';foreach ($_SERVER as $key=>$val){$gstr = str_replace('&','&',$val);$str.= '$key -> '.$gstr.'rn';}Return $str;}

/*** 函數(shù)名稱: getUA* 函數(shù)功能: 取UA* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回號(hào)碼,失敗返回false* 其它說明: 說明*/function getUA(){if (isset($_SERVER['HTTP_USER_AGENT'])){Return $_SERVER['HTTP_USER_AGENT'];}else{Return false;}}

/*** 函數(shù)名稱: getPhoneType* 函數(shù)功能: 取得手機(jī)類型* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回string,失敗返回false* 其它說明: 說明*/function getPhoneType(){$ua = $this->getUA();if($ua!=false){$str = explode(' ',$ua);Return $str[0];}else{Return false;}}

/*** 函數(shù)名稱: isOpera* 函數(shù)功能: 判斷是否是opera* 輸入?yún)?shù): none www.mypchelp.cn* 函數(shù)返回值: 成功返回string,失敗返回false* 其它說明: 說明*/function isOpera(){$uainfo = $this->getUA();if (preg_match('/.*Opera.*/i',$uainfo)){Return true;}else{Return false;}}

/*** 函數(shù)名稱: isM3gate* 函數(shù)功能: 判斷是否是m3gate* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回string,失敗返回false* 其它說明: 說明*/function isM3gate(){$uainfo = $this->getUA();if (preg_match('/M3Gate/i',$uainfo)){Return true;}else{Return false;}}

/*** 函數(shù)名稱: getHttpAccept* 函數(shù)功能: 取得HA* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回string,失敗返回false* 其它說明: 說明*/function getHttpAccept(){if (isset($_SERVER['HTTP_ACCEPT'])){Return $_SERVER['HTTP_ACCEPT'];}else{Return false;}}

/*** 函數(shù)名稱: getIP* 函數(shù)功能: 取得手機(jī)IP* 輸入?yún)?shù): none* 函數(shù)返回值: 成功返回string* 其它說明: 說明*/function getIP(){$ip=getenv('REMOTE_ADDR');$ip_ = getenv('HTTP_X_FORWARDED_FOR');if (($ip_ != '') && ($ip_ != 'unknown')){$ip=$ip_;}return $ip;}}?>

4.頁(yè)面設(shè)計(jì)

作wap開發(fā)時(shí),wap頁(yè)面是非常簡(jiǎn)單的.比html來說是簡(jiǎn)單到不能再簡(jiǎn)單了.在wap1.0里是沒有表格之類的亂七八糟的東西的.所有的標(biāo)簽都是寫在一個(gè)叫card的標(biāo)簽之內(nèi).可以用來分段.所以做頁(yè)面的算是輕松了.

5.模擬器

作wap開發(fā)免不了要用各式各樣的模擬器來測(cè)試,比較好的有m3gate,openwave,opera,還有一個(gè)叫winwap的,大家最好別用他來作測(cè)試,他的兼容性太好了,即使頁(yè)面有錯(cuò)誤都能給忽略掉.測(cè)試時(shí)跟用瀏覽器測(cè)試web頁(yè)面一樣,輸入網(wǎng)址就可以了.沒有比這更容易的事了.

6.注意事項(xiàng)

1)空格,特別是在定義DTD時(shí),

echo '';?>

里面如果哪個(gè)地方少個(gè)空格,就有你受的了.以前寫的時(shí)候用了頁(yè)面重排之后,把一些空格給干掉了,整整找了兩天才找出錯(cuò)誤來,大家千萬別步我的后塵.

2)標(biāo)簽,如果標(biāo)簽不成對(duì),會(huì)提示錯(cuò)誤,大家注意就是了,很容易修正.

標(biāo)簽: PHP
主站蜘蛛池模板: 国产一级毛片国语版 | 免费观看欧美成人禁片 | 日韩精品国产一区 | 久久精品免观看国产成人 | 亚洲日本欧美综合在线一 | 成人午夜视频一区二区国语 | 一区二区三区四区产品乱码伦 | 亚洲黄色三级网站 | 日本免费在线一区 | 91视频国产精品 | 日韩免费视频播播 | 日本韩国一级毛片中文字幕 | 国产欧美日本 | 久久福利精品 | 国产高清在线精品二区一 | 中文字幕av一区二区三区 | 国产欧美日韩不卡在线播放在线 | 日韩欧美一区二区在线 | 欧美日韩第三页 | 在线国产视频 | 日本一级特黄在线播放 | 欧美精品一区二区三区免费观看 | 亚洲国产欧美国产综合一区 | 国产精品特级毛片一区二区三区 | 亚洲男女视频 | 国产成人精品久久亚洲高清不卡 | 成人三级在线观看 | 亚洲国产激情 | 澳门一级特黄真人毛片 | 日韩在线视频不卡一区二区三区 | 成人a毛片免费视频观看 | 亚洲欧美日韩天堂 | 91精品欧美综合在线观看 | 一级毛片在线完整免费观看 | 午夜综合| 亚洲精品人成在线观看 | 久久99精品久久久久久三级 | 午夜欧美| 男女视频在线观看免费高清观看 | 韩国一级片在线观看 | 最近最新中文字幕免费的一页 |