Как использовать userAgent для обнаружения мобильного устройства

Кто-нибудь может мне с этим помочь.

Я хотел бы обнаружить устройство, такое как Iphone, BB, andriod и браузер, чтобы применить их конкретный css, чтобы сделать его сжиженным или адаптироваться к их разрешению.

У andriod и Iphone есть проблема с разностным разрешением или проблема css, когда дело доходит до мобильного браузера, потому что я планирую использовать один и тот же css для этих 2, потому что я знаю, что они используют тот же сафари браузера, что и по умолчанию.

Попробуйте использовать http://www.php.net/get_browser и проверьте поле isMobileDevice . Это может помочь, конечно, если в php.ini установлен путь к browscap.ini . Если нет, вы можете использовать php-классы, такие как https://github.com/garetjax/phpbrowscap

Вот пример в javascript:

 var isMobile = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/); if(isMobile) { // User-Agent is IPhone, IPod, IPad, Android or BlackBerry } 

Чтобы проверить конкретную строку User-Agent, вы можете:

 if(navigator.userAgent.match(/iPhone/)) { // The User-Agent is iPhone } 
 <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" /> <meta name="HandheldFriendly" content="true"/> <meta name="MobileOptimized" content="320"/> <meta http-equiv="cleartype" content="on" /> use this code on your website under <header> tag. 

Вот код для обнаружения мобильных устройств.

  function isMobile() { // Check the server headers to see if they're mobile friendly if(isset($_SERVER["HTTP_X_WAP_PROFILE"])) { return true; } // If the http_accept header supports wap then it's a mobile too if(preg_match("/wap\.|\.wap/i",$_SERVER["HTTP_ACCEPT"])) { return true; } // Still no luck? Let's have a look at the user agent on the browser. If it contains // any of the following, it's probably a mobile device. Kappow! if(isset($_SERVER["HTTP_USER_AGENT"])){ $user_agents = array("midp", "j2me", "avantg", "docomo", "novarra", "palmos", "palmsource", "240x320", "opwv", "chtml", "pda", "windows\ ce", "mmp\/", "blackberry", "mib\/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm", "up\.b", "audio", "SIE\-", "SEC\-", "samsung", "HTC", "mot\-", "mitsu", "sagem", "sony", "alcatel", "lg", "erics", "vx", "NEC", "philips", "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover", "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird", "compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh", "gradi", "jb", "\d\d\di", "moto"); foreach($user_agents as $user_string){ if(preg_match("/".$user_string."/i",$_SERVER["HTTP_USER_AGENT"])) { return true; } } } // Let's NOT return "mobile" if it's an iPhone, because the iPhone can render normal pages quite well. if(preg_match("/iphone/i",$_SERVER["HTTP_USER_AGENT"])) { return false; } // None of the above? Then it's probably not a mobile device. return false; } if (isMobile()) { header("location:$mobile"); // if the function returned true, it's a mobile. //echo "mobile"; // delete this line in your code, and uncomment the next line // header('Location: http://www.yoursite.mobi/'); // let's redirect the page to the mobile site } 

Надеюсь, что это поможет вам.

посмотрите здесь: http://www.zytrax.com/tech/web/mobile_ids.html и здесь: http://www.mobile-phone-specs.com/user-agent-browser/0/

Для вас есть списки почти всех строк пользовательских агентов. ,

Вы можете использовать CSS Media Queries для идентификации различных устройств (на самом деле различные функции устройства, такие как ширина устройства, dpi и т. Д.),

Для CSS у вас могут быть разные варианты, например, наличие отдельного CSS для каждого типа устройства или наличие жидкостного дизайна, что означает наличие одинаковой шкалы CSS для разных размеров устройства. Второй подход немного сложный для проектирования, но гораздо более гибкий от новых устройств, которые могут возникнуть в будущем.

 <?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|\-[aw])|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'); ?> 

Я использую это:

 $mobile= stripos( $_SERVER['HTTP_USER_AGENT'], 'mob'); 

Он работает почти каждый раз.

Javascript

 var mobile= navigator.userAgent.toLowerCase().indexOf( 'mob'); 

-1 если не мобильный; любое другое значение, если мобильный