The Alexa stats are described in this posting here. I just wanted to share the code if anyone's interested.
< ?php
ini_set("max_execution_time", 2400); // 40 minutes of execution time
require_once 'config.php'; // just has the path to PEAR
require_once 'PEAR.php';
require_once 'DB.php';
require_once 'HTTP/Request.php';
$request = &new HTTP_Request('', array('allowRedirects' => true, 'timeout' => 10));
// this is not really necessary
$request->addHeader('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.7) Gecko/20050414 Firefox/0.9.1');
// db object
$db = DB::connect('mysql://root@localhost/alex',true);
// get all sites
$sql = 'SELECT url FROM sites';
$sites = $db->getCol($sql);
foreach ($sites AS $url) {
echo "\n" . '
URL: ' . $url;
$request->setURL($url);
echo ', url set, sending request ...' . "\n";
flush(); // this is supposed to force sending something to the browser
$request->sendRequest();
echo ', request send...' . "\n";
flush();
echo $server = $request->getResponseHeader('Server');
echo "\n";
flush();
if (empty($server)) {
$server = 'na'; // no Server header or no response
}
// update the table with the result
$sql = 'UPDATE sites SET server="' . addslashes($server) . '"' .
' WHERE url="'. $url .'"';
$db->query($sql);
}
?>
Here's an SQL dump that contains the `sites` table definition and the data. The data contains all the 499 top Alexa URLs plus the results from the server test.