Hi,
in diesem Artikel werden noch kleine Vorbereitungen getroffen, anschließend geht's ans spannende - das Programmieren mit PHP!
Folgende Themen werden in diesem Artikel behandelt:
<ol> <li>Erklärung Programmiersprache / Skriptsprache</li> <li>Wahl des richtigen Editors</li> <li>Programmieren mit PHP - endlich geht's los</li> </ol>
<h2></h2>
<h2>Programmier- / Skriptsprache</h2>
Die Leute haben verschiedenste Beweggründe, eine Programmiersprache zu lernen. Und da hat man buchstäblich die Qual der Wahl, denn es gibt für verschiedene Aufgaben und Prozesse auch verschiedene Programmiersprachen. Und dann noch den Unterschied von Programmier- zu Skriptsprachen. Im vorherigen Artikel habe ich den Unterschied zwischen beidem am Ende in den FAQ erläutert. Nochmal kurz:
<ul> <li>Programme werden kompiliert, das heiÃt: Code schreiben, kompilieren und heraus kommt eine fertige Anwendung, die nur noch ausgeführt werden muss. Eine kompilierte Anwendung enthält keinen für Menschen lesbaren Code mehr, nur noch Maschinencode. Kannst du leicht testen, indem du eine .exe-Datei mit einem Text-Editor öffnest.</li> <li>Skripte werden von einem Interpreter geparsed: Code schreiben und Datei speichern. Gespeichert wird eine Datei, in der lesbarer Code steht. Für jede Skriptsprache gibt es einen Interpreter, der beim Ãffnen der Skript-Datei den Code einliest, analysiert und ausführt. Dafür auch der Webserver den wir installiert haben, der macht sowas nämlich.</li> </ul>
Aber ob Programmier- oder Skriptsprache, in beiden Fällen spricht man vom "Programmieren". Du darfst dich also natürlich Programmierer nennen, wenn du PHP kannst.
Ich weiß nicht, warum du ausgerechnet PHP lernen willst. Und ich weiß nicht, ob du selbst weißt, ob PHP die richtige ist für das, was du eigentlich vor hast umzusetzen. Daher will ich dir kurz im Groben zeigen, welche Arten von Anwendungen hauptsächlich möglich sind - einfach um Missverständnisse zu vermeiden:
<ul> <li><strong>Webanwendungen</strong> Du möchtest dynamische Webanwendungen mit PHP, HTML und CSS entwickeln, Benutzereingaben auswerten, Werte in Datenbanken speichern oder Dateien lesen / schreiben. Dein Projekt / Produkt / Webanwendung soll für den Endbenutzer über eine Web-Oberfläche via Browser zugänglich und verwaltbar sein.</li> <li><strong>Konsolenanwendungen oder Windows-Forms-Anwendungen</strong> Solche kannst du mit Visual Basic, C#, Microsoft .NET-Sprachen, C++ oder Java erstellen (.exe-Dateien bei Windows). Also Programme, die man sich auf den Desktop verlinken und per Doppelklick in einem Windows-Fenster starten kann.</li> <li><strong>Hardware-Programmierung</strong> Mit Sprachen wie C/C++, Python, Scratch, Basic, Java kannst du auch maschinennah programmieren. Oder einen Raspberry PI / Arduino programmieren.</li> <li><strong>Spieleentwicklung</strong> Spiele können mit Python, JavaScript, .NET-Sprachen, C/C++ und vielen anderen Sprachen programmiert werden.</li> </ul>
Wenn das erstgenannte (Webanwendungen) auf dich zutrifft, bist du hier richtig.
Jede Sprache (egal ob Programmier- oder Skriptsprache) bringt seine eigene Syntax mit, also Sprachkonstrukte und vordefinierte Funktionen die man out-of-the-box nutzen kann, um bestimmte Aktionen auszuführen.
<h2>Der richtige Editor</h2>
Du benötigst einen Editor, der Syntax Highlighting unterstützt. Ist zwar nicht Voraussetzung (theoretisch kannst du auch notepad.exe unter Windows dafür hernehmen, was aber echt grottig ist) aber sehr empfehlenswert, weil ein Programmier-Editor dich bei Tippen des Codes besser unterstützt - er hebt Schlüsselwörter, Funktionen und Begriffe farblich hervor, bietet Autovervollständigung oder zumindest die Anzeige von Funktionsparametern, rückt deinen Code automatisch ein, zeigt Klassen, Methoden und Eigenschaften und hat noch einige weitere, praktische Tools. Zum Programmieren mit PHP (und HTML, JavaScript und CSS) habe ich sehr lange Notepad++ genutzt. Gibt noch andere gute Text-Editoren, SublimeText, UltraEdit, RapidPHP und einige mehr.
<h3><strong>Achtung: Unterschied Editor vs. IDE</strong></h3>
Wir sprachen bisher von einem Editor. Damit ist wie erwähnt ein Programm gemeint, dass Schlüsselwörter für gängige Programmiersprachen beim Tippen hervorhebt. Suchen- und Ersetzen-Werkzeuge sowie teilweise Autovervollständigung ist auch an Bord. Die Hauptfunktionalität und -Aufgabe eines Editors ist also das Bearbeiten von Dateien. Im Gegensatz hierzu gibt es aber auch IDEs (Integrated Development Environment oder auch Entwicklungsumgebung). IDEs arbeiten im Regelfall auf Projektbasis und bieten Möglichkeiten, die in einer ganz anderen Liga spielen - mit einem Editor ist das schon nicht mehr vergleichbar. Die Vorteile einer IDE sind umfangreiche Unterstützung beim Programmieren mit vielerlei komplexen Tools (Refactoring, Debugging, integrierte FTP-Clients und Datenbankviewer, CVS-Integration (SVN/Git), Autovervollständigung und vollständige Code-Analyse (d.h. die IDE merkt schon beim Tippen wenn du Fehler machst), History und Diff-Tools und hundert andere Dinge. Mit IDEs hast du also Profi-Werkzeuge an der Hand.
Für einen Einsteiger sind solche Programme was den Funktionsumfang betrifft überdimensioniert, auch wenn ich es aber empfehle, recht früh mit IDEs zu beginnen.
<h3>Koste es was es wolle!</h3>
Wirklich genial ist JetBrains PhpStorm. Wenn du Geld übrig hast, kann ich dir diese professionelle IDE nur empfehlen. Ist aber nicht ganz billig (aktueller Preis ist derzeit knapp 10€/Monat). Dafür bringt PhpStorm alles mit was man sich als PHP-Programmier nur wünschen kann: (MySQL-)Datenbankdesigner, Deployment-Tools, GitHub-Integration, mächtige Code-, Analyse- und Debugging-Funktionen und vieles, vieles mehr.
<h3>Ich will Profi-Werkzeuge, aber kein Geld ausgeben!</h3>
Dann lohnt definitiv ein Blick auf NetBeans. Die IDE kann in etwa soviel wie PhpStorm und kostet einfach gar nix.
Auch wenn ich das Tutorial im folgenden mit Notepad++ starte, empfehle ich dir, bald auf eine IDE umzusteigen. Ich weise in einem zukünftigen Artikel nochmal auf das Thema hin. Für den Anfang können wir ...
<h3>Notepad++ verwenden</h3>
Notepad++ kannst du auf dieser Seite herunterladen. Suche die für deinen PC passende Installation, lade es runter und starte das Setup. Folge dabei den Anweisungen am Bildschirm. Anschließend startet Notepad++. Nach dem ersten Start des Editors schaut Notepad++ so aus:
[caption id="attachment_2741" align="aligncenter" width="300"] Notepad++ Fenster[/caption]
Ein paar Einstellungen und Erklärungen noch, danach rocken wir PHP:
Sicherungskopien Du kannst Notepad++ so einstellen, dass es automatisch von jedem Save (also jedes mal wenn du "Datei"->"Speicher" ausführst oder STRG+S drückst) eine Sicherungskopie anlegt. Ich finde das äußerst praktisch, so kannst du den Stand von jeder Änderung wiederherstellen. Um das einzurichten, gehe auf deinen Desktop (oder wo der Ordner mit den Backup-Dateien nachher sein soll) und erstelle einen Ordner mit beliebigem Namen (z.B. "npp_backup"). Anschließend gehe zurück zu Notepad+, klicke oben auf "Einstellungen" -> "Optionen" und wähle links den Punkt "Sicherheitskopie". Klicke auf "Erweitert", setze den Haken bei "Verzeichnisangabe für Sicherheitskopien" und wähle über den ... -Button das von dir eben erstellte Verzeichnis. Hier als Screenshot:
[caption id="attachment_2742" align="aligncenter" width="300"] Notepad++ Sicherungskopien[/caption]
Zeichenkodierung Vielleicht hast du dich damit nie beschäftigt, aber die Zeichenkodierung einer Datei ist wichtig. Ich gehe jetzt nicht detailliert darauf ein (das würde den Rahmen sprengen). Wichtig ist vorerst, dass du weißt, dass UTF-8 in den meisten Fällen die beste Wahl ist (gilt auch für HTML, CSS, JavaScript-Dateien). Gehe erneut zu "Einstellungen" -> "Optionen" und wähle links diesmal den Punkt "Neue Dateien". Lege dort rechts "UTF-8 ohne BOM" als Standard fest. Siehe folgender Screenshot:
[caption id="attachment_2740" align="aligncenter" width="300"] Kodierung auf UTF-8 ohne BOM festlegen[/caption]
Wenn du Interesse hast, mehr darüber zu erfahren, was dieses BOM ist, kannst du es hier nachlesen.
Editor auf PHP einstellen Wie bereits angesprochen bietet ein Skript-Editor diverse Möglichkeiten, dich beim Programmieren zu unterstützen. Wir möchten mit der Sprache PHP programmieren. Gehe also in Notepad++ oben im Menü auf "Sprachen" und wähle dort bei "P" nun "PHP". Wenn eine PHP-Datei geöffnet wird, erkennt Notepad++ das natürlich schon automatisch.
<h2>Programmieren mit PHP</h2>
Yeeeah, endlich geht's los! Wie im letzten Artikel gezeigt, erscheint bei der Eingabe von "http://localhost" nun die XAMPP Willkommens-Seite. Das wollen wir natürlich schleunigst ändern, schließlich ist das, was DU programmierst, viel interessanter. Gehe also zu C:\xampp\htdocs, erstelle einen Unterordner "_xampp" und schiebe dort alle Dateien und Ordner rein, die du dort siehst.
[caption id="attachment_2745" align="aligncenter" width="300"] Ordner verschieben[/caption]
Jetzt öffne noch das XAMPP Control Panel und starte Apache, damit der Webserver schonmal läuft. Danach wieder zurück zum Ordner C:\xampp\htdocs, dort einen Rechtsklick machen und über "Neu" -> "Textdokument" eine Datei erstellen. Benenne sie als "index.php" (vorher auch die ".txt"-Dateiendung mit rauslöschen, sonst bekommst du eine Textdatei, nämlich index.php.txt). Du hast jetzt dort also einen Ordner "_xampp" und eine Datei "index.php". Öffne die index.php mit Rechtsklick -> "Edit with Notepad++".
<h3><strong>Dein erstes PHP-Skript</strong></h3>
Wenn du die index.php jetzt zur Bearbeitung in Notepad++ offen hast, tippe folgenden Code oder kopiere ihn einfach hier raus und füge ihn bei dir ein:
<pre class="lang:php decode:true"><?php echo "Hallo Welt!"; ?></pre>
Speichere die Datei dann und rufe im Browser http://localhost auf. Du siehst folgende Ausgabe:
<pre class="lang:php highlight:0 decode:true">Hallo Welt!</pre>
FUCK YEAH, dein erstes PHP-Skript! Geile Scheiße. Gut gemacht - und jetzt lass uns doch mal schauen was wir da überhaupt gemacht haben:
Mit <?php und ?> wird der Bereich definiert, in dem sich PHP-Code befindet, der ausgeführt werden soll - das sind die sog. PHP-Tags. Das ist sehr praktisch, weil in einer PHP-Datei (also eine Datei mit der Endung ".php") sowohl PHP-Code als auch HTML, JavaScript und CSS stehen können. Das zeige ich dir gleich weiter unten.
<blockquote><strong>Randnotiz</strong> Du kannst auch die Short-Tags <span class="lang:php decode:true crayon-inline "><? echo "Test"; ?></span> verwenden, dabei sparst du ganze 3 Zeichen Tipparbeit - wahnsinnig toll. Jedenfalls, das ist die sog. <em>SGML-Schreibweise</em>, aber um die zu verwenden, muss in deiner php.ini <span style="font-family: courier new,courier,monospace;"><em>short_open_tags</em></span> aktiviert sein. Wie auch immer, ich erwähne es auch nur aus Gründen der Vollständigkeit, ich empfehle dir aber <span style="text-decoration: underline;">ausdrücklich</span>, immer die normale Schreibweise zu verwenden.</blockquote>
Mit echo kann Text ausgegeben werden. Der Text (in PHP spricht man von Zeichenketten oder Strings) muss dabei in einfachen ' oder doppelten " Anführungszeichen stehen. Warum? Nun, wie ich oben erklärt habe, bringt jede Sprache ihre eigenen Sprachkonstrukte mit - und echo ist so eins. Die Verwendung von echo erfordert als Argument eine Zeichenkette und die muss in Anführungszeichen stehen.
<pre class="lang:php decode:true"><?php echo "Hallo Welt!"; echo "<br>"; echo 'Hallo Welt!'; ?></pre>
Tippe den Code ein, speichere die Datei wieder und aktualisiere die Seite in deinem Browser mit F5. Du siehst folgende Ausgabe:
<pre class="lang:php highlight:0 decode:true ">Hallo Welt! Hallo Welt!</pre>
Wie ich sagte, einfache und doppelte Anführungszeichen sind möglich. Und du siehst noch eine Besonderheit: wir können im Text auch HTML-Code verwenden, so wie hier mit <br> , was ja einen Zeilenumbruch erzeugt - davon siehst du im Browser natürlich nichts, aber im Quellcode der Seite, den du dir mit STRG+U anschauen kannst.
Wo wir grade dabei sind: wenn du dir den Quellcode der Seite im Browser anschaust (mit STRG+U oder Rechtsklick -> "Seitenquelltext anzeigen") wirst du feststellen, dass von dem <?php und ?> und echo und sonstigem PHP-Code nichts zu sehen ist. Und das ist der Punkt: niemand kann deinen PHP-Code sehen. Der Benutzer sieht nur das, was er sehen darf, also alles, was du mit PHP ausgegeben hast - mit echo, wie wir gelernt haben. Ist natürlich geil, so kann dir niemand deinen Code klauen sondern bekommt lediglich die Ausgabe zu sehen (siehe auch unten FAQ).
Und das wichtigste zum Schluss, das Semikolon - oder auch Strichpunkt ; . Jeder Befehl und jede Anweisung endet mit einem Semikolon! Das Vergessen dieses Zeichens ist eine häufige und beliebte Fehlerursache.
Nun zurück zu echo. Vielleicht hast du dir schon die Frage gestellt, was passiert, wenn man ein Anführungszeichen (einfach oder doppelt) mit echo ausgeben möchte. Nun, das kannst du z.B. mit HTML machen ("). Im Regelfall stellt man Sonderzeichen aber dar, indem man ein Backslash voranstellt:
<pre class="lang:php decode:true "><?php echo "Hallo \"Welt\"!"; echo "<br>"; echo '\'Hallo\' Welt!'; ?></pre>
Das erzeugt folgende Ausgabe:
<pre class="lang:php highlight:0 decode:true ">Hallo "Welt"! 'Hallo' Welt!</pre>
Du siehst, durch das Maskieren mit dem backslash können Sonderzeichen angezeigt werden. Man spricht hier übrigens vom escapen.
Und was ist, wenn du ein Backslash \ darstellen willst? Auch das wird mit einem Backslash escaped:
<pre class="lang:php decode:true "><?php echo "C:\\xampp\\htdocs\\php-lernen.php"; ?></pre>
Das gibt dann C:\xampp\htdocs\php-lernen.php aus. Ein Backslash gefolgt von einem Anführungszeichen würde dementsprechend so <?php echo "\\""; ?> geschrieben werden - sieht komisch aus, macht wenn man es weiß aber Sinn.
<h3><strong>HTML mit PHP mischen</strong></h3>
Du kannst in einer Datei mit der Endung .php sowohl PHP-Code als auch HTML, CSS und JavaScript verwenden. Kurz gesagt, alles was mit einer HTML-Datei geht, geht auch in einer PHP-Datei. Schau her:
<pre class="lang:php decode:true"><!DOCTYPE html> <html> <head> <title>PHP lernen</title> <style> *{ font-family: "courier new"; } body{ background-color: #4488cc; color: #ffffff; } </style> </head> <body> <main> <?php // Hier kann PHP-Code sein. Du kannst die PHP-Tags an jeder beliebigen Stelle in der Datei platzieren // Das ist hier übrigens ein Kommentar. Einzeilige Kommentare werden mit // eingeleitet. # Einzeilige Kommentare können auch mit einem Hashtag beginnen /* Und es gibt auÃerdem noch mehrzeilige Kommentare, sie beginnen mit /* und enden mit */ echo "Hallo Welt!"; ?> </main> </body> </html></pre>
In dem Zuge auch gleich mal gelernt, wie man Kommentare verwendet. Was sind Kommentare? Die sind dazu da, um deinen Code zu kommentieren - die Anweisungen werden vom Interpreter ignoriert und weder auf der Seite noch im Seiten-Quelltext im Browser ausgegeben. Code zu kommentieren ist wichtig. Zum einen praktisch wenn du mit Kollegen im Team an einer Webapplikation arbeitest und zum anderen auch für dich selbst (wirst du jetzt vielleicht nicht glauben, aber wenn du einige Wochen später mal auf einen Code schaust, den du heute geschrieben hast, wirst du kaum noch verstehen was du wo gemacht hast, und da ist es gut wenn du überall kleine Beschreibungen notiert hast). Kommentare brauchen übrigens kein Semikolon am Ende.
Mathematik mit PHP echo kann nicht nur statischen Text ausgeben, sondern auch mathematische Ausdrücke berechnen und das Ergebnis anzeigen. PHP versteht alle Grundrechenarten (Addition, Substraktion, Division und Multiplikation), Punkt-vor-Strich-Regel, geklammerte Berechnungen sowie auch mathematische Formeln, Wurzelrechnungen, Modulo und vieles mehr. Es reicht, wenn wir diese Ausdrücke einfach als Argument an echo übergeben. Wichtig: hier arbeiten wir mit Zahlenwerten - Zahlen werden geschrieben so wie sie sind und daher lassen wir hier die Anführungszeichen weg! Ich zeige dir ein Beispiel und du verstehst gleich, was ich meine:
<pre class="lang:php decode:true"><?php echo 1 + 1; echo "<br>"; // Zeilenumbruch echo "1 + 1"; ?></pre>
Speichern, im Browser die Seite aktualisieren und du siehst die Ausgabe
<pre class="lang:php highlight:0 decode:true ">2 1 + 1</pre>
Jetzt sollte klar sein was gemeint ist. Mit Zeichenketten (also Text) kann man nicht rechnen. Tja, wer hätte damit gerechnet^^ ... naja gut, der war echt flach.
Schau dir auch mal die folgenden Berechnungen an, damit wird sicher einiges klarer:
<pre class="lang:php decode:true"><?php echo "<h2>Grundrechenarten</h2>"; echo "2 + 2 = "; echo 2 + 2; echo "<br>"; echo "8 - 5 = "; echo 8 - 5; echo "<br>"; echo "10 / 2 = "; echo 10 / 2; echo "<br>"; echo "4 * 4 = "; echo 4 * 4; echo "<br>"; # Modulo ergibt den Rest einer Division, der Operator hierfür ist das Prozent-Zeichen % # Also zum Beispiel 10 geteilt durch 3 ist gleich 3 Rest -> 1 echo "Rest von 10 / 3 = "; echo 10 % 3; echo "<br>"; echo "<h2>Punkt-vor-Strich-Regel</h2>"; # Punkt-vor-Strich Regel: echo "2 + 3 * 3 = "; echo 2 + 3 * 3; echo "<br>"; echo "<h2>Geklammerte Ausdrücke</h2>"; # Geklammerte Ausdrücke echo "(2 + 3) * 3 = "; echo (2 + 3) * 3; echo "<br>"; echo "<h2>Dreisatz</h2>"; # Dreisatz echo "50% von 300 = "; echo 300 / 100 * 50; echo "<br>"; ?></pre>
Und die Ausgabe davon:
<pre class="lang:php highlight:0 decode:true ">Grundrechenarten 2 + 2 = 4 8 - 5 = 3 10 / 2 = 5 4 * 4 = 16 Rest von 10 / 3 = 1 Punkt-vor-Strich-Regel 2 + 3 * 3 = 11 Geklammerte Ausdrücke (2 + 3) * 3 = 15 Dreisatz 50% von 300 = 150 </pre>
<h3><strong>Strings in PHP verketten</strong></h3>
Strings und Ausdrücke können in PHP auch verbunden werden. Das wird über das Punkt-Zeichen . gemacht. Das ist sinnvoll, weil man dann weniger zu schreiben hat, und der Code ist damit übersichtlicher. Hier nochmal das Rechen-Beispiel mit verketteten Strings (und ohne die Kommentare):
<pre class="lang:php decode:true"><?php echo "<h2>Grundrechenarten</h2>"; echo "2 + 2 = " . (2 + 2) . "<br>"; echo "8 - 5 = " . (8 - 5) . "<br>"; echo "10 / 2 = " . (10 / 2) . "<br>"; echo "4 * 4 = " . (4 * 4) . "<br>"; echo "Rest von 10 / 3 = " . (10 % 3) . "<br>"; echo "<h2>Punkt-vor-Strich-Regel</h2>"; echo "2 + 3 * 3 = " . (2 + 3 * 3) . "<br>"; echo "<h2>Geklammerte Ausdrücke</h2>"; echo "(2 + 3) * 3 = " . ((2 + 3) * 3) . "<br>"; echo "<h2>Dreisatz</h2>"; echo "50% von 300 = " . (300 / 100 * 50) . "<br>"; ?></pre>
Die Ausgabe dabei ist die gleiche. Die Klammern um den Ausdruck dienen hier der besseren Lesbarkeit - es ist optisch klarer getrennt.
Pro-Tipp Das mit den Klammern ist nicht nur wegen der besseren Lesbarkeit sondern auch -und vor allem-, um die Darstellung von Zeichenketten und das Auswerten von Ausdrücken klar voneinander abzugrenzen. Die Operatoren . und + haben gleichwertige Präzedenz (man könnte auch sagen Priorität) bei der Bindung zweier Ausdrücke (beide sind links-assoziativ). Wenn eine Zeichenkette mit einer Zahl beginnt, versucht PHP, den Wert zu evaluieren. Das zu erklären würde an der Stelle tiefer gehen als dein Verständnis zu diesem Zeitpunkt ausreicht, deswegen merke dir einfach, bei der Verkettung von Zeichenketten und Ausdrücken die Ausdrücke in Klammern zu setzen. Mehr dazu kannst du jedenfalls hier nachlesen.
<h2>FAQ</h2>
Was ist Syntax Highlighting? Wie du siehst, wird der PHP-Code den ich hier im Artikel verwende, farblich hervorgehoben (außer das dafür zuständige Plugin ist abgekratzt). In etwa so wie in deinem Notepad++-Editor beim Schreiben des Codes. Diese Färbung nennt man Syntax-Highlighting, das bedeutet einfach, dass bestimmte Sprachkonstrukte, Schlüsselwörter, Funktionen und Anweisungen eine bestimmte Farbe bekommen, um den Code lesbarer und verständlicher zu machen. Kommentare sind zum Beispiel grün, Zeichenketten (alles zwischen " und ") sind rot, PHP-Anweisungen und -Befehle wie echo sind blau und so weiter. Die verschiedenen Editoren weisen hier Unterschiede auf - in Notepad++ sind Kommentare zum Beispiel grün, in anderen Editoren kann die Farbe auch eine andere sein, z.B. Grau.
Warum kann niemand meinen Code sehen? Auch wenn die Frage indirekt im letzten Artikel bereits beantwortet wurde, erkläre ich es nochmal. PHP wird wie schon gelernt serverseitig verarbeitet, am Webserver. Dort läuft Apache und der PHP-Interpreter. Die PHP-Datei wird ausgeführt und alles in den PHP-Tags <?php und ?> vom Interpreter geparsed. Erst wenn du eine Ausgabe z.B. mit echo machst, wird etwas zurückgegeben und ist dann letztendlich im Browser auch zu sehen (es sei denn natürlich, die Ausgabe erfolgt in HTML-Kommentaren, dann sieht man das im Browser auch nicht, aber trotzdem im Seitenquelltext, kurzes Beispiel hierzu: <?php echo "<!-- Hallo Welt! -->"; ?> man sieht im Browser nichts, aber mit STRG+U taucht es dann doch auf). Im Gegensatz zu PHP wird HTML-, CSS- und JavaScript-Code clientseitig verarbeitet - also am PC des Besuchers der Seite. Dessen Browser kümmert sich darum, wie das alles ausgegeben und dargestellt wird. Deswegen gibt es auch die Unterschiede bei der Darstellung zwischen den Browsern, also Google Chrome, Internet Explorer, Firefox, Opera und so weiter.. Das meiste ist natürlich standardisiert (mit <b>Fetter Text</b> wird der Text in allen Browsern fett dargestellt), spezielle und neue Sachen wie HTML5- oder CSS3-Konstrukte funktionieren aber manchmal nicht in allen Browsern gleich (oder teils gar nicht). Vielleicht hast du auch schonmal beobachtet, dass mitunter Eingabefelder oder Buttons in den verschiedenen Browsern jeweils eine andere Darstellung haben.
Was ist denn eine Dateiendung? Es gibt Dateien verschiedenen Typs. Eine normale Textdatei hat zum Beispiel die Endung ".txt", also "name_der_datei.txt". Word-Dateien haben die Endung ".doc", Musik- und Audio-Dateien haben die Endung ".mp3" oder ".wma" und Bilder können vom Typ PNG (.png), JPEG (.jpg), GIF (.gif) oder Bitmap (.bmp) sein. Ebenso haben auch HTML-Dateien (.html) und PHP-Dateien ihre eigene Dateiendung und die lautet ".php". Je nach Betriebssystem und Einstellungen wird die Endung einer Datei im Explorer angezeigt oder auch nicht. Besser ist es für dich als angehenden Programmierer, Dateiendungen anzuzeigen. Im nachfolgenden Absatz kannst du nachlesen, wie man sie anzeigen kann.
Dateiendungen in Windows anzeigen Standardmäßig zeigt Windows die Erweiterung einer Datei nicht an. Eine Text-Datei wird also als "Datei" angezeigt und nicht als "Datei.txt". Praktischer ist es aber, wenn man auch die Dateiendung selbst bearbeiten kann, sodass man aus einer erstellten Textdatei schnelle eine PHP-Datei machen kann - einfach indem man sie umbenennt quasi. Drücke bei deinem Windows-PC die Tastenkombi "Windows-Taste"+"R", dann geht das "Ausführen"-Fenster auf. Tippe dort control folders ein und drücke Enter. Nun siehst du folgendes Fenster (klicke oben auf den Tab "Ansicht):
[caption id="attachment_2743" align="aligncenter" width="246"] Ordneroptionen[/caption]
Entferne den Haken bei "Erweiterungen bei bekannten Dateitypen ausblenden". Fertig.
Kann ich Ausgaben auch anders erzeugen als mit echo? Allerdings, zum Beispiel mit den Funktionen print, print_r, var_dump, printf und einiges andere. Je nach Einsatzzweck entscheidet man sich für das ein oder andere Sprachkonstrukt. Darauf gehen wir zu einem späteren Zeitpunkt ein, wenn wir mit Arrays arbeiten.
Kann ich PHP auch in HTML-Dateien verwenden? Gut aufgepasst. Ich hab oben geschrieben, dass alles was man mit HTML-Dateien machen kann, auch in PHP-Dateien funktioniert. Allerdings funktioniert das umgekehrt nicht. Erstelle eine "test.html" im Order C:\xampp\htdocs, öffne sie mit Notepad++ und schreibe <?php echo "Hallo Welt!"; ?> . Speichere die Datei und öffne im Browser dann http://localhost/test.html. Wie du siehst, siehst du nichts. Wenn du dir aber den Quellcode der Seite anschaust, erscheint dort im Klartext der PHP-Code. Das wolltest du sicher nicht. Aber warum ist das so? Ganz einfach, weil HTML-Dateien (.html) vom PHP-Interpreter nicht geparsed werden. Der interessiert sich nur für PHP-Dateien (.php), alles andere ist dem egal. Die HTML-Datei wird einfach so wie sie ist an den Browser übergeben. Und der hält das was er dort sieht für eine verkorkste XML-Anweisung und zeigt einfach gar nix an.
Ich will PHP-Dateien immer mit Notepad++ öffnen Mache auf die index.php Rechtsklick -> "Öffnen mit" -> "Standardprogramm auswählen" und wähle dort "Notepad++", setze dabei den Haken, dass Notepad++ als Standard zum Öffnen für diesen Dateityp festgelegt wird. Anschließend werden PHP-Dateien bei Doppelklick immer mit Notepad++ geöffnet.
Warum müssen PHP-Dateien index.php heißen? Müssen sie nicht. Deine *.php-Dateien können einen beliebigen Namen haben. Wenn du deine lokale Webseite über http://localhost aufrufst, musstest du bisher keinen Dateinamen angeben. Die Eingabe von http://localhost/index.php hätte zum selben Ergebnis geführt. Wenn ein Ordner ohne Angabe eines Dateinamens aufgerufen wird, schaut der Webserver von selbst nach, ob es eine Datei namens index.html oder index.php gibt - und falls ja, öffnet er diese. Um das zu veranschaulichen, gehe in deinen Ordner C:\xampp\htdocs und benenne deine index.php um in "alt-index.php" (oder was auch immer für ein Name). Jetzt rufe im Browser nochmal http://localhost auf - siehst du was ich meine? Entweder du siehst nun eine 403 - Zutritt verweigert-Seite oder aber dir wird der Inhalt des Verzeichnisses aufgelistet. Das hängt von deiner Webserver-Konfiguration ab, im Artikel über htaccess zeige ich dir, wie du solches Verhalten beeinflussen kannst und auch, wie man selbst festlegt, welche Dateinamen als Index-Dokument behandelt werden. Jedenfalls, wenn du im Browser jetzt http://localhost/alt-index.php aufrufst, gelangst du wieder zur deinem PHP-Skript - die Angabe des Dateinamens ist jetzt eben nur erforderlich, weil "alt-index.php" nun vom Webserver nicht mehr als Standard-Datei erkannt wird.
Was ist ein Operator? In der Mathematik ist ein Operator das Zeichen mit dem festgelegt wird, wie eine Rechenoperation berechnet werden soll. Bei einer Addition also zum Beispiel das + Zeichen. Wikipedia bezeichnet mathematische Operatoren als mathematische Vorschrift oder auch Kalkül. Wenn du das genauer nachlesen magst, klicke hier.
<h2>Referenzen, Links und weiterführende Informationen</h2>
<ul> <li>Den Befehl <span class="lang:php decode:true crayon-inline ">echo</span> kannst du in der Dokumentation auf php.net auf dieser Seite nachlesen: <a href="http://php.net/manual/de/function.echo.php" target="_blank" rel="noopener noreferrer">http://php.net/manual/de/function.echo.php</a>.</li> <li>Informationen darüber, wie man festlegt, welche Dokumente als Index-Dokumente erkannt werden, findest du hier: <a href="http://httpd.apache.org/docs/current/mod/mod_dir.html" target="_blank" rel="noopener noreferrer">http://httpd.apache.org/docs/current/mod/mod_dir.html</a>.</li> <li>Informationen darüber, wie man die Anzeige eines Verzeichnisses im Browser aktiviert oder deaktiviert, kannst du hier nachlesen: <a href="https://httpd.apache.org/docs/2.4/de/mod/core.html#options" target="_blank" rel="noopener noreferrer">https://httpd.apache.org/docs/2.4/de/mod/core.html#options</a>.</li> <li>Alles zu Webservern findest du im vorherigen Artikel: <a href="https://blog.marius-gerum.de/2016/07/20/php-lernen-einfuehrung-und-vorbereitung/">PHP lernen â Einführung und Vorbereitung</a></li> </ul>
<h2>Fazit</h2>
So, damit sind wir am Ende des heutigen Artikels. Du kannst die gezeigten Codes verwenden, um eigene Sachen zu testen und auszuprobieren und natürlich auch den Code erweitern und verbessern. Spiele einfach ein bisschen rum - empfehle ich dir wirklich. Denn wahrscheinlich wirst du dabei Fehler machen - das ist was Gutes. Dir wird es z.B. passieren dass du mal ein Semikolon vergisst oder ein schließendes Anführungszeichen oder sonst was. Je schneller dir das passiert, desto sicherer wirst du. Weil du den Fehler suchen musst und so ein Gefühl dafür bekommst, wo man im Fehlerfall als erstes nachschauen kann. Fehler machen ist generell beim Programmieren lernen wichtig und normal - es gibt niemanden, der keine gemacht hat, niemanden.
Soweit so schön - du kannst jetzt mit PHP bereits Text ausgeben und Berechnungen durchführen. Das ist doch schonmal was. Bisher herrscht hier aber noch keinerlei Dynamik. Das bedeutet, dass wir ein Skript schreiben, das ausgeführt wird und dabei immer das gleiche tut. Wir können natürlich die Zahlen im Skript ändern, um andere Ergebnisse zu bekommen, aber im Browser hat man als Benutzer derzeit keinerlei Möglichkeit, das Geschehen zu beeinflussen. Das ändern wir im nächsten Artikel, dort zeige ich, was Variablen sind und wie man HTML-Formulare mit PHP verknüpft, sodass man zum Beispiel die Werte zur Berechnung selbst eingeben kann - der Benutzer somit den Lauf des Programms beeinflussen kann, und darum geht es ja letztendlich, um Interaktion.
Bis zum nächsten mal Link
Kommentare
Kommentar schreiben