ich möchte eine PHP-Datei mit fopen() öffnen und ausgeben, damit der darin befindliche Code interpretiert wird. (Ich weiß, dass das mit 'include' viel einfacher geht, aber es muss hier fopen() sein. Es geht um Integration in fremd-entwickelte Software, auf die ich keinen Einfluss habe).
fopentest.inc.php
- Code: Select all
<? echo "Hallo fopen"; ?>
fopentest.php
- Code: Select all
<?
$uri = "http://localhost/fopentest.inc.php";
echo "uri: ".$uri."<br>";
$fh = fopen($uri, "r");
if ($fh) {
$text = fread($fh, 1024);
$len = strlen($text);
echo "text hat ".$len." Zeichen<br>";
echo "<text>".$text."<text><br>";
$c = fclose($fh);
}
?>
Wenn ich fopentest.php im Browser aufrufe, erhalte ich erwartungsgemäß
- Code: Select all
uri: http://localhost/fopentest.inc.php
text hat 13 Zeichen
<text>Hallo fopen </text>
Wenn ich dieselbe Include-Datei relativ adressiere, ...
- Code: Select all
$uri = "./fopentest.inc.php";
- Code: Select all
uri: ./fopentest.inc.php
text hat 29 Zeichen
<text> </text>
Und noch verblüffender ist, wenn ich mir den generierten HTML-Code anschaue:
- Code: Select all
uri: ./fopentest.inc.php<br>text hat 29 Zeichen<br><text><? echo "Hallo fopen"; ?>
</text><br>
Ich hätte zwei Fragen au Euch:
1. wie kann ich ihn dazu bringen, dass er die relativ codierte Adresse genauso behandelt, wie die absolute.
2. Wie kann es sein, dass der PHP-Code im zweiten Beispiel nicht interpretiert wird?
Danke für Eure Unterstützung.