1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

String als mixed HTML/PHP script auswerten

  • Myc0rrhizal
  • 5. März 2008 um 00:25
  • Unerledigt
  • Myc0rrhizal
    1
    Myc0rrhizal
    Gast
    • 5. März 2008 um 00:25
    • #1

    Also versuch ein bisschen mit Template funktionen von php zu spielen. Folgendes möchte ich machen:

    In einem string habe ich eine vollständige HTML seite gespeichert inkl. php tags und natürlich php code, also eben eine "full blown dynamic page"
    ala:

    PHP
    $content = 
    '<html>
    <head>
    </head>
    
    
    <body>
    
    
    <?php
    echo "If you can read this, the php code works just fine ;)";
    
    
    ?>
    
    
    <br />
    <b>Non Dynamic HTML</b>
    
    
    </body>
    </html>'
    Alles anzeigen

    Nun gibt es folgende möglichkeit den string per zB file_put_contents() in eine temporäre datei zu schreiben und dann dieses per require() ausgeben. Aber da geht mir wohl die performance bei größeren scripts in den boden (denk ich).

    • echo gibt zwar den string aus, aber führt den php code nicht aus sondern schreibt den einfach hin.
    • eval() würde html und php ausgeben jedoch umständlich und ich möchte diese funktion eigentlich nicht einsetzten

    Nun gibt es irgendeine funktion die mir den string als "brand neue" seite ausgibt? Ich habe natürlich in dem parser script bis dahin noch keine ausgabe gehabt. Sodass ich nicht zuerst eine datei beschreiben muss sondern einfach die ausgabe flushen kann.

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 5. März 2008 um 00:39
    • #2

    mmmh... vielleicht könntest du mit einem output buffer arbeiten?

    aber wäre es nicht besser schon verfügbare template engines zu verwenden, als sich selbst mühsam sowas zusammenzustöpseln?
    schau dir mal smarty an. ich bin ganz zufrieden damit.

    edit: btw. mir fällt auf, dass du syntaxfehler im code hast:

    PHP
    <!-- hier hast du den php tag nicht geöffnet -->
    $content = 
    '<html>
    <head>
    </head>
    
    
    <body>
    <!-- hier hast du den php tag nicht geschlossen
    außerdem fehlt das abschließende ' und das ;
     -->
    <?php
    echo "If you can read this, the php code works just fine ;)";
    
    
    ?>
    
    
    <br />
    <b>Non Dynamic HTML</b>
    
    
    </body>
    </html>'
    Alles anzeigen

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • Myc0rrhizal
    1
    Myc0rrhizal
    Gast
    • 5. März 2008 um 01:13
    • #3

    ahm nein das

    PHP
    <?php
    
    
    $content = 
    '<html>
    <head>
    </head>
    
    
    <body>
    <!-- hier hast du den php tag nicht geschlossen
    außerdem fehlt das abschließende ' und das ;
     -->
    <?php
    echo "If you can read this, the php code works just fine ;)";
    
    
    ?>
    
    
    <br />
    <b>Non Dynamic HTML</b>
    
    
    </body>
    </html>';
    
    
    $cache_name = '../.md5(time().$_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_HOST']).'.php';
    file_put_contents($cache_name,$content);
    require_once($cache_name);
    unlink($cache_name);
    
    
    ?>
    Alles anzeigen

    ..war so gemeint, also ich wollte nur demonstrieren wie ich es gerne hätte.

    Ja sicher könnt ich eine Template Engine verwenden, aber 1. ist php schon mit template funktionen konzipiert worden und 2. möcht ich das einfach einmal selber gemacht haben,zum lernen quasi (mit template engines kann ja jeder arbeiten ;))

    Mit dem output buffer hab ich mir auch schon überlegtn, nur macht der ja nichts anderes als alle ausgabe funktionen zu halten bis sie geflusht werden, und echo etc. bringt mir ja nichts.

  • bimbo
    15
    bimbo
    Mitglied
    Reaktionen
    15
    Punkte
    2.320
    Beiträge
    390
    • 5. März 2008 um 12:25
    • #4

    guck dir mal fonlenden link an. der baut auch eine template engine nur aus php-includes, mit outputbuffering.

    http://www.massassi.com/php/articles/template_engines/

    LVA Erfahrungsberichte: http://vowi.fsinf.at/

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 5. März 2008 um 13:07
    • #5
    Zitat von For3st


    Ja sicher könnt ich eine Template Engine verwenden, aber 1. ist php schon mit template funktionen konzipiert worden ...


    welche template funktionen meinst du?

    Zitat

    ...und 2. möcht ich das einfach einmal selber gemacht haben,zum lernen quasi (mit template engines kann ja jeder arbeiten ;))


    ok, wenn du dir selber was basteln willst, ist das natürlich was anderes.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • josef19
    9
    josef19
    Mitglied
    Reaktionen
    9
    Punkte
    749
    Beiträge
    135
    • 5. März 2008 um 15:49
    • #6

    Theoretische Betrachtung:
    Du generierst PHP-Code mit PHP-Code. (2 Laufzeitdimensionen)

    Das ist für KI-Programierüberlegungen vielleicht sinnvoll, wird aber in keiner klassischen Programmierparadigma angestrebt.==> Würde dir abraten.

    http://de.wikipedia.org/wiki/Quine_%28Computerprogramm%29

    Warum einfach, wenns kompliziert geht ! USB-CD-ROM mit USB-Stick emulieren

  • Myc0rrhizal
    1
    Myc0rrhizal
    Gast
    • 5. März 2008 um 17:00
    • #7

    steve
    danke werd ich mir anschaun

    @WoG
    also soweit ich gelesen habe ist php mit template-freundlichen funktionen konzipiert worde (div string replace sachen,etc.) - aber egal das ganze ist (bis zu einer gewissen komplexität) recht einfach mit php umzusetzen - und wie gesagt, der lernerfolg.

    josef
    Ja ich möchte ja nicht php code mit code generieren, sondern nur vorhandenen code austauschen und dann ausführen.

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern