Einführung in PHP 5.

Slides:



Advertisements
Ähnliche Präsentationen
Forschungszentrum caesar
Advertisements

Zusammenfassung der Vorwoche
10. Grundlagen imperativer Programmiersprachen
4. Serverbasierte Programmierung: Perl 4.1Grundlagen 4.1.1HTTP-Server und CGI-Schnittstelle 4.1.2Formulare 4.1.3Ein einfaches Perl Programm 4.2Interaktion.
der Universität Oldenburg
Die Skriptsprache Lua Softwaretechnologie II.
Dynamische Webseiten mit PHP
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Hassan Bidani Jallal Alami Rahmouni FH Wiesbaden
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Zusammenfassung Vorwoche
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Seminar Scriptsprachen
DVG Ablaufsteuerung
Einführung in die Programmierung Datensammlung
Einführung MySQL mit PHP
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Jetzt lernen wir.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Einführung Servlets/JSPs
Ihre Vorkenntnisse Grundlagen der Programmierung beherrschen, d.h. über Kenntnisse in wenigstens einer Programmiersprache Einfache Grundkenntnisse in HTML.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Informatik 1 Übung 2.
Arbeiten mit Javascript Eine einführende Vortragsübung Referentin: Christin Püschel 29. Juni 2005.
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
Einführung in die Programmierung
Dynamische Webseiten mit PHP [und Python]
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Folgendes kann missbraucht werden: formulare unverschlüsselte login-informationen ungeschützte includes SQL-injection reto ambühler
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Style Guidelines für Java und .NET
PHP Basic.
PHP in HTML Von C. Göpfert.
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
EPROG Tutorium #3 Philipp Effenberger
Dynamische Webseiten-Generierung
SQLite und XML in PHP 5.
Einführung in PHP.
Datenanbindung in Web-Applikationen
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
PHP: Operatoren und Kontrollstrukturen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
(Syntax, Strings/Zahlen, Variablen, Arrays)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
MATLAB Control Statements.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
The Programming Language Pascal
PHP: Hypertext Preprocessor Roman Schröder PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte.
Einführung in die Programmiersprache C 2
Formulare Maya Kindler 6c. Allgemein Vom client zum Server form tag eröffnet ein Formular Input tag eröffnet ein Formularfeld.
Variablen und Datentypen
Seminar Internettechnologie Prof. Dr. Lutz Wegner Julia Mikov WS 06/07
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Unterschiedliche Kontrollstrukturen
Unterschiedliche Arten von Kontrollstrukturen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Einführung in PHP 5

Allgemeines Allgemeines zu PHP steht für PHP Hypertext Preprocessor ist eine Skriptsprache wird eingebettet in HTML wird serverseitig verarbeitet wird seit 1994 entwickelt, ist sehr beliebt ist angelehnt an C, Java, und Perl besitzt APIs zu sehr vielen DBS PHP ist verfügt über umfangreiche Dokumentation: Homepage: http://www.php.net oder http://at.php.net Handbuch: http://at.php.net/manual Relevant für diese Folien: PHP 5

PHP-Code 4 verschiedene Möglichkeiten zur Einbettung in HTML (abhängig von der PHP-Konfiguration) <? … ?> <?php … ?> <script language="php"> … </script> <% … %> Kommentare innerhalb von PHP-Code <? # einzeiliger Kommentar // ebenfalls einzeiliger Kommentar /* mehrzeiliger Kommentar */ ?> Jede PHP-Anweisung muss mit Strichpunkt abgeschlossen werden! <? echo "Hallo"; ?>

Textausgabe Textausgabe mit print oder echo <? print "Hallo"; # Hallo ausgeben # echo macht das gleiche wie print echo "Hallo"; # mehrzeilige Ausgabe print "Erste und zweite Zeile"; # das gleiche erreicht man mit print "Erste und\nzweite Zeile"; # beachte den Unterschied zum HTML-Zeilenumbruch print "Erste und<BR>zweite Zeile"; /* Anführungszeichen kann man auch verwenden, muss sie aber mit Backslash maskieren */ print "Michi sagte \"Hallo\"."; ?>

Variablen in PHP beginnen Variable mit einem Dollarzeichen ($), gefolgt vom Namen der Variablen. Name muss entweder mit Buchstaben oder Underscore (_) beginnen! <? # Deklaration und Initialisierung $var1 = "Web"; $var2 = "Engineering"; # Ausgabe print $var1; # Web # Verkettung mit Punkt (.) print $var1 . " " . $var2; # Web Engineering # alternativ auch innerhalb der print-Anweisung print "$var2 im $var1"; # Engineering im Web /* soll die Ausgabe "as is" erfolgen, dann muss einfaches Hochkomma verwendet werden */ print '$var1 ist eine Variable'; # $var1 ist eine Variable ?>

Es gibt verschiedene Typen von Variablen Skalare Typen String <? $s = "Hallo"; ?> Integer <? $i = 4711; ?> Float <? $f1 = -47.11; $f2 = 0.3; ?> Boolean <? $b = TRUE; $b = FALSE; ?> Zusammengesetzte Typen Arrays Objekte

Arrays Arrays bestehen aus mehreren indizierten Elementen. "Normale" Arrays haben einen numerischen Index beginnend bei Null. <? $arr = array(); # Initialisierung leer $arr = array(47, 11); # ... mit Vorbelegung $arr[] = 10; # anhängen mit automatischem Index $arr[3] = "hallo"; # hallo an Index 3 einfügen # Ausgabe eines Arrays mit print_r() print_r($arr); ?> Ergibt: Array ( [0] => 47 [1] => 11 [2] => 10 [3] => hallo )

Arrays Assoziative Arrays verwenden String- oder Integer-Indices, um beliebige Werte zu referenzieren: <? # Initialisierung $star = array( "Vorname" => "Clint", "Nachname" => "Eastwood", "Alter" => 74); # formattierte Ausgabe: echo $star["Vorname"] . " " . $star["Nachname"] . " ist " . $star["Alter"] . " Jahre alt."; ?> Ergibt: Clint Eastwood ist 74 Jahre alt. Alternative Ausgabe: echo "{$star['Vorname']} {$star['Nachname']} ist {$star['Alter']} Jahre alt.";

Vordefinierte Variablen In PHP sind einige Variablen vordefiniert $PHP_SELF: Name des aktuellen Scripts $_POST: Alle Variablen, die über ein Formular geliefert werden (s. später) $_GET: Variablen, die über die URL geliefert werden, z.B. Aufruf von: http://www.xyz.com/test.php?x=10&y=Hallo print_r($_GET) liefert: Array ( [x] => 10 [y] => Hallo ) $_COOKIES: Cookie-Variablen $_SERVER: Server-Variablen, z.B. URL des Client $_SESSION: Hinweis: Alle vordefinierten Variablen können angezeigt werden mit <? phpinfo(); ?>

Operatoren Arithmetische Operatoren <? $a = 10; $b = 3; $a + $b; # Addition (13) $a - $b; # Subtraktion (7) $a * $b; # Multiplikation (30) $a / $b; # Division (3.33333) $a % $b; # Rest ermitteln (1) # Erhöhen um 1 $a++; # Post-Inkrement (NACH Auswertung der Anweisung) ++$a; # Prä-Inkrement (VOR Auswertung der Anweisung) # Verringern um 1 $a--; # Post-Dekrement (NACH Auswertung der Anweisung) --$a; # Prä-Dekrement (VOR Auswertung der Anweisung) ?>

Operatoren Logische Operatoren <? # logisches UND $a and $b; $a && $b; # logisches ODER $a or $b; $a || $b; # exklusives ODER $a xor $b; # Negation !$a; ?> Vergleichsoperatoren <? $a == $b; # gleich? $a === $b; # ident? $a != $b; # ungleich? $a <> $b; # ungleich? $a !== $b; # unident? $a < $b; # kleiner? $a > $b; # grösser? # kleiner oder gleich? $a <= $b; # grösser oder gleich? $a >= $b; ?>

Operatoren Zuweisungsoperatoren <? $a = $b; # weist den Wert von $b auf $a zu # Kombination mit arithmetischen Operatoren: $a += $b; # entspricht $a = $a + $b # analog für andere arithmet. Operatoren: $a /= $b; $a *= $b; $a %= $b; ?> Es gibt noch viele weitere Operatoren, zu finden unter: http://at.php.net/manual/de/language.operators.php

Kontrollstrukturen Konstrollstrukturen sind wichtige Elemente einer Programmiersprache, da sie dynamische und variable Abläufe ermöglichen PHP kennt u.a. folgende Kontrollstrukturen: if, elseif, else while, do for, foreach break, continue switch include

if, elseif, else if, elseif, else werden für Abfrageverzweigungen verwendet if und elseif evaluieren beliebige nicht-leere Ausdrücke zu TRUE oder FALSE <? $a = 10; if ($a >= 0 && $a < 10) { /* wenn $a gleich 8 oder gleich 9, wird dieser Block ausgeführt */ } elseif ($a == "Text") { /* dieser Block wird ausgeführt, wenn $a grösser oder gleich 11. Nach der Prüfung wird $a inkrementiert */ else { /* dieser Block, falls alle die anderen Bedingungen nicht erfüllt sind */ ?>

switch wenn eine Variable auf mehrere Werte geprüft wird, so empfiehlt sich ein switch-Statement <? $a = 10; switch ($a) { case "Text": echo '$a ist Text'; break; case 10: echo '$a ist 10'; break; default: echo 'keines von beiden'; break; } ?> case: Prüfwert break: Tritt aus dem switch-Block aus default: Anweisung(en), die ausgeführt werden, falls kein case zutrifft.

while, do <? $a = 0; while ($a < 10) { while-Schleifen werden solange durchlaufen, bis der Kontrollausdruck zu FALSE evaluiert <? $a = 0; while ($a < 10) { echo "Heute ist es sehr heiss!"; $a++; } ?>  Gibt 10 mal den Text aus # do..while Variante do { echo "Hoffentlich ist es morgen nicht so heiss!"; } while ($a < 10);  Gibt ebenfalls 10 mal den Text aus

for for-Schleifen sind etwas komplexer, da sie 3 (optionale) Ausdrücke beinhalten: <? for ($i=0; $i<10; $i++) { echo "$i<br>"; } ?> Kontrollbedingung: Schleife bricht ab, wenn diese Bedingung zu FALSE evaluiert Initialisierung: wird bei Schleifeneintritt einmalig ausgeführt Anweisung, die am Ende jedes Durchlaufs ausgeführt wird

foreach foreach ist ein Konstrukt zum bequemen Durchlaufen von Arrays <? $arr = array("a", "b", "c"); # nur die Werte auslesen foreach ($arr as $v) { echo $v; } # Schlüssel und Werte auslesen foreach ($arr as $k => $v) { echo "Schlüssel $k hat Wert $v"; ?>

Weitere In Schleifen kann man die Abarbeitung beinflussen: break: Veranlasst den sofortigen Austritt aus der Schleife continue: erzwingt sofort den nächsten Durchlauf, ohne die restlichen Statements der Schleife auszuführen. Um andere Dateien einzubinden: <? include "andere.php"; include "http://www.google.at"; ?> Der Code einer eingebundenen Datei wird an die Stelle des include-Statements gesetzt

Funktionen Häufig benutzte Anweisungssequenzen kann man in eine Funktion verpacken: <? # berechne die Anzahl der Sekunden von $tage Tagen function errechneSekunden ($tage) { $sekunden = $tage * 24 * 60 * 60; return $sekunden; } $t = 5; $s = errechneSekunden($t); echo "$t Tage haben $s Sekunden"; ?> Eine Funktion hat also einen Namen, eine Liste von Parametern, und optional einen Rückgabewert

Exception Handling Ausnahmefehler (Exceptions) können erzeugt und abgefangen werden Es gibt eine vordefinierte Fehlerklasse: Exception. Von dieser können benutzerdefinierte Fehlerklassen abgeleitet werden Zu einem try-Block kann es mehrere catch-Blöcke geben <? try {    $error = "Schwerer Fehler";    throw new Exception($error);    // das wird niemals ausgeführt    echo "Blah blah"; } catch (Exception $e) {    echo 'Fehler: '. $e->getMessage(); } ?>

Web-Formulare Web-Formulare sind die beliebteste Form der Benutzerinteraktion auf Webseiten Die Frage ist: Wie kann man Benutzereingaben in PHP verarbeiten? Antwort: Die Benutzereingaben werden dem PHP-Skript als HTTP-Post- oder HTTP-Get-Variablen zur Verfügung gestellt (beide Mechanismen sind Teil des HTTP Protokolls) $_POST und $_GET sind vordefinierte assoziative Arrays! Detaillierte Infos zu allen PHP und Formularen: http://at.php.net/manual/de/tutorial.forms.php und http://at.php.net/manual/de/faq.html.php

Web-Formulare Formular definieren in der Datei form.php: <? if(isset($_POST['var'])) { echo "Sie haben {$_POST['var']} eingegeben!"; exit; } ?> <form action="form.php" method="post"> <input type="text" name="var"/> <input type="submit"/> </form> Beim ersten Aufruf im Browser wird das Formular dargestellt: Nach drücken auf "Abschicken!" wird die Ausgabe dargestellt, weil isset(...) zu TRUE evaluiert

PHP Links Homepage: http://www.php.net oder besser (weil schneller) http://at.php.net Ein einfaches Tutorial gibts dort auch: http://at.php.net/manual/de/tutorial.php Eine gute Einführung als PDF gibts von Team ThinkPHP: www.thinkphp.de

PHP Objekt-Orientierung (OO) PHP 5 bietet volle Unterstützung für Objektorientierung <? class Warenkorb { private $korb; function __construct() { $this->korb = Array(); } public function add($item) { array_push($this->korb ,$item) public function addGeschenk() { $this->add("Geschenk"); ?>

PHP OO: Klassen Klassen werden mit dem class Schlüsselwort deklariert $korb deklariert eine private Instanzvariable Man kann auf public Instanzvariablen/methoden mit $this-> zugreifen. __construct() ist der Konstruktor Sichbarkeitsebenen sind wie üblich private, protected, public. Default ist public Die Klasse kann nun wie folgt verwendet werden: $meinkorb = new Warenkorb(); $meinkorb->add("Buch"); $meinkorb->addGeschenk(); print_r($meinkorb);

PHP OO: Vererbung Einfache Vererbung ist möglich Beachte: <? class PersonalisierterWarenkorb extends Warenkorb { protected $person = ""; # standardwert function __construct($person = "") { parent::__construct(); // Konstructor der Oberklasse $this->person = $person; } function __destruct() { // Destruktor... public function getPerson() { return $this->person; ?> Beachte: Konstructor der Oberklasse muss von Hand aufgerufen werden! Standardwert kann bei Methoden für Eingangsparameter angegeben werden! Alle methoden sind virtual

PHP OO: Interfaces (Mehrfache) Interfacevererbung ist möglich Beachte: <? interface LesenUndSchreiben { public function lesen($filename); public function schreiben($filename, $daten); } class Datei implements LesenUndSchreiben { public function lesen($filename) { // lies etwas von $filename public function schreiben($filename, $daten) { // schreib etwas in $filename $file = new Datei(); $file->schreiben("test.txt", "Hallo"); ?> Beachte: Interfaces haben keine Variable und nur public Methoden Eine Klasse die ein Interface implementiert muss alle Methoden des Interface implementieren

PHP OO: Statische/Konstante Member Statische Methoden und Variablen <? class Irgendwas { public const KONSTANTE = 12; // kein $ protected static $variable = "Hallo"; public static function update($neuerWert) { self::$variable = $neuerWert; } class WasAnderes extends Irgendwas { function __construct() { parent::$variable = "Nix"; // oder alternativ Irgendwas::$variable = "Nix"; Irgendwas::update("Neu"); ?> Beachte: Scope Resolution Operator "::" Superklasse wird über parent angesprochen Aktuelle Klasse wird über self angesprochen

PHP OO: Weitere Konzepte PHP 5 unterstützt Reflexion Serialisierung über __sleep() und __wakeup() Klonen von Objekten mit __clone() Weiteres zu PHP OO: http://at.php.net/manual/de/language.oop5.php