Как лучше всего узнавать какой браузер и версия у пользователя?
 что не все одинаково хороши все эти варианты. Какой самый лучший способ ?
Использовать все способы сразу. Все равно, ни 1 из них не дает гарантий 100% верности.
Чем пользовался сам:
https://github.com/jenssegers/agent
https://github.com/sinergi/php-browser-detector