복붙노트

모바일 장치를 감지하는 가장 간단한 방법

PHP

모바일 장치를 감지하는 가장 간단한 방법

사용자가 휴대 기기를 사용하여 PHP를 사용하여 내 사이트를 탐색하는지 알려주는 가장 간단한 방법은 무엇입니까?

나는 당신이 사용할 수있는 많은 수업을 보았습니다. 그러나 나는 단순한 if 조건을 기대하고있었습니다!

내가 할 수있는 방법이 있니?

해결법

  1. ==============================

    1.다음은 출처입니다.

    다음은 출처입니다.

    암호:

    <?php
    
    $useragent=$_SERVER['HTTP_USER_AGENT'];
    
    if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
    
    header('Location: http://detectmobilebrowser.com/mobile');
    
    ?>
    
  2. ==============================

    2.PHP에서 모바일 브라우저를 탐지하기 위해이 스크립트를 작성했습니다.

    PHP에서 모바일 브라우저를 탐지하기 위해이 스크립트를 작성했습니다.

    이 코드는 수백 개의 테스트 후 모바일 장치 사용자 에이전트 문자열에서만 발견되는 단어를 preg_match ()하여 사용자 에이전트 문자열을 기반으로 사용자를 검색합니다. 그것은 현재의 모든 모바일 장치에 대해 100 %의 정확도를 가지고 있으며, 현재 나올 때 더 많은 모바일 장치를 지원하도록 업데이트하고 있습니다. 이 코드는 isMobile이라고하며 다음과 같습니다.

    function isMobile() {
        return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
    }
    

    다음과 같이 사용할 수 있습니다.

    // Use the function
    if(isMobile()){
        // Do something for only mobile users
    }
    else {
        // Do something for only desktop users
    }
    

    모바일 사이트로 사용자를 리디렉션하려면 다음과 같이하십시오.

    // Create the function, so you can use it
    function isMobile() {
        return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
    }
    // If the user is on a mobile device, redirect them
    if(isMobile()){
        header("Location: http://m.yoursite.com/");
    }
    

    질문이나 행운을 빕니다.

  3. ==============================

    3.모바일 탐지가 정말 간단하다는 것을 알았고 isMobile () 함수를 사용할 수 있습니다 :)

    모바일 탐지가 정말 간단하다는 것을 알았고 isMobile () 함수를 사용할 수 있습니다 :)

  4. ==============================

    4.신뢰할만한 방법이 없습니다. 사용자 에이전트 문자열을 볼 수도 있지만 스푸핑되거나 생략 될 수 있습니다. 또는 GeoIP 서비스를 사용하여 클라이언트의 IP 주소를 조회 할 수는 있지만 쉽게 피할 수 있습니다.

    신뢰할만한 방법이 없습니다. 사용자 에이전트 문자열을 볼 수도 있지만 스푸핑되거나 생략 될 수 있습니다. 또는 GeoIP 서비스를 사용하여 클라이언트의 IP 주소를 조회 할 수는 있지만 쉽게 피할 수 있습니다.

  5. ==============================

    5.필자는 지금까지 코드의 가독성을 높이기 위해 implode () 사용에 대한 대답을 약간 변경 한 이유가 무엇인지 궁금합니다. 그래서 여기에 그것은 간다.

    필자는 지금까지 코드의 가독성을 높이기 위해 implode () 사용에 대한 대답을 약간 변경 한 이유가 무엇인지 궁금합니다. 그래서 여기에 그것은 간다.

    <?php
    $uaFull = strtolower($_SERVER['HTTP_USER_AGENT']);
    $uaStart = substr($uaFull, 0, 4);
    
    $uaPhone = [ // use `= array(` if PHP<5.4
        '(android|bb\d+|meego).+mobile',
        'avantgo',
        'bada\/',
        'blackberry',
        'blazer',
        'compal',
        'elaine',
        'fennec',
        'hiptop',
        'iemobile',
        'ip(hone|od)',
        'iris',
        'kindle',
        'lge ',
        'maemo',
        'midp',
        'mmp',
        'mobile.+firefox',
        'netfront',
        'opera m(ob|in)i',
        'palm( os)?',
        'phone',
        'p(ixi|re)\/',
        'plucker',
        'pocket',
        'psp',
        'series(4|6)0',
        'symbian',
        'treo',
        'up\.(browser|link)',
        'vodafone',
        'wap',
        'windows ce',
        'xda',
        'xiino'
    ]; // use `);` if PHP<5.4
    
    $uaMobile = [ // use `= array(` if PHP<5.4
        '1207', 
        '6310', 
        '6590', 
        '3gso', 
        '4thp', 
        '50[1-6]i', 
        '770s', 
        '802s', 
        'a wa', 
        'abac|ac(er|oo|s\-)', 
        'ai(ko|rn)', 
        'al(av|ca|co)', 
        'amoi', 
        'an(ex|ny|yw)', 
        'aptu', 
        'ar(ch|go)', 
        'as(te|us)', 
        'attw', 
        'au(di|\-m|r |s )', 
        'avan', 
        'be(ck|ll|nq)', 
        'bi(lb|rd)', 
        'bl(ac|az)', 
        'br(e|v)w', 
        'bumb', 
        'bw\-(n|u)', 
        'c55\/', 
        'capi', 
        'ccwa', 
        'cdm\-', 
        'cell', 
        'chtm', 
        'cldc', 
        'cmd\-', 
        'co(mp|nd)', 
        'craw', 
        'da(it|ll|ng)', 
        'dbte', 
        'dc\-s', 
        'devi', 
        'dica', 
        'dmob', 
        'do(c|p)o', 
        'ds(12|\-d)', 
        'el(49|ai)', 
        'em(l2|ul)', 
        'er(ic|k0)', 
        'esl8', 
        'ez([4-7]0|os|wa|ze)', 
        'fetc', 
        'fly(\-|_)', 
        'g1 u', 
        'g560', 
        'gene', 
        'gf\-5', 
        'g\-mo', 
        'go(\.w|od)', 
        'gr(ad|un)', 
        'haie', 
        'hcit', 
        'hd\-(m|p|t)', 
        'hei\-', 
        'hi(pt|ta)', 
        'hp( i|ip)', 
        'hs\-c', 
        'ht(c(\-| |_|a|g|p|s|t)|tp)', 
        'hu(aw|tc)', 
        'i\-(20|go|ma)', 
        'i230', 
        'iac( |\-|\/)', 
        'ibro', 
        'idea', 
        'ig01', 
        'ikom', 
        'im1k', 
        'inno', 
        'ipaq', 
        'iris', 
        'ja(t|v)a', 
        'jbro', 
        'jemu', 
        'jigs', 
        'kddi', 
        'keji', 
        'kgt( |\/)', 
        'klon', 
        'kpt ', 
        'kwc\-', 
        'kyo(c|k)', 
        'le(no|xi)', 
        'lg( g|\/(k|l|u)|50|54|\-[a-w])', 
        'libw', 
        'lynx', 
        'm1\-w', 
        'm3ga', 
        'm50\/', 
        'ma(te|ui|xo)', 
        'mc(01|21|ca)', 
        'm\-cr', 
        'me(rc|ri)', 
        'mi(o8|oa|ts)', 
        'mmef', 
        'mo(01|02|bi|de|do|t(\-| |o|v)|zz)', 
        'mt(50|p1|v )', 
        'mwbp', 
        'mywa', 
        'n10[0-2]', 
        'n20[2-3]', 
        'n30(0|2)', 
        'n50(0|2|5)', 
        'n7(0(0|1)|10)', 
        'ne((c|m)\-|on|tf|wf|wg|wt)', 
        'nok(6|i)', 
        'nzph', 
        'o2im', 
        'op(ti|wv)', 
        'oran', 
        'owg1', 
        'p800', 
        'pan(a|d|t)', 
        'pdxg', 
        'pg(13|\-([1-8]|c))', 
        'phil', 
        'pire', 
        'pl(ay|uc)', 
        'pn\-2', 
        'po(ck|rt|se)', 
        'prox', 
        'psio', 
        'pt\-g', 
        'qa\-a', 
        'qc(07|12|21|32|60|\-[2-7]|i\-)', 
        'qtek', 
        'r380', 
        'r600', 
        'raks', 
        'rim9', 
        'ro(ve|zo)', 
        's55\/', 
        'sa(ge|ma|mm|ms|ny|va)', 
        'sc(01|h\-|oo|p\-)', 
        'sdk\/', 
        'se(c(\-|0|1)|47|mc|nd|ri)', 
        'sgh\-', 
        'shar', 
        'sie(\-|m)', 
        'sk\-0', 
        'sl(45|id)', 
        'sm(al|ar|b3|it|t5)', 
        'so(ft|ny)', 
        'sp(01|h\-|v\-|v )', 
        'sy(01|mb)', 
        't2(18|50)', 
        't6(00|10|18)', 
        'ta(gt|lk)', 
        'tcl\-', 
        'tdg\-', 
        'tel(i|m)', 
        'tim\-', 
        't\-mo', 
        'to(pl|sh)', 
        'ts(70|m\-|m3|m5)', 
        'tx\-9', 
        'up(\.b|g1|si)', 
        'utst', 
        'v400', 
        'v750', 
        'veri', 
        'vi(rg|te)', 
        'vk(40|5[0-3]|\-v)', 
        'vm40', 
        'voda', 
        'vulc', 
        'vx(52|53|60|61|70|80|81|83|85|98)', 
        'w3c(\-| )', 
        'webc', 
        'whit', 
        'wi(g |nc|nw)', 
        'wmlb', 
        'wonu', 
        'x700', 
        'yas\-', 
        'your', 
        'zeto', 
        'zte\-'
    ]; // use `);` if PHP<5.4
    
    $isPhone = preg_match('/' . implode($uaPhone, '|') . '/i', $uaFull);
    $isMobile = preg_match('/' . implode($uaMobile, '|') . '/i', $uaStart);
    
    if($isPhone || $isMobile) {
        // do something with that device
    } else {
        // process normally
    }
    
  6. ==============================

    6.

    function isMobileDev(){
        if(isset($_SERVER['HTTP_USER_AGENT']) and !empty($_SERVER['HTTP_USER_AGENT'])){
           $user_ag = $_SERVER['HTTP_USER_AGENT'];
           if(preg_match('/(Mobile|Android|Tablet|GoBrowser|[0-9]x[0-9]*|uZardWeb\/|Mini|Doris\/|Skyfire\/|iPhone|Fennec\/|Maemo|Iris\/|CLDC\-|Mobi\/)/uis',$user_ag)){
              return true;
           }else{
              return false;
           };
        }else{
           return false;    
        };
    }
    
  7. ==============================

    7.간단하게 링크를 따라갈 수 있습니다. 매우 간단하고 사용하기가 매우 쉽습니다. 나는 이것을 사용하고있다. 잘 작동합니다.

    간단하게 링크를 따라갈 수 있습니다. 매우 간단하고 사용하기가 매우 쉽습니다. 나는 이것을 사용하고있다. 잘 작동합니다.

    http://mobiledetect.net/

    이런 식으로 사용하십시오.

    //include the file
    require_once 'Mobile_Detect.php';
    $detect = new Mobile_Detect;
    
    // Any mobile device (phones or tablets).
    if ( $detect->isMobile() ) {
     //do some code
    }
    
    // Any tablet device.
    if( $detect->isTablet() ){
     //do some code
    }
    
  8. ==============================

    8.51Degrees.com에서 PHP 장치를 탐지하면 원하는 바를 정확하게 수행 할 수 있습니다. 모바일 장치 및 탐지 된 장치와 관련된 다양한 속성을 검색합니다. 사용하기 쉽고 유지 보수가 필요 없습니다. 설정은 4 단계로 간단하게 수행됩니다.

    51Degrees.com에서 PHP 장치를 탐지하면 원하는 바를 정확하게 수행 할 수 있습니다. 모바일 장치 및 탐지 된 장치와 관련된 다양한 속성을 검색합니다. 사용하기 쉽고 유지 보수가 필요 없습니다. 설정은 4 단계로 간단하게 수행됩니다.

    51Degrees 장치 감지기는 탐지를 위해 정규식을 사용하지 않습니다. HTTP 헤더의 중요한 부분 만 기기 일치에 사용됩니다. 이 솔루션은 매주 수백 개의 새로운 장치가 데이터베이스에 추가되므로이 솔루션을 가장 빠른 하드웨어 (평범한 하드웨어에서 초당 5 000 000 감지) 및 가장 정확 (99.97 % 정확도)하게 만듭니다 (지원되는 장치 유형에는 콘솔, 스마트 TV, 전자 판독기, 정제 등).

    소프트웨어는 Mozilla Public License 2에 따라 배포되고 상용 및 오픈 소스 프로젝트와 호환되는 오픈 소스입니다. 보너스 51Degrees 솔루션에는 모바일 장치 용 이미지의 크기를 자동으로 조정할 수있는 보완적인 PHP 이미지 최적화 도구가 포함되어 있습니다.

    기본적으로 51Degrees PHP 장치 감지기는 무료이며 각 장치에 대해 30000 개 이상의 장치와 50 개의 속성을 포함하는 Lite 데이터 파일을 사용합니다. Lite 파일은 3 개월마다 한 번 업데이트됩니다. 모바일 장치 요청에 대한 더 높은 수준의 세부 정보를 원하면 Premium 및 Enterprise 데이터 파일을 사용할 수 있습니다. Premium에는 주간 업데이트로 각 장치에 70000 개 이상의 장치와 100 개의 속성이 포함되어 있습니다. 엔터프라이즈는 매일 업데이트되며 150,000 개의 장치가 150 개 이상 포함되어 있습니다.

    장치 속성의 전체 목록입니다. 데이터 파일을 비교하십시오.

  9. ==============================

    9.PHP 페이지에서 모바일 장치 검색으로 찾을 수있는 user_agent.php 파일 만 포함하면됩니다. 다음 코드를 사용하십시오.

    PHP 페이지에서 모바일 장치 검색으로 찾을 수있는 user_agent.php 파일 만 포함하면됩니다. 다음 코드를 사용하십시오.

    <?php
    //include file
    include_once 'user_agent.php';
    
    //create an instance of UserAgent class
    $ua = new UserAgent();
    
    //if site is accessed from mobile, then redirect to the mobile site.
    if($ua->is_mobile()){
       header("Location:http://m.codexworld.com");
       exit;
    }
    ?>
    
  10. ==============================

    10.또한 사용자 에이전트 문자열을 통해 장치 검색을 수행하기 위해 타사 API를 사용할 수도 있습니다. 이러한 서비스 중 하나가 useragentinfo.co입니다. 그냥 가입하고 api 토큰을 받고 아래는 PHP를 통해 장치 정보를 얻는 방법입니다.

    또한 사용자 에이전트 문자열을 통해 장치 검색을 수행하기 위해 타사 API를 사용할 수도 있습니다. 이러한 서비스 중 하나가 useragentinfo.co입니다. 그냥 가입하고 api 토큰을 받고 아래는 PHP를 통해 장치 정보를 얻는 방법입니다.

    <?php
    $useragent = $_SERVER['HTTP_USER_AGENT'];
    // get api token at https://useragentinfo.co/
    $token = "<api-token>";
    $url = "https://useragentinfo.co/api/v1/device/";
    
    $data = array('useragent' => $useragent);
    
    $headers = array();
    $headers[] = "Content-type: application/json";
    $headers[] = "Authorization: Token " . $token;
    
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
    
    $json_response = curl_exec($curl);
    
    $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    
    if ($status != 200 ) {
        die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
    }
    
    curl_close($curl);
    
    echo $json_response;
    ?>
    

    그리고 방문자가 iPhone을 사용하는 경우 샘플 응답이 있습니다.

    {
      "device_type":"SmartPhone",
      "browser_version":"5.1",
      "os":"iOS",
      "os_version":"5.1",
      "device_brand":"Apple",
      "bot":false,
      "browser":"Mobile Safari",
      "device_model":"iPhone"
    }
    
  11. ==============================

    11.

    function isMobile(){
       if(defined(isMobile))return isMobile;
       @define(isMobile,(!($HUA=@trim(@$_SERVER['HTTP_USER_AGENT']))?0:
       (
          preg_match('/(android|bb\d+|meego).+mobile|silk|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i'
          ,$HUA)
       ||
          preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i'
          ,$HUA)
       )
       ));
    }
    
    echo isMobile()?1:0;
    // OR
    echo isMobile?1:0;
    
  12. ==============================

    12.

    <?php //-- Very simple way
    $useragent = $_SERVER['HTTP_USER_AGENT']; 
    $iPod = stripos($useragent, "iPod"); 
    $iPad = stripos($useragent, "iPad"); 
    $iPhone = stripos($useragent, "iPhone");
    $Android = stripos($useragent, "Android"); 
    $iOS = stripos($useragent, "iOS");
    //-- You can add billion devices 
    
    $DEVICE = ($iPod||$iPad||$iPhone||$Android||$iOS||$webOS||$Blackberry||$IEMobile||$OperaMini);
    
    if ($DEVICE !=true) {?>
    
    <!-- What you want for all non-mobile devices. Anything with all HTML codes-->
    
    <?php }else{ ?> 
    
    <!-- What you want for all mobile devices. Anything with all HTML codes --> 
    
    <?php } ?>
    
  13. ==============================

    13.화면 크기가 걱정되는 경우 화면 너비와 높이를 쿠키 값으로 저장할 수 있습니다 (아직없는 경우). 그런 다음 자체 페이지 리디렉션을 수행하십시오.

    화면 크기가 걱정되는 경우 화면 너비와 높이를 쿠키 값으로 저장할 수 있습니다 (아직없는 경우). 그런 다음 자체 페이지 리디렉션을 수행하십시오.

    이제 클라이언트 및 서버 측에 쿠키가 있으며이를 사용하여 휴대 전화, 태블릿 및 기타 장치를 확인할 수 있습니다.

    자바 스크립트로 어떻게 할 수 있는지 보여주는 간단한 예제입니다. 경고! [이 코드에는 의사 코드가 포함되어 있습니다.]

    if (!getcookie("screen_size")) {
        var screen_width = screen.width;
        var screen_height = screen.height;
        setcookie("screen_size", screen_width+", " +screen_height);
        go2(geturl());
    }
    
  14. ==============================

    14.

    <?php
    $useragent=$_SERVER['HTTP_USER_AGENT'];
    if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
    {
        echo('This is mobile device');
    }
    else
    {
       echo('This is Desktop/Laptop device');
    }
    ?>
    
  15. from https://stackoverflow.com/questions/4117555/simplest-way-to-detect-a-mobile-device by cc-by-sa and MIT license