TShopping

 找回密碼
 註冊
搜索
查看: 803|回復: 0

[教學] PHP辨識作業系統(瀏覽器)的運用

[複製鏈接]
發表於 2013-7-3 12:53:33 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
由於作業系統及瀏覽器的不同,用戶端經常會出現不同的流覽結果,有些時候網站的效果也不能呈現,因此,必須透過辨識作業系統及瀏覽器來校定。

首先,先使用$_SERVER["HTTP_USER_AGENT"];碼來取得用戶端的作業系統及瀏覽器。
然後定義各種作業系統與瀏覽器。

第一段語法就是取得並定義作業系統及瀏覽器:



  1. <?
  2. $ua = $_SERVER["HTTP_USER_AGENT"];
  3. /* ==== Detect the OS ==== */
  4. // ---- Mobile ----

  5. // Android

  6. $android = strpos($ua, 'Android') ? true : false;
  7. // BlackBerry
  8. $blackberry = strpos($ua, 'BlackBerry') ? true : false;
  9. // iPhone
  10. $iphone = strpos($ua, 'iPhone') ? true : false;
  11. // Palm
  12. $palm = strpos($ua, 'Palm') ? true : false;

  13. // ---- Desktop ----

  14. // Linux
  15. $linux = strpos($ua, 'Linux') ? true : false;

  16. // Macintosh
  17. $mac = strpos($ua, 'Macintosh') ? true : false;

  18. // Windows
  19. $win = strpos($ua, 'Windows') ? true : false;

  20. /* ============================ */


  21. /* ==== Detect the UA ==== */

  22. // Chrome
  23. $chrome = strpos($ua, 'Chrome') ? true : false; // Google Chrome

  24. // Firefox
  25. $firefox = strpos($ua, 'Firefox') ? true : false; // All Firefox
  26. $firefox_2 = strpos($ua, 'Firefox/2.0') ? true : false; // Firefox 2
  27. $firefox_3 = strpos($ua, 'Firefox/3.0') ? true : false; // Firefox 3
  28. $firefox_3_6 = strpos($ua, 'Firefox/3.6') ? true : false; // Firefox 3.6

  29. // Internet Exlporer
  30. $msie = strpos($ua, 'MSIE') ? true : false; // All Internet Explorer
  31. $msie_7 = strpos($ua, 'MSIE 7.0') ? true : false; // Internet Explorer 7
  32. $msie_8 = strpos($ua, 'MSIE 8.0') ? true : false; // Internet Explorer 8

  33. // Opera
  34. $opera = preg_match("/bOperab/i", $ua); // All Opera


  35. // Safari
  36. $safari = strpos($ua, 'Safari') ? true : false; // All Safari
  37. $safari_2 = strpos($ua, 'Safari/419') ? true : false; // Safari 2
  38. $safari_3 = strpos($ua, 'Safari/525') ? true : false; // Safari 3
  39. $safari_3_1 = strpos($ua, 'Safari/528') ? true : false; // Safari 3.1
  40. $safari_4 = strpos($ua, 'Safari/531') ? true : false; // Safari 4

  41. /* ============================ */

  42. ?>
複製代碼







如加上這一段語法可以測試瀏覽器與作業系統(Tests for browsers and operating systems)



  1. <?

  2. if ($ua) {

  3. // ---- Test if using a Handheld Device ----
  4. if ($android) { // Android
  5. echo 'You are using an Android!
  6. ';
  7. }
  8. if ($blackbery) { // Blackbery
  9. echo 'You are using a Blackbery!
  10. ';
  11. }
  12. if ($iphone) { // iPhone
  13. echo 'You are using an iPhone!
  14. ';
  15. }
  16. if ($palm) { // Palm
  17. echo 'You are using a Palm!
  18. ';
  19. }

  20. if ($linux) { // Linux Desktop
  21. echo 'You are using Linux
  22. ';
  23. }

  24. // ---- Test if Firefox ----
  25. if ($firefox) {
  26. echo 'You are using Firefox!
  27. ';

  28. // Test Versions
  29. if ($firefox_2) { // Firefox 2
  30. echo 'Version 2';
  31. }
  32. elseif ($firefox_3) { // Firefox 3
  33. echo 'Version 3';
  34. }
  35. elseif ($firefox_3_6) { // Firefox 3.6
  36. echo 'Version 3.6';
  37. }
  38. else { // A version not listed
  39. echo 'What Version do you use?';
  40. }
  41. }

  42. // ---- Test if Safari or Chrome ----
  43. elseif ( ($safari || $chrome) AND !$iphone) {
  44. echo 'You are using a webkit powered browser (Safari or Chrome?)
  45. ';

  46. if ($safari AND !$chrome) { // Test if Safari and not Chrome
  47. echo 'You are using Safari!
  48. ';

  49. // Test if Safari Mac or Safari Windows
  50. if ($mac AND $safari) { // Safari Mac
  51. echo 'You are using Safari on a Mac
  52. ';
  53. }
  54. if ($win AND $safari) { // Safari Windows
  55. echo 'You are using Safari on Windows
  56. ';
  57. }

  58. // Test Versions
  59. if ($safari_2) { // Safari 2
  60. echo 'Version 2
  61. ';
  62. }
  63. elseif ($safari_3) { // Safari 3
  64. echo 'Version 3
  65. ';
  66. }
  67. elseif ($safari_4) { // Safari 4
  68. echo 'Version 4
  69. ';
  70. }
  71. else {
  72. echo 'What version are you using?';
  73. }
  74. }

  75. elseif ($chrome) { // Test if Chrome
  76. echo 'You are using Chrome!';
  77. }
  78. }

  79. // ---- Test if iPhone with Safari 3.1 ----
  80. elseif ($iphone AND $safari_3_1) {
  81. echo 'You are using Safari 3.1';
  82. }

  83. // ---- Test if Internet Explorer ----
  84. elseif ($msie) {
  85. echo 'You are using Internet Explorer!
  86. ';

  87. // Test Versions
  88. if ($msie_7) { // Internet Explorer 7
  89. echo 'Version 7';
  90. }
  91. elseif ($msie_8) { // Internet Explorer 8
  92. echo 'Version 8';
  93. }
  94. else {
  95. echo 'What Version do you use?';
  96. }
  97. }

  98. // ---- Test if Opera ----
  99. elseif ($opera) {
  100. echo 'You are using Opera!';
  101. }

  102. // ---- If none of the above ----
  103. else {
  104. echo 'What browser are you using?';
  105. }
  106. }
  107. ?>
複製代碼






這一段簡單的語法可以將手機用戶導入手機版(Mobile Redirect to GOOGLE)



  1. <?
  2. $ua = $_SERVER["HTTP_USER_AGENT"];
  3. $android = strpos($ua, 'Android') ? true : false;
  4. $blackberry = strpos($ua, 'BlackBerry') ? true : false;
  5. $iphone = strpos($ua, 'iPhone') ? true : false;
  6. $palm = strpos($ua, 'Palm') ? true : false;
  7. if ($android || $blackberry || $iphone || $palm) {
  8. // 301 redirection
  9. header("HTTP/1.1 301 Moved Permanently");
  10. header("Location: http://m.google.com");
  11. exit();
  12. }
  13. ?>
複製代碼






這一段語法可以位個別瀏覽器制定CSS Give IE7 different CSS with HTML explanation



  1. <?

  2. $ua = $_SERVER["HTTP_USER_AGENT"];
  3. $msie_7 = strpos($ua, 'MSIE 7.0') ? true : false;

  4. if ($msie_7) {
  5. echo '

  6. ie7class

  7. ';
  8. }
  9. ?>
複製代碼






這一段語法可以補充IE所欠缺的功能


  1. <?

  2. if ($msie_7) {
  3. echo "

  4. oh yah, MSIE7 can't understand inline-block... The MSIE6 & 7 Fix?

  5. <style type="text/css" media="screen" title="IE7 CSS">
  6. .inline-block {display:inline;zoom:1;}
  7. </style>

  8. ";
  9. }
  10. ?>
複製代碼







 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-5 10:26 , Processed in 0.055170 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表