How to Detect Mobile devices in php

|
| By Webner

Detect mobile device php code

We often need to detect if site visitor is using an iPad, a smartphone or any other mobile device in order to change website appearance and even make it faster by reducing data load. Normally we use the media queries and apply rules for different devices. But, CSS works on client-side. Sometimes, we need to apply conditions on server-side. For instance, you are planning to build a different website for mobile users. When a user visits your URL you wanted to redirect them to your mobile website.

First Method to detect mobile devices is via User Agent.

A simple user agent class can be used to detect mobile devices and tablets in PHP.

You only need to download two files from below.

  1. Download user_agents_config.php
  2. Download user_agent.php



Note:-Those two files should be placed in the same directory.

At first you will need to include the user_agents_config.php file and create an instance of UserAgent class.

What is User Agent:- In computing, a user agent is software (a software agent) that is acting on behalf of a user. When your browser connects to a website, it includes a User-Agent field in its HTTP header. The contents of the user agent field vary from browser to browser. Each browser has its own, distinctive user agent. Essentially, a user agent is a way for a browser to say “Hi, I’m Mozilla Firefox on Windows” or “Hi, I’m Safari on an iPhone” to a web server.

Can I change User Agents:– It is possible to change or “fake” what your web browser sends as its user agent. Some mobile device web browsers will let you change what the browser identifies itself as (ie “Mobile Mode” or “Desktop Mode”) in order to access certain websites that only allow desktop computers. If you change this setting, the user agent is what is affected.

How to check User Agents:– Click on this link “https://www.whoishostingthis.com/tools/user-agent/” see the information for User Agent of Current browser.

Code:

isMobile()) {
    // write your own code
}

//For tablet device.
if ($ua->isTablet()) {
    // write your own code
}

// Exclude tablets.
if ($ua->isMobile() && !$detect->isTablet()) {
    // write your own code
}

//  Some magic methods used for detecting the mobile devices:
if ($ua->isiOS()) {
    // write your own code
}

if ($ua->isAndroidOS()) {
    // write your own code
}

is_mobile():– It is a function to check whether the visitors are from mobile devices or not. If visitors are from mobile devices then it will return true otherwise false.

isTablet():– It is a function to check whether the visitors are from tablet devices or not. If visitors are from tablet devices then it will return true otherwise false.

isiOS():– This function is used to check whether the visitors are from apple/mac devices or not.

Some Other ways to detect mobile devices in php:-

Mobile detect:– 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.

Another simplest way:– This is the simplest way to detect the mobile device in php but above mentioned method is best. Because some mobile browsers were not detected in the following method:

 
<?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|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/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');
?>

Leave a Reply

Your email address will not be published. Required fields are marked *