首頁 後端開發 php教程 php作wap开发时遇到的有关问题

php作wap开发时遇到的有关问题

Jun 13, 2016 pm 01:13 PM
false function http return server

php作wap开发时遇到的问题
1.文件格式

首先要遇到的问题肯定是文件格式,在作 web开发时,大家都是用的html或xhtml,到了wap开发时,就得用wml了.什么是wml?大家可以去查更详细的资料,我这里只是略微的提到. 在我看来wml类似于xml,有非常严格的格式,在作wap页面时,都得用wml来作为显示.

wml的语法非常简单,在用php作动态输出时,一定要发送一个头信息,标明本页面是wml,而不是别的什么*ml.

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

?>

这里用的字符集是gb2312,在移动的平台上是没有任何问题的,但在联通的平台上就不行了,一定得用utf-8,为了更通用,还是用utf-8更安全.即

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

?>

2.编码

上面说了字符集都应采用utf-8,这是一种容纳了多国语言的字符集,一个汉字是占双字节,utf-8占了4个字节,因此其容纳的信息量更大.在手机上编写的汉字,在将页面内码转成utf-8后,以后再打开就可能是一堆乱码.因此大家在作注释时,尽可能的用英文注释,省得以后看不懂.像editplus, ultraedit等工具都可以转文件内码.

3.适配

世界各大手机厂商真是有病,开发出的手机千奇百怪,可以支持的格式也是五花八门.比如铃声,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.这虽然是把手机的档次和成本拉开了,但却苦了作手机开发的兄弟们了.因为不可避免的要对手机所能支持的图片,铃声等多媒体信息作出一个匹配,这个匹配的处理,我们一般叫做手机适配.

要作手机适配,我们一般得有如下资料.

1)一份详细的手机适配资料表,里面应详细的说明手机所能支持的铃声,图片格式,还得有手机型号等信息

2)要正确的获取手机的UA,什么是UA,就是(user agent),实际上就是用户的手机信息.

有了上面的东东我们才能做出适配.以下给出一个我写的在wap开发中用到的类,可以用来取手机号,手机UA.

/**

* 类名: mobile

* 描述: 手机信息类

* 其他: 偶然 编写

*/

class mobile

{

/**

* 函数名称: getPhoneNumber

* 函数功能: 取手机号

* 输入参数: none

* 函数返回值: 成功返回号码,失败返回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;

}

}

/**

* 函数名称: getHttpHeader

* 函数功能: 取头信息

* 输入参数: none

* 函数返回值: 成功返回号码,失败返回false

* 其它说明: 说明

*/

function getHttpHeader()

{

$str = ''

foreach ($_SERVER as $key=>$val)

{

$gstr = str_replace("&","&",$val);

$str.= "$key -> ".$gstr." ";

}

Return $str;

}

/**

* 函数名称: getUA

* 函数功能: 取UA

* 输入参数: none

* 函数返回值: 成功返回号码,失败返回false

* 其它说明: 说明

*/

function getUA()

{

if (isset($_SERVER['HTTP_USER_AGENT']))

{

Return $_SERVER['HTTP_USER_AGENT'];

}

else

{

Return false;

}

}

/**

* 函数名称: getPhoneType

* 函数功能: 取得手机类型

* 输入参数: none

* 函数返回值: 成功返回string,失败返回false

* 其它说明: 说明

*/

function getPhoneType()

{

$ua = $this->getUA();

if($ua!=false)

{

$str = explode(' ',$ua);

Return $str[0];

}

else

{

Return false;

}

}

/**

* 函数名称: isOpera

* 函数功能: 判断是否是opera

* 输入参数: none

* 函数返回值: 成功返回string,失败返回false

* 其它说明: 说明

*/

function isOpera()

{

$uainfo = $this->getUA();

if (preg_match('/.*Opera.*/i',$uainfo))

{

Return true;

}

else

{

Return false;

}

}

/**

* 函数名称: isM3gate

* 函数功能: 判断是否是m3gate

* 输入参数: none

* 函数返回值: 成功返回string,失败返回false

* 其它说明: 说明

*/

function isM3gate()

{

$uainfo = $this->getUA();

if (preg_match('/M3Gate/i',$uainfo))

{

Return true;

}

else

{

Return false;

}

}

/**

* 函数名称: getHttpAccept

* 函数功能: 取得HA

* 输入参数: none

* 函数返回值: 成功返回string,失败返回false

* 其它说明: 说明

*/

function getHttpAccept()

{

if (isset($_SERVER['HTTP_ACCEPT']))

{

Return $_SERVER['HTTP_ACCEPT'];

}

else

{

Return false;

}

}

/**

* 函数名称: getIP

* 函数功能: 取得手机IP

* 输入参数: none

* 函数返回值: 成功返回string

* 其它说明: 说明

*/

function getIP()

{

$ip=getenv('REMOTE_ADDR');

$ip_ = getenv('HTTP_X_FORWARDED_FOR');

if (($ip_ != "") && ($ip_ != "unknown"))

{

$ip=$ip_;

}

return $ip;

}

}

?>

4.页面设计

作wap开发时,wap页面是非常简单的.比html来说是简单到不能再简单了.在wap1.0里是没有表格之类的乱七八糟的东西的.所有的标签都是写在一个叫card的标签之内.可以用来分段.所以做页面的算是轻松了.

5.模拟器

作wap 开发免不了要用各式各样的模拟器来测试,比较好的有m3gate,openwave,opera,还有一个叫winwap的,大家最好别用他来作测试,他的兼容性太好了,即使页面有错误都能给忽略掉.测试时跟用浏览器测试web页面一样,输入网址就可以了.没有比这更容易的事了.

6.注意事项

1)空格,特别是在定义DTD时,

echo "";

?>

里面如果哪个地方少个空格,就有你受的了.以前写的时候用了页面重排之后,把一些空格给干掉了,整整找了两天才找出错误来,大家千万别步我的后尘.

2)标签,如果标签不成对,会提示错误,大家注意就是了,很容易修正.
转自:http://www.wapkf.com/viewthread.php?tid=64&extra=page%3D1

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

如何安裝、解除安裝、重設Windows伺服器備份 如何安裝、解除安裝、重設Windows伺服器備份 Mar 06, 2024 am 10:37 AM

WindowsServerBackup是WindowsServer作業系統自帶的功能,旨在協助使用者保護重要資料和系統配置,並為中小型和企業級企業提供完整的備份和復原解決方案。只有執行Server2022及更高版本的使用者才能使用此功能。在本文中,我們將介紹如何安裝、解除安裝或重設WindowsServerBackup。如何重置Windows伺服器備份如果您的伺服器備份遇到問題,備份所需時間過長,或無法存取已儲存的文件,那麼您可以考慮重新設定WindowsServer備份設定。要重設Windows

C語言return的用法詳解 C語言return的用法詳解 Oct 07, 2023 am 10:58 AM

C語言return的用法有:1、對於傳回值類型為void的函數,可以使用return語句來提前結束函數的執行;2、對於傳回值型別不為void的函數,return語句的作用是將函數的執行結果傳回給呼叫者;3、提前結束函數的執行,在函數內部,我們可以使用return語句來提前結束函數的執行,即使函數並沒有回傳值。

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP

See all articles