Wallet Details tab
It runs in the browser (javascript) so you can save a local copy and run it offline for added security. It supports compressed pubkeys too.
Yeah, I've seen that. Of course, my script doesn't have a browser to paste keys into. I'm hoping that I don't need to translate that monstrosity myself, but that might just be my next step.
It seems odd that there aren't any command line utilities to package a hex or binary private key into a PEM or DER for openssl to use, and no RPC method to find an address to match an imported key.
I know you have found a PHP solution but in case others are interested in the javascript command line solution I have provided instructions.
Here is an article on running javascript on the command line:
http://ajaxian.com/archives/javascript-on-the-command-line-or-as-a-shell-scripting-language
You can create a new file called bitaddress.js by copying and pasting the contents of each