PHP/Ausgabe von Daten an den Webbrowser

Aus Mikiwiki
< PHP
Version vom 13. Januar 2009, 22:08 Uhr von Michi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Ausgabefunktionen

Funktion Beschreibung
echo Ausgabe von Zeichenketten, numerischen Werten, Datumswerten, Funktionswerten und aller weiteren darstellbaren Werte.
print() Ausgabe von Zeichenketten.
printf()
number_format()

Ausgabe mit "echo"

Der Befehl "echo" gibt Zeichen an den Webbrowser aus. Der auszugebende Text wird in Anführungszeichen geschrieben.

<?php echo "Das hier wird angezeigt."; ?>
Das hier wird angezeigt.

Innerhalb doppelter Anführungszeichen werden Variablen ausgewertet.

<?php
  $zeit = 10;
  echo "Es ist jetzt $zeit Uhr.";
?>
Es ist jetzt 10 Uhr.

Innerhalb einfacher Anführungszeichen werden Variablen nicht ausgewertet.

<?php
  $zeit = 10;
  echo 'Es ist jetzt $zeit Uhr.';
?>
Es ist jetzt $zeit Uhr.

Es werden auch Ausdrücke ausgewertet.

<?php echo 84 + 16; ?>
100

Sind mehrere Werte vorhanden, so wird die Schreibweise mit Anführungszeichen genutzt oder die Zeichenkette wird mit dem Punkt (".") zusammengesetzt.

<?php
  $wochentag = Montag;
  echo "Heute ist $wochentag!";
  $monat     = Oktober;
  echo "Wir befinden uns im Monat ", $monat, "!";
  $jahr      = 2008;
  echo "Das Jahr ist " . $jahr . "!";
?>
Heute ist Montag!Wir befinden uns im Monat Oktober!Das Jahr ist 2008!

Alle Ausgaben erfolgen in einer Zeile. Sollen Zeilenumbrüche durchgeführt werden, so ist dies durch ein entsprechendes HTML-Tag innerhalb der auszugebenden Zeichenkette zu bewerkstelligen. Auch Leerzeichen müssen gegebenenfalls ausgegeben werden.

<?php
echo 84 + 16;
echo "<br />\n";
echo "Neue Zeile.";
echo " Nach einem Leerzeichen folgt der nächste Satz.";
?>
100
Neue Zeile. Nach einem Leerzeichen folgt der nächste Satz.

Ausgabe mit "print()"

Alternativ zum Befehl "echo" kann die Funktion "print()" zur Ausgabe verwendet werden. "print" darf nur ein Argument haben. Im Gegensatz zu "echo" verhält sich "print()" wie eine Funktion (Funktionen zeichnen sich vor allem dadurch aus, dass sie Daten zurückgeben).

<?php
  $zeit = 10;
  print ("Es ist jetzt $zeit Uhr.<br />");
?>
Es ist jetzt 10 Uhr.

heredoc-Syntax

Lange Texte können mit dem "heredoc"-Operator ausgegeben werden. Am Beginn des Blocks wird eine innerhalb des Blocks nicht vorkommende Zeichenkette bestimmt, die am Ende widerholt wird. Die Sequenz wird dabei vom Operator "<<<" eingeleitet, an den direkt angeschlossen der Name des Blocks steht. Das abschliessende Schlüsselwort (hier "TABLEHEAD") muss ganz links am Anfang der Zeile stehen.

echo <<<TABLEHEAD
<table border=1>
  <tr>
    <th>Name</th>
    <th>Adresse</th>
  </tr>
</table>
TABLEHEAD;
Name Adresse

Auch einer Variablen kann ein solcher Block übergeben werden. Zu bedenken ist, dass dabei die Zeilenumbrüche erhalten bleiben.

$adressen = <<<ADRESSEN
Martin Meier,
Lieschen Müller,
Stefan Krause
ADRESSEN;
Martin Meier, Lieschen Müller, Stefan Krause

Steuerzeichen

Innerhalb von durch doppelte Anführungszeichen umschlossenen Zeichenketten gibt es eine Reihe von Steuerzeichen, die PHP auswertet. Folgende Tabelle zeigt die Escape-Sequenzen, mit denen solche besonderen Zeichen erzeugt werden, damit PHP erkennen kann, ob das Sonderzeichen oder das literale Zeichen gemeint ist.

Escape-Sequenz Dargestelltes Zeichen
\' Einfaches Anführungszeichen
\" Doppeltes Anführungszeichen
\n Zeilenumbruch (neue Zeile, engl. newline)
\r Zeilenumbruch (Wagenrücklauf, engl. carriage return)
\t Tabulator
\\ Backslash
\$ $-Zeichen
\{ Linke geschweifte Klammer
\} Rechte geschweifte Klammer
\[ Linke eckige Klammer
\] Rechte eckige Klammer
\0 bis \777 Ein Zeichen, dargestellt durch seinen oktalen Code
\x0 bis \xFF Ein Zeichen, dargestellt durch seinen hexadezimalen Code

Neben den üblichen Variablen erkennt PHP auch Arrays oder Eigenschaften von Objekten innerhalb von Zeichenketten. Array-Elemente zeichnen sich durch Markierung des gewünschten Indizes aus, dies erfolgt mit eckigen Klammern. Um Missverständnissen vorzubeugen, wird in solchen Fällen am besten überall die geschweifte Klammer eingesetzt.

echo "Hier ist der Wert: {$this->objektvariable}";
echo "Ein Arraywert:     {$array['index']}";
echo "Ein Objekt:        {$object->property}";

Ohne die geschweiften Klammern liest PHP etwa die Variable "$array" unvollständig und ignoriert den Rest. Damit ist klar, warum auch diese Zeichen im Zeifelsfall gesondert markiert werden sollten. Allerdings wird PHP die Klammern nur entfernen, wenn eine Variable eindeutig erkannt wurde. Das ist nicht immer der Fall und schon kleine Veränderungen am Text können das Verhalten ändern.

echo "Hier ist der Wert: \{$this->objektvariable\}";
echo "Ein Arraywert:     \{$array\[\'index\'\]\}";
echo "Ein Objekt:        \{$object->property\}";