rfaenger rfaenger - 2 months ago 7
PHP Question

Function to save Variables monthly to a text-file

I am working on a HitCounter for my website. I want to add some monthly statistics. On my "info.php" I can access to all relevant variables, like:

$totalhits, $visits, $botcount


Now I want to add a function which stores these variables to a .txt-file, when a new month begins. Also I would like to reset the content from the .txt-files which contain my Hits, IPs and stuff.

It doesnt really matter if the function is started on the 1st, 2nd or within the first week so it's okay to me that the script is started manually by accessing my info.php.

I am pretty new to php, but I think about some "if/else"-function which checks the current month and if there is already a text-file, for e.g. '9-16.txt' then the function should break. If there is no such file, it should create one and store the variables to it.

Edit: This one worked for me. The function 'archive()' had to be put on the end of my 'info.php', because I worked with exit in the if-statement:
So the script checks if there is a file with the "month" in the name - if not, it creates one. If there is already one, it returns.

<?php
function archive($a, $b, $c)
{
#format 'mm-yy'
$datename = date('m-Y');
if (file_exists('archiv/'.$datename.'.txt')) {
return;
} else {
$file = fopen('archiv/'.$datename.'.txt', 'w');
fwrite($file, $a);
fwrite($file, $b);
fwrite($file, $c);
}
}
?>

Answer

This one worked for me. So the script checks if there is a file with the "month" in the name - if not, it creates one. If there is already one, it returns.

<?php 
 function archive($a, $b, $c)
 {
 #format 'mm-yy'
 $datename = date('m-Y');
    if (file_exists('archiv/'.$datename.'.txt')) {
        return;
    } else {
        $file = fopen('archiv/'.$datename.'.txt', 'w');
        fwrite($file, $a);
        fwrite($file, $b);
        fwrite($file, $c);
    }
 }
?>