WURFL (http://wurfl.sourceforge.net/) is an XML file with known mobile device IDs and the corresponding features. There is also a WURFL PHP API (http://wurfl.sourceforge.net/nphp/) which does the actual work of querying the XML file for us.
This would allow for more granular feature and capability detection of a particular mobile device, so that progressive enhancement can be applied to a mobile site.
WURFL PHP also allows for cache providers like memcache, APC etc for improved performance of querying when detecting mobile devices. The XML file can also be zipped to keep the file size down, but requires the php_zip extension.