Prüfen ob IP bereits in der Datei steht?

  • Hallo, wie kann ich prüfen ob z.B. eine Ip in einer Datei bereits steht? Habe schon etwas versucht was leider nicht viel gebracht hat :/
    Hier der Code :D


  • okay erst mal ob ich das richtig verstanden habe...


    du liest die ersten 512 bytes deiner ip.txt aus
    bei deinen Counter liest du die ersten 10 bytes (oder bis zum nächsten Zeilenumbruch oder bis zum ende).
    dann prüfst du ob deine ersten 512 bytes der ip.txt gleich der ip des nutzers sind was ja nie der fall ist^^


    $salam definierst du ohne es zu nutzen?
    dann schreibst du eine neue ip ein (aber nur wenn sie vorher schon drin war)??


    den Counter erhöhst du um eins und speicherst in?

  • Ein effizienter Weg bei großen Dateien:


    PHP
    <?php
      $fh = fopen( $file );
      while( !feof( $fh ) ){
        $line = fgets( $fh, 4069 );
        if( preg_match( $pattern, $line ) ){
          // ip vorhanden
          break;
        }
      }
    ?>


    Jedoch ca. 3 mal so langsam wie folgende Technik:


    PHP
    <?php
      if( preg_grep( $pattern, file( $file ) );
    ?>


    Diese Methode braucht mehr Speicher da sie die gesamte Datei einliest.

  • also ich würde ja nicht erst die vielen befehle mit fopen undso machen, sondern einfach file_get_contents() und file_put_contents() nehmen

  • achso
    okay, wusste ich nicht


    warum faul?
    damit kann ich ganz einfach Speicherplatz sparen, da ich weniger Code schreibe
    also kann ich das ja bei kleinen Dateien verwenden

  • Speicherplatz sparen durch weniger Code ist in dem Fall wohl ein Witz (10 Zeilen gegen 1 Zeile) .. Ein möglichst kleiner Code ist zwar nicht verkehrt, jedoch sollte es in erster Linie darum gehen möglichst dynamisch zu bleiben.


    Hier geht es offenbar um einen Besucherzähler, da sollte die Datei im Normalfall recht klein bleiben, jedoch kann der Benutzer beeinflussen was in diese Datei eingetragen wird. Im Klartext: Gib jemanden der weiß was er tut eine Stunde Zeit und er hat die Datei so sehr zugemüllt das die Seite abstürzt wenn wir file_get_contents nutzen, da der zugewiesene Speicher überschritten wird.


    Außerdem ist es ungünstig neue Einträge über file_put_contents zu tätigen, da dies wieder enorm viel Speicher benötigt (im Gegensatz zu z.B. fwrite, was nur den neuen Inhalt hinzufügt statt die ganze Datei zu kopieren).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!