PHP Code in Variable speichern

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

  • PHP Code in Variable speichern

    Hallo zusammen,
    ich habe da mal wieder ein kleines Problem und denke das jemand sicherlich eine bessere Lösung hat als ich.

    Ich habe einen PHP Code der in eine Variable gespeichert werden muss. Im moment löse ich es so das aus :

    $ausgabe = "
    <?
    $bla = "toll";
    $bla1 = "super";
    $bla2 = "genial";
    ?>
    ";

    ein

    $ausgabe = "
    <"."?
    $"."bla = \"toll\";
    $"."bla1 = \"super\";
    $"."bla2 = \"genial\";
    ?".">
    ";

    wird.

    Ohne "." und \" würde das Script direkt durchlaufen und ich könnte daraus keine php Datei generieren.

    Gibt es da nicht eine bessere Lösung als wie oben zu verfahren? Ich könnte so auch weitermachen nur weiss ich nicht was aus einem \\ wird?
    \"."\ klappt nicht also wäre mir eine andere Lösung irgendwie doch lieber.

  • #2
    single-quotes!?
    [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

    [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

    [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
    (from here)

    Kommentar


    • #3
      Habe es, man muss einfach die Zeichenkette anpassen

      also wir aus \\ ein \134\134

      klappt wunderbar

      Kommentar


      • #4
        Original geschrieben von Meillo
        single-quotes!?
        Das scheint er nicht verstanden zu haben

        PHP-Code:
        $ausgabe = '
        <?
        $bla = "toll";
        $bla1 = "super";
        $bla2 = "genial";
        ?>
        ';
        Oder hab ich etwa was falsch verstanden?
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          @hhcm ne hast nix falsch verstanden

          ich glaube er weiß auch nicht dass man variablen ($-zeichen) auch escapen kann
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            OffTopic:
            Original geschrieben von hhcm
            Das scheint er nicht verstanden zu haben


            tja
            [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

            [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

            [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
            (from here)

            Kommentar


            • #7
              Doch klar schon verstanden

              Kommentar


              • #8
                Und warum machst du´s dann so kompliziert?

                Was immer \\ ein \134\134 heissen soll
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  Der Hinweis mit den Singlequotes war sehr hilfreich, aber was is wenn in meinem PHP-Code auch singlequotes schon drin sind, sprich mit mysql oder mehrdimensionales array?

                  Bitte um schnelle hilfe.
                  ####
                  DON'T UPSET ME!
                  I'M RUNNING OUT OF PLACES
                  TO HIDE THE BODIES
                  ####

                  Kommentar


                  • #10
                    Mach aus den Single Quotes in dem Code Double Quotes

                    Bzw. schick mal nen Codebeispiel..
                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #11
                      Beispielcode:
                      PHP-Code:
                      <?
                      $texteingabe='
                      $Server = mysql_connect ("xxxxxx", "mybase", "passwort");
                      if(isset($_POST[\'Button\'])) {
                      $inhalt=$_POST[\'inhalt2\'];
                      $Save = "UPDATE HPDaten SET inhalt=\'$inhalt\' WHERE name=\'$titel\'";
                      if(mysql_db_query("HTO01FLYBSLK", $Save, $Server)) {
                      echo "<br>Update erfolgreich";} else {echo "<br> Update fehl geschlagen";}
                      }
                      //anzeigen
                      $ladenDB="SELECT inhalt FROM HPDaten WHERE name=\'$titel\'";
                      $laden = mysql_db_query("HTO01FLYBSLK", $ladenDB, $Server);
                      $inhalt1 = mysql_result($laden, 0, 0);
                      ?>
                       <!--- Eingabefeld Text -->
                      <form name="form" method=post action="btechnologie.php">
                      <textarea name="inhalt2" rows=18 cols=75 wrap="physical">
                      <?
                      echo $inhalt1;
                      ?>
                      </textarea><br>
                      <input type=submit name="Button" value="Update">
                      </form>
                      <br>
                      &lt;ü&gt; &lt;/ü&gt; Überschrift darstellen<br>
                      &lt;bt&gt; &lt;/bt&gt; Text blau darstellen<br>
                      <!-- Ende Eingabefeld --> ';
                      ?>
                      Und das funzt definitiv nicht!!
                      Helft mir bitte!!
                      ####
                      DON'T UPSET ME!
                      I'M RUNNING OUT OF PLACES
                      TO HIDE THE BODIES
                      ####

                      Kommentar


                      • #12
                        Packe den gesamten String in " und ersetze alle " innerhalb des Strings mit '
                        Vars werden innerhalb von Strings nur in " gefunden.

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          ... wie ist das denn, kann man auch einfach die "inneren" Anführungszeichen maskieren, und dann nur Single-Quotes verwenden?

                          bin gerade zu faul zu testen
                          [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                          [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                          [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                          (from here)

                          Kommentar


                          • #14
                            Original geschrieben von jahlives
                            Packe den gesamten String in " und ersetze alle " innerhalb des Strings mit '
                            Vars werden innerhalb von Strings nur in " gefunden.

                            Gruss

                            tobi
                            Klappt bei Zeilen wie:
                            $Save = "UPDATE HPDaten SET inhalt='$inhalt' WHERE name='$titel'";
                            nicht!!!
                            Ging allgemein nicht, versuche es gerade umzumodeln in ´Funktionen.
                            Klappt bis jetzt auch net, aber ich bleib am Ball!
                            ####
                            DON'T UPSET ME!
                            I'M RUNNING OUT OF PLACES
                            TO HIDE THE BODIES
                            ####

                            Kommentar


                            • #15
                              Verstehe es nicht so ganz, wieso man Variablen in Strings unterbringen muss...
                              Warum nicht so ähnlich wie:
                              PHP-Code:
                              $Save "UPDATE HPDaten SET inhalt='".$inhalt."' WHERE name='".$titel."'"
                              Falls hier das eine oder andere Zeichen zu viel ist.... Pech gehabt

                              Kommentar

                              Lädt...
                              X