Peak File auslesen str_replace

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

  • Peak File auslesen str_replace

    Hallöchen alle zusammen

    Hab da ein kleines Problem an dem ich einfach nicht weiterkomme.

    Zu meinem Problem,

    ich hab ein vom eggdrop generiertes peak File.

    Der Aufbau ist folgender (peak.db):
    Code:
    %!%#zuhause!!!13@04.03.2006@15:52@PM
    Jetzt möchte ich da folgende Daten auslesen :

    %!%#zuhause!!!13@04.03.2006@15:52@PM

    Das hab ich mittels folgendem Code probiert :

    PHP-Code:
    <?
    $ircirctopdb = "peak.db";

    $ircirctopfh = @fopen($ircirctopdb,"r");
    $ircirctopline1 = @fgets($ircirctopfh,10000);
    $ircirctopline2 = @fgets($ircirctopfh,10000);
    $ircirctopline = @fgets($ircirctopfh,10000);

    $ircirctopline1 = str_replace("%!%#zuhause!!!","", $ircirctopline); 
    $ircirctopline2 = str_replace("%!%#zuhause!!!","", $ircirctopline); 
    $ircirctopline = str_replace("%!%#zuhause!!!","", $ircirctopline); 

    $ircirctop = @explode("@",$ircirctopline);
    $ircirctoprecord = $ircirctop[0];
    $ircirctopdatum = $ircirctop[1];
    $ircirctopuhrzeit = $ircirctop[2];


    if (!$ircirctoprecord) {$ircirctoprecord = "0"; }
    if (!$ircirctopdatum) {$ircirctopdatum = "00.00.0000"; }
    if (!$ircirctopuhrzeit) {$ircirctopuhrzeit = "0 Uhr"; }

    ?>
    Lass ich mir die Variablen nun ausgeben
    $ircirctoprecord
    $ircirctopdatum
    $ircirctopuhrzeit

    Bekomm ich folgendes zurück :
    0
    00.00.0000
    0 Uhr

    Ich bin mit meinem Latain am ende...
    Kann mir einer da evtl. helfen ?

    Lieben Gruß Wojti

    Edit

    Die peak.db liegt natürlich im gleichen verzeichnis wie das Script
    Zuletzt geändert von Wojti; 04.03.2006, 16:47.

  • #2
    Hat dein peakfile ein regelmäßiges Muster nachdem es aufgebaut ist? Wenn ja, geh mit RegEx dran

    Kommentar


    • #3
      Original geschrieben von Luke
      Hat dein peakfile ein regelmäßiges Muster nachdem es aufgebaut ist? Wenn ja, geh mit RegEx dran
      Hallöle

      Naja, Regelmässig ?

      Es steht in der datei nur folgendes :
      %!%#zuhause!!!13@04.03.2006@15:52@PM

      Nicht mehr nicht weniger.
      Einzig die 13, 04.03.2006 und 15:52 können sich ändern.

      alles davor bleibt unverändert.
      Deswegen wollt ich das mit str_replace rauslöschen.

      So wird aus
      %!%#zuhause!!!13@04.03.2006@15:52@PM
      mittels
      $ircirctopline = str_replace("%!%#zuhause!!!","", $ircirctopline);
      ein
      13@04.03.2006@15:52@PM

      Und daraus wollt ich mittels
      $ircirctop = @explode("@",$ircirctopline);

      3 Arrays bilden.
      Deswgen drei durchgänge.

      Aber die Arrays bleiben, aus einem mir unerklärlichen Grund leer.
      Ruf ich die Arrays mittels echo direkt ab,
      kommt nix zurück

      Danke schonmal für die Mühe.
      Zuletzt geändert von Wojti; 04.03.2006, 17:06.

      Kommentar


      • #4
        scheint programmiertechnisch richtig zu sein... sicher dass das was du suchst in der 3ten Zeile steht? geh mal debug mäßig durch und lass dir einzeln die Inhalte der Variablen ausgeben, damit du siehst wo der fehler liegt, ich vermute dass es nicht am explode oder dem str_replace liegt.

        Kommentar


        • #5
          Hab den Fehler nun endlich finden können

          PHP-Code:
          <?
          $ircirctopdb = "peak.db";

          $ircirctopfh = @fopen($ircirctopdb,"r");
          $ircirctopline = @fgets($ircirctopfh,10000);
          $ircirctopline1 = @fgets($ircirctopfh,10000);
          $ircirctopline2 = @fgets($ircirctopfh,10000);

          $ircirctopline = str_replace("%!%#zuhause!!!","", $ircirctopline); 
          $ircirctopline1 = str_replace("%!%#zuhause!!!","", $ircirctopline); 
          $ircirctopline2 = str_replace("%!%#zuhause!!!","", $ircirctopline); 

          $ircirctop = @explode("@",$ircirctopline);
          $ircirctoprecord = $ircirctop[0];
          $ircirctopdatum = $ircirctop[1];
          $ircirctopuhrzeit = $ircirctop[2];


          if (!$ircirctoprecord) {$ircirctoprecord = "0"; }
          if (!$ircirctopdatum) {$ircirctopdatum = "00.00.0000"; }
          if (!$ircirctopuhrzeit) {$ircirctopuhrzeit = "0 Uhr"; }

          ?>
          So hat es dann auch gleich funktioniert

          Danke für die Mühen

          Gruß Wojti

          Kommentar

          Lädt...
          X