Heim  >  Artikel  >  Backend-Entwicklung  >  So ermitteln Sie in PHP, ob es sich bei einem Client um ein Mobiltelefon oder einen Computer handelt

So ermitteln Sie in PHP, ob es sich bei einem Client um ein Mobiltelefon oder einen Computer handelt

藏色散人
藏色散人Original
2021-06-26 09:24:437236Durchsuche

So ermittelt PHP, ob es sich bei einem Client um ein Mobiltelefon oder einen Computer handelt: Erstellen Sie zunächst eine PHP-Beispieldatei und ermitteln Sie dann, ob „$_SERVER['HTTP_USER_AGENT']“ das Schlüsselwort „mobile“ enthält.

So ermitteln Sie in PHP, ob es sich bei einem Client um ein Mobiltelefon oder einen Computer handelt

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

Wie bestimmt PHP, ob ein Client ein Mobiltelefon oder ein Computer ist?

PHP bestimmt, ob die Anfrage von einem Mobilgerät oder einem PC kommt

Wie der Titel schon sagt, besteht der einfachste Weg tatsächlich darin, festzustellen, ob $_SERVER['HTTP_USER_AGENT'] das Schlüsselwort „mobile“ enthält (user_agent enthält das Schlüsselwort des Benutzers). Geräteinformationen), das Folgende ist eine bessere Beurteilungsmethode, die im thinkphp-Forum zu finden ist:

function isMobile(){ 
    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){
        return TRUE;
    }
    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
    if (isset ($_SERVER['HTTP_VIA'])){
        return stristr($_SERVER['HTTP_VIA'], "wap") ? TRUE : FALSE;// 找不到为flase,否则为TRUE
    } 
    // 判断手机发送的客户端标志,兼容性有待提高
    if (isset ($_SERVER['HTTP_USER_AGENT'])) {
        $clientkeywords = array (
            'mobile',
            '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'
            ); 
        // 从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;
}

Natürlich können Sie auch die mobile-detect-Klasse von PHP verwenden: https://github.com/serbanghita/Mobile-Detect. Ich glaube jedoch nicht, dass es notwendig ist, einen so großen Code für die Erkennung einzuführen (wenn spezielle Erkennungsanforderungen bestehen, z. B. die Erkennung von iPhone- oder iPad-Geräten, ist Mobile-Detect unter normalen Umständen eine gute Wahl). Zur Beurteilung reicht es aus, USER_AGENT zu analysieren.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie in PHP, ob es sich bei einem Client um ein Mobiltelefon oder einen Computer handelt. 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