Web-basierte Anwendungssysteme PHP-Einführung Prof. Dr. Armin Lehmann (lehmann@e-technik.org) Fachbereich 2 Informatik und Ingenieurwissenschaften Wissen durch Praxis stärkt Seite 1 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Wiederholung HTTP-Client-Server-Kommunikation Client sendet Anfragen (Requests), z.b. GET, POST Server antwortet (Response) mit z.b. HTML-Inhalt Client möchte HTML-Inhalte darstellen Server stellt hierzu Dateien bereit Seite 2 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Clientseitige Dynamik Browser Request Web Server Response Skript Browser Engine kann Skripte ausführen Skript ist Bestandteil der Response des Servers Web Server braucht Skripte nicht zu kennen Z.B. JavaScript Seite 3 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Serverseitige Dynamik Browser Request Web Server Response Web Server besitzt Maschine zum Ausführen des Skripts Skript wird vor Response ausgeführt und erstellt HTML-Inhalte Browser hat keine Kenntnis über Skriptsprache z.b. PHP Seite 4 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Technologien Common Gateway Interface (CGI) + Ermöglicht den Aufruf beliebiger Prozesse auf dem Server (z.b. C-Programm) + Programm generiert HTML-Inhalt für Response + Häufig Verwendung von Skriptsprachen (z.b. Python) Seite 5 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Technologien Requests Hauptprozess Kindprozess 1 CGI-basierter Server Kindprozess N Requests Hauptprozess Einziger Kindprozess FastCGI-basierter Server Seite 6 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Technologien Einbettung von Programmiersprachen + Z.B. Java Servlets, Aufruf mittels standardisiertem API + Generierung von Servlets aus Skript-ähnlichen Sprachen, z.b. Java Server Pages (JSP) + Geeignet für größere Web-Anwendungen Seite 7 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Technologien Requests Einzelprozess (Container) Threads Servlets JAVA Server Dispatcher Seite 8 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Skriptsprache PHP + ursprünglich: Personal Home Page Toolkit + PHP Hypertext Preprocessor OpenSource Entwicklung (www.php.net) Einfache Kernsprache, umfangreiche Bibliotheken + Daher relativ unübersichtlich + Spezialisiert auf Programmierung von Web-Seiten Seite 9 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Voraussetzungen Installation eines Web Servers z.b. Apache Plug-In für PHP Praktisch wäre auch eine Datenbank (z.b. MySQL) Vorgefertigte Lösungen: + LAMP Linux, Apache, MySQL, PHP + WAMP Windows, Apache, MySQL, PHP + MAMP Mac OS X, Apache, MySQL, PHP Seite 10 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Dateisystem (L/W/M)AMP-Server Architektur doc root P PHP Interpreter HTML php libapache2-mod-php5 php5-mysql XML A apache Web Server M MySQL Server L/W/M Betriebssystem Netzwerkkarte Seite 11 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Erstes Beispiel <html> <head><title>hello World mit JavaScript</TITLE></head> <body> <h1> <script type="text/javascript"> document.write("hello World!"); </script> </h1> </body> </html> JavaScript <html> <head><title>hello World mit PHP</title></head> <body> <h1> <?php echo "Hello World!";?> </h1> </body> </html> PHP Seite 12 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Einbettung in HTML XML-Stil (bitte verwenden): + <?php PHP-Text?> PHP-Skript besteht aus + Text (z.b. HTML) + Skriptbegrenzern + PHP Skriptcode (Befehle) Datei mit PHP-Skript trägt die Endung.php Seite 13 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Syntax Befehlszeilen enden immer mit einem Semikolon Kommentare + // oder # sind einzeilige Kommentare + /* */ mehrzeiliges Kommentar Alle Schlüsselwörter (z.b. if, else, while, echo, etc.), Klassen, Funktionen, und selbstdefinierte Funktionen sind NICHT Case- Sensitiv!!! (z.b. echo oder ECHO) Variablen fangen immer mit $ an, z.b. $farbe (ACHTUNG: Case-Sensitiv) Seite 14 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Variablen Fangen immer mit $ an gefolgt vom Namen der Variable Der Name muss mit einem Buchstaben oder Unterstrich beginnen Erlaubte Zeichen sind A-z, 0-9, und _ Strings müssen zwischen Hochkommata definiert werden $txt = "Hello world!"; $x = 5; $y = 10.5; Seite 15 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Variablen Anzeigen im Browser <?php?> Variablen addieren <?php?> $txt = Test"; echo Das ist ein $txt!"; echo Das ist ein". $txt. "!"; $x = 5; $y = 4; echo $x + $y; Seite 16 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Variablen Geltungsbereiche + lokal, global oder statisch <?php $y = 3; //global function test(){ $x = 5; // lokal global $y; // Zugriff auf globale Var. static $z = 0; // statisch $z++; echo "x=$x y=$y z=$z <br>"; } test(); test();?> Seite 17 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Datentypen <?php $a = "Hello world!"; // String $b = 'Hello world!'; // String $n = 5985; // Integer $f = 10.365; //Float $x = true; // Boolean $y = false; // Boolean $cars = array("volvo","bmw","toyota"); var_dump($cars); $a = null; var_dump($a);?> Seite 18 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Bedingungen if-bedingung if...else-bedingung if...elseif...else-bedingung switch-bedingung <?php?> switch(date("w")) { case 2: echo "Verdammt, Vorlesungstag"; break; default: echo "Hurra, keine Webbasierte Anwendungen"; break; } Seite 19 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Schleifen while-schleife do...while-schleife For-Schleife Foreach-Schleife <?php $colors = array("red", "green", "blue", "yellow");?> foreach ($colors as $value) { echo "$value <br>"; } Seite 20 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Funktionen <?php?> function sum($x, $y) { $z = $x + $y; return $z; } echo "5 + 10 = ". sum(5, 10). "<br>"; echo "7 + 13 = ". sum(7, 13). "<br>"; echo "2 + 4 = ". sum(2, 4); Seite 21 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Arrays Arrays werden mit der Funktion array() erstellt Drei Typen von Arrays existieren: + Indexed Arrays (nummeriert) + Associative Arrays (Namen als Schlüssel) + Multidimensional Arrays Seite 22 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Arrays Indexed Array <?php //ODER $cars = array("volvo", "BMW", "Toyota"); $cars[0] = "Volvo"; $cars[1] = "BMW"; $cars[2] = "Toyota"; echo "Auto 1". $cars[0].; //Ausgabe $arrlength = count($cars); // Länge des Arrays?> for($x = 0; $x < $arrlength; $x++) { echo $cars[$x]; echo "<br>"; } Seite 23 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
PHP-Arrays Associative Array <?php //ODER?> $age = array("ian"=>"35", "Ben"=>"37", "Joe"=>"43"); $age['ian'] = "35"; $age['ben'] = "37"; $age['joe'] = "43"; echo "Ian ist ". $age['ian']. //Ausgabe foreach($age as $x => $x_value) { echo "Key=". $x. ", Value=". $x_value; echo "<br>"; } Seite 24 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17
Literatur http://de.html.net/tutorials/php/ http://www.w3schools.com/php/default.asp http://php.net/manual/de/index.php Seite 25 Prof. Dr. Armin Lehmann Web-basierte Anwendungssysteme WS 2016/17