簡體   English   中英

如何讓php判斷它是否在iOS或MacOS上運行

[英]How to get php to tell if it run is on iOS or MacOS

我一直在嘗試運行網站的兩種不同版本:一種用於桌面,另一種用於移動。 我決定使它像這樣(使用PHP)工作:如果在Windows,Mac或其他桌面操作系統上,請運行此HTML。 如果在Android,iOS等上運行該HTML。 當我通過Windows或Android訪問我的網站時,將運行相應操作系統的HTML。 但是,當我通過iPhone或MacBook進入網站時,無論用戶是在iPhone還是MacBook上,iPhone和Mac的代碼都會運行:這是我使用的代碼:

<!--HTML for macOS --> 

 <?php
if(preg_match( '/macintosh|mac os x/i',  $_SERVER['HTTP_USER_AGENT'])) {

echo' <!--some HTML--> ';  }  ?>


<!--HTML for iPhone--> 


    <?php

       ifif(preg_match('/iphone/i', $_SERVER['HTTP_USER_AGENT'])) {

        echo' <!--some HTML-->  ';  }  ?>

如果您想觀察問題,請轉至bamfacts.tk,謝謝!

以下腳本會告訴您是OS X還是iOS。 您只需要查看HTTP_USER_AGENT是什么,使用一些正則表達式或字符串操作就可以了。

<?php
// Apple detection array
$Apple = array();
$Apple['UA'] = $_SERVER['HTTP_USER_AGENT'];
$Apple['Device'] = false;
$Apple['Types'] = array('iOS', 'Macintosh');
foreach ($Apple['Types'] as $d => $t) {
    $Apple[$t] = (strpos($Apple['UA'], $t) !== false);
    $Apple['Device'] |= $Apple[$t];
}
// is this an Apple device?
echo
    "<p>Apple device? ", ($Apple['Device'] ? 'true' : 'false'),
    "</p><p>iOS? ", ($Apple['iOS'] ? 'true' : 'false'),
    "</p><p>OS X? ", ($Apple['Macintosh'] ? 'true' : 'false'),
    '</p>';
?>

您也可以使用Java Script進行操作,如下所示:

var Apple = {};
Apple.UA = navigator.userAgent;
Apple.Device = false;
Apple.Types = ["iOS", "Macintosh"];
for (var d = 0; d < Apple.Types.length; d++) {
    var t = Apple.Types[d];
    Apple[t] = !!Apple.UA.match(new RegExp(t, "i"));
    Apple.Device = Apple.Device || Apple[t];
}

// is this an Apple device?
alert(
    "Is it an Apple device? " + Apple.Device +
    " \nIs it iOS? " + Apple.iOS +
    " \nIs it OSX? " + Apple.Macintosh
);

您可以在此處看到Javascript小提琴。

我不認為這是過時的想法,為什么不使用響應式設計。 類似於Bootstrap( http://getbootstrap.com/ )的Foundation( http://foundation.zurb.com/ )。 或自己動手做( http://www.w3schools.com/html/html_sensitive.asp

響應式基本上是指網站可以縮放為訪問者正在使用的屏幕格式(電話,平板電腦,筆記本電腦,大型台式機)。 這樣,您的網站就可以在每個設計上工作,而不必為每個設計創建網站。

您也可以使用javascript。

 /* Check if mobile */

var isMobile = {
   Android: function() {
       return navigator.userAgent.match(/Android/i);
   },
   BlackBerry: function() {
       return navigator.userAgent.match(/BlackBerry/i);
   },
   iOS: function() {
       return navigator.userAgent.match(/iPhone|iPad|iPod/i);
   },
   Opera: function() {
       return navigator.userAgent.match(/Opera Mini/i);
   },
   Windows: function() {
       return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i);
   },
   any: function() {
       return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
   }
};   

if(isMobile.any())
{
 //this is mobile
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM