16 Stimmen

Führt eine PHP-Datei aus und gibt das Ergebnis als String zurück

Nehmen wir an, ich habe die folgende Datei - template.php :

<?php $string = 'Hello World!'; ?>
<html>
    <head>
        <title>Test Page!</title>
    </head>
    <body>
        <h1><?= $string; ?></h1>
        <p>You should see something above this line</p>
    </body>
</html>

Ich bin mir bewusst, dass ich die file_get_contents() um den Inhalt der Datei als Zeichenkette zu erhalten, die ich dann nach Bedarf manipulieren kann. Allerdings, file_get_contents() führt keine PHP-Anweisungen aus.

Ich habe erfolgreich cURL verwendet, um auf die gerenderte Version der Datei zuzugreifen, aber es scheint ziemlich langsam und klobig zu sein, was die Ausführung der Seite um einiges verzögert - was ich mir vorstellen kann, weil ein DNS-Lookup durchgeführt wird.

Wie kann ich also den Inhalt von template.php in eine Zeichenkette umwandeln - und dabei brauchbares PHP haben?

43voto

bisko Punkte 3828

Das sollte genügen:

ob_start();
include('template.php');
$returned = ob_get_contents();
ob_end_clean();

3voto

Ryan Brunner Punkte 14463

Wenn Sie dies nicht tun müssen innerhalb PHP können Sie ein PHP-Skript von der Befehlszeile aus ausführen und es in eine Textdatei leiten, etwa so:

php -f phpFile.php > output.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X