Hallo allerseits,
ich hab hier ein Verständnisproblem beim Vergleichen zweier Variablen. Es geht um einen Klickzähler, der die Seitenaufrufe in Abhängigkeit des Datums zählt.
Die Textdatei ist folgendermaßen aufgebaut:
1111|25.09.2007
3533|26.09.2007
4424|27.09.2007
Aus dieser lese ich die einzelnen Datumswerte heraus und vergleiche mit dem heutigen Datum. Wenn das heutige Datum schon in der DB vorhanden ist, erhöht sich der Zähler bei diesem um 1, ansonsten wird das neue Datum mit Anfangswert 1 eingetragen.
Das Ganze klappt vom Prinzip her einwandfrei, nur gibts ein-zweimal am Tag einen Aussetzer und das schon in der DB vorhandene Datum wird nicht erkannt, stattdessen wird das heutige Datum erneut eingetragen, so dass es zweimal vorhanden ist.
Ich hab das Ganze so gelöst, daß die Zähler von doppelt vorhandenen Datumswerten addiert werden, frage mich aber trotzdem, wieso ab und an Datum nicht gleich Datum ist.
Hier mal der relevante Codeschnipsel:
Wäre nett, wenn jemand helfen und mir das Phänomen erklären könnte, hab scheinbar einen Knoten im Hirn ;-)
ich hab hier ein Verständnisproblem beim Vergleichen zweier Variablen. Es geht um einen Klickzähler, der die Seitenaufrufe in Abhängigkeit des Datums zählt.
Die Textdatei ist folgendermaßen aufgebaut:
1111|25.09.2007
3533|26.09.2007
4424|27.09.2007
Aus dieser lese ich die einzelnen Datumswerte heraus und vergleiche mit dem heutigen Datum. Wenn das heutige Datum schon in der DB vorhanden ist, erhöht sich der Zähler bei diesem um 1, ansonsten wird das neue Datum mit Anfangswert 1 eingetragen.
Das Ganze klappt vom Prinzip her einwandfrei, nur gibts ein-zweimal am Tag einen Aussetzer und das schon in der DB vorhandene Datum wird nicht erkannt, stattdessen wird das heutige Datum erneut eingetragen, so dass es zweimal vorhanden ist.
Ich hab das Ganze so gelöst, daß die Zähler von doppelt vorhandenen Datumswerten addiert werden, frage mich aber trotzdem, wieso ab und an Datum nicht gleich Datum ist.
Hier mal der relevante Codeschnipsel:
PHP-Code:
$heute=(date ("d.m.Y"));
$heute_db= file("iplog/heute.dat");
foreach($heute_db as $zeile) {
list ($hzahl, $hdatum)=explode("|",$zeile);
$hdatum = preg_replace("/\r|\n/s", "", $hdatum);
$hdatum= trim ($hdatum);
if ($hdatum == $heute) {
$treff="ja";
}
}
$zahl="1";
if($treff == "ja") {
$aenderung=file("iplog/heute.dat");
$swap=array();
foreach($aenderung as $zeile1) {
list ($zahl, $datum)=explode("|",$zeile1);
$datum = preg_replace("/\r|\n/s", "", $datum);
$datum=trim ($datum);
if ($datum == $heute) {
$zahl++;
array_push($swap,"$zahl|$datum\n");
}
else {
array_push($swap,"$zahl|$datum\n");
}
$dat=fopen("iplog/heute.dat",w);
flock ($dat, 2);
$ende=implode("",$swap);
fwrite($dat,$ende);
flock ($dat, 3);
fclose($dat);
}
}
else {
$dat=fopen("iplog/heute.dat","a++");
flock ($dat, 2);
fputs ($dat,"$zahl|");
fputs ($dat,"$heute");
fputs ($dat,"\n");
flock ($dat, 3);
fclose($dat);
}
Kommentar