Bläul.de>Computer>PHP>Befehlsreferenz>Sonstiges>Ausgabe an den Browser   

Ausgabe an den Browser


Inhalt lesen/schreiben
 fpassthruGibt den gesamten Inhalt einer Datei zurück

Ausgabe an den Browser
 echoGibt eine Zeichenkette aus
 flushSendet bei Aufruf alles bis dahin ausgegebene Daten zum Browser
 headerSendet einen spezifischen HTTP-Header an den Browser
 printGibt eine Zeichenkette aus
 print_rGibt Informationen einer Variable zurück
 printfGibt eine formatierte Zeichenkette aus
 setcookieSetzt ein Cookie

Informationen zu Variablen
 var_dumpGibt Informationen zu einer Variable aus

 

 

fpassthru
fpassthru($datei_zeiger)

Liest den Inhalt einer mit fopen() geöffneten Datei bis zum Ende der Datei aus und gibt ihn aus. Anschließend wird die Datei geschlossen.
Beispiel$fp = fopen("../public_html/index.htm", "r");
fpassthru($fp);
echo
echo("zeichenkette" [, ...])

Gibt eine Zeichenkette aus. Es können auch mehrere Zeichenketten durch Kommata getrennt werden. echo ist keine richtige Funktion, sondern ein Sprachkonstrukt von PHP. Daher ist es nicht nötig die Klammern um die Zeichenkette zu setzen.
Beispielecho "<B>HTML-Tags sind natürlich auch möglich!</B>";
Siehe auch printf() und flush()
flush
flush()

Leert den Puffer des Servers und sendet die auszugebenen Daten dem User sofort zu anstatt zu warten bis die komplette Seite fertig erstellt ist. Ermöglicht somit ein schnelleres Anzeigen der Inhalte auf dem Bildschirm.

Achtung: Der Befehl funktioniert nur, wenn PHP direkten Zugriff auf den Buffer des Servers hat. Dies ist nicht der Fall, wenn PHP als CGI-Version (also auch unter Windows) installiert ist. Bei Apache mit PHP-Modul hingegen funktioniert es.
Beispielfor($i=0;$i<10;$i++) {
  echo "$i";
  flush();
  sleep(1);
}

// Ausgabe: 0123456789
// jede Zahl wird im Sekunden-Abstand angezeigt.
// Ohne flush() würde 10 Sekunden lang nichts passieren
// und dann alle Zahlen aufeinmal erscheinen.
header
header("zeichenkette")

Sendet an den Browser einen spezifischen HTTP-Header.

Die Funktion muß aufgerufen werden, bevor das erste HTML-Zeichen gesendet wird. Also muß die PHP-Datei mit einem <? beginnen und es darf bis zum Aufruf von header() keinerlei Ausgabe erfolgen. Kritische Funktionen müssen also mit @ zum Schweigen gebracht werden und auf echo mußt du auch verzichten.

Nähere Erläuterungen zu HTTP-Headern gibt es in der Rubrik Tiefergreifende Programmierung und in RFC2616.
Beispiel// Browser umleiten
header("Location: http://www.neander-regiert.de/");
print(Alias für echo)
print("zeichenkette")

Gibt eine Zeichenkette aus und sendet sie an den Browser.
Beispielprint("<Big>HTML-Tags sind natürlich auch möglich!</Big>");
print_r
print_r($variable)

Diese Funktion zeigt Informationen über eine Variable in lesbarer Form an. Einfache Werte werden direkt ausgegeben, Arrays und Objekte werden dagegen als eingerückte Schlüssel-Wert-Paare ausgegeben.

print_r() ähnelt var_dump(), gibt aber Typinformationen nur bei Arrays und Objekten aus.

Warnung: Diese Funktion ist nicht in der Lage, zyklische Referenzen aufzulösen. Arrays oder Objekte, die sich selbst enthalten, wie z.B. print_r($GLOBALS), führen zu einer sich niemals beendenden Schleife.
Beispielecho "<pre>";
print_r(dir("/"));
echo "</pre>"

/* Ausgabe:

Directory Object
(
[path] => /
[handle] => Resource id #1
)

*/
printf
printf($formatierung, [argument1 [, argument2 [, argument3, ...]]))

Formatiert eine Zeichenkette, wobei $formatierung beschreibt, wo und wie die Argumente in die Zeichenkette eingesetzt werden sollen.

%bestimmt die formatierte Stelle.
bDas Argument wird als eine Binär-Zahl behandelt.
cDas Argument wird als eine INTEGER-Zahl behandelt, mit der Ausgabe deren Äquivalenz in ASCII.
dDas Argument wird als eine INTEGER-Zahl.
fDas Argument wird als eine Fließkommazahl behandelt.
oDas Argument wird als eine INTEGER-Zahl mit der Basis 8 behandelt.
sDas Argument wird wie ein String behandelt.
xDas Argument wird als als INTEGER behandelt und als hexadezimale Zahl ausgegeben.

Beispiel$a = "128";
printf("%b-%c-%d-%.0f-%o-%s-%x", $a, $a, $a, $a, $a, $a, $a);

// Ausgabe: 10000000-€-128-128-200-128-80
Siehe auch sprintf()
setcookie
setcookie("name", "inhalt"[, "ablauf"[, "verzeichnis"[, "domain"[, "sicherheit"]]]])

Erstellt bzw. überschreibt ein Cookie (solange der Benutzer es akzeptiert) mit dem Namen "name" und dem Wert "inhalt". "ablauf" gibt in Sekunden nach dem 1.1.1970 (Unix-Epoche) die Zeit an, wie lange das Cookie gültig ist. Wird keine Zeit angegeben, ist das Cookie solange gültig, bis der Browser geschlossen wird. "verzeichnis" und "domain" geben an, für welches Verzeichnis auf welcher Domain das Cookie gültig ist (der Browser sendet nur dann ein Cookie, wenn die geforderte Datei auf dem richtigen Server in dem richtigen Verzeichnis oder einem Unterverzeichnis davon liegt). Für "sicherheit" kann 1 angegeben werden, dann wird das Cookie jedoch nur an einen SSL-Server (mit dem Protokoll https) übermittelt, ansonsten erhält "sicherheit" den Wert 0. Allgemeine Informationen zu Cookies Viele haben Angst, daß man durch Annahme eines Cookies einen Virus übertragen kann. Es gibt aber folgende Einschränkungen bei den Cookies:
  • Ein Cookie ist eine reine Text-Information, die nicht länger als 2048 Bytes sein kann.
  • Es werden maximal 20 Cookies pro Domain abgespeichert. Cookies werden von Browser (wie oben erwähnt) nur an den dafür definierten Server in das definierte Verzeichnis zurückgesendet.
  • Ein Browser speichert maximal 300 Cookies.
Vorhandene Cookies werden als Variable, die den Namen des Cookies trägt, in PHP zur Verfügung gestellt. Außerdem enthält das Array $HTTP_COOKIE_VARS alle gesetzten Cookies.
Beispielif (isset($IP)) echo "Deine letzte IP war $IP, jetzt ist sie $REMOTE_ADDR";

// Für eine Woche speichern
setcookie("IP", "$REMOTE_ADDR", time()+(3600*24*7));
Siehe auch getenv()
var_dump
var_dump($variable)

Diese Funktion zeigt Informationen über eine Variable in lesbarer Form an. Einfache Werte werden direkt ausgegeben, Arrays und Objekte werden dagegen als eingerückte Schlüssel-Wert-Paare ausgegeben. Im Gegensatz zu print_r() werden auch Typ-Informationen angezeigt.
Beispiel$trans=array(
    "Hot Dog" => "Döner",
    "Vanilla Ice" => "Das Bo",
    "Miami" => "Hamburg"
);

echo "<pre>";
var_dump($trans);
echo "</pre>"

/* Ausgabe:
array(3) {
["Hot Dog"]=>
string(5) "Döner"
["Vanilla Ice"]=>
string(6) "Das Bo"
["Miami"]=>
string(7) "Hamburg"
}
*/
Siehe auch print_r()