Ich habe eine einfache PHP-Webseite und möchte unterschiedliche Inhalte zurückgeben, je nachdem, ob über ein iPhone / iPad oder einen Webbrowser darauf zugegriffen wird. Wie kann ich das machen?
php
iphone
ios
http-headers
Snilleblixten
quelle
quelle
preg_match("/iPhone|Android|iPad|iPod|webOS/", $_SERVER['HTTP_USER_AGENT'], $matches); $os = current($matches); switch($os){ case 'iPhone': /*do something...*/ break; case 'Android': /*do something...*/ break; case 'iPad': /*do something...*/ break; case 'iPod': /*do something...*/ break; case 'webOS': /*do something...*/ break; }
quelle
function user_agent(){ $iPod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod"); $iPhone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); $iPad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad"); $android = strpos($_SERVER['HTTP_USER_AGENT'],"Android"); file_put_contents('./public/upload/install_log/agent',$_SERVER['HTTP_USER_AGENT']); if($iPad||$iPhone||$iPod){ return 'ios'; }else if($android){ return 'android'; }else{ return 'pc'; } }
quelle
$browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
quelle
function isIosDevice(){ $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); $iosDevice = array('iphone', 'ipod', 'ipad'); $isIos = false; foreach ($iosDevice as $val) { if(stripos($userAgent, $val) !== false){ $isIos = true; break; } } return $isIos; }
quelle
!empty($_SERVER['HTTP_USER_AGENT'])
Da hinzufügen,$_SERVER['HTTP_USER_AGENT']
das nicht festgelegt ist, wenn der Client überhaupt keinen Benutzeragenten sendet. Ihre Funktion stürzt dann ab / zeigt einen Hinweis an.Wenn Sie nur mobile Geräte im Allgemeinen erkennen möchten, bietet Cake Unterstützung mit RequestHandler-> isMobile () ( http://book.cakephp.org/2.0/en/core-libraries/components/request-handling.html#) RequestHandlerComponent :: isMobile )
quelle
<?php $iPhone = false; $AndroidPhone = false; $deviceType = 0; $ua = strtolower($_SERVER['HTTP_USER_AGENT']); print "<br>".$ua; if(strpos($ua,"iphone") !== false ){ $iPhone = true; } if(strpos($ua,"android") !== false){ if(strpos($_SERVER['HTTP_USER_AGENT'],"mobile")){ $AndroidPhone = true; } } if(stripos($_SERVER['HTTP_USER_AGENT'],"iPad")){ $iPad = true; $Tablet = true; $iOS = true; } if($AndroidPhone==true || $iPhone==true) { $deviceType = 1; } ?>
quelle
Die PHP-Lösung von 51Degrees ist dazu in der Lage. Sie können die kostenlose Open Source API hier https://github.com/51Degrees/Device-Detection herunterladen . Mit der HardwareFamily-Eigenschaft können Sie feststellen, ob es sich um ein iPad / iPod / iPhone usw. handelt.
Aufgrund der Art der Benutzeragenten von Apple gibt das erste Ergebnis ein generisches Gerät zurück. Wenn Sie jedoch an dem bestimmten Gerät interessiert sind, können Sie mithilfe einer clientseitigen JavaScript-Überschreibung ein bestimmtes Modell ermitteln.
Zu diesem Zweck können Sie etwas Ähnliches wie die folgende Logik implementieren, sobald Sie festgestellt haben, dass es sich um ein Apple-Gerät handelt, in diesem Fall für ein iPhone.
// iPhone model checks. function getiPhoneModel() { // iPhone 6 Plus if ((window.screen.height / window.screen.width == 736 / 414) && (window.devicePixelRatio == 3)) { return "iPhone 6 Plus"; } // iPhone 6 else if ((window.screen.height / window.screen.width == 667 / 375) && (window.devicePixelRatio == 2)) { return "iPhone 6"; } // iPhone 5/5C/5S or 6 in zoom mode else if ((window.screen.height / window.screen.width == 1.775) && (window.devicePixelRatio == 2)) { return "iPhone 5, 5C, 5S or 6 (display zoom)"; } // iPhone 4/4S else if ((window.screen.height / window.screen.width == 1.5) && (window.devicePixelRatio == 2)) { return "iPhone 4 or 4S"; } // iPhone 1/3G/3GS else if ((window.screen.height / window.screen.width == 1.5) && (window.devicePixelRatio == 1)) { return "iPhone 1, 3G or 3GS"; } else { return "Not an iPhone"; }; }
Oder für ein iPad
function getiPadVersion() { var pixelRatio = getPixelRatio(); var return_string = "Not an iPad"; if (pixelRatio == 1 ) { return_string = "iPad 1, iPad 2, iPad Mini 1"; } if (pixelRatio == 2) { return_string = "iPad 3, iPad 4, iPad Air 1, iPad Air 2, iPad Mini 2, iPad Mini 3"; } return return_string; }
Weitere Informationen zur Forschung, die 51Degrees an Apple-Geräten durchgeführt hat, finden Sie in ihrem Blogbeitrag unter https://51degrees.com/blog/device-detection-for-apple-iphone-and-ipad .
Offenlegung: Ich arbeite für 51 Grad.
quelle
Als Antwort auf Haim Evgis Code habe ich! == false bis zum Ende hinzugefügt, damit es für mich funktioniert
$iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod") !== false; $iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone") !== false; $iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad") !== false; $Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android") !== false;
quelle
Es ist Arbeit für Iphone
<?php $browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); if ($browser == true){ $browser = 'iphone'; } ?>
quelle