I learned PHP from hacking an open-source project I wasn't quite happy with as well. Highly recommended, it's really hard to sit down at a blank screen and create something from scratch. Much easier to sit down at a code base that's 90% of what you want and hacking the rest of it to bits. At least you know what you're starting with already works.