Author: Progman, zuletzt bearbeitet von progman @ 2003/07/08 19:25:39
Bitte beachten Sie, dass die Tutorialkapitel zusammenhängen. Wenn sie direkt auf ein Kapitel verlinkt wurden müssen Sie gegebenenfalls die vorherigen Kapitel auch lesen. Achten Sie beim lesen darauf, dass Sie kein Kapitel überspringen.
Ausgabe
- Ausgaben mit echo erzeugen
- Steuerzeichen in Strings
- Ausgabe von HTML-Elementen
- Escapen von bestimmten Zeichen
- Ausgabe von PHP-Zeichen
1. Ausgaben mit echo erzeugen
Wenn man mit PHP arbeitet, möchte man ja auch etwas ausgeben, und zwar HTML-Code. Dies funktioniert mit verschiedenen Funktionen wie echo, print und printf. Wir werden aber weitgehend nur echo benutzen.
Mit echo können wir einen Text ausgeben. Die Frage ist nur welchen Text. Irgendwoher muss die Funktion wissen was ausgegeben werden soll. Und da kommen die Parameter ins Spiel. Der Funktion echo übergeben wir genau einen Parameter, der üblicherweise eine Zeichenkette ist. Eine Beispieldatei könnte so aussehen:
<?php
echo "Dies ist eine Zeichenkette, die ausgegeben wird";
?>
Wie man sieht fehlen hier die Klammern. Das liegt daran, dass echo keine echte Funktion sondern ein PHP-Sprachkonstrukt ist. Sie benötigen keine Klammer. Das gleiche gilt für print, bei printf muss man aber wieder die Klammern benutzen.
Wir laden diese Datei nun auf unseren PHP-Server hoch und öffnen diese im Browser. Wir sehen den Text den wir der Funktion echo übergeben haben.
Dies ist eine Zeichenkette, die ausgegeben wird
Wenn wir einen Text ausgeben wollen, müssen wir diesen auch als Text kenntlich machen. Dies machen wir mit den Anführungsstrichen ", wie in einer direkten Rede. Eine Zeichenkette (auch String genannt) startet mit einem " und endet mit einem ".
Wir fügen nun einen zweiten echo-Befehl darunter dazu.
<?php
echo "Dies ist eine Zeichenkette, die ausgegeben wird";
echo "Zeichenketten werden auch Strings genannt";
?>
Wenn wir diese Datei hochladen und im Browser öffnen, erhalten wir folgende Ausgabe:
Dies ist eine Zeichenkette, die ausgegeben wirdZeichenketten werden auch Strings genannt
Was sofort auffällt ist, dass wir keinen Zeilenumbruch haben. Der eine String wurde an den anderen String einfach hinten drangehängt. Das ist auch richtig so. Wir haben PHP gesagt, es soll einmal den einen String ausgeben und dann den anderen String. Wir haben ihm nicht gesagt, dass es einen Zeilenumbruch machen soll. So sah das jetzt aus der Sicht von PHP aus:
(die PHP-Datei wird geöffnet, der 'imaginäre' Cursor steht an Position 1, Zeile 1) _ (hier als Unterstrich dargestellt. Nun kommt die Anweisung, dass "Dies ist eine Zeichenkette die ausgegeben wird" ausgegeben werden soll. PHP gibt nun den String aus.) Dies ist eine Zeichenkette die ausgegeben wird_ (wir haben PHP "nicht" gesagt, dass es einen Zeilenumbruch machen soll, der 'imaginäre' Cursor steht immer noch am Ende des Strings. Nun kommt die nächste Anweisung, wo ein zweiter Text geschrieben wird.) Dies ist eine Zeichenkette die ausgegeben wirdZeichenketten werden auch Strings genannt_ (PHP hat nun an der Stelle wo der Cursor war den String hingeschrieben. Der 'imaginäre' Cursor ist immer noch in der Zeile. Wir haben ja schließlich nix gesagt, dass es einen Zeilenumbruch machen soll.)
Aber wir wollen ja einen Zeilenumbruch haben. Also sagen wir ihm das auch.
2. Steuerzeichen in Strings
Wenn wir an einer bestimmten Stelle einer Zeichenkette umbrechen wollen (bzw. einen Zeilenumbruch einfügen wollen), müssen wir den String \n benutzen. Wir schreiben am Ende der Strings noch ein \n.
<?php
echo "Dies ist eine Zeichenkette, die ausgegeben wird\n";
echo "Zeichenketten werden auch Strings genannt";
?>
Wenn wir diese Datei hochladen und öffnen, erhalten wir folgende Ausgabe:
Dies ist eine Zeichenkette, die ausgegeben wird Zeichenketten werden auch Strings genannt
Und wir sehen, dass es doch kein Zeilenumbruch gemacht hat. Wie ist das zu erklären? Das liegt jetzt am Browser. Er versucht das Dokument, welches wir ihm schicken, so umzuwandeln als wäre es ein HTML-Dokument. Deswegen gucken wir uns nicht an was der Browser anzeigt sondern was der Browser empfangen hat. Dazu klicken wir im Browser auf "Ansicht" -> "Quelltext zeigen". Bei anderen Browsern kann dies auch "View" -> "Show Source" heißen, oder auch "Edit" -> "View Source", je nachdem welchem Browser man benutzt. Aber ihr werdet so ein Menupunkt unter "Ansicht(view)" oder "Bearbeiten(edit)" finden. Ihr bekommt nun den Code zu sehen, der zum Browser gesendet wird. Und siehe da, da ist unser Umbruch. Der Text sieht wie erwartet aus.
Dies ist eine Zeichenkette die ausgegeben wird Zeichenketten werden auch Strings genannt
Diesen Text, den ihr jetzt seht, versucht der Browser als HTML-Dokument anzusehen und erzeugt eine entsprechende Umwandlung. Jetzt wollen wir aber ein sichtbaren Zeilenumbruch erzeugen. Da der Browser denkt, das wäre eine HTML-Datei brauchen wir also ein HTML-Element, das für einen Zeilenumbruch steht. Dieses Zeichen kennen wir, es ist das Zeichen <br />.
3. Ausgabe von HTML-Elementen
<?php
echo "Dies ist eine Zeichenkette, die ausgegeben wird<br />\n";
echo "Zeichenketten werden auch Strings genannt";
?>
Wenn wir die Datei neu hochladen und im Browser öffnen sehen wir endlich das gewünschte Ergebnis.
Dies ist eine Zeichenkette, die ausgegeben wird Zeichenketten werden auch Strings genannt
Und wenn wir uns den Quelltext im Browser angucken sehen wir folgendes:
Dies ist eine Zeichenkette, die ausgegeben wird<br /> Zeichenketten werden auch Strings genannt
Es ist kein Problem HTML-Code mit echo auszugeben. Man muss nur unterscheiden zwischen einem normalen Zeilenumbruch \n, wie er in PHP erkannt wird und in Dateien benutzt wird, und einem HTML-Zeilenumbruch <br />, den man benutzt um im Browser einen Umbruch zu erzeugen.
4. Escapen von bestimmten Zeichen
Mit \n erzeugt man ja einen Zeilenumbruch. Aber vielleicht möchte man ja ein \n oder nur ein \ ausgeben. Deswegen müssen wir escapen.
Escapen ist der Fachausdruck, wenn man vor ein Zeichen ein \ (Backslash) schreibt. In PHP ist \ mit bestimmten Zeichen ein Steuerzeichen. Wir haben jetzt \n kennen gelernt für Zeilenumbruch (n = newline). Es gibt noch \r, was man braucht wenn man Dateien unter Windows erstellen will. Und dann gibt es noch \t, was im Quelltext für ein Tabulator steht.
Wenn man ein \ ausgeben möchte, oder ein \ in einem String speichern möchte, muss man diese Steuerzeichen escapen. Man schreibt dann \\.
<?php
echo "Ein \\ im String";
?>
Man kann dann ganz einfach ein \n ausgeben, indem man das \ escaped.
<?php
echo "Eine neue Zeile: \n, ein Tabulator: \t, ein Slash \\ und einmal den String \\n";
?>
Wenn man diese Datei hochlädt, sie im Browser lädt und sich dann den Quelltext anguckt, sieht man folgendes:
Eine neue Zeile: , ein Tabulator: , ein Slash \ und einmal den String \n
5. Ausgabe von PHP-Zeichen
Manchmal möchte man Zeichen ausgeben, die für PHP reserviert sind. Einmal ist es das Dollar-Zeichen $, welches bei Variablen verwendet wird, und dann ist es noch das Zeichen ". Auch diese Zeichen müssen escaped werden. Das mit dem Dollar-Zeichen ist einfach.
<?php
echo "Das Dollarzeichen \$ ist eine Währungseinheit";
?>
Wir müssen dieses Zeichen escapen. Dies ist nötig, damit PHP das $ nicht als Variablen-Anfang erkennt (zu Variablen kommen wir später). Wenn wir ein " ausgeben wollen, müssen wir dieses auch escapen. Würden wir es nicht tun, würde an dieser Stelle der String beendet werden.
<?php
echo "Hier ist ein " im String.<br />";
echo "Ein anderer String";
?>
Wie man es hier an der Farbcodierung sieht (auch Syntaxhighlight genannt) würde der PHP-Interpreter hier eine Fehlermeldung erzeugen. Denn für ihn ist der String schon nach dem Wort ein zu Ende. Er erkennt nur Hier ist ein als String. Das was danach kommt kann der PHP-Interpreter überhaupt nicht verarbeiten. Er weiß nicht, was das Wort "im" danach bedeuten soll. Und mit den dann anschließenden " kommt er dann gar nicht klar. Da würde für den PHP-Interpreter (wenn er so weit kommen würde) ein neuer String beginnen. In Editoren mit Syntaxhighlight sieht man so was ganz schnell, denn dann wird den nachfolgende Code total anders gefärbt als man es kennt. Manchmal wird der ganze folgende Text grün markiert (die Farbe hängt vom PHP-Editor ab, hier im Tutorial wird ein String rot markiert). Also müssen wir diese Zeichen auch escapen.
<?php
echo "Hier ist ein \" im String.<br />\n";
echo "Ein anderer String";
?>
Im Browser sehen wir folgenden Text:
Hier ist ein " im String Ein anderer String
Und wenn wir den Quelltext im Browser öffnen, sehen wir folgendes:
Hier ist ein " im String<br /> Ein anderer String
Somit haben wir unser gewünschtes Zeichen " im Text.
Fragen zum aktuellen Thema
- Wie wird ein String gekennzeichnet
- Was ist der Unterschied zwischen \n und <br />
- Welche Steuerzeichen gibt es
- Welche Zeichen müssen escaped werden
- Wie wird ein String gekennzeichnet
-
Ein String fängt mit einem " an und hört mit einem " auf. Wenn man Anführungszeichen in Strings benutzen möchte, muss man diese escapen, da sie sonst von PHP als Stringanfang/-ende interpretiert werden.
- Was ist der Unterschied zwischen \n und <br />
-
Ein \n erzeugt ein Zeilenumbruch im Quelltext oder in einer Datei, ein <br /> hingegen einen HTML-Zeilenumbruch, um in einem Text einer HTML-Seite einen Umbruch zu erzeugen.
- Welche Steuerzeichen gibt es
-
Die drei wichtigsten Steuerzeichen sind.
-
\n - Ein Zeilenumbruch
-
\r - Ein benötigtes Zeichen um mit \n ein Zeilenumbruch in Windowsdateien zu ermöglichen
-
\t - Ein Tabulator
Die anderen Steuerzeichen fallen unter die Kategorie "nicht so wichtig" und brauchen auch nicht erwähnt werden (erstmal).
-
- Welche Zeichen müssen escaped werden
-
Es müssen einmal die Zeichen " und $ escaped werden, wenn man diese in Strings verwenden möchte. Möchte man noch ein Backslash in einen String speichern, muss man dieses Zeichen auch escapen.