aufruf von bildern in einem ordner zählen...?

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

  • aufruf von bildern in einem ordner zählen...?

    hallo,

    wenn ich einen ordner mit 20 jpg´s oder mit anderen dateien habe, kann ich dann den aufruf dieser dateien zählen lassen?

    also wenn nun einer http://www.domain.de/ordner/3.jgg
    aufruft soll dies in eine textdatei geschrieben werden
    und wenn einer http://www.domain.de/ordner/6.jpg soll dies auch in die textdatei geschrieben werden usw. ... so dass man
    nach einem zeitraum so eine art bilanz der aufrufe hat.

    ist dies überhaupt möglich? also auch universell, dass man es mit allen dateien machen kann? ....

    danke schon einmal... flayoo

  • #2
    Im Prinzip ja, mit einer Datei wird's aber sehr aufwendig.
    Und bei sehr vielen Zugriffen kann es aufgrund des Timings auch zu Fehlzählungen und Laufzeitfehlern kommen.
    Code:
    // Warten bis das Lock-file gelöscht wird
    // (wichtig bei vielen Zugriffen)
    while (file_exists('lock.dat'));
    // und dann zuschlagen (Datei lock.dat erzeugen)
    touch ('lock.dat');[/b]
    // Datei einlesen
    $file = file ('count.txt');
    // dann den gewünschten Wert ändern.
    $file[$bild_id] = 1+(int)$file[$bild_id];
    // und alle Werte wieder reinschreiben
    $fp = fopen ('count.txt', 'w');
    for ($j=0, reset($file); list ($i, $wert) = each($file); $j++)
    {
      // falls Lücken im Array sind: Leerzeilen einfügen
      for (; $j<$i; $j++)
        fputs ($fp, "\n");
      fputs ($fp, trim($wert)."\n");
    }
    // Datei schließen und Lock-File löschen
    fclose ($fp);
    unlink ('lock.dat');
    Einfacher wird's wenn du für jedes Bild eine eigene Datei nimmst, dafür füllt sich aber auch dein Verzeichnis schnell:
    Code:
    while (file_exists("lock_$bild_id.dat"));
    touch ("lock_$bild_id.dat");[/b]
    $file = file ("count_$bild_id.dat");
    $wert = 1+(int)file[0];
    $fp = fopen ("count_$bild_id.dat", 'w');
    fputs ($fp, $wert);
    fclose ($fp);
    unlink ("lock_$bild_id.dat");
    Wie einfach und performant ist es dagegen mit einer Datenbank *seufz*:
    Code:
    if (!
      mysql_query ('update BILD_COUNT '.
        'set COUNT=COUNT+1 where ID='.$bild_id)
    )
      mysql_query ('insert into BILD_COUNT '.
        '(ID,COUNT) values ('.$bild_id.', 1)');
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X