Mary: Dateiausgabe per JavaScript und PHP

Beitrag lesen

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*