RobinTibbs Posted February 2, 2007 Share Posted February 2, 2007 function detectDotNet() { $agentstring = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)"; preg_match_all("%(.NET CLR)[ ]([0-9.]+)%", $agentstring, $matches); echo $matches; } trying to grab the number after the .NET CLR, but nothing is being captured, hohum! Quote Link to comment Share on other sites More sharing options...
effigy Posted February 2, 2007 Share Posted February 2, 2007 Nothing, but you can make a few improvements: - A period outside of a character class is a metacharacter; escape it to match a literal: \. - You can use a lookbehind since you don't need the ".NET CLR " string (and it is fixed length). <pre> <?php function detectDotNet() { $agentstring = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)"; preg_match_all("%(?<=\.NET CLR )([\d.]+)%", $agentstring, $matches); print_r($matches); } detectDotNet(); ?> </pre> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.