[Funktion] eval()-Problem

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

  • [Funktion] eval()-Problem

    Hi miteinander

    ich habn Problem mit eval.

    Ich möchte gerne, die Ausgabe einer PHP-Datei, die mit eval() abgearbeitet wird in eine Variable speichern.

    Es geht um eine Template-Klasse, die bis jetzt eval()-Ausgaben mit output-buffering handelt.
    Aber mit mehreren Instanzen funktioniert das nicht mehr.

    Laut PHP unterbricht eval() die Ausgabe, wenn es im Verbund mit return steht, das tut aber nicht.

    PHP-Code:
    function eval_test($str) {

    return eval(
    $str);

    }

    $test eval_test("echo 'test';"); 
    Dies dürfte ja eigentlich nur die Variable $test mit "test" belegen, tut es aber nicht. Es erfolgt eine Ausgabe.

    Gibt es da noch andere Möglichkeiten, oder sogar ne schnellere/bessere Alternative zu eval.
    tata
    moqui

    [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

  • #2
    Re: [Funktion] eval()-Problem

    PHP-Code:
    function eval_test($str) {

    return eval(
    $str);

    }

    $test eval_test("return 'test';"); 
    echo bleibt echo, auch in eval.

    Kommentar


    • #3
      ja sicherlich, aber GENAU DAS ist der punkt. Es sollen Ausgaben, eben in ne Variable.
      tata
      moqui

      [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

      Kommentar


      • #4
        echo gibt auf dem Bildschirm des Clients aus, da kannst du dich auf den Kopf stellen und mit dem A*sch grinsen

        Du kriegst das höchstens dann in eine Variable, wenn du mit Output Buffering arbeitest.
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          LÖSUNG GEFUNDEN:

          PHP-Code:
          ob_start();
          eval(
          $sonstwas);
          $var ob_get_contents();
          ob_end_clean();

          // irgendwann später dann
          echo $var
          tata
          moqui

          [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

          Kommentar


          • #6
            Original geschrieben von Moqui
            ja sicherlich, aber GENAU DAS ist der punkt. Es sollen Ausgaben, eben in ne Variable.
            Irgendwie denkst du schräg
            wieso eine AUSGABE in eine VARIABLE? dann is es ja keine ausgabe mehr sondern eher ein Wert, und den weist du einfach mit "=" zu, also $var = "was du möchtest";

            mit eval wird das ganze ja nur unnötig kompliziert und was ich so gelesen habe soll die funktion auch noch langsam sein...

            Kommentar


            • #7
              Naja er will das ganze vermutlich zum schluss zusammen setzen, aber nicht in der Reihenfolge ausgeben müßen...
              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

              Lädt...
              X