Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Datei in php einbinden, aber ohne echo Antworten
Datei in php einbinden, aber ohne echo

pascalplus
Pixelschubser


Beiträge: 20


hallo

Ich möchte in php eine Datei einbinden und der Inhalt dieser Datei danach auch anzeigen lassen.
NUR möchte ich in dieser einzubindenden Datei auch Variablen gebrauchen, trotzdem aber in dieser Datei nicht "echo", sowie <?php und ?> schreiben zu müssen.

Im Quelltext vom wbb-Forum wird sowas gemacht, aber dort habe ich nicht ganz den Durchblick im Code;)


---
ridere.de
sac-grenchen
linkplus

Diese Nachricht wurde geändert von: pascalplus
  Profil   E-Mail   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Du kannst Code, der nicht in einer PHP-Datei steht mit eval ausführen, falls dir das weiterhilft, aber wenn in der datei selbst echo-Anweisungen stehen, kannst du diese natürlich nicht wirklich umgehen, es sei denn du lässt den Inhalt in einen Buffer schreiben.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


"Wenn die Lösung eval() heißt, hast du ein Problem"

Eine eingebundene Datei läuft immer im aktuellen Namenraum und kann auf dessen Variablen zugreifen. Es kann sie natürlich auch setzen, ein echo ist völlig unnötig.

<?php ... ?> ist PHP-Syntax - sie wegzulassen wäre falsch. Man sollte bedenken das man auch innerhalb von PHP jederzeit mit ?> ... <?php wieder eine Textausgabe einfügen kann. Eine PHP-Datei, welche PHP-Anweisungen nicht in <?php ?> einschließt ist also ganz simpel ungültiges PHP. (Es gibt eine Ausnahme, welche die Regel bestätigt.)

Bei includes() die selbst keine Ausgabe haben sollen, bietet sich an den enthaltenen Quellcode in Funktionen zu verpacken, welche man dann von der Hauptdatei nach dem Einbinden aufruft. Somit kann man auch Parameter übergeben und exakter steuern.

Falls man keinen Einfluss auf den Quellcode des Includes hat und Ausgaben blocken möchte hilft der folgende Code:

1: 
2: 
3: 
4:
ob_start();
include('datei.php');
$ausgabe = ob_get_contents();
ob_end_clean();


---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben