Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Funktion zur Bestimmung von mobilem Endgerät und PC-Terminal

PHP-Funktion zur Bestimmung von mobilem Endgerät und PC-Terminal

不言
不言Original
2018-04-26 10:30:472860Durchsuche

Der Inhalt dieses Artikels befasst sich mit der PHP-Funktion zur Beurteilung des mobilen Terminals und des PC-Terminals. Er hat einen gewissen Referenzwert. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.

/*移动端判断*/
	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;
	}


Wenn das Ergebnis des Funktionsaufrufs wahr ist, handelt es sich um das mobile Endgerät.


Manchmal konfigurieren wir unterschiedliche Domänennamenzugriffe basierend auf den Unterschieden zwischen dem mobilen Endgerät und dem PC-Terminal. In diesem Zusammenhang können wir den Domänennamen ermitteln, auf den gerade zugegriffen wird, und dann das Endgerät bestimmen und basierend auf der Beurteilung zum entsprechenden Domänennamen springen. Wie folgt:

// 判断当前访问地址
$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;
    }
}

Verwandte Empfehlungen:

PHP-Funktion bestimmt, ob der Computerbrowser oder der mobile Browser zugreift

Das obige ist der detaillierte Inhalt vonPHP-Funktion zur Bestimmung von mobilem Endgerät und PC-Terminal. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn