Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Textdatei auslesen und auswerten

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Textdatei auslesen und auswerten

    Hallo. Ich habe eine Textdatei, welche folgendermaßen aufgebaut:
    Code:
    "STEAM_0:1:91220420"	
    {
    	"unban"	"0"
    	"time"	"1405257013"
    	"reason"	"RDM"
    	"admin"	"*ibot3*(STEAM_0:1:47119707)"
    }
    "STEAM_0:1:84500094"	
    {
    	"unban"	"0"
    	"time"	"1406202412"
    	"reason"	"Der Server ist für dich nicht mehr Online!"
    	"admin"	"[F]lip9111(STEAM_0:1:47580006)"
    }
    "STEAM_0:1:32697689"	
    {
    	"reason"	"RDM+"
    	"admin"	"(Console)"
    	"unban"	"0"
    	"time"	"1405623361"
    	"name"	"Jackomatrus"
    }
    ...
    Es ist die Banliste von unserem Garrysmod Server. Ich habe nun auf unserer Internetseite ein "Login mit Steam" eingerichtet und habe so zugriff auf die Steam id (So aufgebaut: "STEAM_0:1:32697689" ). Diese ist in einer Variable gespeichert.
    Nun möchte ich, dass in der Textdatei die SteamID gesucht wird und falls sie vorhanden ist sollen die restlichen Parameter ausgelesen und ausgegeben werden. (Banzeit, Grund, etc.)

    Ich hoffe ihr könnt mir weiterhelfen.

  • #2
    Was hast du denn schon probiert?
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      wasn das für ein Dateiformat? Geht das nicht auch via JSON oder so, da kannst mit json_decode() ran und die Suche wäre super einfach

      Ich hätte evtl via file() einlesen, dann durch foreach() laufen lassen und nach der Zeile suchen und dann die Zeilen darauf parsen

      LG
      https://github.com/Ma27
      Javascript Logic is funny:
      [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

      Kommentar


      • #4
        Zitat von chorn Beitrag anzeigen
        Was hast du denn schon probiert?
        PHP-Code:
        //Auswertung Bans
        $dateiBAN file("data/bans/bans.txt");
        foreach(
        $dateiBAN AS $ausgabeBAN)
        {
                
        $zerlegenBAN explode'}'$ausgabeBAN);
                if (
        === strpos($zerlegenBAN[0], '{' $steamid32)) {
                    echo 
        "Du bist gebannt"
                
        }

        Kommentar


        • #5
          Geht das nicht auch via JSON
          Was ist $steamId32?
          Ich geh mal davon aus, dass damit "STEAM_0:1:91220420" und die anderen IDs gemeint sind

          PHP-Code:
          $file file(__DIR__ '/data/bans/bans.txt');
          foreach (
          $file as $line => $data) {
              if (
          $data === $steamId32) {
                  
          // lade daten
              
          }

          LG
          https://github.com/Ma27
          Javascript Logic is funny:
          [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

          Kommentar


          • #6
            Zitat von Ma27 Beitrag anzeigen
            Was ist $steamId32?
            Ich geh mal davon aus, dass damit "STEAM_0:1:91220420" und die anderen IDs gemeint sind

            PHP-Code:
            $file file(__DIR__ '/data/bans/bans.txt');
            foreach (
            $file as $line => $data) {
                if (
            $data === $steamId32) {
                    
            // lade daten
                
            }

            LG
            Habe es so ausprobiert:
            PHP-Code:
            $file file(__DIR__ '/data/bans/bans.txt');
            foreach (
            $file as $line => $data) {
                if (
            $data === '"' $steamId32 '"') {
                    echo 
            "gebannt!";
                }

            Da die SteamID32 inder Zeile ja mit " anfängt und aufhört. Allerdings kam ich zu keinem Ergebnis die Nachricht "Gebannt!" wurde nie angezeigt obwohl ich in der Liste drin stand.

            Kommentar


            • #7
              PHP-Code:
              $sSteamId 'STEAM_0:1:84500094';
              $sBansFileString file_get_contents'./bans.txt' );

              $sRegExPattern '/(?<=' preg_quote$sSteamId'/' ) . '\")(\s+\{)([^}]+)/ius';
              $bSteamExists preg_match$sRegExPattern$sBansFileString$aMatched );


              if ( 
              $bSteamExists ) {
                  
                  echo 
              $aMatched[2];
                  
              } else {

                  echo 
              'SteamId nicht gefunden...'// oder was auch immer hier passieren soll...


              Code:
                  "unban" "0"
                  "time"  "1406202412"
                  "reason"    "Der Server ist für dich nicht mehr Online!"
                  "admin" "[F]lip9111(STEAM_0:1:47580006)"
              denn hast Du schonmal die entsprechenden Daten und musst die nur noch auseinanderklabüstern.
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Vielen Dank!
                funktioniert so!

                MfG ibot3

                Kommentar


                • #9
                  Gratuliere. Die lösung scheint super skalierbar zu sein :P
                  Neu bei PHP, lerne aktuell OOP

                  Kommentar

                  Lädt...
                  X