关于【手机适配】
2010-08-08 23:25
211 查看
世界各大手机厂商开发出的手机千奇百怪,可以支持的格式也是五花八门.比如铃声,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.这虽然是把手机的档次和成本拉开了,但却苦了作手机开发的兄弟们了.因为不可避免的要对手机所能支持的图片,铃声等多媒体信息作出一个匹配,这个匹配的处理,我们一般叫做手机适配.
要作手机适配,我们一般得有如下资料.
1) 一份详细的手机适配资料表,里面应详细的说明手机所能支持的铃声,图片格式,还得有手机型号等信息。
2) 要正确的获取手机的UA,什么是UA,就是(user agent),实际上就是用户的手机信息。
有了上面的东东我们才能做出适配.以下给出一个我写的在wap开发中用到的类,可以用来取手机号,手机UA.
这里写个统一取机种的类:
要作手机适配,我们一般得有如下资料.
1) 一份详细的手机适配资料表,里面应详细的说明手机所能支持的铃声,图片格式,还得有手机型号等信息。
2) 要正确的获取手机的UA,什么是UA,就是(user agent),实际上就是用户的手机信息。
有了上面的东东我们才能做出适配.以下给出一个我写的在wap开发中用到的类,可以用来取手机号,手机UA.
这里写个统一取机种的类:
<?PHP /** * 类名: get mobile info * 描述: 手机信息类 * 其他: zhoz.com */ class MobileInfo { /** * 函数名称: getPhoneNumber * 函数功能: 取手机号 * 输入参数: none * 函数返回值: 成功返回号码,失败返回false * 其它说明: http://log.zhoz.com */ 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 * 其它说明: http://log.zhoz.com */ function getHttpHeader(){ $str = ''; foreach ($_SERVER as $key=>$val) { $gstr = str_replace("&","&",$val); $str.= "$key -> ".$gstr."/r/n"; } Return $str; } /** * 函数名称: getUA * 函数功能: 取UA * 输入参数: none * 函数返回值: 成功返回号码,失败返回false * 其它说明: http://log.zhoz.com */ function getUA() { if (isset($_SERVER['HTTP_USER_AGENT'])) { Return $_SERVER['HTTP_USER_AGENT']; } else { Return false; } } /** * 函数名称: getPhoneType * 函数功能: 取得手机类型 * 输入参数: none * 函数返回值: 成功返回string,失败返回false * 其它说明: http://log.zhoz.com */ function getPhoneType() { $ua = $this->getUA(); if($ua!=false) { $str = explode(' ',$ua); Return $str[0]; } else { Return false; } } /** * 函数名称: isOpera * 函数功能: 判断是否是opera * 输入参数: none * 函数返回值: 成功返回string,失败返回false * 其它说明: http://log.zhoz.com */ function isOpera() { $uainfo = $this->getUA(); if (preg_match('/.*Opera.*/i',$uainfo)) { Return true; } else { Return false; } } /** * 函数名称: isM3gate * 函数功能: 判断是否是m3gate * 输入参数: none * 函数返回值: 成功返回string,失败返回false * 其它说明: http://log.zhoz.com */ 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; } } ?>
相关文章推荐
- 谈谈关于前端开发网页适配手机的相关设置
- 关于手机游戏的适配的无责任猜想
- 关于手机适配中的rem的学习随笔
- 关于PC站和手机站不同适配方法的优缺点比较
- 关于小米4 以及酷派手机安卓开发 调用相机相册适配的问题
- 关于iphone大屏手机的适配问题
- popupwindow关于华为手机的适配
- 关于在页面加载完后使用js修改图片高度进行手机屏幕适配的问题
- android 关于状态栏的设置,修改,适配的问题包括:4.x,5.x,6.x的手机的适配
- 关于手机适配的方案(transform)
- 【关于适配】华为手机PopupWindow弹出时背景不变暗 或者 华为手机PopupWindow背景一闪一闪问题处理
- 关于设置了LayoutAlgorithm.SINGLE_COLUMN后,某些手机的webview仍然无法适配图片的解决方案
- 关于IPhone 手机适配问题
- Android 手机关于屏幕适配
- Android关于手机适配的一些问题
- 关于android双卡手机sim卡信息采集适配的心得
- 关于手机网页viewpoint缩放适配各种机型各种浏览器的总结
- 关于DPR2.0&DPR3.0手机上的适配问题(focusdroid)
- 关于JSP适配手机的问题
- 关于android 手机适配的范围问题