2015-10-28 4 views
0

Я знаю, что некоторые очень легкий PHP и решил начать с нуля и смотрел на php.net http://php.net/manual/en/tutorial.useful.php На этой странице, он упоминает в качестве примера как проверить IE.

<?php 
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { 
    echo 'You are using Internet Explorer.<br />'; 
} 
?> 

У меня есть очень небольшая тестовая страница, составленную, что я иду через раздел здесь с, и это то, что я записал ...

<html> 
    <head> 
     <title>PHP startup testing page</title> 
    </head> 
    <body> 
<?php 
     echo "<p>Hello World</p>"; 
     echo $_SERVER['HTTP_USER_AGENT']; //outputs the kind of browser the visitor is using. 
     if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { 
      echo 'You are using Internet Explorer.<br />'; 
     } 
?> 
    </body> 
</html> 

То, что я не понимаю поэтому, когда я загружаю это в Internet Explorer, вывод на мой экран Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv: 11.0), как Gecko, и оператор if таким образом ничего не возвращает. Есть ли что-то очень основное, что я не получаю?

+0

Для чего стоит строка пользовательского агента, предоставляемая PHP и не надежная. Если вам нужно что-то конкретное, я считаю, что обнаружение функций на стороне клиента будет служить вам лучше. – Crackertastic

ответ

2

IE 11 больше не использует MSIE в строке агента пользователя, это также плохая практика, чтобы обнаружить браузер вы должны обнаружить для функций с библиотеками, как реформатор https://modernizr.com/, вот ссылка на IE строке агента 11 пользователей https://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx

+0

Ничего себе, спасибо за эту информацию! Если вы не возражаете, чтобы я спросил, тогда какой вред в поиске строки для «Trident»? – JoeL

+0

@JoeL взгляните на этот список всех браузеров, которые используют «Trident» http://www.useragentstring.com/pages/Browserlist/, гораздо проще сделать ваш сайт на основе функций браузера, а затем на основе браузер, кроме того, пользователи могут изменить свою строку агента пользователя. – cmorrissey

+0

пункт хорошо взято. Я буду изучать modernizr.com и как я могу использовать это в своих проверках браузера. Это будет мой последний, и тогда я перейду по веселью. Должен ли я быть хорошим с использованием php.net для начинающих? Или это был вид выброса с точки зрения устаревшей информации. @cmorrissey – JoeL

Смежные вопросы