Quellcode in Textarea "sauber" darstellen

ahykes

Erfahrenes Mitglied
Hallo Leutz,

ich komme einfach nicht weiter. Ich habe eine PHP-Datei tmp.php:
PHP:
<? echo 'HALLO'; ?>
Nun möchte ich diese Datei in meiner Textarea ausgeben. Das mache ich wie folgt (in der Textarea):
PHP:
$FP_ARRAY = file($_GET['CUR_DIR'].'/tmp.php');
foreach($FP_ARRAY as $ROW){
	$ROW =  htmlentities($ROW,ENT_QUOTES);
	echo $ROW;
}
Nun muss ja der Quellcode im Browser maskiert werden. Das mache ich mit htmlentities. Nun möchte ich den Quellcode bearbeitet abspeichern. JETZT KOMMT DAS PROBLEM:
PHP:
html_entity_decode($_POST['newFileContent'])
wird einfach nicht beachtet! 'newFileContent' ist der Name der Textarea! Sobald ich dann wieder in die Datei reinschaue, wird der Inhalt der Datei oben wie folgt dargestellt :
PHP:
<? echo \'HALLO\'; ?>
Warum ist das so? Habt ihr eine Idee? Oder habe ich einen Denkfehler?
 
Wenn du bei htmlentities schon ENT_QUOTES verwendest, solltest du es auch bei html_entity_decode machen.

PHP:
html_entity_decode($str, ENT_QUOTES)
 
PHP:
html_entity_decode(strip_slashes($_POST['newFileContent']), ENT_QUOTES)

Dann versuch es mal so.
 
Echt Stark! Vielen Dank! Wenn ich die andere Funktion auch noch benutzen muss, kann das Beispiel auf php.net nicht stimmen! Egal, denn bei mir läuft es jetzt *EGO* ;-) Vielen Dank!
 
Es reicht zur Ausgabe nur die HTML-Metazeichen zu maskieren (htmlspecialchars()-Funktion). Beim Speichern der Datei musst du dann die möglichen Magic Quotes berücksichtigen und die hinzugekommenen umgekehrten Schrägstriche entfernen oder Magic Quotes gleich ganz deaktivieren (besser).
 
Zurück