You can query Exchange's data through LDAP (if you have it running). Check Microsoft's Technet to get the LDAP keys.
Another posibility is to get the Exchange Box do a cron job with the export directory clause :
export.bat
C:\Exchsrvr\bin\admin /e C:\output.csv /d ExchangeHost /n /o C:\Export.cfg
export.cfg
[Export]
HomeServer=ExchangeHost
ExportObject=All
InformationLevel=Ful
Hiddenobjects=Yes
Subcontainers=Yes
And you get a CSV file with the following format:
Obj-Class,First Name,Last name,Display Name,Alias Name,Directory Name,Primary Windows NT Account,Home-Server,E-mail address,E-mail Addresses,Members,Obj-Container,Hide from AB
Easyly readble from PHP.
For the Micro$oft authentication read about NTNLM or poke into Win32 PHP to if there's something implemented to talk with Microsofts user database (SAM).