选择自 slamdunk3 的 blog
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."\r\n";
}
return $str;
}
/**
* 函数名称: getua
* 函数功能: 取ua
* 输入参数: none
* 函数返回值: 成功返回号码,失败返回false
* 其它说明: 说明
*/
function getua()
{
if (isset($_server['http_user_agent']))
{
return $_server['http_user_agent'];
}
else
{
return false;
}
}
/**
* 函数名称: getph.netype
* 函数功能: 取得手机类型
* 输入参数: none
* 函数返回值: 成功返回string,失败返回false
* 其它说明: 说明
*/
function getph.netype()
{
$ua = $this->getua();
if($ua!=false)
{
$str = explode(' ',$ua);
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器