1. 程式人生 > >php判斷手機端還是pc端

php判斷手機端還是pc端

http://www.thinkphp.cn/code/2107.html

  1. /*移動端判斷*/
  2. function isMobile()
  3. {
  4. // 如果有HTTP_X_WAP_PROFILE則一定是移動裝置
  5. if(isset ($_SERVER['HTTP_X_WAP_PROFILE']))
  6. {
  7. returntrue;
  8. }
  9. // 如果via資訊含有wap則一定是移動裝置,部分服務商會遮蔽該資訊
  10. if(isset ($_SERVER['HTTP_VIA']))
  11. {
  12. // 找不到為flase,否則為true
  13. return stristr($_SERVER['HTTP_VIA'],"wap")?true:false;
  14. }
  15. // 腦殘法,判斷手機發送的客戶端標誌,相容性有待提高
  16. if(isset ($_SERVER['HTTP_USER_AGENT']))
  17. {
  18.         $clientkeywords = array ('nokia',
  19. 'sony',
  20. 'ericsson',
  21. 'mot',
  22. 'samsung',
  23. 'htc',
  24. 'sgh',
  25. 'lg',
  26. 'sharp',
  27. 'sie-',
  28. 'philips',
  29. 'panasonic',
  30. 'alcatel',
  31. 'lenovo',
  32. 'iphone',
  33. 'ipod',
  34. 'blackberry',
  35. 'meizu',
  36. 'android',
  37. 'netfront',
  38. 'symbian'
    ,
  39. 'ucweb',
  40. 'windowsce',
  41. 'palm',
  42. 'operamini',
  43. 'operamobi',
  44. 'openwave',
  45. 'nexusone',
  46. 'cldc',
  47. 'midp',
  48. 'wap',
  49. 'mobile'
  50. );
  51. // 從HTTP_USER_AGENT中查詢手機瀏覽器的關鍵字
  52. if(preg_match("/(". implode('|', $clientkeywords).")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
  53. {
  54. returntrue;
  55. }
  56. }
  57. // 協議法,因為有可能不準確,放到最後判斷
  58. if(isset ($_SERVER
    ['HTTP_ACCEPT']))
  59. {
  60. // 如果只支援wml並且不支援html那一定是移動裝置
  61. // 如果支援wml和html但是wml在html之前則是移動裝置
  62. if((strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')!==false)&&(strpos($_SERVER['HTTP_ACCEPT'],'text/html')===false||(strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')< strpos($_SERVER['HTTP_ACCEPT'],'text/html'))))
  63. {
  64. returntrue;
  65. }
  66. }
  67. returnfalse;
  68. }

判斷是否為微信瀏覽器

function isWeixin() { 
  if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { 
    return true; 
  } else {
    return false; 
  }
}