Является ли это действительно регулярное выражение или просто символьная строка? Если это просто строка, вы можете использовать функцию strpos.
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident/7.0; rv:11.0') !== false) {
// your code
}
Если это регулярное выражение, вы должны экранировать специальные символы, такие как /
и .
EDIT:
Вы можете увидеть в комментариях этого ответа, что код не обнаруживает IE 11 должным образом во всех случаях. Я на самом деле не тестировал его, чтобы соответствовать ему, я только что скорректировал код создателя вопроса, чтобы использовать strpos
вместо preg_match
, потому что он был применен неправильно.
Если вам нужен надежный способ обнаружения IE 11, пожалуйста, взгляните на другие ответы.
Это просто говорит вам, что это IE11, а не планшет или даже устройство с сенсорным экраном. Скорее всего, на странице больше посетителей IE11, чем у пользователей планшета. Каковы последствия включения режима планшета для пользователя на рабочем столе без сенсорного экрана? –
Удивленный никто не бил меня до этого, но, пожалуйста, не обнаруживайте браузер. Это очень плохая привычка иметь. Вместо этого я рекомендую вам попробовать гибкие методы проектирования и функции обнаружения для создания вашего приложения. FWIW Раньше я был в лагере посвященного веб-сайта для мобильных и настольных компьютеров. Но это быстро исчезает в массовом обслуживании и т. Д. Сначала запустите мобильный, а затем уменьшите масштаб. Это проще, чем вы думаете. –
@ChrisLove, нет, потому что Google использует обнаружение браузера, поэтому msn и microsoft.com. Так почему я не должен? – ben