2009-08-17 18 views
4

Mögliche Duplizieren:
Storing echoed strings in a variable in PHPSpeichern Sie die Ausgabe eines Include in einer Zeichenfolge?

Angenommen, ich habe

<?php include "print-stuff.php"; ?>

Druck stuff.php enthält PHP/HTML-Template, was bedeutet, dass, wenn es enthalten ist, HTML wird gedruckt. Gibt es eine Möglichkeit, das HTML als Zeichenfolge zu erfassen, sodass ich es für die Verwendung an anderer Stelle speichern kann?

die Aussage an anderer Stelle enthalten Umzug ist keine Option, weil Druck stuff.php auch Logik führt (erzeugt/verändert Variablen), dass die Umgebungs Code abhängt. Ich möchte einfach die Ausgabe der Datei verschieben, während ich die Logik so belasse wie sie ist.

+0

doppelte Frage: http://stackoverflow.com/questions/1195588/storing-echoed-strings-in-a-variable- in-php/ –

+0

Ich bin nicht sicher, ob die Fragen doppelt sind, aber die Antworten auf beide Fragen sind die gleichen. Wenn ich entscheiden würde, dass das Duplikat ist, ist mein Ruf nicht hoch genug, um die Frage zu beantworten :( – Steve

Antwort

-4
$fileStr = file_get_contents('/path/not/url/to/script.php'); 
+0

Ja, das ist genau das, was ich wollte. – Steve

+3

-1 Ist diese Antwort nicht wirklich falsch? Quellcode? Zumindest um die Ausgabe, nicht die Quelle, zu erhalten, sollte es '/ url/not/path/to/script.php' sein. Aber selbst dann gibt die Frage an, dass es einige Voraussetzungen dafür gibt, die es erfordern würden nicht mit der 'URL' Lösung behandelt werden. – tobltobs

22

Sie können Output Buffer es sicherstellen, dass die HTML wird nicht gezeigt und wird stattdessen in eine Variable setzen. (PHP noch laufen, aber HTML-Ausgabe wird in den Variablen enthalten sein)

ob_start(); 
include "print-stuff.php"; 
$contents = ob_get_contents(); 
ob_end_clean(); 

....

0

Sie können das tun, wenn Sie in einem Puffer statt stdout drucken.

ob_start(); 
include 'print-stuff.php'; 
$printedHTML = ob_get_clean(); 
0

Ehrlich gesagt bin ich hier auf und ging ah-ha, ich die Antwort auf diese wissen !!! Dann schaute ich nach unten und sah, dass andere Leute davor ankamen.

Aber für das Heck von ihm, das tue ich wie folgt aus:

ob_start(); 
include 'something.php'; 
$output = ob_get_contents(); 
ob_end_clean(); 
+0

Diese Antwort hat mich nachschlagen https://meta.stackexchange.com/questions/1096/how-should-we-deal-mit-duplicate-answers - Scheint wie p4bl0 innerhalb Minuten Antwort ist in Ordnung, aber das verwirrt mich wirklich Genug, um es 8 Jahre später zu kommentieren: D – Julix

Verwandte Themen