diff options
Diffstat (limited to 'static/awstats')
-rw-r--r-- | static/awstats/awstats.php | 84 | ||||
-rw-r--r-- | static/awstats/class.awfile.php | 221 |
2 files changed, 305 insertions, 0 deletions
diff --git a/static/awstats/awstats.php b/static/awstats/awstats.php new file mode 100644 index 0000000..cb3a707 --- /dev/null +++ b/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 " <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 " <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 " <em>".$os.": ".$hits." hits.</em><br />"; + echo "<br />"; + + echo "hits / browser:<br />"; + foreach ($aw->GetBrowser() as $browser=>$hits) + echo " <em>".$browser.": ".$hits." hits.</em><br />"; + echo "<br />"; + + echo "Distinct Referers:<br />"; + foreach ($aw->GetReferers() as $referer=>$hits) + echo " <em>".$referer.": ".$hits." hits.</em><br />"; + echo "<br />"; + + echo "Visits / Session Ranges:<br />"; + foreach ($aw->GetRanges() as $range=>$visits) + echo " <em>".$range.": ".$visits." visits.</em><br />"; + echo "<br />";*/ + +?> diff --git a/static/awstats/class.awfile.php b/static/awstats/class.awfile.php new file mode 100644 index 0000000..79ed4d0 --- /dev/null +++ b/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); + } + +} + +?> |