tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
489
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Snowowl
    Snowowl Snowowl ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Ort
    Burgdorf
    Beiträge
    243
    Hi,
    ich habe mich mal heute rangemacht ein bisschen mit Templates zu arbeiten.
    Ich lasse die temp2.php durchsuchen und einträge wie z.B. ###CONTENT### mit str_replace(); ersetzen mit:
    PHP-Code:
    file_get_contents("inc/".$content_inc.".php"); 
    Also ich habe ein Array algelegt, wo das zu ersetzende und das "neue" drin steht.

    Bei html seien geht das wunderbar, doch bei php Seiten, zeigt er mir den Quellcode an.
    Wie kann ich das ändern, also, dass er mir dann das richtige ausgibt?
    Vielen Dank schonmal im Vorraus!
    Gruß,
    Snowowl

    [edit]
    Mein 111. Beitrag
    [/edit]
     
    Stur lächeln und winken Männer, lächeln und winken!

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Wenn Du die Seite so einliest und dann ausgibst wird der enthaltene PHP-Code nicht ausgefuehrt. Falls Du auf include() verzichten willst/musst dann schau Dir doch mal eval() an.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    Avatar von Snowowl
    Snowowl Snowowl ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Ort
    Burgdorf
    Beiträge
    243
    Muss ich dann für jeden String das in eval reinschreiben?
     
    Stur lächeln und winken Männer, lächeln und winken!

  4. #4
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Du liest die Datei in eine Variable und jagst diese durch eval().
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  5. #5
    Avatar von Snowowl
    Snowowl Snowowl ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Ort
    Burgdorf
    Beiträge
    243
    Kann ich das mit file_get_contents machen?
    Weil das ergibt ein Error:
    Parse error: parse error, unexpected '<' in E:\Test Umgebung\xampp\htdocs\template\config.php(12) : eval()'d code on line 1
    Oder muss ich das dann mit file(); machen?
     
    Stur lächeln und winken Männer, lächeln und winken!

  6. #6
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    file() ist dafuer eher ungeeignet wuerde ich sagen.
    Der an eval() uebergebene Code darf kein <?php ?> enthalten.

    Beispiel wie's falsch ist:
    PHP-Code:
    eval("<?php echo 'test'?>");
    Beispiel wie's richtig ist:
    PHP-Code:
    eval("echo 'test';"); 
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  7. #7
    Avatar von Snowowl
    Snowowl Snowowl ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Ort
    Burgdorf
    Beiträge
    243
    Danke
    so funktioniert es zwar, jedoch wird es an der falschen Stelle ausgegeben. Genau das gleihce Problem hatte ich auch mit include();
    Mein Quellcode der index.php
    PHP-Code:
    <?php
    include("config.php");
    include(
    "content/temp.php");
    $file file("content/temp.html");
    $template implode(""$file);
    foreach(
    $replace as $old => $new)
    {
        
    $template str_replace ("###".$old."###"$new$template);
    }
    echo 
    $template;
    ?>
    in der config.php steht dies:
    PHP-Code:
    <?php
    if(!isset($_GET['page']) || empty($_GET['page']))
    {
        
    $content_inc "home";
    }
    else
    {
        
    $content_inc $_GET['page'];
    }
    $navi file_get_contents("content/navi.html");
    $content file_get_contents("inc/".$content_inc.".php");
    $content = eval($content);
    ?>
    Der inhalt der home.php wird also ganz oben ausgegeben, das ist mein Problem. Jedoch wenn ich das eval weglasse und den php code anzeigen lasse, dann ist es an der richitgen Stelle!
    Wie kann ich das ändern?
     
    Stur lächeln und winken Männer, lächeln und winken!

  8. #8
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    eval() fuehrt den Code direkt aus. Wenn dort Daten ausgegeben werden, dann werden diese direkt ausgegeben.
    Ein Wert wird nur zurueckgegeben wenn der Code ein return enthaelt.
    Wenn Du die Ausgabe von eval() abfangen willst, dann sollten Du mit der Output Control arbeiten.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  9. #9
    Avatar von Snowowl
    Snowowl Snowowl ist offline Mitglied Gold
    Registriert seit
    Aug 2005
    Ort
    Burgdorf
    Beiträge
    243
    Danke, funktioniert super!
     
    Stur lächeln und winken Männer, lächeln und winken!

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 13.03.10, 20:48
  2. Umlaute werden bei include nicht angezeigt
    Von PC Freak im Forum PHP
    Antworten: 5
    Letzter Beitrag: 28.07.09, 12:39
  3. Antworten: 2
    Letzter Beitrag: 08.04.07, 19:36
  4. Beim Auslesen von Datei wird Quellcode angezeigt
    Von mc_gulasch im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 13.06.06, 10:14
  5. Antworten: 2
    Letzter Beitrag: 07.12.01, 19:18