判断用户设备是PC端还是移动终端之Php和Javascript

当用户使用移动终端访问网站时,我们可以通过程序检测用户终端类型,如果是手机用户,则引导用户访问适配手机屏幕的移动站点。接下来我们介绍分别使用PHP和JAVASCRIPT代码判断用户终端类型。

PHP版

我们使用PHP的$_SERVER[‘HTTP_USER_AGENT’]来获取手机用户浏览器的用户代理,然后匹配已有的各种手机浏览器代理库,如果含有匹配的关键字,则判断为移动终端用户。

  1. function is_mobile() {  
  2. $user_agent = $_SERVER[‘HTTP_USER_AGENT’];  
  3. $mobile_agents = array(“240×320”,“acer”,“acoon”,“acs-“,“abacho”,“ahong”,“airness”,“alcatel”,  
  4. “amoi”,“android”,“anywhereyougo.com”,“applewebkit/525”,“applewebkit/532”,“asus”,“audio”,  
  5. “au-mic”,“avantogo”,“becker”,“benq”,“bilbo”,“bird”,“blackberry”,“blazer”,“bleu”,  
  6. “cdm-“,“compal”,“coolpad”,“danger”,“dbtel”,“dopod”,“elaine”,“eric”,“etouch”,“fly “,  
  7. “fly_”,“fly-“,“go.web”,“goodaccess”,“gradiente”,“grundig”,“haier”,“hedy”,“hitachi”,  
  8. “htc”,“huawei”,“hutchison”,“inno”,“ipad”,“ipaq”,“iphone”,“ipod”,“jbrowser”,“kddi”,  
  9. “kgt”,“kwc”,“lenovo”,“lg “,“lg2”,“lg3”,“lg4”,“lg5”,“lg7”,“lg8”,“lg9”,  
  10. “lg-“,“lge-“,“lge9”,“longcos”,“maemo”,  
  11. “mercator”,“meridian”,“micromax”,“midp”,“mini”,“mitsu”,“mmm”,“mmp”,“mobi”,“mot-“,  
  12. “moto”,“nec-“,“netfront”,“newgen”,“nexian”,“nf-browser”,“nintendo”,“nitro”,“nokia”,  
  13. “nook”,“novarra”,“obigo”,“palm”,“panasonic”,“pantech”,“philips”,“phone”,“pg-“,  
  14. “playstation”,“pocket”,“pt-“,“qc-“,“qtek”,“rover”,“sagem”,“sama”,“samu”,“sanyo”,  
  15. “samsung”,“sch-“,“scooter”,“sec-“,“sendo”,“sgh-“,“sharp”,“siemens”,“sie-“,“softbank”,  
  16. “sony”,“spice”,“sprint”,“spv”,“symbian”,“tablet”,“talkabout”,“tcl-“,“teleca”,“telit”,  
  17. “tianyu”,“tim-“,“toshiba”,“tsm”,“up.browser”,“utec”,“utstar”,“verykool”,“virgin”,  
  18. “vk-“,“voda”,“voxtel”,“vx”,“wap”,“wellco”,“wig browser”,“wii”,“windows ce”,  
  19. “wireless”,“xda”,“xde”,“zte”);  
  20. $is_mobile = false;  
  21. foreach ($mobile_agents as $device) {  
  22. if (stristr($user_agent$device)) {  
  23. $is_mobile = true;  
  24. break;  
  25. }  
  26. }  
  27. return $is_mobile;  
  28. }  

is_mobile()来判断用户终端类型,将收集到的当今各种手机的HTTP_USER_AGENT归结到数组$mobile_agents中,并进行匹配。使用时只需调用函数is_mobile()。如以下代码表示,当匹配用户为手机访问时,页面跳转到网站手机版m.xxx.com。

  1. if (is_mobile()) {  
  2. header(‘Location:http://m.xxx.com’);  
  3. else {  
  4. echo ‘请使用手机访问.’;  
  5. }  

Javascript版
您也可以直接在前端页面上加入一段Javascript脚本来判断用户的终端类型。Javascript也是通过获取浏览器的user-agent信息,然后匹配已有的user-agent信息库。

  1. if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone)/i)))  
  2. {  
  3. location.replace(“http://m.xxx.com”)  
  4. }else{  
  5. document.write(“请使用手机访问.”);  
  6. }  

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

www.admin122.com 关注微信
24小时客服在线