There are quite a few in existence already. Personally, I do like mine the best, though. There's the online PHP one, but it seems to use more heuristic methods, and I've found when they disagree, mine works better. When mine stops working, I use that one, though. It's pretty good.
That being...