Парсинг агента пользователя не является надежным методом обнаружения браузера. Просто посмотрите этот список для тысяч строк пользовательских агентов, которые просто объединяют все строки браузера. Обычные настольные браузеры обычно этого не делают, но многие мобильные делают, особенно на Android. Также несущественно подделать эту строку пользовательского агента.
Сравните:
curl --user-agent "UserAgentString" http://example.com
Практически во всех случаях вы действительно хотите обнаружение функции . Однако для этого требуется JavaScript. Но, учитывая, что почти 100% браузеров, используемых Real People ™, поддерживают JavaScript и имеют его включенным, это должно быть проблемой только в крайних случаях.