Return to Snippet

Revision: 41000
at April 4, 2011 08:46 by beneberle


Updated Code
<?php

function is_mobile(){

	// returns true if one of the specified mobile browsers is detected

	$regex_match="/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";
	$regex_match.="htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";
	$regex_match.="blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";	
	$regex_match.="symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";
	$regex_match.="jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220";
	$regex_match.=")/i";		
	return isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE']) or preg_match($regex_match, strtolower($_SERVER['HTTP_USER_AGENT']));
}

/*
allow the user a way to force either the full or mobile versions of the site - use a GET parameter on requests:

include links to both versions of the site w/ the special force mode parameters, 'mobile' and 'full':

<a href="http://www.example.org/?mobile">View Mobile Site</a>
<a href="http://www.example.org/?full">View Full Site</a>

Always check for 'mobile' or 'full' parameters before accounting for any User-Agent conditions:
*/

if ($_GET['mobile']) {
 $is_mobile = true;
}
 
if ($_GET['full']) {
 $is_mobile = false;
}
if($is_mobile) {
	//it's a mobile browser, do something
	header("Location: http://www.yoursite.com/mobile");
} else {
	//it's not a mobile browser, do something else
	header("Location: http://www.yoursite.com/desktop");
	// or instead of a redirect, simply build html below


}

?>

Revision: 40999
at February 10, 2011 16:02 by beneberle


Initial Code
<?php

function is_mobile(){

	// returns true if one of the specified mobile browsers is detected

	$regex_match="/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";
	$regex_match.="htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";
	$regex_match.="blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";	
	$regex_match.="symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";
	$regex_match.="jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220";
	$regex_match.=")/i";		
	return isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE']) or preg_match($regex_match, strtolower($_SERVER['HTTP_USER_AGENT']));
}

/*
allow the user a way to force either the full or mobile versions of the site - use a GET parameter on requests:

include likes to both versions of the site w/ the special force mode parameters, 'mobile' and 'full':

<a href="http://www.example.org/?mobile">View Mobile Site</a>
<a href="http://www.example.org/?full">View Full Site</a>

Always check for 'mobile' or 'full' parameters before accounting for any User-Agent conditions:
*/

if ($_GET['mobile']) {
 $is_mobile = true;
}
 
if ($_GET['full']) {
 $is_mobile = false;
}
if($is_mobile) {
	//it's a mobile browser, do something
	header("Location: http://www.yoursite.com/mobile");
} else {
	//it's not a mobile browser, do something else
	header("Location: http://www.yoursite.com/desktop");
	// or instead of a redirect, simply build html below


}

?>

Initial URL
http://mobiforge.com/developing/story/lightweight-device-detection-php

Initial Description
Though an old post, this is my solution that's been pieced together from various comments on the article linked above.

Initial Title
Simple User Agent (Mobile and Smartphone) Detection and Redirction with PHP

Initial Tags
php, redirect, mobile, iphone, ios

Initial Language
PHP