注册 | 登录
欢迎注册会员

当前位置:首页 > 狗万 怎么玩 > PHP技术 > 正文

php作wap开发

来源:程序人生 【 】 浏览:1006 添加日期:2016-09-16 22:54:29 我要评论(0)

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.

$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_X_UP_SUBNO 应该就是手机号码

下面的是2005年,手机访问网站时发送的完整head吗?


QUOTE:
HTTP_ACCEPT:application/vnd.wap.wmlc;Type=1108,?application/vnd.wap.wmlc,?application/vnd.wap.wmlscriptc,?application/vnd.uplanet.signal,?application/vnd.uplanet.cacheop-wbxml,?application/vnd.uplanet.alert-wbxml,?application/vnd.uplanet.channel-wbxml,?application/vnd.uplanet.list-wbxml,?application/vnd.uplanet.listcmd-wbxml,?application/vnd.uplanet.bearer-choice-wbxml,?application/vnd.wap.multipart.related,?application/vnd.wap.multipart.mixed,?application/x-up-device,?application/vnd.phonecom.mmc-wbxml,?application/octet-stream,?image/vnd.wap.wbmp,?image/png,?image/bmp,image/vnd.wap.wbmp,application/vnd.uplanet.alert,application/x-up-alert,application/vnd.uplanet.bearer-choice,application/vnd.uplanet.cacheop,application/x-up-cacheop,application/vnd.uplanet.channel,application/vnd.uplanet.list,application/vnd.uplanet.listcmd,application/vnd.phonecom.mmc-xml,text/x-wap.wml,text/vnd.wap.wml,text/x-hdml,text/vnd.wap.wmlscript,?*/*
HTTP_ACCEPT_LANGUAGE:zh,?en
HTTP_CONNECTION:close
HTTP_HOST:myhyli.digichina.net
HTTP_USER_AGENT:LGE-LG8380/1.0?UP.Browser/4.1.26l?UP.Link/5.1.2.9
HTTP_COOKIE:ASPSESSIONIDQATSASTC=OEHIAIKADHNCNMNHAEIAEPLC;CUI=468;TESTUSER=N
HTTP_VIA:1.1?sh-bgw04:3128?(Squid/2.3.STABLE3),?1.0?sh-bgw04:81,?1.0?sdblbg01:81
HTTP_ACCEPT_CHARSET:utf-8,?UTF-8,?*
HTTP_CACHE_CONTROL:max-age=259200
HTTP_MAX_FORWARDS:2
HTTP_X_FORWARDED_FOR:10.83.56.88,?10.95.17.106,?127.0.0.1,?211.95.66.93
HTTP_X_UP_DEVCAP_CHARSET:utf-8
HTTP_X_UP_DEVCAP_IMMED_ALERT:1
HTTP_X_UP_DEVCAP_ISCOLOR:1
HTTP_X_UP_DEVCAP_MAX_PDU:8192
HTTP_X_UP_DEVCAP_MSIZE:7,14
HTTP_X_UP_DEVCAP_NUMSOFTKEYS:2
HTTP_X_UP_DEVCAP_SCREENCHARS:24,13
HTTP_X_UP_DEVCAP_SCREENDEPTH:18
HTTP_X_UP_DEVCAP_SCREENPIXELS:169,183
HTTP_X_UP_DEVCAP_SOFTKEYSIZE:12
HTTP_X_UP_FAX_ACCEPTS:text/plain,?application/postscript,?application/msword,?application/rtf,?application/pdf
HTTP_X_UP_FAX_ENCODINGS:7bit,?8bit,?base64,?quoted-printable
HTTP_X_UP_FAX_LIMIT:100000
HTTP_X_UP_SUBNO:[保护隐私起见,此处作者删去若干字^_^]
HTTP_X_UP_UPLINK:gateway
HTTP_X_UP_WAPPUSH_SECURE:gatewaysh.hq.wap.uni-info.com.cn:9003/pap
HTTP_X_UP_WAPPUSH_UNSECURE:gatewaysh.hq.wap.uni-info.com.cn:9002/pap
HTTP_X_UP_WTLS_INFO:off


这是2005年的另一位测试者手机留下来的


??[HTTP_ACCEPT]?=>?application/x-zip,?application/vnd.ces-quickword,?application/vnd.ces-quicksheet,?audio/wav,?audio/x-wav,?audio/basic,?audio/x-au,?audio/au,?audio/x-basic,?video/mp4,?video/mpeg4,?video/3gpp,?application/vnd.rn-realmedia,?audio/amr-wb,?audio/amr,?audio/mp3,?application/sdp,?audio/sp-midi,?audio/x-beatnik-rmf,?audio/midi,?audio/aac,?audio/mpeg,?audio/3gpp,?audio/mp4,?application/java-archive,?text/vnd.sun.j2me.app-descriptor,?text/html,?application/vnd.wap.xhtml+xml,?application/xhtml+xml,?application/vnd.wap.wmlc,?text/vnd.wap.wml,?application/vnd.wap.wbxml1,?application/vnd.wap.wmlscriptc,?multipart/mixed,?application/x-nokiagamedata,?application/vnd.ces-quickpoint,?video/avi,?application/smil,?application/pdf,?application/vnd.symbian.install,?audio/x-pn-realaudio-plugin,?audio/x-pn-realaudio,?audio/mpegurl,?audio/x-mpegurl,?text/x-co-desc,?application/vnd.oma.dd+xml,?application/x-wallet-appl.user-data-provision,?application/vnd.met.ticket,?application/vnd.nokia.ringing-tone,?text/vnd.symbian.wml.dtd,?application/vnd.wap.wbxml,?application/java,?video/3gp,?audio/rmf,?audio/x-rmf,?audio/x-midi,?application/x-java-archive,?application/vnd.oma.drm.message,?psint/eloader,?application/x-x509-ca-cert,?text/plain,?text/x-vcard,?text/calendar,?text/x-vcalendar,?video/qmv,?text/css,?image/*,?text/x-vcard,?image/gif,?image/vnd.wap.wbmp,?text/vnd.wap.wmlscript
????[HTTP_ACCEPT_LANGUAGE]?=>?zh-ch,?zh
????[HTTP_CONNECTION]?=>?close
????[HTTP_HOST]?=>?0791.jxs.cn
????[HTTP_USER_AGENT]?=>?Nokia6670/2.0?(6.0525.0ch)?SymbianOS/7.0s?Series60/2.1?Profile/MIDP-2.0?Configuration/CLDC-1.0
????[HTTP_CONTENT_LENGTH]?=>?0
????[HTTP_VIA]?=>?WTP/1.1?GDGZ-PS-GW006-WAP03.gd.chinamobile.com?(Nokia?WAP?Gateway?4.0/CD3/4.1.29)
????[HTTP_ACCEPT_ENCODING]?=>?gzip;q=1.0,?identity;?q=0.8
????[HTTP_ACCEPT_CHARSET]?=>?gb2312,?iso-8859-1,?utf-8,?iso-10646-ucs-2;?q=0.6
????[HTTP_X_WAP_PROFILE]?=>?"http://nds1.nds.nokia.com/uaprof/N6670r100.xml"
????[HTTP_X_NETWORK_INFO]?=>?GPRS,8613631402**,10.100.246.217,cmwap,unsecured
????[HTTP_X_FORWARDED_FOR]?=>?10.100.246.217
????[HTTP_X_UP_CALLING_LINE_ID]?=>?86136314026**
????[HTTP_X_SOURCE_ID]?=>?cmwap
????[HTTP_X_NOKIA_CONNECTION_MODE]?=>?TCP
????[HTTP_X_UP_BEARER_TYPE]?=>?GPRS
????[HTTP_X_NOKIA_GATEWAY_ID]?=>?NWG/4.0/CD3/Build04



你浏览的文章是 - 《php作wap开发》!
文章出处:https://www.procedurelife.com/content/akkjhd.html
100% (2)
0% (0)
评论0
头像 游客
1 2