Ankündigung

Einklappen
Keine Ankündigung bisher.

IF und SWITCH antworten nicht richtig...

Einklappen

Neue Werbung 2019

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

  • IF und SWITCH antworten nicht richtig...

    Hallo Liebe Community,

    ich bin neu hier und brauche mal eure Hilfe. Wahrscheinlich ein ziemlich triviales Problem, aber bei mir will die Lampe einfach nicht angehen. Ich lese für ein Monitoringtool eine Textdatei zeilenweise aus und schreiben die einzelnen Zeilen (strings) in ein Array. Klappt auch super.
    Jetzt schreibe ich array[0] in eine Variable. Soweit so gut.
    Nun möchte ich die Variable mittels IF überprüfen und je nach Inhalt eine Aktion durchführen. Nur irgendwie interessiert das meine IF schleife nicht.

    folgender Code:
    PHP-Code:
    ...
    $datei "status_pv.txt";           // Name der Datei
    $array file($datei);  

    $day $array[0];                   //Aktueller Tag
    ...

    ...
    if (
    $day == 'Montag') {
        
    $offset 0;
        echo 
    $offset;
       } else if (
    $day == 'Dienstag') {
       
    $offset 5;
       echo 
    $offset;
       } else if (
    $day == 'Mittwoch') {
       
    $offset 10;
       echo 
    $offset;
       } else if (
    $day == 'Donnerstag') {
       
    $offset 15;
       echo 
    $offset;
       } else if (
    $day == 'Freitag') {
       
    $offset 20;
       echo 
    $offset;
       } else {
       echo 
    'Kein Tag übertragen!!!';
       }
    ... 
    Ich bin mir ziemlich sicher dass das richtig ist. Nur weder IF Abfrage noch Switch Case Abfrage reagieren mit einem richtigen Ergebnis darauf. Bei der IF Abfrage wird mir z.B danach 0 ausgeben obwohl "Donnerstag" in $day steht.

    Kann mir jemand auf die Sprünge helfen?


  • #2
    trim($day)
    Tutorials zum Thema Technik:
    https://pilabor.com
    https://www.fynder.de

    Kommentar


    • #3
      Zuvor
      PHP-Code:
      var_dump($day); 
      denn dort sieht man sehr genau, ob whitespace das Problem sind...
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        PHP-Code:
        $array file($datei,FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); 
        tut es vermutlich auch.
        PHP-Klassen auf github

        Kommentar


        • #5
          if-Schleife

          Kommentar


          • #6
            Da ist sie wieder, die ominöse!

            Kommentar


            • #7
              Ja dann halt IF-Abfrage...

              Aber Danke für die Antworten hat mir sehr geholfen!

              Kommentar


              • #8
                Zitat von Kabeltrommel Beitrag anzeigen
                Ja dann halt IF-Abfrage...
                http://php-de.github.io/jumpto/if/#mythos-if-schleife

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  OMG

                  It's alive!

                  PHP-Code:
                  function zaehlerGesteuerteIfSchleife($loop)
                  {
                     echo 
                  "<p>".$loop."</p>";
                     if(
                  $loop<10)
                     {
                        
                  $loop++;
                        
                  zaehlerGesteuerteIfSchleife($loop);
                     }
                  }
                  zaehlerGesteuerteIfSchleife(0); 
                  Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                  Kommentar


                  • #10
                    Das is' wohl eher 'ne IfGesteuerteZaehlSchleife
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Zitat von Arne Drews Beitrag anzeigen
                      Das is' wohl eher 'ne IfGesteuerteZaehlSchleife
                      Der Name würde besser zu sowas passen
                      PHP-Code:
                      $schwachfug 1;
                      for (
                      $i 0$i $schwachfug$i++)
                      {
                            if(
                      $i>10)
                            {
                                break;
                            }
                            
                      $schwachfug++;

                      "Let's make no scence"
                      Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                      Kommentar


                      • #12
                        Okay hätte ich gewusst, dass euch sowas so schnell amüsiert wäre ich noch mit anderen dummen dingen um die Ecke gekommen.

                        Kann mir jemand erklären was dieses TRIM($variable) genau macht?

                        Ich laufe nämlich jetzt auf ein anderes Problem beim wegschreiben von Werten.

                        Kommentar


                        • #13
                          Entfernt Whitespace-Zeichen an Stringanfang und -ende. Der Zusammenhang ist hier: file() entfernt standardmäßig bei den gelieferten Zeilen den Zeilenumbruch hinten nicht.

                          - http://php.net/manual/en/function.trim.php
                          - http://php.net/manual/en/function.file.php
                          - http://php.net/manual/en/function.var-dump.php

                          Kommentar


                          • #14
                            @ Kabeltrommel: Wenn Du Dein Problem nicht lösen konntest mit der Abfrage, dann poste doch einfach die Datei oder Auszug davon, welche Du versuchst auszulesen.
                            PHP Entwickler aus Berlin

                            Kommentar


                            • #15
                              Das Auslesen klappt ja jetzt dank Trim. Ich versuche es nur zu verstehen, da ich nun bei einer bestimmten Bedingung die Arrayfelder zeilenweise zurück in eine andere txt-Datei schreiben will.

                              Das ist die Datei die eingelesen wird.
                              Code:
                              MITTWOCH
                              19.11.2014
                              10:20:00
                              573
                              573
                              742
                              742
                              403
                              403
                              222
                              Nun sollen Bestwerte in eine andere Datei weggeschrieben werden. Die sollte so aussehen:
                              Code:
                              420
                              MITTWOCH
                              19.11.2014
                              290
                              MITTWOCH
                              19.11.2014
                              200
                              MITTWOCH
                              19.11.2014
                              Die sieht aber nach dem neu schreiben so aus:
                              Code:
                              420MITTWOCH
                              19.11.2014
                              290MITTWOCH
                              290MITTWOCH
                              19.11.2014
                              200
                              MITTWOCH
                              19.11.2014
                              Hier ein Auszug aus dem PHP Quellcode:
                              PHP-Code:
                              $datei "status_pv.txt";           // Name der Datei
                              $array file($datei);  

                              $day trim($array[0]);                   //Aktueller Tag


                              $open $array[5];                  //Einlesen Offene Positionen Aktuell
                              $open_d $array[6];                //Einlesen Offene Positionen Durchschnitt    
                              $delta_open $open-$open_d;        //Berechnung des Delta Offene Positionen

                              $done trim($array[3]);                  //Einlesen Erledigte Positionen Aktuell
                              $done_d $array[4];                //Einlesen Erledigte Positionen Durchschnitt
                              $delta_done $done-$done_d;        //Berechnung des Delta erledigte Positionen

                              $paket trim($array[7]);
                              $paket_d $array[8];
                              $delta_paket $paket-$paket_d;     //Berechnung des Delta Pakete / Tag

                              $pakete_std $array[9];            //Einlesen Erledigte Pakete / Std.

                              $best_array file($bestdata);      //best.txt in Array einlesen
                                     
                              $best_done trim($best_array[0]);          //bester Wert erledigter Positionen
                              $best_done_date $best_array[2];   //Datum der Bestmarke erledigter Positionen 
                              $best_done_day $best_array[1];    //Tag der Bestmarke erledigter Positionen

                              $best_paket trim($best_array[3]);       //bester Wert unter Pakete
                              $best_paket_date $best_array[5];  //Datum des besten Wertes der Pakete
                              $best_paket_day $best_array[4];   //Tag der Bestmarke erledigter Positionen

                              $best_pakete_std trim($best_array[6]);      //bester Wert Pakete / Std.
                              $best_pakete_std_date $best_array[8];  //Datum des besten Wertes der Pakete / Std.
                              $best_pakete_std_day $best_array[7];  //Tag der Bestmarke bester Wert Pakete / Std.

                              /*############################
                              baue hier noch n bissel an der Ausgabe herum                         
                              ...
                              ...
                              ...
                              #############################*/

                              if ($done $best_done) {
                                  
                              $best_array[0] = $done;
                                  
                              $best_array[1] = $array[0];
                                  
                              $best_array[2] = $array[1];     
                              }
                                  
                              if (
                              $paket $best_paket) {
                                  
                              $best_array[3] = $paket;
                                  
                              $best_array[4] = $array[0];
                                  
                              $best_array[5] = $array[1]; 
                              }
                                             
                              if (
                              $pakete_std $best_pakete_std) {
                                  
                              $best_array[6] = $pakete_std;
                                  
                              $best_array[7] = $array[0];
                                  
                              $best_array[8] = $array[1]; 
                              }               


                                                       
                              $write_txt fopen($bestdata'w'); 
                              foreach(
                              $best_array as $valuesfwrite($write_txt,$values); 
                              fclose($write_txt); 

                              Kommentar

                              Lädt...
                              X