> Manuales > Taller de PHP

Script del contador PHP que almacena el número mes de la última visita, el número de visitas en el mes y las visitas totales.

Dadas mis necesidades he tenido que modificar el script del contador simple para páginas PHP, y me gustaría compartirlo con todos vosotros. La diferencia está en que ahora almacena tres datos en el archivo que hace de contador:

0) el número de mes de la última visita
1) el número de visitas del mes
2) el número de visitas totales

El script queda como sigue:

function interface_contador(){

    $archivo = "contador.txt";
    $info = array();

    //comprobar si existe el archivo
    if (file_exists($archivo)){
       // abrir archivo de texto y introducir los datos en el array $info
       $fp = fopen($archivo,"r");
       $contador = fgets($fp, 26);
       $info = explode(" ",$contador);
       fclose($fp);

       // poner nombre a cada dato
       $mes_actual = date("m");
       $mes_ultimo = $info[0];
       $visitas_mes = $info[1];
       $visitas_totales = $info[2];
    }else{
       // inicializar valores
       $mes_actual = date("m");
       $mes_ultimo = "0";
       $visitas_mes = 0;
       $visitas_totales = 0;
    }

    // incrementar las visitas del mes según si estamos en el mismo
    // mes o no que el de la ultima visita, o ponerlas a cero
    if ($mes_actual==$mes_ultimo){
       $visitas_mes++;
    }else{
       $visitas_mes=1;
    }
    $visitas_totales++;

    // reconstruir el array con los nuevos valores
    $info[0] = $mes_actual;
    $info[1] = $visitas_mes;
    $info[2] = $visitas_totales;

    // grabar los valores en el archivo de nuevo
    $info_nueva = implode(" ",$info);
    $fp = fopen($archivo,"w+");
    fwrite($fp, $info_nueva, 26);
    fclose($fp);

    // devolver el array
    return $info;
}


Este código devuelve un array cuando es llamado, con 3 elementos (el mes actual, visitas del mes, visitas totales) que cada uno puede utilizar como quiera.

Por cierto, me olvidaba decir que he añadido una cláusula condicional que verifica si existe el archivo $contador en el directorio de la página, previamente a ser leído. Lo he hecho para evitar que diera error la primera vez que se ejecutaba el script. De esta forma, ya no hace falta preocuparse por poner en el servidor un archivo $contador a cero antes de ejecutar el código por primera vez.

Se puede ver el ejemplo en marcha en esta página. También se puede descargar el código de la página del ejemplo, con la función y una sencilla muestra de cómo utilizarla.

Sergio Rodriguez Rios

Manual