Hallo,
ich moechte komplette PHP-Dateien, die ueberwiegend HTML-Code und ein paar PHP-Variablen enthalten per JavaScript ausgeben.
Was muss ich tun, damit Umbrueche entfernt, Apostrophs ersetzt sowie PHP-Variablen wirklich interpretiert ausgegeben werden?
Ob mit include oder fopen und eval ist mir voellig gleich.
Auszugebende Beispieldatei contact.inc.php:
<span class="box">
<?= $street;?><br/>
13100 Berlin<br/>
Germany<br/>
</span>
################### Möglichkeit 1 ####################
<script type="text/javascript">
<!--
<?
$datei = fopen ('contact.inc.php', 'r');
if($datei) {
while (!feof($datei)) {
$buffer = fgets($datei, 1024);
$buffer = eval('?>'.$buffer.'<?php');
// oder: eval ("$buffer = "$buffer";");
$buffer = addslashes($buffer);
?>
document.write('<?= $buffer;?>');
<?
}
}
fclose ($datei);
?>
//-->
</script>
Welche eval-Methode ich auch wähle, das Ergebnis ist ein parse error.
################### Möglichkeit 2 ####################
<script type="text/javascript">
<!--
<?
$datei = fopen ('contact.inc.php', 'r');
if($datei) {
while (!feof($datei)) {
$buffer = fgets($datei, 1024);
?>
document.write('<?= phpToJs($buffer);?>');
<?
}
}
fclose ($datei);
?>
//-->
</script>
############## mit ##############
function phpToJs($text) {
$text = str_replace("'","\'",$text);
$text = str_replace("\r","",$text);
$text = str_replace("\n","",$text);
$text = str_replace("\t","",$text);
return $text;
}
Die zweite Möglichkeit funktioniert zwar so, aber nur wenn sich in der Datei keine PHP-Variablen mehr befinden, was sehr unvorteilhaft ist.
Vielleicht ginge es ja auch über ein include. Dabei hatte ich aber die gleiche Schwierigkeit, PHP-Variablen wirklich zu interpretieren und vor allem, die Ümbrüche zu erkennen und umzuwandeln - dazu müsste ich vermutlich erst zwei, dreimal zwischenspeichern und umwandeln...das muss doch auch einfacher gehen?
Danke für Euer Bemühen,
Mary*
Vielen Dank fuer jeden Hinweis,
Mary*