Heim > php教程 > php手册 > Hauptteil

PHP根据HTTP_USER_AGENT判断客户端访问是否为手机访问

WBOY
Freigeben: 2016-05-25 16:45:08
Original
1655 Leute haben es durchsucht

现在web发展速度非常快,各种响应式的站点越来越多,除了APP外,在平时可能需要根据客户终端访问来加载不同时模板或跳转到不同时的域名下,现在分享一个函数,可以做到这样判断.android、ios和wp都已经测试过.

PHP实例代码如下:

<?php
//判断moblie 
function is_mobile() 
{
    $_SERVER[&#39;ALL_HTTP&#39;] = isset($_SERVER[&#39;ALL_HTTP&#39;]) ? $_SERVER[&#39;ALL_HTTP&#39;] : &#39;&#39;; 
 
    $mobile_browser = &#39;0&#39;; 
 
    if(preg_match(&#39;/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom|ios)/i&#39;, strtolower($_SERVER[&#39;HTTP_USER_AGENT&#39;]))) 
        $mobile_browser++; 
 
    if((isset($_SERVER[&#39;HTTP_ACCEPT&#39;])) and (strpos(strtolower($_SERVER[&#39;HTTP_ACCEPT&#39;]),&#39;application/vnd.wap.xhtml+xml&#39;) !== false)) 
        $mobile_browser++; 
 
    if(isset($_SERVER[&#39;HTTP_X_WAP_PROFILE&#39;])) 
        $mobile_browser++; 
 
    if(isset($_SERVER[&#39;HTTP_PROFILE&#39;])) 
        $mobile_browser++; 
 
    $mobile_ua = strtolower(substr($_SERVER[&#39;HTTP_USER_AGENT&#39;],0,4)); 
    $mobile_agents = array( 
                        &#39;w3c &#39;,&#39;acs-&#39;,&#39;alav&#39;,&#39;alca&#39;,&#39;amoi&#39;,&#39;audi&#39;,&#39;avan&#39;,&#39;benq&#39;,&#39;bird&#39;,&#39;blac&#39;, 
                        &#39;blaz&#39;,&#39;brew&#39;,&#39;cell&#39;,&#39;cldc&#39;,&#39;cmd-&#39;,&#39;dang&#39;,&#39;doco&#39;,&#39;eric&#39;,&#39;hipt&#39;,&#39;inno&#39;, 
                        &#39;ipaq&#39;,&#39;java&#39;,&#39;jigs&#39;,&#39;kddi&#39;,&#39;keji&#39;,&#39;leno&#39;,&#39;lg-c&#39;,&#39;lg-d&#39;,&#39;lg-g&#39;,&#39;lge-&#39;, 
                        &#39;maui&#39;,&#39;maxo&#39;,&#39;midp&#39;,&#39;mits&#39;,&#39;mmef&#39;,&#39;mobi&#39;,&#39;mot-&#39;,&#39;moto&#39;,&#39;mwbp&#39;,&#39;nec-&#39;, 
                        &#39;newt&#39;,&#39;noki&#39;,&#39;oper&#39;,&#39;palm&#39;,&#39;pana&#39;,&#39;pant&#39;,&#39;phil&#39;,&#39;play&#39;,&#39;port&#39;,&#39;prox&#39;, 
                        &#39;qwap&#39;,&#39;sage&#39;,&#39;sams&#39;,&#39;sany&#39;,&#39;sch-&#39;,&#39;sec-&#39;,&#39;send&#39;,&#39;seri&#39;,&#39;sgh-&#39;,&#39;shar&#39;, 
                        &#39;sie-&#39;,&#39;siem&#39;,&#39;smal&#39;,&#39;smar&#39;,&#39;sony&#39;,&#39;sph-&#39;,&#39;symb&#39;,&#39;t-mo&#39;,&#39;teli&#39;,&#39;tim-&#39;, 
                        &#39;tosh&#39;,&#39;tsm-&#39;,&#39;upg1&#39;,&#39;upsi&#39;,&#39;vk-v&#39;,&#39;voda&#39;,&#39;wap-&#39;,&#39;wapa&#39;,&#39;wapi&#39;,&#39;wapp&#39;, 
                        &#39;wapr&#39;,&#39;webc&#39;,&#39;winw&#39;,&#39;winw&#39;,&#39;xda&#39;,&#39;xda-&#39; 
                        ); 
 
    if(in_array($mobile_ua, $mobile_agents)) 
        $mobile_browser++; 
 
    if(strpos(strtolower($_SERVER[&#39;ALL_HTTP&#39;]), &#39;operamini&#39;) !== false) 
        $mobile_browser++; 
    // Pre-final check to reset everything if the user is on Windows 
    if(strpos(strtolower($_SERVER[&#39;HTTP_USER_AGENT&#39;]), &#39;windows&#39;) !== false) 
        $mobile_browser=0; 
 
    // But WP7 is also Windows, with a slightly different characteristic 
    if(strpos(strtolower($_SERVER[&#39;HTTP_USER_AGENT&#39;]), &#39;windows phone&#39;) !== false) 
        $mobile_browser++; 
 
    if($mobile_browser>0) 
        return true; 
    else 
        return false; 
} 
?>
Nach dem Login kopieren


本文地址:

转载随意,但请附上文章地址:-)

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!