include in variable / funktion auf include anwenden
bert
- php
0 Candid Dauth0 Tom
Hi,
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'));
bzw.
include_once(auto_replace('content.php'));
klappt aber beides nicht.
Jemand ne Idee?
Heißa, bert,
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:
Möglicherweise suchst du den Output Buffer. Mit ob_start() kannst du ihn starten, die Ausgabe wird fortan nicht mehr an den Browser geschickt, sondern in einen Puffer geladen. Dann lässt du deine Include-Datei Ausgaben machen und liest diese hinterher mit ob_get_contents() aus. Mit ob_end_clean() verhinderst du, dass der gepufferte Inhalt doch noch an den Browser geschickt wird.
Gautera!
Grüße aus Biberach Riss,
Candid Dauth
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
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().
ich include eigene Inhalte, die über ein CMS angelegt werden. Inhalte befinden sich also in einer DB und werden vom CMS autom. verwaltet, included, etc. Der wysiwyg-Editor ist zwar toll, kann aber nicht alles (logo! habe eigene funktionen, dass der Inhalt-Anleger bspw. "[/info[/]hier steht inhalt, der bei hover angezeigt wird/]" eintragen kann, und dass dann auto_replaced wird mit einem Fragezeichen-Bild, welches bei Hover den Infotext anzeigt. Dafür muss ich alles, was das CMS über die Indexdatei included (aus der MySQL-DB ausliest) über meine Funktion laufen lassen.
Hi,
ich include eigene Inhalte, die über ein CMS angelegt werden. Inhalte befinden sich also in einer DB
Wieso arbeitest du dann mit include, wenn die Inhalte aus der Datenbank kommen?
Dafür muss ich alles, was das CMS über die Indexdatei included (aus der MySQL-DB ausliest) über meine Funktion laufen lassen.
Noch mal - welchen Zusammenhang siehst du zwischen include und dem Auslesen aus der Datenbank?
MfG ChrisB
Wieso arbeitest du dann mit include, wenn die Inhalte aus der Datenbank kommen?
Das CMS (joomla) arbeitet so, aber auch nicht mit einem "echten" include:
<jdoc:include type="component" />
Und auf einer anderen Seite arbeite ich mit einem include, welches nicht aus einer DB kommt, dafür wollte ich das auch wissen. Aber wenn ich das richtig verstanden habe, dann kann man das nur machen, indem man nicht include sondern echo auto_replace(file(datei.php)) macht, also die Datei in eine Variable liest, ersetzt was man will und dann per echo ausspuckt..?