2

I searched the internet for answer but when I couldn't find one, I am posting my question. Is there any way we can detect if a site is being used by computer or mobile? I don't want to use the TeraWurfl. Just and piece of code that could return computer or mobile? Has any one worked on a code like this?

Omar
  • 32,302
  • 9
  • 69
  • 112
Ali Zia
  • 3,825
  • 5
  • 29
  • 77
  • What is the definition of "mobile"? What is a tablet on 4G? Is that mobile? What is a convertible laptop being used in tablet mode? What is a phablet phone on home WiFi? – jfriend00 Jan 19 '16 at 05:25
  • Any sort of tablet, phablet will be treated as a mobile. Laptop and computer will be treated as a computer. – Ali Zia Jan 19 '16 at 05:28
  • But, there is no real difference between a tablet and many laptops these days. Heck, the latest Microsoft laptop can be either a full fledged laptop or a full-fledged tablet. You're making an arbitrary distinction here which really makes no sense any more. Instead, you have to look for some characteristic of the client (screen size, touch capable, etc...) and stop using the terms mobile vs. laptop. – jfriend00 Jan 19 '16 at 05:32
  • So, maybe if you describe the problem you're really trying to solve, we can better help with what type of client detection might solve that problem. – jfriend00 Jan 19 '16 at 05:33
  • My client just wanted that if they are using computer or laptop. He is not that much technical. I have used `mobile_Detect.php` and it worked for me. – Ali Zia Jan 19 '16 at 05:36
  • Well, you should probably explain to your client that computer or laptop vs. mobile is now an arbitrary and fairly meaningless distinction these days. You can detect specific devices or specific characteristics of devices, but there' s hard definition of a "mobile device" any more. – jfriend00 Jan 19 '16 at 05:37
  • He absolutely have no knowledge of this much depth. So I guess I will stick to the very basics that if the website being accessed from computer or mobile. – Ali Zia Jan 19 '16 at 05:40
  • Using TeraWurfl requires a database to do device detection and comes with extra chore of maintaining and upgrading it. You can also use a third party api so that you can focus on your application see my answer [here](https://stackoverflow.com/a/44982837/395676) to do device detection with PHP – Ronnie Beltran Jul 08 '17 at 05:54

3 Answers3

1

I used mobile_Detect.php and it solved my issue. I used the following code.

<?php
require_once '../Mobile_Detect.php';
$detect = new Mobile_Detect;
echo $deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
?>
Ali Zia
  • 3,825
  • 5
  • 29
  • 77
1

You could do a check against the window user agent then match that against an array of user agent strings.

var ua = window.navigator.userAgent

You can find a list of current user agents at this site.

List of User Agent Strings

andre mcgruder
  • 1,120
  • 1
  • 9
  • 12
1

In PHP, the solution is here:

<?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))) {

    // it is mobile

    } else {

    // it is a computer

    }
?>

Quoted from a previous answer posted here.

Community
  • 1
  • 1
Rehmat
  • 4,681
  • 3
  • 22
  • 38