The METAR data that I use on this web site comes right from the National Weather Service Internet Weather Service web site. Well, technically, I get it from their FTP site.
The data is free of charge! Actually, you paid for it via your taxes. Unless, of course, you don't pay taxes to the U.S. government. In THAT case you are just a freeloader. How the heck do you sleep at night?
Once an hour (at six minutes past the hour), my server runs a PHP program (via CRON) that does a couple of things:
1. Downloads the most current hour's METAR file (from the site listed above) and saves it to my server.
2. Decodes each METAR in the file and saves it into a MySQL database.
On my Meteogram and METAR Table pages, you are able to display the data in a graph or table. When you choose a state from the dropdown menu, my server fills the second dropdown menu with a list of weather reporting sites in that state from another MySQL database which holds all of the reporting site information.