2010-11-07 21 views
121

Qual è il modo più semplice per sapere se un utente sta utilizzando un dispositivo mobile per navigare nel mio sito utilizzando PHP?Il modo più semplice per rilevare un dispositivo mobile

Mi sono imbattuto in molte classi che è possibile utilizzare, ma speravo in una semplice condizione!

C'è un modo per farlo?

+0

Puoi inserire un javascript nella pagina che controlla la risoluzione dello schermo, ma quella sarebbe sul lato client: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow – thejh

+0

Ecco la tua soluzione: http: // code .google.com/p/php-mobile-detect2/ –

risposta

230

Ecco una fonte:

Codice:

<?php 

$useragent=$_SERVER['HTTP_USER_AGENT']; 

if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) 

header('Location: http://detectmobilebrowser.com/mobile'); 

?> 
+28

Grazie per quello, una delle più grandi condizioni se ho visto, ma è semplice! – Abs

+5

Potrebbe HTTP_USER_AGENT essere simulato? –

+0

fantastico! buona risposta =) –

5

Non esiste un modo affidabile. Si può forse guardare allo user-agent string, ma questo può essere falsificato o omesso. In alternativa, è possibile utilizzare un servizio GeoIP per cercare l'indirizzo IP del client, ma, di nuovo, questo può essere facilmente aggirato.

+3

GeoIP non sarebbe di grande aiuto. Anche se si potesse determinare che il loro IP appartenga a una rete mobile, potrebbero legare la connessione a un computer desktop. Se non si tratta di una rete mobile, in realtà non c'è niente che tutti i dispositivi possono connettere tramite Wi-Fi. Inoltre hai il problema di mantenere un database globale di intervalli IP. Usando l'agente utente, anche se non è perfetto, suppongo che sia molto più affidabile. Non è che sia davvero un problema di sicurezza pubblicare i contenuti del browser sbagliato, quindi a chi importa? Se qualcuno sta spoofando la UA, è probabile che sappia già in che cosa si stanno mettendo. – Mike

67

ho scritto this script to detect a mobile browser in PHP.

Il codice rileva un utente in base alla stringa user-agent di preg_match(), parole che si trovano solo nelle stringhe user-agent dei dispositivi mobili dopo centinaia di test. Ha una precisione del 100% su tutti i dispositivi mobili attuali e attualmente lo sto aggiornando per supportare più dispositivi mobili man mano che escono. Il codice si chiama isMobile ed è la seguente:

function isMobile() { 
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); 
} 

è possibile utilizzarlo in questo modo:

// Use the function 
if(isMobile()){ 
    // Do something for only mobile users 
} 
else { 
    // Do something for only desktop users 
} 

per reindirizzare un utente al tuo sito mobile, farei questo:

// Create the function, so you can use it 
function isMobile() { 
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); 
} 
// If the user is on a mobile device, redirect them 
if(isMobile()){ 
    header("Location: http://m.yoursite.com/"); 
} 

Fatemi sapere se avete domande e buona fortuna!

+4

@RobertHarvey - im confuso. stanno tutti chiedendo fondamentalmente la stessa cosa, quindi cosa dovrei fare, oltre a rispondere alla domanda? digli di usare qualcos'altro ogni volta? Sono nuovo qui quindi non sono sicuro se dovrei collegare alla prima risposta? –

+0

Questa parola chiave "tablet" mi sta creando un problema su alcune intestazioni IE8 (PC) che hanno "Tablet PC 2.0" in risposta –

+0

Perché utilizzare una funzione per memorizzare la condizione anziché una variabile semplice e fare 'if ($ isMobile) { } '? – D4V1D

1

PHP device detection from 51Degrees.com fa esattamente quello che vuoi: rileva i dispositivi mobili e le varie proprietà associate ai dispositivi rilevati. È semplice da usare e non richiede manutenzione. La configurazione avviene in 4 semplici passaggi:

  1. Scaricare il file zip da http://sourceforge.net/projects/fiftyone/.
  2. Decomprimi il file in una directory nel tuo server PHP.
  3. quindi aggiungere il seguente codice alla tua pagina PHP:
  4. require_once 'path/to/core/51Degrees.php'; 
    require_once 'path/to/core/51Degrees_usage.php'; 
    
  5. Tutte le informazioni sui dispositivi disponibili saranno contenuti in $ array _51d:
  6. if ($_51d['IsMobile']) 
    { 
        //Start coding for a mobile device here. 
    } 
    

51Degrees rivelatore dispositivo non usare le espressioni regolari per i rilevamenti. Solo le parti importanti delle intestazioni HTTP vengono utilizzate per abbinare i dispositivi. Il che rende questa soluzione la più veloce (5 000 000 rilevazioni al secondo su hardware mediocre) e la più accurata (precisione del 99,97%) con l'aggiunta settimanale di centinaia di nuovi dispositivi al database (i tipi di dispositivi supportati includono console, smart TV, e-reader, compresse e altro).

Il software è open source distribuito con Mozilla Public License 2 e compatibile con progetti commerciali e open source. Come soluzione bonus 51Degrees contiene anche un complementare PHP image optimiser che può ridimensionare automaticamente le immagini per dispositivi mobili.

Per impostazione predefinita 51Degrees Il rilevatore di dispositivi PHP utilizza il file di dati Lite che è gratuito e contiene oltre 30000 dispositivi e 50 proprietà per ciascun dispositivo. Il file Lite viene aggiornato una volta ogni 3 mesi. Se si desidera disporre di un livello superiore di dettagli sulla richiesta di dispositivi mobili, i file di dati Premium ed Enterprise sono disponibili. Premium contiene oltre 70000 dispositivi e 100 proprietà per ogni dispositivo con aggiornamenti settimanali. L'azienda viene aggiornata quotidianamente e contiene oltre 150000 dispositivi con 150 proprietà per ciascuno.

Full list of device properties.
Compare data files.

+1

che il software è fastidioso. nessun supporto per IIS, nessuna libreria solo php. – Tschallacka

10

ho trovato mobile detect di essere molto semplice e si può solo usare la funzione isMobile() :)

+1

Mi piace il fatto che questa classe sembra essere aggiornata regolarmente. [Ultima versione] (https://github.com/serbanghita/Mobile-Detect/releases) 24 giorni fa a partire da questo commento. – showdev

1

Hai solo bisogno di includere user_agent.php di file che può essere trovato da Mobile device detection in PHP pagina e utilizzare il seguente codice.

<?php 
//include file 
include_once 'user_agent.php'; 

//create an instance of UserAgent class 
$ua = new UserAgent(); 

//if site is accessed from mobile, then redirect to the mobile site. 
if($ua->is_mobile()){ 
    header("Location:http://m.codexworld.com"); 
    exit; 
} 
?> 
3

Mi chiedevo, fino ad ora, perché qualcuno non aveva postato un po 'alterazione della risposta accettata per l'utilizzo del implode() al fine di avere una migliore leggibilità del codice. Quindi qui si va:

<?php 
$uaFull = strtolower($_SERVER['HTTP_USER_AGENT']); 
$uaStart = substr($uaFull, 0, 4); 

$uaPhone = [ // use `= array(` if PHP<5.4 
    '(android|bb\d+|meego).+mobile', 
    'avantgo', 
    'bada\/', 
    'blackberry', 
    'blazer', 
    'compal', 
    'elaine', 
    'fennec', 
    'hiptop', 
    'iemobile', 
    'ip(hone|od)', 
    'iris', 
    'kindle', 
    'lge ', 
    'maemo', 
    'midp', 
    'mmp', 
    'mobile.+firefox', 
    'netfront', 
    'opera m(ob|in)i', 
    'palm(os)?', 
    'phone', 
    'p(ixi|re)\/', 
    'plucker', 
    'pocket', 
    'psp', 
    'series(4|6)0', 
    'symbian', 
    'treo', 
    'up\.(browser|link)', 
    'vodafone', 
    'wap', 
    'windows ce', 
    'xda', 
    'xiino' 
]; // use `);` if PHP<5.4 

$uaMobile = [ // use `= array(` if PHP<5.4 
    '1207', 
    '6310', 
    '6590', 
    '3gso', 
    '4thp', 
    '50[1-6]i', 
    '770s', 
    '802s', 
    'a wa', 
    'abac|ac(er|oo|s\-)', 
    'ai(ko|rn)', 
    'al(av|ca|co)', 
    'amoi', 
    'an(ex|ny|yw)', 
    'aptu', 
    'ar(ch|go)', 
    'as(te|us)', 
    'attw', 
    'au(di|\-m|r |s)', 
    'avan', 
    'be(ck|ll|nq)', 
    'bi(lb|rd)', 
    'bl(ac|az)', 
    'br(e|v)w', 
    'bumb', 
    'bw\-(n|u)', 
    'c55\/', 
    'capi', 
    'ccwa', 
    'cdm\-', 
    'cell', 
    'chtm', 
    'cldc', 
    'cmd\-', 
    'co(mp|nd)', 
    'craw', 
    'da(it|ll|ng)', 
    'dbte', 
    'dc\-s', 
    'devi', 
    'dica', 
    'dmob', 
    'do(c|p)o', 
    'ds(12|\-d)', 
    'el(49|ai)', 
    'em(l2|ul)', 
    'er(ic|k0)', 
    'esl8', 
    'ez([4-7]0|os|wa|ze)', 
    'fetc', 
    'fly(\-|_)', 
    'g1 u', 
    'g560', 
    'gene', 
    'gf\-5', 
    'g\-mo', 
    'go(\.w|od)', 
    'gr(ad|un)', 
    'haie', 
    'hcit', 
    'hd\-(m|p|t)', 
    'hei\-', 
    'hi(pt|ta)', 
    'hp(i|ip)', 
    'hs\-c', 
    'ht(c(\-| |_|a|g|p|s|t)|tp)', 
    'hu(aw|tc)', 
    'i\-(20|go|ma)', 
    'i230', 
    'iac(|\-|\/)', 
    'ibro', 
    'idea', 
    'ig01', 
    'ikom', 
    'im1k', 
    'inno', 
    'ipaq', 
    'iris', 
    'ja(t|v)a', 
    'jbro', 
    'jemu', 
    'jigs', 
    'kddi', 
    'keji', 
    'kgt(|\/)', 
    'klon', 
    'kpt ', 
    'kwc\-', 
    'kyo(c|k)', 
    'le(no|xi)', 
    'lg(g|\/(k|l|u)|50|54|\-[a-w])', 
    'libw', 
    'lynx', 
    'm1\-w', 
    'm3ga', 
    'm50\/', 
    'ma(te|ui|xo)', 
    'mc(01|21|ca)', 
    'm\-cr', 
    'me(rc|ri)', 
    'mi(o8|oa|ts)', 
    'mmef', 
    'mo(01|02|bi|de|do|t(\-| |o|v)|zz)', 
    'mt(50|p1|v)', 
    'mwbp', 
    'mywa', 
    'n10[0-2]', 
    'n20[2-3]', 
    'n30(0|2)', 
    'n50(0|2|5)', 
    'n7(0(0|1)|10)', 
    'ne((c|m)\-|on|tf|wf|wg|wt)', 
    'nok(6|i)', 
    'nzph', 
    'o2im', 
    'op(ti|wv)', 
    'oran', 
    'owg1', 
    'p800', 
    'pan(a|d|t)', 
    'pdxg', 
    'pg(13|\-([1-8]|c))', 
    'phil', 
    'pire', 
    'pl(ay|uc)', 
    'pn\-2', 
    'po(ck|rt|se)', 
    'prox', 
    'psio', 
    'pt\-g', 
    'qa\-a', 
    'qc(07|12|21|32|60|\-[2-7]|i\-)', 
    'qtek', 
    'r380', 
    'r600', 
    'raks', 
    'rim9', 
    'ro(ve|zo)', 
    's55\/', 
    'sa(ge|ma|mm|ms|ny|va)', 
    'sc(01|h\-|oo|p\-)', 
    'sdk\/', 
    'se(c(\-|0|1)|47|mc|nd|ri)', 
    'sgh\-', 
    'shar', 
    'sie(\-|m)', 
    'sk\-0', 
    'sl(45|id)', 
    'sm(al|ar|b3|it|t5)', 
    'so(ft|ny)', 
    'sp(01|h\-|v\-|v)', 
    'sy(01|mb)', 
    't2(18|50)', 
    't6(00|10|18)', 
    'ta(gt|lk)', 
    'tcl\-', 
    'tdg\-', 
    'tel(i|m)', 
    'tim\-', 
    't\-mo', 
    'to(pl|sh)', 
    'ts(70|m\-|m3|m5)', 
    'tx\-9', 
    'up(\.b|g1|si)', 
    'utst', 
    'v400', 
    'v750', 
    'veri', 
    'vi(rg|te)', 
    'vk(40|5[0-3]|\-v)', 
    'vm40', 
    'voda', 
    'vulc', 
    'vx(52|53|60|61|70|80|81|83|85|98)', 
    'w3c(\-|)', 
    'webc', 
    'whit', 
    'wi(g |nc|nw)', 
    'wmlb', 
    'wonu', 
    'x700', 
    'yas\-', 
    'your', 
    'zeto', 
    'zte\-' 
]; // use `);` if PHP<5.4 

$isPhone = preg_match('/' . implode($uaPhone, '|') . '/i', $uaFull); 
$isMobile = preg_match('/' . implode($uaMobile, '|') . '/i', $uaStart); 

if($isPhone || $isMobile) { 
    // do something with that device 
} else { 
    // process normally 
} 
0
function isMobile(){ 
    if(defined(isMobile))return isMobile; 
    @define(isMobile,(!([email protected](@$_SERVER['HTTP_USER_AGENT']))?0: 
    (
     preg_match('/(android|bb\d+|meego).+mobile|silk|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i' 
     ,$HUA) 
    || 
     preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i' 
     ,$HUA) 
    ) 
    )); 
} 

echo isMobile()?1:0; 
// OR 
echo isMobile?1:0; 
4
function isMobileDev(){ 
    if(isset($_SERVER['HTTP_USER_AGENT']) and !empty($_SERVER['HTTP_USER_AGENT'])){ 
     $user_ag = $_SERVER['HTTP_USER_AGENT']; 
     if(preg_match('/(Mobile|Android|Tablet|GoBrowser|[0-9]x[0-9]*|uZardWeb\/|Mini|Doris\/|Skyfire\/|iPhone|Fennec\/|Maemo|Iris\/|CLDC\-|Mobi\/)/uis',$user_ag)){ 
      return true; 
     }else{ 
      return false; 
     }; 
    }else{ 
     return false;  
    }; 
}; 
1

Semplicemente si può seguire il link. è molto semplice e molto facile da usare. Sto usando questo. Funziona bene.

http://mobiledetect.net/

uso come questo

//include the file 
require_once 'Mobile_Detect.php'; 
$detect = new Mobile_Detect; 

// Any mobile device (phones or tablets). 
if ($detect->isMobile()) { 
//do some code 
} 

// Any tablet device. 
if($detect->isTablet()){ 
//do some code 
} 
1

si potrebbe anche utilizzare una terza parte api per fare il rilevamento dei dispositivi tramite stringa user agent. Uno di questi è useragentinfo.co. Basta registrarsi e ottenere il vostro api token e di seguito è come si ottiene informazioni dispositivo tramite PHP:

<?php 
$useragent = $_SERVER['HTTP_USER_AGENT']; 
// get api token at https://useragentinfo.co/ 
$token = "<api-token>"; 
$url = "https://useragentinfo.co/api/v1/device/"; 

$data = array('useragent' => $useragent); 

$headers = array(); 
$headers[] = "Content-type: application/json"; 
$headers[] = "Authorization: Token " . $token; 

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); 

$json_response = curl_exec($curl); 

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

if ($status != 200) { 
    die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); 
} 

curl_close($curl); 

echo $json_response; 
?> 

Ed ecco la risposta di esempio se il visitatore utilizza un iPhone:

{ 
    "device_type":"SmartPhone", 
    "browser_version":"5.1", 
    "os":"iOS", 
    "os_version":"5.1", 
    "device_brand":"Apple", 
    "bot":false, 
    "browser":"Mobile Safari", 
    "device_model":"iPhone" 
} 
+0

Funziona! E questo semplice script sembra uno dei migliori che ho trovato: (fino ad ora) è l'unico script che ho trovato in grado di rilevare il mio tablet ASUS ZenPad! Ma NOTA: hanno cambiato $ url in [https://useragentinfo.co/device](https://useragentinfo.co/device), vedere la loro pagina [https://useragentinfo.co] (https: // useragentinfo .co): fornisce codice bash per eseguire curl, ma in effetti è possibile sostituirlo con le linee PHP. Tuttavia, dovresti omettere la riga "Autorizzazione: Token .." perché non sembra più necessaria (e non vedo modo di ottenere quella chiave API). –

+0

Non riceve risposta. Sto solo mostrando {} Penso che il token dell'API sia necessario per guidarmi come generare il token. –

+0

$ data = array ('user_agent' => $ useragent); Dovrebbe essere come: $ data = array ('useragent' => $ useragent); –

0
<?php //-- Very simple way 
$useragent = $_SERVER['HTTP_USER_AGENT']; 
$iPod = stripos($useragent, "iPod"); 
$iPad = stripos($useragent, "iPad"); 
$iPhone = stripos($useragent, "iPhone"); 
$Android = stripos($useragent, "Android"); 
$iOS = stripos($useragent, "iOS"); 
//-- You can add billion devices 

$DEVICE = ($iPod||$iPad||$iPhone||$Android||$iOS||$webOS||$Blackberry||$IEMobile||$OperaMini); 

if ($DEVICE !=true) {?> 

<!-- What you want for all non-mobile devices. Anything with all HTML codes--> 

<?php }else{ ?> 

<!-- What you want for all mobile devices. Anything with all HTML codes --> 

<?php } ?> 
Problemi correlati