First, you probably will want your own localhost server. With Apache, MySQL and PHP installed, either separately or in a package like WAMP, you can then recreate the website in the htdocs folder, open a browser to http://localhost and test changes before having them go live.
Simply a matter of FTP-ing the live site into the htdocs folder for the files.
The database is trickier. You may need to get a "dump", i.e. a backup, and then import it into your localhost database.
As the live site's URL won't be "localhost" you can either have a "clean and new" localhost database, or do some virtual server magic in Apache to use the live site's content. I'm not sure how this would pan out in practice, I've always used a different db and it's let me test things adequately for my needs.