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?
-
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
4 Answers
You can detect site running device by RESS (Responsive Web Design with Server-Side Component) movement script.
You can check live demo by click here.
This demo is done by Mobile Detect RESS script. Mobile Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
Example code:
You can use this RESS script like below example.
// Include and instantiate the class.
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
// Any mobile device (phones or tablets).
if ( $detect->isMobile() ) {
}
// Any tablet device.
if( $detect->isTablet() ){
}
// Exclude tablets.
if( $detect->isMobile() && !$detect->isTablet() ){
}
This script also surve other magic methods like: 1. Check for a specific platform
$detect->isiOS() //for iOS
$detect->isAndroidOS() //for android
2. Check for a specific browser
$detect->is('Chrome') //for chrome
$detect->is('iOS') //iOS
$detect->is('UC Browser') //UC Browser
.
.
.
more
May this help you well!
- 20,310
- 5
- 23
- 55
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');
?>
- 3,687
- 3
- 24
- 68
-
-
@skyler: Check my answer for brief detail [Mobile Detect RESS script](https://github.com/serbanghita/Mobile-Detect) – AddWeb Solution Pvt Ltd Jan 19 '16 at 05:41
-
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.
- 1,090
- 1
- 9
- 12
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.