- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть скрипт
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'Firefox') ) echo $foo;
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Chrome') ) echo 'chrome';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Safari') ) echo 'safari';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Opera') ) echo 'opera';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0') ) echo 'ie6';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0') ) echo 'ie7';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0') ) echo 'ie8';
?>
Надо чтобы вместо вывода имен браузеров, выводился нужный мне код, который в фаилах, а фаилы инклудятся.
Знаю что задача простая, но у меня не получается.
Я так понял идея такая: если в $_SERVER['HTTP_USER_AGENT'] есть название какого-то броузера, то должен выводиться или инклюдится текст.
Самое простое что приходит на ум это сделать массив где ключ - название броузера, а значение - либо переменная, либо файл который надо инклюдить.
Пример:
"Chrome" => "chrome.php",
"Safari" => "safari.php",
"Opera" => "opera.php"
);
Дальше проверяем через цикл какой броузер у пользователя и в зависимости от этого инклюдим то что нужно:
{
if (substr_count ($_SERVER['HTTP_USER_AGENT'], $key) > 0)
include $value;
}
Функция substr_count вычисляет количество появлений подстроки, т.е. число появлений значения $key в $_SERVER['HTTP_USER_AGENT']. Если совпадения есть, значит инклюдим нужный файл или просто через echo выводим переменную.
Спасибо, попробую, если не получится, отпишу.
Дальше проверяем через цикл
А зачем проверять именно через цикл?
Orangesoda - предложите Ваш вариант :)
Моя логика: как правило в $_SERVER['HTTP_USER_AGENT'] содержится текст вида:
Проверка производится по совпадению с названием броузера (в данном случае Opera). Совпадение может быть лишь с одним из браузеров в списке, либо ни с каким из браузеров, поэтому цикл в данном случае наиболее удобен, нежели многократные конструкции if (...).
Ааааах черт!
Тут же User_Agent.
Извиняюсь, сразу не обратил внимания! =)
А зачем проверять именно через цикл?
полностью согласен, а цикл зачем? :)
include strtolower($mm[1]).'.php';
}
Кому что ближе, тот с тем и работает) Кто-то через массивы проверяет, а кто-то через регулярки...
Это действительно каждому свое...
2WebTih: это точно :)
Проверка производится по совпадению с названием броузера (в данном случае Opera). Совпадение может быть лишь с одним из браузеров в списке, либо ни с каким из браузеров, поэтому цикл в данном случае наиболее удобен, нежели многократные конструкции if (...).
кстати, у Вас цикл не разрывается и возможно совпадение с несколькими браузерами.
admak, в данном случае через цикл быстрее, чем связываться с регулярными.
admak - мой вариант это общий случай. Принудительное завершение цикла - это уже уточнение условия задачи ;)
Ваш вариант считаю замечательным, поскольку занимает всего 2 строки, но сам привык работать с массивами, поэтому такая реализация и пришла первой в голову.