Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to check if the request came from mobile or computer in php

Tags:

php

mobile

i need to check if the request came from a mobile phone device or desktop computer using php please help. thanks

like image 628
Khurram Ijaz Avatar asked Mar 17 '11 05:03

Khurram Ijaz


People also ask

How can check mobile or desktop in PHP?

The easiest way to detect mobile device in PHP is to check if the “mobile” word exists in HTTP User Agent. Use the $_SERVER variable with HTTP_USER_AGENT indices to get the User-Agent being used to access the web page. Based on the HTTP User Agent, you can detect mobile or desktop devices in PHP.

How can I tell if a mobile request came from?

You get a header / message from a device. All you know about the device is in the header and the device can write what it wants in it. If you are talking about http requests (which is indicated by agent lookup) you can look at a header here: All you can do "reliable" is to look for the user agent.

How do I know if a site is open on mobile or desktop?

We can use the CSS media queries to check whether the website is opened inside a web browser or a mobile browser. This information can be fetched using the min-width and the max-width of the webpage.


2 Answers

Check the $_SERVER['HTTP_USER_AGENT'] for mobile user agents.

You should check out http://detectmobilebrowser.com/ for already existing scripts to detect for mobile browsers (it just uses the user agents).

like image 52
Mike Lewis Avatar answered Sep 28 '22 07:09

Mike Lewis


I am using a function to identify mobile browsers in my projects, which can detect almost all major Mobile Operating systems and browsers.

    function ismobile() {
    $is_mobile = '0';

    if(preg_match('/(android|up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
        $is_mobile=1;
    }

    if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
        $is_mobile=1;
    }

    $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
    $mobile_agents = array('w3c ','acs-','alav','alca','amoi','andr','audi','avan','benq','bird','blac','blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno','ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-','maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-','newt','noki','oper','palm','pana','pant','phil','play','port','prox','qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar','sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda','xda-');

    if(in_array($mobile_ua,$mobile_agents)) {
        $is_mobile=1;
    }

    if (isset($_SERVER['ALL_HTTP'])) {
        if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
            $is_mobile=1;
        }
    }

    if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
        $is_mobile=0;
    }

    return $is_mobile;
}
like image 43
Shameer Avatar answered Sep 28 '22 08:09

Shameer