[英]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.