ホームページ >バックエンド開発 >PHPの問題 >phpは携帯電話からのアクセスかパソコンからのアクセスかをどのように判断しているのでしょうか?

phpは携帯電話からのアクセスかパソコンからのアクセスかをどのように判断しているのでしょうか?

PHPz
PHPzオリジナル
2020-09-25 15:45:284275ブラウズ

php でモバイル アクセスかコンピュータ アクセスかを判断する方法: 1. [HTTP_X_WAP_PROFILE] がある場合、モバイル デバイスである必要があります; 2. [HTTP_USER_AGENT] からモバイル ブラウザのキーワードを見つけます; 3 . wml をサポートし、html をサポートしない場合のみ、モバイル デバイスである必要があります。

phpは携帯電話からのアクセスかパソコンからのアクセスかをどのように判断しているのでしょうか?

推奨事項: 「PHP ビデオ チュートリアル

アクセスが携帯電話経由かコンピューター経由かを判断する方法:

1. HTTP_X_WAP_PROFILE がある場合、それはモバイル デバイスである必要があります

//判断电脑还是手机访问
    function is_mobile(){ 
        
        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;
        }

2. 無知な方法で、携帯電話から送信されたクライアント フラグを判断するため、互換性を改善する必要があります

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;
    } 
}

3. プロトコルの方法、正確ではないかもしれないので最終判断に任せます

  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;
}

以上がphpは携帯電話からのアクセスかパソコンからのアクセスかをどのように判断しているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。