Alexa 500 server stats (the code)

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.

This entry was posted on Friday, April 29th, 2005 and is filed under News/personal. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


Get notification for future posts: follow me on Twitter or subscribe to my RSS feed

Somewhat related posts

Leave a Reply