Hello,
ich habe eine auto_replace-Funktion geschrieben, die auf jeden include-Inhalt angewendet werden soll. Momentan hab ich das so gelöst, dass die includes so aufgebaut sind, dass der gesamte Inhalt in einer Variable steht.
Beispiel von content.php:
$content = '<h1>Titel</h1><p>Hier steht Text.</p>';
In der Index steht zum includen:
include_once('includes/content.php');
echo auto_replace($request_content);möchte aber den Inhalt nicht jedesmal in eine Variable schreiben, sondern die replace-Funktion direkt auf das include anwenden. Habe mir das so vorgestellt:
auto_replace(include_once('content.php'));
Wieso musst Du denn in einer zu includierenden Datei etwas ersetzen? Wenn es dich stört, schreib es doch gar nicht erst rein! Oder includierst Du etwa von Fremden gelieferte Dateien? Das wäre dann sicherlich nicht unbedingt die richtige Anwendung für include().
Dann solltest Du zum Einlesen der Inhalte vielleicht lieber file_get_contents() oder fread() nehmen.
Wenn es denn unbedingt include sein muss, dann kannst Du auch die Ersetzung _vorher_ durchführen. Das ist zwar von hinten durch die Brust ins Auge, aber es ginge:
Datei einlesen in Variable
Ersetzungen durchführen
geänderte Datei in Temp-Datei wegschreiben
include mit Temp-Datei durchführen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg