PHP Tutorial 2 – Aufbau von Funktionen und Strings

Hallo. :)

Dies ist der zweite Teil des von mir gestarteten PHP Tutorial. Nach dem wir im letzten Kapitel die Grundlagen und das PHP Grundgerüst besprochen haben, werden wir uns nun weiteren Funktionen etc. widmen. So werden wir diesmal den grundlegenden Aufbau inkl. Parameter von Funktionen lernen und anwenden, die PHP Info Datei benutzen und Strings verwenden.

Bevor wir uns jedoch mit dem oben genannten beschäftigen, werde ich noch mal auf das PHP-Modul eingehen. Wir wissen nun, dass das PHP-Modul nichts weiter als ein ausführbares Programm ist. Doch fast jedes Programm hat Einstellungen bzw. Optionen. So ist das auch mit PHP. In der 'php.ini' bzw. der PHP Konfigurationsdatei, sind einzelne Funktionen aktiviert, deaktiviert oder es werden Variablen Werte zugewiesen. Je nach dem, was wir gerade vorhaben, benötigen wir eine Funktion. Sollte das jedoch eine sein, die nicht umbedingt standardmäßig aktiviert ist, kann man ganz einfach die Konfigurationsdatei übersichtlich abfragen.

Eine PHP-Datei zum Anfragen an die Konfigurationsdatei, ist sehr schnell programmiert.

<?php
    phpinfo();
?> 

Wenn wir diese Datei nun unter 'phpinfo.php' abspeichern und hochladen, werden wir eine sehr lange Liste mit uns noch unbekannten Wörter sehen. Wichtig ist für uns erstmal aber nur, dass diese Möglichkeit existiert und wie man sie aufruft. Sollte eine leere Seite erscheinen, ist entweder in der phpinfo()-Funktion ein Rechtschreibfehler, oder PHP ist nicht auf dem Server installiert. Ansonsten ist noch wichtig, dass die Endung unbedingt '.php' ist, so dass der Server die Datei auch als gültige PHP-Datei erkennt.

Sehen wir uns nun den Code einmal genauer an. Der Code startet - wie bei jeder Datei - mit unser beliebten Zeichenfolge <?php und ?>. Dazwischen wir eine für uns bisher unbekannte Funktion aufgerufen, die phpinfo();-Funktion. Jetzt stellt sich sicherlich der ein oder andere die Frage: Wieso hat diese Funktion am Ende eine Klammer? Nun, um mal kurz auf das letzte Kapitel zurückzukommen. Wir kennen bisher zwei Funktionen: Die echo()- und die phpinfo()-Funktion. Das erste was uns jedoch auffällt ist, das bei einer Ausgabe mit echo() die beiden Klammern fehlen:

<?php
echo "Ich bin eine PHP-Datei.";
?>

Das liegt daran, das echo() eigentlich keine Funktion, sondern ein spezielles Sprachkonstrukt ist. Das PHP-Handbuch sagt dazu folgendes:

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

Der Text, der innhalb der Anführungszeichen [bzw. der Apostrophe steht], erzeugt unabhänig von echo() eine Zeichenkette [in der Fachsprache 'string' genannt], diese wird dann von echo() als Parameter genutzt und ausgegeben.

Doch was ist eigentlich genau eine Funktion bzw. ein Parameter?
Folgender Code beschreibt einen einfachen Funktionsaufruf:

<?php
funktion(parameter1, parameter2, parameter3, ...);
?>

Eine Funktion, ist im Grunde nichts weiter als ein Befehl und ein Parameter ein Wert, den die Funktion benutzen soll. Das hört sich relativ komplex an, ist jedoch sehr einfach zu verstehen. Nehmen wir ein Beispiel. Wenn du jemandem sagst, er soll laufen, dann würde das reichen. Er weiß, er muss jetzt die Funktion laufen benutzen. Trotzdem ist dies sehr ungenau. Denn es ist ein Unterschied, ob du ihm sagst, er soll laufen, oder er soll mit einer Geschwindigkeit von 7.0 km/h laufen, die 3. Ausfahrt links benutzen und später einen Sprint starten. Sehr viele Funktionen können natürlich auch ohne Parameter benutzt werden [es gibt auch Funktion wie phpinfo(), die keine Parameter besitzen], jedoch sind das die Werte, mit denen die Funktion arbeitet. Da PHP eine dynamische Programmiersprache ist, das heißt auf Benutzereingabe reagiert, ist gerade das eins der wichtigsten Bestandteile in PHP.

Was genau sind Strings, und wie benutzt man sie?
Wir haben bereits gelernt, wie man eine einfache Zeichenkette ausgibt. Dazu reicht es, den Text in Anführungszeichen nach einem vorangestellten echo()-Befehl zu schreiben, die Zeile wird - wie immer - mit einem Semikolon beendet.

<?php
echo "Ich bin eine PHP-Datei.";
?>

Jetzt erweitern wir dieses Script mal um ein paar weitere Zeichenketten.

<?php
echo "Ich bin eine PHP-Datei.";
echo "Eine weitere Zeichenkette.";
?>

Wenn wir diese Datei abspeichern und hochladen, erhalten wir folgende Ausgabe:

Ich bin eine PHP-Datei.Eine weitere Zeichenkette.

Wenn wir dieses jetzt einzelne Satzteile oder Wörter als Zeichenkette benutzen, werden so mehrere Wörter zusammengereiht. Das liegt daran, dass der echo()-Befehl keinen automatischen Umbruch erzeugt. Wenn wir einen Umbruch einfügen wollen, müssen wir uns des HTML-Tags <br /> bedienen. [Kurze Erklärung: Der <br />-Tag erzeugt einen Zeilenumbruch in HTML / XHTML.]

<?php
echo "Ich bin eine PHP-Datei.<br />";
echo "Eine weitere Zeichenkette.";
?>

Wenn wir diese Datei nun hochladen, erhalten wir das gewünschte Ergebnis:

Ich bin eine PHP-Datei.
Eine weitere Zeichenkette.

Steuerzeichen in Strings
Als Steuerzeichen werden z.B. Apostrophe, Anführungszeichen, Backslashs und andere Zeichen bezeichnet, die dazu da sind PHP zu steuern.

Wenn wir versuchen ein Anführungszeichen innerhalb eines Strings zu schreiben, erhalten wir eine Fehlermeldung, da PHP nach dem zweiten Anführungszeichen den String beendet, die Zeile aber anscheinend noch weiter geht:

<?php
echo "Ich bin ein Text " mit Anführungszeichen.<br />";
echo "Eine weitere Zeichenkette.";
?>

Anhand der Einfärbung kann man erkennen, das PHP nur den String bis zum 2. Anführungszeichen erkennt, danach arbeitet es der PHP Syntax nach weiter, d.h., er denkt 'mit Anführungszeichen' wäre eine Funktion, beim 3. Anführungszeichen fängt für ihn der String wieder an. Trotzdem erhalten wir eine Fehlermeldung, das liegt daran, dass nach dem ersten rot eingefärbten Text eigentlich ein Semikolon kommen müsste.

Wenn wir nun ein Anführungszeichen in einem Text verwenden wollen, können wir 'Single Quoted Strings' anstatt 'Double Quoted Stings' verwenden [diese benutzen ein Apostroph als String-Begrenzer]:

<?php
echo 'Ich bin ein Text " mit Anführungszeichen.<br />';
echo 'Eine weitere Zeichenkette.';
?>

Eine andere Möglichkeit ist, Escape-Sequenzen zu benutzen.

<?php
echo "Ich bin ein Text \" mit Anführungszeichen.<br />";
echo "Eine weitere Zeichenkette.";
?>

Wenn man einen Backslash nun alleine im Text verwenden will, kann man dieses ebenfalls escapen:

<?php
echo "Ein Double Quoted String mit Escape \\ im Text";
echo 'Ein Single Quoted String mit Escape \\ im Text';
?>

Obwohl sich Single Quoted Strings und Double Quoted Strings von der Funktion her scheinbar gleichen, gibt es einige kleine Unterschiede. So sind in Double Quoted Strings mehr Escape-Sequenzen möglich, im Gegenzug sind Single Quoted Strings besser in der Performance und beschleunigen das Script ein wenig [obwohl dies nur bei min. 300 Zeichen und mehr wirklich von Bedeutung ist]. Eine Liste der zusätzlichen Escape-Sequenzen in Double Quoted Strings ist hier aufgelistet:

  • \n - Zeilenumbruch [auf PHP-Basis, wird nicht durch HTML / XHTML-Tag ersetzt]
  • \r - Wagenrücklauf [Verwendung oft bei Netzwerkprotokollen]
  • \t - Tabulator
  • \v - vertikaler Tabulator [eher selten verwendet]
  • \f - Seitenvorschub [noch seltener verwendet]
  • \$ - Dollarzeichen [ohne Backslash wird versucht, eine Variable zu finden]
  • \0 bis \777 - Ein Zeichen aus dem Bereich von 0x000 bis 0x1FF
  • \x0 bis \xFF - Ein Zeichen aus dem Bereich von 0x00 bis 0xFF

Die oberen sollten verständlich sein, zu dem $-Zeichen und den Variablen werden wir in den nächsten Kapitel näher drauf eingehen. Die letzten beiden Einträge haben etwas mit Hexidezimalzeichen zu tun und sind erstmal nicht von Bedeutung und unwichtig.

Du kennst nun den Aufbau von Funktionen und Strings, sowie Informationen über die PHP-Info Datei. In den nächsten Kapiteln werden wir uns mit dem Programmieren von Variablen beschäftigen.

[Copyright 2009-2010 by Robin Rump, robinrump.com. All rights reserved. Do not copy, edit or publish without asking author.]

PHP Tutorial 1 – Einführung in PHP

Hallo. :)

Nach langer Inaktivität das Blogs, folgt nun eine etwas größeres, längeres Projekt: Ein PHP Tutorial. In der inaktiven Zeit habe ich meine Programmierfertigkeiten ausgebaut und mein Wissen vergrößert. In diesem ersten Teil werde ich in die Besonderheiten und Eigenschaften von PHP eingehen, zusätzlich werden wir erste Zeilen sowie ein Hello-World!-Programm in PHP schreiben.

Welche Vorraussetzungen sollte ich für dieses Tutorial mitbringen?

  • PHP Scripte geben im Normalfall HTML-Code aus, somit wäre es deutlich von Vorteil, wenn HTML-Kenntnisse vorhanden werden. Ansonsten kann es richtig schwer werden, die Webseite später zu designen. Unter HTML fällt hier natürlich ebenfalls das aktuellere XHTML 1.0 sowie CSS 3, ob valid oder nicht tut hier erstmal nichts zur Sache.
  • Dazu braucht man zum Scripten einen Texteditor bzw. einen Syntaxhighlighting-Editor. Ein Texteditor ist unter jedem Betriebsystem vorhanden, unter Windows lässt sich dafür der Editor [Start / Programme / Zubehör / Editor], unter Mac OS X lässt sich dafür TextEdit verwenden [Finder / Programme / TextEdit]. Unter Linux wird sicherlich ebenfalls eine Alternative existieren. Trotzdem empfehle ich, über Google kostenlosen Syntaxhighlighting-Editor zu benutzen, da dieser viele Vorteile besitzt, so werden Codestellen farbig dargestellt und es macht vieles einfacher. Mehr dazu später.
  • PHP kann anders als HTML nicht auf einem einfachen Computer ausgeführt werden. Es benötigt einen Webspace mit installiertem PHP-Modul. Es ist auch möglich, den Heim-PC als Webserver zu benutzen.

Was ist PHP?
PHP, stehend für Hypertext Preprozessor ist im Grunde genommen ein Modul bzw. ein Programm, welches auf dem Webserver installiert ist. Der PHP-Code wird vom Programm aufgerufen, verarbeitet und dann als HTML-Code zurückgegeben. Dies hat den Vorteil, das es unmöglich ist, an den Quelltext eines PHP-Scripts zu kommen, der Browserquelltext ist nur eine statische HTML Seite.

Funktionieren tut das Ganze nach dem folgenden Prinzip: Der Client sendet einen Request [eine Anfrage] nach der 'file.php'. Der Server startet das PHP-Modul, welches die PHP-Datei 'file.php' in eine HTML-Datei parst. Dann sendet es mehrere Headerangaben, erst danach wird der eigentliche Inhalt gesendet. Die Headerangaben können in PHP modifiziert werden, dies muss jedoch vor jeglichem anderem Befehl passieren.

Grundlagen
PHP-Code kann überall in HTML-Code eingefügt werden. Damit der Server jedoch weiß, wo der PHP-Code beginnt und wo er aufhört, werden die beiden Zeichenfolgen <?php und ?> verwendet.

Eine PHP-Datei könnte zum Beispiel so aussehen:

<?php
    echo "Ich bin eine PHP-Datei.";
?> 

Diese Datei ist vollständig im PHP-Modus, auch wenn das nicht zwingend erforderlich ist:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>
        Hallo.
        </title>
    </head>
    <body>
        <?php
        echo "Ich bin eine PHP-Datei.";
        ?>
    </body>
</html>

Der Einfachheit nach, werden wir uns nun mit dem oberen Codestück beschäftigen, die HTML-Tags sollten für alle, die die Voraussetzungen erfüllen sowieso kein Problem darstellen.

Das Script beginnt mit der oben genannten Zeichenfolge <?php. Das hat die Folge, dass der Server den folgenden Code an das PHP-Modul weiterzugeben. Diese Zeichenfolge wird zu Beginn jedes PHP-Scripts stehen.

In der zweiten Zeile wird der Befehl echo() aufgerufen. Dieser gibt den in Anführungszeichen stehenden Text als string aus. Innerhalb der Anführungszeichen können beliebige HTML & CSS-Tags verwendet werden. Sollten innerhalb des Textes ebenfalls Anführungszeichen ausgegeben werden wollen, muss vor diese ein Backslash \ geschrieben werden. Das rot-formatierte innerhalb des echo-Befehls gibt also eine Textnachricht aus. Die Zeile wird mit einem Semikolon ; abgeschlossen. Jeder Befehl in PHP wird mit einem Semikolon abgeschlossen, um dem PHP-Modul mitzuteilen, dass die Zeile abgearbeitet ist. Das hat jedoch praktischerweise gleichzeitig die folge, dass zwischen Befehlen oder Parametern [Erklärung später] etc. beliebig viele Leerzeichen, leere Zeilen oder ähnliches stehen können und das Script somit übersichtlich geschrieben werden kann.

Das Script wird mit einem abschließenden ?> beendet. Die beiden Start- und Ende-Tags <?php und ?> dürfen kein Semikolon am Ende ihrer Zeile haben, da dort der PHP Modus bereits beendet bzw. gerade erst gestartet ist und man somit versucht einen nicht vorhandenen Befehl zu beenden.

Wir speichern diese Datei unter dem Namen 'helloworld.php' ab und laden sie auf unseren Webserver hoch. Wenn alles richtig gemacht ist und PHP installiert und [!] aktiviert ist, erscheint folgende Ausgabe:

Ich bin eine PHP-Datei.

Herzlichen Glückwunsch, du hast so eben dein erstes PHP-Script geschrieben.

[Copyright 2009-2010 by Robin Rump, robinrump.com. All rights reserved. Do not copy, edit or publish without asking author.]