[Suche]PHP Script ( Counter ): Erklärung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Suche]PHP Script ( Counter ): Erklärung

      Tach M-Core,
      da ich weiß das es hier User gibt die sich mit PHP auskennen und das nicht gerade das Script für Experten ist Frage ich hier einfach mal nach einer Erklärung für ein PHP Seitenaufrufcounterscript und zwar für dieses:

      PHP-Quellcode

      1. <?php
      2. $counterfile = fopen ("stand.txt","r+");
      3. flock ($counterfile,LOCK_EX);
      4. $canWrite = false;
      5. while (!$canWrite) {
      6. $canWrite = flock($counterfile, LOCK_EX);
      7. }
      8. $counter = fgets ($counterfile);
      9. echo ($counter);
      10. $counter = $counter + 1;
      11. fseek ($counterfile,0);
      12. fputs ($counterfile,$counter);
      13. fclose ($counterfile);
      14. ?>
      Alles anzeigen


      Wär cool wenn jemand mal die einzelnen Komponenten und Befehle erklärt damit ich verstehe wie das Programm abläuft.

      Mit freundlichen Grüßen
      Assoult
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Quellcode

      1. $counterfile = fopen ("stand.txt","r+");

      Datei "stand.txt" wird zu lesen und schreiben geöffnet ("r+"). Zurückgegeben wird eine Resource (... die den entsprechenden FD beinhaltet).

      Quellcode

      1. flock ($counterfile,LOCK_EX);
      2. $canWrite = false;
      3. while (!$canWrite) {
      4. $canWrite = flock($counterfile, LOCK_EX);
      5. }

      Ich habe die Funktion noch nie genutzt. Doku: PHP: flock - Manual
      Dadurch wird sicher gestellt, dass immer nur eine "Skriptinstanz" (wenn man das so nennen mag) auf die Datei zugreift.

      Quellcode

      1. $counter = fgets ($counterfile);
      2. echo ($counter);

      Der Inhalt der Datei wird ausgelesen und ausgegeben.

      Quellcode

      1. $counter = $counter + 1;

      Die Variable (deren Inhalt ja ausgelesen wurde) wird implizit zur Int umgewandelt und ums eins erhöht.

      Quellcode

      1. fseek ($counterfile,0);

      Der interne Lese-/ Schreibezeiger wird an den Anfang gesetzt (Durch das fgets wurde er weiter nach hinte gesetzt).

      Quellcode

      1. fputs ($counterfile,$counter);

      $counter wird wieder implizit zur Zeichenkette umgewandelt und in die Datei geschrieben. Der alte Inhalt wird dabei "überschrieben", da ja der Zeiger durch fseek wieder an den Anfang gesetzt wurde.

      Quellcode

      1. fclose ($counterfile);

      Die Datei wird geschlossen.