ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
489
489
EMPFEHLEN
-
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:
Also ich habe ein Array algelegt, wo das zu ersetzende und das "neue" drin steht.PHP-Code:file_get_contents("inc/".$content_inc.".php");
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!
-
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 von Friedrich Nietzsche
-
Muss ich dann für jeden String das in eval reinschreiben?
Stur lächeln und winken Männer, lächeln und winken!
-
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 von Friedrich Nietzsche
-
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!
-
file() ist dafuer eher ungeeignet wuerde ich sagen.
Der an eval() uebergebene Code darf kein <?php ?> enthalten.
Beispiel wie's falsch ist:
Beispiel wie's richtig ist:PHP-Code:eval("<?php echo 'test'; ?>");
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 von Friedrich Nietzsche
-
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
in der config.php steht dies: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;
?>
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!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);
?>
Wie kann ich das ändern?Stur lächeln und winken Männer, lächeln und winken!
-
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 von Friedrich Nietzsche
-
Danke, funktioniert super!
Stur lächeln und winken Männer, lächeln und winken!
Ähnliche Themen
-
Nach Klick auf Hyperlink wird Quellcode der gelinkten Seite angezeigt
Von Skandinavika im Forum ASPAntworten: 15Letzter Beitrag: 13.03.10, 20:48 -
Umlaute werden bei include nicht angezeigt
Von PC Freak im Forum PHPAntworten: 5Letzter Beitrag: 28.07.09, 12:39 -
Hintergrund nicht angezeigt, wenn include vorhanden ist
Von smuuuf im Forum PHPAntworten: 2Letzter Beitrag: 08.04.07, 19:36 -
Beim Auslesen von Datei wird Quellcode angezeigt
Von mc_gulasch im Forum C/C++Antworten: 1Letzter Beitrag: 13.06.06, 10:14 -
Warum wird im Browser der PHP-Quellcode net angezeigt?
Von scanline im Forum PHPAntworten: 2Letzter Beitrag: 07.12.01, 19:18





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren