php datei ausgeben

mc_gyver

Mitglied
Habe mal eine vieleicht sehr einfache Frage für euch!

Wie gebe ich eine komplette PHP-Datei die in einem String oder Array steht mit echo aus? Sinn ist es eine vollständige PHP-Datei (mitsamt "; echo "" &&& ) einzulesen, etwas zu modifizieren und dann wieder auszugeben? Geht das oder muss ich den String erst in eine datei schreiben und diese dann includen?
mc
 
sorry habe mich wohl etwas ungenau ausgedrückt

ich habe einen Strring bzw. ein Array indem eine komplette PHP-Site steckt.
Diesen möchte ich ausgeben und zwar als kompilierte PHP Site! Das Problem ist ja nur das in dem String auch echo-Befehle stehen und Sonderzeichen alla ".
das heißt wenn ich

echo $String;
ausgebe kann es passieren das da steht
echo "<br>echo "hallo";<br>";

wie kann ich also mein String so modifizieren das er sich als normale Site darstellen lassen kann?

Danke!
 
Ok, das hab ich gesucht, aber was würdest du denn, wenn ich fragen darf, emfehlen? Scheint ja nicht so das sicherste zu sein?

Aber schonmal vielen Dank. Bin ein Stück weiter... *lol*
 
Code:
eval ("echo \"".str_replace("\"", "\\\"", implode("", file("deine_datei.php")))."\";");

Ich würde aber die Finger davon lassen, weil eval grundstätzlich schlecht und gefährlich ist. Erst recht, wenn auch noch der ganze Inhalt einer Datei ausgeführt wird (ok, eval($_POST['code']) ist etwas gefährlicher, aber das tut ja hier nichts zur Sache)

Ich würde mir überlegen: "wie kann ich das eval umgehen?"
Gibt es noch andere, sicherre Methoden, den gleichen Effekt zu erzielen?

Interresant wäre es z.B. auch, was du mit dem Script erzielen willst, bzw. was es machen soll. Dann können wir dir vielleicht Tipps geben, mit denen du es bessermachen kannst.
 
Also im endeffekt sollte es eine art CMS werden, ich wollte nach einer Sichheitsabfrage dem User die annähernd gleiche Seite zeigen wie vorher nur das ich um die Texte eine Textarea setze in der sie dann die Texte ändern können. Diesen Effekt wollte ich eben dadurch erziehlen, dass ich die Originalseiten einlese, durchsuche und um den vor dem Text eine <Form> einfüge ... usw.
Den ganzen vertigen String würde ich dann ausgebnen wolllen.
 
Ähm, wieso willst du dann die ganze Seite einlesen und verändern?

Für was ist PHP den da?
Wenn du schon deine Methode benutzt, dann doch bite ASP, PHP ist irgendiwe zu schade dafür :-)

Du könntest es z.B: so machen:
PHP:
<?php
$bLogin = false;

if (isset($_POST['password'])) {
    if ($_POST['password'] == "blabla") {
        $bLogin = true;
    }
}

$sDerText = implode("", file("data.txt")));

if ($bLogin) {
    ?>
    <form action="datein.php" method="post">
        <textarea name="derInhalt" style="width:200px;height:100px;">
    <?php
}
echo $sDerText;
if ($bLogin) {
    ?></textarea>
    </form>
    <?php
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Passwort eingeben:
    <br>
    <input type="password" name="password" style="width:100px;">
    <br>
    <br>
    <input type="submit" value="Einloggen" style="width:150px;">
</form>

hth
 
Zurück