PHP function to determine mobile terminal and PC terminal

不言
Release: 2023-03-24 20:22:02
Original
2903 people have browsed it

The content of this article is about the PHP function to judge the mobile terminal and PC terminal. It has a certain reference value. Now I share it with you. Friends in need can refer to it

/*移动端判断*/
	function isMobile()
	{ 
	    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
	    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
	    {
	        return true;
	    } 
	    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
	    if (isset ($_SERVER['HTTP_VIA']))
	    { 
	        // 找不到为flase,否则为true
	        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
	    } 
	    // 脑残法,判断手机发送的客户端标志,兼容性有待提高
	    if (isset ($_SERVER['HTTP_USER_AGENT']))
	    {
	        $clientkeywords = array ('nokia',
	            'sony',
	            'ericsson',
	            'mot',
	            'samsung',
	            'htc',
	            'sgh',
	            'lg',
	            'sharp',
	            'sie-',
	            'philips',
	            'panasonic',
	            'alcatel',
	            'lenovo',
	            'iphone',
	            'ipod',
	            'blackberry',
	            'meizu',
	            'android',
	            'netfront',
	            'symbian',
	            'ucweb',
	            'windowsce',
	            'palm',
	            'operamini',
	            'operamobi',
	            'openwave',
	            'nexusone',
	            'cldc',
	            'midp',
	            'wap',
	            'mobile'
	            ); 
	        // 从HTTP_USER_AGENT中查找手机浏览器的关键字
	        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
	        {
	            return true;
	        } 
	    } 
	    // 协议法,因为有可能不准确,放到最后判断
	    if (isset ($_SERVER['HTTP_ACCEPT']))
	    { 
	        // 如果只支持wml并且不支持html那一定是移动设备
	        // 如果支持wml和html但是wml在html之前则是移动设备
	        if ((strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) !== false) && (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;) === false || (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) < strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;))))
	        {
	            return true;
	        } 
	    } 
	    return false;
	}
Copy after login


If the result of calling the function is true, it is the mobile terminal.


Sometimes, we will configure different domain name access based on the differences between the mobile terminal and the PC terminal. In this regard, we can determine the domain name currently being accessed, and then determine the terminal device, and jump to the corresponding domain name based on the judgment. As follows:

// 判断当前访问地址
$url = $_SERVER[&#39;HTTP_HOST&#39;];
if($url == &#39;移动端url&#39;) {	//移动端访问地址
    if(!isMobile()) {
	// 终端是PC,跳转到PC端url
    	echo &#39;<script>location.href="https://PC端url地址"</script>&#39;;
    	exit;
    }
} else {	                //pc访问地址
    if(isMobile()) {
        // 终端是移动端,跳转到移动端url
        echo &#39;<script>location.href="https://移动端访问地址"</script>&#39;;
        exit;
    }
}
Copy after login

Related recommendations:

PHP function determines whether the computer browser accesses or the mobile browser accesses

The above is the detailed content of PHP function to determine mobile terminal and PC terminal. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template