Это тоже очень частая задача, возникающая при разработке систем сбора статистики посещения сайта. Всегда интересно знать, сколько посетителей приходят на сайт с поисковых систем (и с каких именно), с ресурсов, которые ссылаются на ваш сайт, и т. д. Выяснить это можно, обратившись к элементу суперглобального массива $_SERVER[ 'HTTP_REFERER' ] (листинг 3.31).
Определить, кем является посетитель, можно, анализируя элемент суперглобального массива $_SERVER['HTTP_USER_AGENT'], содержащий строку, возвращаемую браузером клиента. В состав этой строки входит информация о типе и версии браузера и операционной системы посетителя.
Поэтому при анализе строки, возвращаемой
браузером, следует иметь в виду, что к Internet Explorer относится строка, со
держащая подстроку "MSIE 6.0" и не содержащая подстроки "Opera". Кроме
того, из данной строки можно заключить, что пользователь работает в опера
ционной системе Windows 98. \'
При использовании браузера Netscape содержание переменной $HTTP_USER_AGENT
может выглядеть следующим образом: *
Mozilla/5.0 (Xll; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1
Принадлежность к этому браузеру можно определить по наличию подстроки "Netscape". Кроме того, можно узнать, что посетитель выходит в Интернет, используя операционную систему Linux с ядром, оптимизированным под Pentium 4, находясь в графической оболочке X-Window.
Этот механизм удобно использовать для сбора статистической информации, которая позволяет дизайнерам оптимизировать страницы под наиболее распространенные браузеры.
Например, запретить загрузку страницы можно так же и по $_SERVER['HTTPJJSER_AGENT'] (листинг 3.32), остановив выполнение скрипта РНР, если содержимое переменной $_SERVER[?HTTPJJSER_AGENT'] нас по каким-то причинам не устраивает.