I don't think there is one book that will cover them all, but this is how I did it on top of the countless nights reading every possible ebook and phpDev articles I could find. Of course, not to forget the w3schools and php.net credits. In fact, I have colletions of about 38 academic books of various programming languages. Some of them were given to me by my older brothers who are software Engineers. At a very young age, I learned from them, watching how they do things.
First to second Week of reading: Read Beginning PHP 5.3 by By Matt Doyle.
Third to Fourth Week of reading: Learning PHP, MySQL, and JavaScript
A Step-by-Step Guide to Creating Dynamic Websites By Robin Nixon
and then try-> PHP Objects, Patterns and Practice (Expert's Voice in Open Source), this book will not get you bored ever I think. Prepare to get your hair really greasy for weeks, learn how to drink lots of coffee, walk in the park or ride the bike until everything sinks in.
When finished with the php objects above, apply your gained knowledge by reading this book PHP 5 CMS Framework Development Second Edition by Martin Brampton. Try to expirement with the codeIgniter framework, cakephp, and of course the ### rated Zend Framework.
If all is well for you after the CMS and framework Development, aim for the Zend Framework Certification or write you own application based on either of this frameworks (codeigniter, phpckae, symfony.. with either one of these plugins smarty or twigs)..
Learn and Master the ins and outs of the apache server, including php, pear, tomcat, ruby, and cgi. Learn how to tweaks server's loaded configuration file to support your projects. Be aware of the cons of allow_url_include set as ON, and the alternative without turning this to ON.
After you have achived all of the above, go back to where you started, because the more we learned the more we tend to forget everything..
The secret is don't memorize anything, you have to know them.. memorizing stuffs does not make anyone good, but will just suffer with memory overload. Knowing something is completely different than memorizing something. So, if someone ask you what is an array in php, your heart will begin to pump really hard, because you know exactly what it is, not just because you memorize it from the books.
Prepare your own script snippets library... these are the working codes you wrote or modified.. this will help you a lot on your future coding projects.