Zählen von Tageszugriffen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zählen von Tageszugriffen

    Hallo,

    ich habe ein Problem mit dem Zählen von Zugriffen pro Tag. Mein Problem liegt eher in meiner Unwissenheit mit dem Umgang mit in Datei gespeicherten Daten.

    Als Datengrundlage besitze ich eine datei <datei.dat> in dieser Datei befinden sich Datensätze der Form:

    212.204.71.97;;;;;;;;;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0);;;30.11.2005;;;13.08:38
    84.167.193.96;;;;;;;;;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1);;;30.11.2005;;;13.11:42
    213.196.244.100;;;;;;;;;Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.5) Gecko/20041122 Firefox/1.0;;;30.11.2005;;;13.14:05

    Die Daten liegen also strukturiert vor, so dass einzelne Zeileneinträge durch ';;;' getrennt sind.

    Ziel ist es ein Skript zu schreiben, dass alle Zugriffe pro Datum aufaddiert:
    30.11.2005 XXXX

    Mein eigentliches Problem besteht in dem Umgehen mit der Datenbasis.
    - Wie öffne ich die Datei?
    - Wie erfasse ich die Zeilen?
    - Wie vergleiche ich das Datum?


    Für eine hinweisende Antwort wäre ich dankbar.

  • #2
    http://de.php.net/manual/en/function.fopen.php
    http://de.php.net/manual/en/function.fgetcsv.php
    http://de.php.net/manual/en/function.split.php
    http://de.php.net/manual/en/function.strtotime.php
    http://de.php.net/manual/en/function.fclose.php

    Kurz gesagt
    Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
    PHP Sicherheit
    PHPUnit[1-2]
    Professionelle Softwareentwicklung mit PHP 5
    Professionelle PHP 5-Programmierung

    Kommentar


    • #3
      Danke für den Hinweis.

      Kommentar


      • #4
        Nachdem ich also die ersten Schritte getan habe:

        <?php
        $datei = fopen("user.dat", "r");
        while (($data = fgetcsv($datei)) !== FALSE)
        {

        }

        ?>

        Frage ich mich wie ich auf den Datumseintrag zugreifen kann?

        1. Wie vermittele ich dem Array in $data, dass die Eintrage durch ";;;" getrennt sind?

        Kommentar


        • #5
          Original geschrieben von elf7013
          1. Wie vermittele ich dem Array in $data, dass die Eintrage durch ";;;" getrennt sind?
          Dass die Eingabezeile dieses Format hat, sollte doch fgetcsv() bereits berücksichtigt haben.

          Vielleicht liest du mal ein bisschen gründlicher im Manual nach, was Funktionen machen, und was sie zurückgeben.
          Und vielleicht schaust du die auch mal die Struktur eines solchen Rückgabewertes mit print_r() oder var_dump() an.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ich habe mal den folgenden Code getestet, die user.dat liegt dabei im gleichen Verzeichnis wie die php-Datei:

            <html>
            <head><title></title></head>
            <body>

            <?php
            $datei = fopen("user.dat", "r");
            while (($data = fgetcsv($datei)) !== FALSE)
            {
            $num = count($data);
            for ($c=0; $c < $num; $c++)
            {echo $data."\n";}
            }

            ?>

            </body>

            Dies verursachte folgendes:

            Internal Server Error
            The server encountered an internal error or misconfiguration and was unable to complete your request.
            Please contact the server administrator, ... and inform them of the time the error occurred, and anything you might have done that may have caused the error.

            More information about this error may be available in the server error log.

            --------------------------------------------------------------------------------
            Apache/1.3.33 Server at www.fernuni-hagen.de Port 80
            Zuletzt geändert von elf7013; 30.11.2005, 17:29.

            Kommentar


            • #7
              Kommisch. Probier mal das hier.
              PHP-Code:
              $datei fopen("user.dat""r");
              while ((
              $data fgetcsv($datei1000';')) !== FALSE)
              {
                  
              var_dump($data);

              Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
              PHP Sicherheit
              PHPUnit[1-2]
              Professionelle Softwareentwicklung mit PHP 5
              Professionelle PHP 5-Programmierung

              Kommentar


              • #8
                Habe ich gerade ausprobiert erzeugt die gleiche Meldung.

                Kommentar


                • #9
                  Die eMail-Adresse des Administrators ist ja bekannt...
                  Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                  PHP Sicherheit
                  PHPUnit[1-2]
                  Professionelle Softwareentwicklung mit PHP 5
                  Professionelle PHP 5-Programmierung

                  Kommentar


                  • #10
                    Könnte es problematisch sein, dass ich zur Zeit direkt im CGI-BIN operiere?

                    Glaube dies zwar nicht, aber zZ scheine ich mich eh nicht mehr zu erinnern

                    Kommentar


                    • #11
                      Möglich ist es, aber sicher bin ich mir im mom auch nicht. Es gibt aber nur eine Möglichkeit es zu testen...
                      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                      PHP Sicherheit
                      PHPUnit[1-2]
                      Professionelle Softwareentwicklung mit PHP 5
                      Professionelle PHP 5-Programmierung

                      Kommentar


                      • #12
                        Nein daran liegt es auch nicht.
                        Muss mich dann also mal erkundigen wie die Einstellungen aussehen.

                        Kommentar

                        Lädt...
                        X