Menurut WikiPedia:

A unique visitor is a statistic describing a unit of traffic to a website, counting each visitor only once in the time frame of the report. This statistic is relevant to site publishers and advertisers as a measure of a site’s true audience size, equivalent to the term “Reach” used in other media.

artinya, Unique Visitor atau pengunjung khas adalah statistik yang menunjukkan trafik kunjungan sebuah website, dimana penghitungan dilakukan untuk tiap pengunjung pada satu kerangka waktu. Sedangkan AWStats sendiri merupakan salah satu software pencatat aktivitas situs / logging yang popular digunakan diberbagai mesin hosting web dewasa ini. Yang akan dibahas disini adalah bagaimana caranya mendapatkan statisktik pengunjung dari AWStats dengan PHP.

Source code

Pada dasarnya apa yang akan kita lakukan sangatlah sederhana. Skrip akan membuka url log awstats sebuah situs dengan username dan password tertentu. Halaman log tersebut akan dibuffer dan di pecah-pecah (parsing) kemudian ditampilkan ulang. Sourcecode berikut akan menampilkan jumlah unique visitors per bulan pada tahun ini dengan username, password dan URL yang sudah ditentukan terlebih dulu. Berikut sourcecodenya:

<?php
$username = 'username';
$password = 'password';
$url = 'domain.com';
$year = date('Y'); /* replace with 4 digit year */
 
$url = "http://".$username.":".$password."@".$url.":2082/awstats.pl?month=01&year=".$year."&config=".$url."&lang=en&framename=mainright&output=main";
 
$buffer = file_get_contents($url);
$buffer = strip_tags($buffer,"<tr><td>");
 
$regex = "{<tr><td>[0-9A-Za-z\s]*</td><td>([0-9]*)</td><td>([0-9]*)</td><td>([0-9]*)</td><td>([0-9]*)</td><td>([0-9A-Z\.\s]*)</td></tr>\n}";
preg_match_all($regex,$buffer,$matches);
echo '<pre>';
print_r($matches[1]);
echo '</pre>';
?>

Demo

Array berikut menunjukkan jumlah unique visitors dari situs ini (http://emka.web.id/) per bulan pada tahun 2011 (tahun ini).

berikut adalah screenshoot halaman AWStats:

berikut hasil parsing halaman awstats tersebut:
“);

$regex = “{

[0-9A-Za-z\s]* ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*) ([0-9A-Z\.\s]*)

\n}”;
preg_match_all($regex,$buffer,$matches);
echo ‘

';
print_r($matches[1]);
echo '

‘;
?>