Detecting Mobile Devices with PHP

What if you need to go about changing the actual content of a page to work rather than the layout for mobile visitors?

These days, most web developers clearly understand the need to optimize a website for use on mobile devices. Usually this includes the implementation of responsive CSS to create a great browsing experience for users of every screen size.

However, there are times when changing the layout is not enough. What if you need to go about changing the actual content of a page to work better for mobile visitors?

An Example Use

Recently, I was faced with this very issue. I’d built a WordPress site for a client using an events registration plugin. Its calendar layout was fantastic on larger screens, but completely unusable on smaller ones. While it seemed easy enough to change some CSS around to make it more mobile-friendly, this turned into quite an adventure.

After my attempts at reworking the CSS failed, I decided that it might be more efficient to simply list the upcoming events for mobile users rather than keeping the calendar format. But how?

Mobile Detect to the Rescue

A little research turned up Mobile Detect, a PHP class that helps detect mobile devices. It uses user-agent strings and looks for specific HTTP headers in order to determine if a user is visiting from a mobile device. Then, using a simple PHP conditional statement, Mobile Detect will allow you to serve up separate content for mobile users.

Every business should have a mobile detection script to detect mobile readers.” – The Mobile Detect motto.

It’s really a quite simple process. Just upload the Mobile Detect files to your server and place code similar to this in your template:

Mobile Content Goes Here...

Default Content Goes Here...

The result is that on both computers and tablets, the default content displays. On phones, the mobile-specific content is displayed instead. This allowed me to bypass the not-so-user-friendly calendar layout completely on small screens.

Desktop users see a calendar (left), while mobile users see a simple listing of events (right).
Desktop users see a calendar (left), while mobile users see a simple listing of events (right).


If you decide to use Mobile Detect, be aware that you actually have to view your site on a mobile device in order to see that custom content. A web designer’s first instinct is often to resize their desktop browser to do a quick check of how their responsive code is working (plus, it’s fun). That won’t work with Mobile Detect since it needs to see that a visitor is using a mobile user-agent.

So, don’t be alarmed if you don’t see the content on your desktop or laptop. Pulling up the site on a phone will do the trick.

Overall, I found Mobile Detect very easy to implement and it provided much-needed functionality to my project. It will make a great addition to your toolbox.

I should also note that there are 3rd party plugins that use Mobile Detect for WordPress, Joomla!, Drupal and other platforms as well.

About the Author Eric Karkovack

Eric Karkovack is a web designer with well over a decade of experience. You can visit his business site here. In July 2013, Eric released his first eBook: Your Guide to Becoming a Freelance Web Designer. You can follow his rants on Twitter @karks88.