summaryrefslogtreecommitdiff
path: root/website/static/awstats
diff options
context:
space:
mode:
Diffstat (limited to 'website/static/awstats')
-rw-r--r--website/static/awstats/awstats.php84
-rw-r--r--website/static/awstats/class.awfile.php221
2 files changed, 305 insertions, 0 deletions
diff --git a/website/static/awstats/awstats.php b/website/static/awstats/awstats.php
new file mode 100644
index 0000000..cb3a707
--- /dev/null
+++ b/website/static/awstats/awstats.php
@@ -0,0 +1,84 @@
+<?php
+/**
+* Copyright (c) 2005 - Javier Infante
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the
+* GNU General Public License (GPL) Version 2, June 1991,
+* which accompanies this distribution, and is available at:
+* http://www.opensource.org/licenses/gpl-license.php
+*
+* Description: Example of usage of class.awfile.php
+*
+* Author: Javier Infante (original author)
+* Email: jabi (at) irontec (dot) com
+**/
+ require("class.awfile.php");
+
+ $unique_visit = 0;
+ $total_visit = 0;
+ $page_loads = 0;
+ // Path to the AWSTATS DATA FILE
+ for($i=1;$i<=12;$i++){
+ for($j=2013;$j<=2015;$j++){
+ $file = '/var/lib/awstats/awstats'.$i.$j.'.python.fossee.in.txt';
+ if($i < 10){
+ $file = '/var/lib/awstats/awstats0'.$i.$j.'.python.fossee.in.txt';
+ }
+ if(file_exists($file)){
+ $aw = new awfile($file);
+ if ($aw->Error()) die($aw->GetError());
+ $total_visit += $aw->GetVisits();
+ $unique_visit += $aw->GetUniqueVisits();
+ // echo "<b> Unique</b>" . $unique_visit . "<br>";
+ foreach ($aw->GetDays() as $day=>$pages)
+ $page_loads += $pages;
+
+ }
+ }
+ }
+ $output = array('unique_visit' => $unique_visit, 'total_visit' => $total_visit, 'total_page_loads' => $page_loads);
+// var_dump($output);
+ echo json_encode($output);
+ return $output;
+/*
+ $aw = new awfile($file);
+ if ($aw->Error()) die($aw->GetError());
+
+ echo "<strong>Showing contents [".$file."]</strong><br />";
+
+ echo "The site first visit in the month: ".$aw->GetFirstVisit()."<br /><br />";
+ echo "Total visits this month: ".$aw->GetVisits()."<br /><br />";
+ echo "Total unique visits this month: ".$aw->GetUniqueVisits()."<br /><br />";
+ /*echo "Pages viewed / hours:<br />";
+ foreach ($aw->GetHours() as $hour=>$pages)
+ echo "&nbsp;&nbsp;&nbsp;&nbsp;<em>".str_pad($hour, 2, "0", STR_PAD_LEFT).": ".$pages." pages viewed.</em><br />";
+
+ echo "Pages viewed / days:<br />";
+ foreach ($aw->GetDays() as $day=>$pages)
+ echo "&nbsp;&nbsp;&nbsp;&nbsp;<em>".$day.": ".$pages." pages viewed.</em><br />";
+ echo "<br />";
+
+ $betterDay = $aw->GetBetterDay();
+ echo "The day with more visitors(".$betterDay[1].") was the ".$betterDay[0].".<br /><br />";
+
+ echo "hits / os:<br />";
+ foreach ($aw->GetOs() as $os=>$hits)
+ echo "&nbsp;&nbsp;&nbsp;&nbsp;<em>".$os.": ".$hits." hits.</em><br />";
+ echo "<br />";
+
+ echo "hits / browser:<br />";
+ foreach ($aw->GetBrowser() as $browser=>$hits)
+ echo "&nbsp;&nbsp;&nbsp;&nbsp;<em>".$browser.": ".$hits." hits.</em><br />";
+ echo "<br />";
+
+ echo "Distinct Referers:<br />";
+ foreach ($aw->GetReferers() as $referer=>$hits)
+ echo "&nbsp;&nbsp;&nbsp;&nbsp;<em>".$referer.": ".$hits." hits.</em><br />";
+ echo "<br />";
+
+ echo "Visits / Session Ranges:<br />";
+ foreach ($aw->GetRanges() as $range=>$visits)
+ echo "&nbsp;&nbsp;&nbsp;&nbsp;<em>".$range.": ".$visits." visits.</em><br />";
+ echo "<br />";*/
+
+?>
diff --git a/website/static/awstats/class.awfile.php b/website/static/awstats/class.awfile.php
new file mode 100644
index 0000000..79ed4d0
--- /dev/null
+++ b/website/static/awstats/class.awfile.php
@@ -0,0 +1,221 @@
+<?php
+/**
+* Copyright (c) 2005 - Javier Infante
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the
+* GNU General Public License (GPL) Version 2, June 1991,
+* which accompanies this distribution, and is available at:
+* http://www.opensource.org/licenses/gpl-license.php
+*
+* Description: Simple class that parses into simple PPH arrays
+* access information to a site, from a AWSTATS DATA FILE.
+* This file is found as "awstatsMMYYYY.example.com.txt" commonly
+* in shared servers or others.
+* The information recieved is quite limited (as much as i needed so far).
+*
+* Name of the class: awfile
+* Version: 0.1
+* Author: Javier Infante (original author)
+* Email: jabi (at) irontec (dot) com
+**/
+
+class awfile {
+ var $fich;
+ var $first_visit;
+ var $visits;
+ var $uniquevisits;
+ var $aHours = array();
+ var $aDays = array();
+ var $aOs = array();
+ var $aBrowser = array();
+ var $aReferers = array();
+ var $aRange = array();
+ var $aSections = array();
+ var $error = false;
+ var $ErrorStr = array(
+ 1=>"file not found.",
+ 2=>"File not readable");
+ var $_positions = array(
+ "POS_GENERAL"=>0,
+ "POS_TIME"=>0,
+ "POS_OS"=>0,
+ "POS_BROWSER"=>0,
+ "POS_PAGEREFS"=>0,
+ "POS_DAY"=>0,
+ "POS_SESSION"=>0,
+ "POS_SIDER"=>0);
+
+ function awfile($fich) {
+ if (!file_exists($fich))
+ $this->error = 1;
+ else {
+ $this->fich = $fich;
+ $this->__proc();
+ }
+ }
+
+ function __proc() {
+ if (!$fd = fopen($this->fich,"r"))
+ $this->error = 2;
+ else {
+
+ do {
+ $str = trim(fgets($fd));
+ if ($str{0} ==" ") continue;
+
+ list($elem,$pos) = explode(" ",$str);
+ if (isset($this->_positions[$elem]))
+ $this->_positions[$elem] = $pos;
+ else continue;
+ } while ($str!="END_MAP");
+
+
+ fseek($fd,$this->_positions["POS_GENERAL"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ $pendientes = 3;
+ while ($n>0) {
+ list($elem,$num) = explode(" ",trim(fgets($fd)));
+ switch($elem) {
+ case "FirstTime":
+ $this->first_visit = $num;
+ $pendientes--;
+ break;
+ case "TotalVisits":
+ $this->visits = $num;
+ $pendientes--;
+ break;
+
+ case "TotalUnique":
+ $this->uniquevisits = $num;
+ $pendientes--;
+ break;
+ default: continue;
+ }
+ if ($pendientes==0) break;
+ $n--;
+ }
+
+
+ fseek($fd,$this->_positions["POS_TIME"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,$num,,,,,) = explode(" ",trim(fgets($fd)));
+ $this->aHours[$elem] = $num;
+ $n--;
+ }
+
+ fseek($fd,$this->_positions["POS_OS"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,$num) = explode(" ",trim(fgets($fd)));
+ $this->aOs[$elem] = $num;
+ $n--;
+ }
+
+ fseek($fd,$this->_positions["POS_BROWSER"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,$num) = explode(" ",trim(fgets($fd)));
+ $this->aBrowser[$elem] = $num;
+ $n--;
+ }
+
+ fseek($fd,$this->_positions["POS_PAGEREFS"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,$num,) = explode(" ",trim(fgets($fd)));
+ $this->aReferes[$elem] = $num;
+ $n--;
+ }
+
+ fseek($fd,$this->_positions["POS_DAY"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,,,,$num) = explode(" ",trim(fgets($fd)));
+ $this->aDays[$elem] = $num;
+ $n--;
+ }
+
+ fseek($fd,$this->_positions["POS_SESSION"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,$num) = explode(" ",trim(fgets($fd)));
+ $this->aRange[$elem] = $num;
+ $n--;
+ }
+
+ fseek($fd,$this->_positions["POS_SIDER"]);
+ list(,$n) = explode(" ",trim(fgets($fd)));
+ while ($n>0) {
+ list($elem,$num,,,) = explode(" ",trim(fgets($fd)));
+ $this->aSections[$elem] = $num;
+ $n--;
+ }
+
+ }
+
+ }
+
+
+ function GetFirstVisit() {
+ return $this->first_visit;
+ }
+
+ function GetVisits() {
+ return $this->visits;
+ }
+
+ function GetUniqueVisits() {
+ return $this->uniquevisits;
+ }
+
+ function GetHours() {
+ return $this->aHours;
+ }
+
+ function GetDays() {
+ return $this->aHours;
+ }
+
+ function GetOs() {
+ return $this->aOs;
+ }
+
+ function GetBrowser() {
+ return $this->aBrowser;
+ }
+
+ function GetReferers() {
+ return $this->aReferes;
+ }
+
+ function GetRanges() {
+ return $this->aRange;
+ }
+
+ function GetSections() {
+ return $this->aSections;
+ }
+
+ function Error() {
+ return $this->error;
+ }
+
+ function GetError() {
+ return $this->ErrorStr[$this->error];
+ }
+
+ function GetBetterDay() {
+ $max = 0;
+ foreach ($this->aDays as $day => $num) {
+ if ($num>$max) {
+ $max = $num;
+ $date = $day;
+ }
+ }
+ return array($date,$max);
+ }
+
+}
+
+?>