Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable aus Datei lesen und verwenden.

Einklappen

Neue Werbung 2019

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

  • Variable aus Datei lesen und verwenden.

    Guten Tag.
    Ich sitze seit zwei Tagen vor einem Problem dessen Lösung mir nicht durchschaubar erscheint, -
    eventuell kann mir einer von Euch weiterhelfen. Mein Script liest eine Variable aus einer Textdatei
    und soll diese dann in einer Funktion verwenden:

    Code:
        switch( getLanguage()  )
        {
            case 'de' : include "sys/lang/german";  break;
            case 'en' : include "sys/lang/english";  break;
            default: include "sys/lang/german"; break;
        }
    'getLanguage()' liest den Wert korrekt aus, in diesem Fall: 'en', - dennoch
    greift die Fallunterscheidung jedesmal auf den Default-Wert zurück.

    Jedoch bei:

    Code:
        $lang = 'en'  // $lang = getLanguage() funktioniert auch nicht ... :-(
        switch( $lang  )
        {
            case 'de' : include "sys/lang/german";  break;
            case 'en' : include "sys/lang/english";  break;
            default : include "sys/lang/german"; break;
        }
    ... funktioniert alles bestens. Wäre nett wenn mir Jemand helfen könnte was
    ich nicht beachtet habe. Neu in Sachen Programmierung bin ich freilich nicht
    ( +20 Jahre C/C++ ) aber PHP ist für mich ersteinmal noch Neuland....

    Vielen Dank ....

  • #2
    Lasst dir doch den Inhalt von $lang mal ausgeben.

    PHP-Code:
    var_dump($lang); 

    Kommentar


    • #3
      vermutlich fehlt ein trim() oder ähnliches, weil getLanguage() noch Leerzeichen mitliefert ....
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

      Kommentar


      • #4
        Danke für die Antworten.

        Code:
        function getLanguage( )
        {
          $filepath = 'sys/conf/language';
          $f = fopen( $filepath, "r") or die("Unable to open file!");
          $var = fread($f, filesize($filepath));
          fclose($f);
           
          return $var;
        }
        //_! Language
        Liegt der Fehler vielleicht da ?

        Kommentar


        • #5
          Mach erstmal das, was hellbringer vorgeschlagen hat und achte auf die Stringlänge.
          Vermutlich sind Steuerzeichen (CR/LF) in der Variable.

          Kommentar


          • #6
            ...nein das kann auch nicht sein denn das "Theming" funktioniert und läuft nach dem gleichen Prinzip.
            Mmmhhhhh ......

            Kommentar


            • #7
              Naja , wer weiß wo da der "Hund begraben" liegt aber ich habe den Sprachwert jetzt einfach mal in eine extra Tabelle in der
              Datenbank gespeichert, - da klappte es auf Anhieb. ( aus der Textdatei 'en' zickt es, aus der DB 'en' ist alles okay ).

              Trotzdem vielen Dank Leute.

              Kommentar


              • #8
                Du hättest einfach nur machen müssen, was man dir sagt.

                Kommentar


                • #9
                  Dein Tip: gab 'en' aus, - ohne Line-feed oder Breaklines ....

                  Kommentar


                  • #10
                    ... ist ja auch egal: Ich bin Profi in C++ und Anfänger in PHP. Nur durch Fehler lernt man und es ist doch schön wenn es kompetente Leute gibt, die einen dabei unterstützen etwas Neues zu lernen

                    Kommentar


                    • #11
                      Zitat von rwausdd Beitrag anzeigen
                      Dein Tip: gab 'en' aus, - ohne Line-feed oder Breaklines ....
                      Wenn du schon lügst, dann solltest du so lügen, dass man es nicht merkt. Denn var_dump() gibt das sicher so nicht aus.

                      Kommentar


                      • #12
                        ...war die Kurzform, - möchtest Du den ganzen dump ?

                        Kommentar


                        • #13
                          Zitat von rwausdd Beitrag anzeigen
                          ...war die Kurzform, - möchtest Du den ganzen dump ?
                          Ja, darum ging es ja. Ansonsten hätte ich auch kein var_dump() verlangt.

                          Kommentar


                          • #14
                            exakt: Da sagt dir nämlich var_dump auch WIE LANG die Zeichenkette ist ... was wiederum DIREKT darauf hinweist, ob da "unsichtbare" Steuerzeichen drin sind ... der plöde Browser ignoriert nämlich Zeichenumbrüche, wenn sie nicht <br> oder so "heißen"

                            fread bei dir liefert vermutlich etwas anderes als nen Zeichenumbruch .. nämlich ein Byte, das auf das Datei-Ende hinweist .. auch unsichtbar und nervig - da deine Zeichenkette dann eben weder "de" noch "en" ist, sondern eben "en"+ Datei-Ende byte ... sollte bei var_dump als Stringlänge MINDESTENS 3 ergeben

                            Aber nein .. der hohe Herr ist sich zu schade das mal auszuprobieren
                            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                            Kommentar

                            Lädt...
                            X