Is it possible to detect that IE is in compatibility mode from the useragent with PHP?
I use IE10 and have the useragent
Mozilla/4
From this resource: http://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
To detect IE 10 in compatibility mode rather than a regular IE 7 you should look at the token Trident/6.0 which identifies IE 10 regardless of the mode.
To detect it from PHP, grab the user agent from the headers and parse it for the Trident/6.0 string token.
You can recognize more versions of Internet Explorer from the Trident token: IE9 has Trident/5.0, IE 8 has Trident/4.0, IE 7 has no Trident in it's user agent.
The user agent string can be found at $_SERVER['HTTP_USER_AGENT']. From there it's trivial as to search a substring inside or with a regex.
IE10 User agent reference:
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/6.0) Note that the MSIE token is different but the Trident token is the same. This is the indication that the user has compatibility mode enabled.