Первое, что вы попробовали (условные комментарии), не сработает, потому что включение выполняется на сервере во время создания страницы, а условные комментарии проверяются браузером только после загрузки страницы.
Условные комментарии не позволят сгенерированному коду отображаться в IE6, но он все равно будет выполняться сервером.
Кроме того, условные комментарии в формате, который вы здесь использовали, будуттакже исключите код из всех браузеров, отличных от IE.Если вы хотите повлиять только на IE, вам нужно переформатировать его, чтобы другие браузеры не обрабатывали код внутри как комментарий, используя синтаксис <![if !IE 6]>
вместо <!--[if !IE 6]>
.
Этот метод по-прежнему не остановит выполнение кода на сервере.
Второй метод, который вы попробовали, скорее всего будет ближе к тому, что вы на самом деле хотите сделать.Однако обратите внимание, что хотя PHP и получает строку USER_AGENT
, в большинстве браузеров возможно подделать USER_AGENT, и некоторые продукты для обеспечения конфиденциальности и безопасности активно удаляют его, как и некоторые веб-прокси.Другими словами, строка USER_AGENT не является на 100% надежным способом определения того, какой браузер кто-то использует.
Тем не менее, если у вас есть определенный код PHP, который вы хотите исключить из выполнения только для IE6, тоэто может быть единственным жизнеспособным решением.
Причина, по которой это не сработало для вас, состоит в том, что ваш код включает только IE6, а не , исключая .Вам необходимо добавить оператор not (!
) перед preg_match()
.
Кстати: в вашем примере кода у вас есть $user_agent = getenv("HTTP_USER_AGENT");
.Стоит отметить, что $_SERVER['USER_AGENT']
уже доступна как переменная, вам не нужно использовать getenv ().