Quakenet/#php Tutorial

Hinweis: Wenn sie diese Seite von einer externen URL aufgerufen haben achten sie darauf das alle Kapitel aufeinander aufbauen. Stellen sie daher sicher dass sie alle vorherigen Kapitel gelesen haben, da sie sonst relevante Informationen übersehen.

Ausgabe und Strings

  1. Strings ausgeben
  2. HTML-Code ausgeben
  3. Steuerzeichen in Strings

1. Strings ausgeben

Hauptziel eines PHP-Skriptes ist es, unabhängig von der Logik die dahintersteckt, eine Ausgabe zu erzeugen. Beispielweise eine Auflistung der Newsbeiträge. Um in einem PHP-Skript Texte auszugeben (ohne den PHP-Modus zu verlassen) wird üblicherweise der Sprachkonstrukt echo verwendet. Ein Beispiel könnte wie folgt aussehen.

<?php
echo 'Ein Text der ausgegeben wird';
?>

Das Erste was auffällt ist die Tatsache dass die Klammern der Funktion fehlen. Das liegt daran dass echo keine Funktion sondern ein spezieller Sprachkonstrukt ist. Das Manual sagt dazu folgendes.

echo() is not actually a function (it is a language construct), so you are not required to use parentheses with it.

Das Zweite ist dass der Text der ausgegeben werden soll innerhalb von zwei Apostrophs ' steht. Auf diese Weise wird (unabhängig von echo) eine Zeichenkette (Fachbegriff: String) mit dem entsprechenden Inhalt erzeugt. Dieser String dient dann als Parameter für den echo-Sprachkonstrukt und echo gibt diesen String aus. Wenn nun ein PHP-Skript mit diesem Code hochgeladen wird und das Skript aufruft so wird folgender Text ausgegeben.

Ein Text der ausgegeben wird

Fügen wir nun einen weiteren echo-Befehl in unser PHP-Skript ein.

<?php
echo 'Ein Text der ausgegeben wird';
echo 
'Nun folgt ein anderer Text';
?>

Wenn das Skript nun auf einem Webserver läuft wird folgender Text ausgegeben.

Ein Text der ausgegeben wirdNun folgt ein anderer Text

Der zweite String wurde hier einfach hinter den anderem String ausgegeben. Was anderes steht auch nicht im PHP-Skript. Einmal wurde ein String ausgegeben, dann ein weiterer String. Obwohl die beiden echo-Befehle mit einem Zeilenumbruch getrennt sind werden die Strings so wie sie sind ausgegeben. Um einen Zeilenumbruch in der Ausgabe zu haben können wir z.B. das HTML-Element <br/> benutzen.

2. HTML-Code ausgeben

HTML-Code bzw. die besonderen Zeichen < und > können in Strings ohne Probleme benutzt werden. Somit können wir am Ende des ersten Strings das HTML-Element <br/> anfügen.

<?php
echo 'Ein Text der ausgegeben wird<br/>';
echo 
'Nun folgt ein anderer Text';
?>

Wie erwartet steht im Browser den folgenden Inhalt.

Ein Text der ausgegeben wird
Nun folgt ein anderer Text

Wenn der Quellcode im Browser betrachtet wird stehen beide Strings weiterhin hintereinander.

Ein Text der ausgegeben wird<br/>Nun folgt ein anderer Text

3. Steuerzeichen in Strings

Wenn wir versuchen ein Apostroph innerhalb eines Strings zu schreiben erhalten wir ein Problem, da PHP das Ende des Strings fälschlicherweise zu früh erkennt.

<?php
echo 'Dummy Text ' mit Apostroph';
echo '
Ein weiterer Text';
?>

Auch an der Einfärbung erkennt man wie PHP den String nur bis zum 2. Apostroph erkennt. Um nun das Zeichen ' in den String zu kriegen kann man z.B. Double Quoted Strings verwenden. Das sind Strings die statt den Apostroph die Anführungszeichen " als Begrenzer benutzen.

<?php
echo "Dummy Text ' mit Apostroph";
echo 
"Ein weiterer Text";
?>

Eine andere Möglichkeit ist die eine Escape-Sequenz einzufügen. In PHP-Strings ist \ das Escape-Zeichen, es wird verwendet wenn man eine solche Escape-Sequenz haben möchte. In Single Quoted Strings (Strings mit ' als Begrenzer) wird mit \' ein Apostroph erzeugt.

<?php
echo 'Dummy Text \' mit Apostroph';
echo 
'Ein weiterer Text';
?>

Die gleiche Idee kann verwendet werden wenn man in double quoted Strings ein Anführungszeichen erzeugen will.

<?php
echo "Dummy Text \" mit Apostroph";
echo 
"Ein weiterer Text";
?>

Stellt sich nun die Frage wie man ein einzelnes \ erzeugt, ohne dass es gleich als Start einer Escape-Sequenz interpretiert wird. Die Lösung ist das Escapen des Escape-Zeichens.

<?php
echo "Double quoted mit \\ im Text";
echo 
'Single quoted mit \\ im Text';
?>

Obwohl single quoted und double quoted Strings scheinbar die selbe Funktionalität besitzen sind in double quoted Strings mehr Escape-Sequenzen möglich. Die folgende Tabelle enthält eine Liste der zusätzlichen Escape-Sequencen in double quoted Strings.

Tabelle der Escape-Sequencen
Zeichen Beschreibung
\n Ein Zeilenumbruch
\r Ein Wagenrücklauf, oft verwendet bei Netzwerkprotokollen.
\t Ein Tabulator
\v Vertikaler Tabulator, eher selten verwendet
\f Seitenvorschub, noch seltener verwendet
\$ Ein Dollarzeichen. Ohne diese Sequenz wird versucht eine Variable zu finden und dessen Inhalt einzufügen.
\0 bis \777 Ein Zeichen aus dem Bereich von 0x000 bis 0x1FF
\x0 bis \xFF Ein Zeichen aus dem Bereich von 0x00 bis 0xFF

Fragen zum Kapitel

1. Was für Strings gibt es in PHP?

In PHP gibt es 4 Arten von Strings, wobei hier 2 genannt wurden. Neben Double quoted Strings und Single quoted Strings gibt es auch noch sogenannte Heredocs und Nowdocs. Eine Erklärung von Strings ist im Handbuch von PHP unter Strings zu finden.

Zurück zu Weiter zu
Copyright © bei den OPs von #php.de/QuakeNet Valid XHTML 1.0 Strict Valid CSS!