Vinzenz Mai: php mit txt.datei und abfragen

Beitrag lesen

Hallo Ingo,

ich stimme Dir weitgehend zu, aber (wie Tom gerne zu Recht ausgeführt hat) mit kleinen Ablaufänderungen:

Ich würde folgendermaßen an di Sache herangehen:

Speicherformat csv:
Timestamp│Aufrufe│IP│Browserkennung

  • Datei sperren
  • Datei in ein Array einlesen
  • Array sortieren (deshalb der Timestamp zuerst)
  • Einträge < aktueller Timestamp - 1800 nicht mehr berücksichtigen
  • Browserkennung und IP vergleichen
  • wenn dieselbe IP oder dieselbe Browserkennung und eine mehr oder weniger ähnliche IP (bei AOL z.B. den letzten Block nicht berücksichtigen) Zähler erhöhen, sonst Neueintrag
  • Datei sperren, neuschreiben und entsperren
  • Datei neuschreiben und entsperren

Warum? Tom hat es gerne ausführlich erklärt. Ich zeige den möglichen Fehler in Deinem Szenario auf:

Anforderung von Client A
Datei wird eingelesen, Array wird sortiert (das kann dauern :-))
Anforderung von Client B
Datei wird eingelesen (gleicher Stand), Array wird sortiert (das kann dauern :-))
Datei wird gesperrt
Änderungen von Client A werden weggeschrieben
Datei wird entsperrt
Datei wird gesperrt
Änderungen von Client B an Originaldatei [sic!] werden weggeschrieben
Datei wird entsperrt

Änderungen von Client A sind weg.
Daher _vor_ dem Lesen die Datei sperren.

Freundliche Grüße

Vinzenz