Having moved several web sites and still maintaining the rankings in google and other search engines, here is what I did.
1. Copy all the existing web pages on the new host, but rather and using the domain name, I use the IP address.
2. After I have loaded all the pages on the new host I test, but I also make a slight change in the pages so that after I have changed the DNS records for the domain name I can track and see when they were picked up world wide.
3. I test the new upload to make sure it is functioning properly, and if I need to work on any of the cgi scripts i.e. submitting a form to me via email, etc..
4. Since you are changing the page extensions from .html to .php you can do one of two things:
a) post both sets .htmland .php however change your navigation to reflect the .php pages
b) put the following tag
<META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW">
in all your .html pages
The weakness in this is that if there are any links to your pages from outside your site, they will be dead when you finally take down the .html pages
a) delete the .html pages and only upload the .php pages
b)ad mod_rewrite to redirect the pages at server level, so when someone or search engine tries to reach a .html page, they will be redirected to the .php page
The only real trick with the mod_rewrite is to get the new extensions showing in the browser.
FInally, after you are positive that the new site is working as you hope it will be. Change the DNS settings at whoever is the Registrar for your site.
After a few days when your site has been cached around the world (48 -72 hours in most cases), take down the old site and notify the old host that you want to cancel hosting of that domain.
I hope this helps.