Befehl strpos() wie?

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

  • Befehl strpos() wie?

    Hallo
    Folgendes habe ich gemacht:
    >?
    $datei=fopen("D:\HP\logs\allebesucher.txt","r");
    do {
    $lip=$mybes;
    $mybes=fgets($datei,60);
    } while (!feof($datei));
    fclose($datei);
    print "$lip"; //193.145.12.3,Netcologne 13.04.2001 20:50
    $space=strpos("$lip",",");
    print "$space";
    $lip=substr($lip,0,$space);
    print "$lip"; // soll 193.145.12.3 ergeben
    ?>
    Ich möchte in einen längeren String nach einem Komma suchen mit substr().Offline funktioniert es,aber online werden immer die letzten 3 Zeichen (:50) des Strings gelesen.????
    Was mache ich falsch ???.Die Variable $space stimmt Offline, wird aber Online garnicht angezeigt.
    Wer weiss Rat ?
    Bernd

  • #2
    Wenn ich das richtig verstanden habe mochtest du aus dem Log die IP herauslösen. bei diesem Format ist das recht einfach:

    <?
    $datei=fopen("log.txt","r");
    $mybes=fgets($datei,60);
    do {
    $lip = $mybes;
    } while (!feof($datei));
    fclose($datei);
    print "$lip<br>"; /* das <br> ist nur für einen Zeilenumbruch... */
    $lip = explode(",",$lip);
    print "$lip[0]";
    ?>

    -------------
    Kaffi
    Kaffi
    Errare humanum est

    W32.Schmalle.H@mm

    Kommentar


    • #3
      explode geht auch nicht

      Hallo
      Danke für die Antwort,der Befehl steht in meinem PHP Buch nicht drin,war mir deshalb unbekannt.
      Habe es geaendert....geht aber auch nicht.Ich muss irgendeinen grundsätzlichen Fehler hier haben.
      Also,es läuft hier unter W2000 mit OMNIHTTP als Webserver.
      Wenn ich es auf dem Rechner mit dem Server teste sind beide Versionen ok.Wenn ich aber über einen anderen Rechner meine HP besuche kommt der Fehler.Mit explode werden die letzten 5 Zeichen angezeigt.??? Verstehe ich nicht.
      //<!-- letzte IP Nummer aus AlleBesucherDatei suchen,wenn gleich Counter nicht +1 ------->
      $datei=fopen("D:\HP\logs\allebesucher.txt","r");
      do {
      $lip=$mybes;
      $mybes=fgets($datei,160);
      } while (!feof($datei));
      fclose($datei);
      print "$lip";
      $lip = explode(",",$lip);
      $lip=$lip[0];
      print "$lip";
      ?>
      Nach dem lesen der Datewi steht in $lip:
      62.156.11.223,p3E9C0BDF.dip.t-dialin.net 14.04.01 12:03:25
      Ich möchte jetzt gerne die IP Nr.bis zum Komma herausholen.
      Nach explode steht aber in $lip :03:25 drin ???? aber nur
      Offline ???
      Liegt es eventuell daran wie ich die Datei beschreibe ???
      <!------- Alle Besucher mit IP,Addr.,Datum,Uhrzeit festhalten und in allebesucher.txt schreiben ---->
      <?
      $datei=fopen("D:\HP\logs\allebesucher.txt","a");
      fputs ($datei,$REMOTE_ADDR);
      fputs ($datei,",");
      fputs ($datei,gethostbyaddr($REMOTE_ADDR));
      $date=date(" d.m.y H:i:s");
      fputs ($datei,$date);
      fputs ($datei,"\n");
      fclose($datei);
      denn hierbei bekomme ich es nicht so richtig Zeilenweise hin.Nicht jeder Editor zeigt es zeilenweise an.
      Aber offline stimmt ja alles???
      Ich weiss nicht mehr ????
      Bernd

      Kommentar


      • #4
        Welchen Host hast du für deine HP?
        Vieleicht wird dort die explode-Zeile falsch
        interpretiert.
        Was ich damit meine ist:
        vieleicht denkt der Server statt
        $lip = explode(",",$lip); -- $lip = explode("","",$lip);
        Versuch mal folgendes als Test:

        Für das Log-File ersetzt du das "," durch "|".
        Muss dann im File so aussehen:
        193.145.12.3|Netcologne 13.04.2001 20:50

        Und im Script muss das dann so aussehen.
        $lip = explode("|",$lip);

        Probier mal aus ob es so funktioniert.

        -------
        Kaffi
        Kaffi
        Errare humanum est

        W32.Schmalle.H@mm

        Kommentar


        • #5
          so gehts

          Hallo Kaffi
          Nee auch damit geht es leider nicht.Verstehe es nicht.
          Habe meine Datei umgebaut dass die IP in extra Zeile steht und ich den String nun nicht mehr bearbeiten muss.
          Jetzt GEHT ES.
          Würde nur gerne verstehen warum das andere nicht geht.
          Danke nochmal und Schöne Ostern.
          Bernd

          Kommentar


          • #6
            Ich werde mal dein Script mal ausprobieren,
            mal sehn ob ich was rausbekomm.
            Das interessiert mich jetzt...

            -------
            Kaffi
            Kaffi
            Errare humanum est

            W32.Schmalle.H@mm

            Kommentar


            • #7
              Hallo!

              Geh mal auf:
              http://www.kaffi.de/test.php3

              da gehts und bei mir im Intranet funktioniert es auch!

              welchen Provider hast du denn?

              Frag mal mir phpversion() ab welche phpversion
              benutzt wird....
              Kaffi
              Errare humanum est

              W32.Schmalle.H@mm

              Kommentar

              Lädt...
              X