Post on 05-Apr-2015
Seminarvotrag: PHP
Von Stefan Niemczyk
Stefan Niemczyk 2
Übersicht
Was ist PHP? Geschichte Verwendungsmöglichkeiten
Was bietet PHP Syntax
Erzeugung dynamischer Webanwendungen Ablauf Vor- und Nachteile Caches
Stefan Niemczyk 3
Was ist PHP?
Stefan Niemczyk 4
Was ist PHP?
PHP: Hypertext Preprozessor ursprünglich Personal Home Page Tool
PHP ist eine Skriptsprache An C, Java bzw. Perl angelehnte Syntax Ermöglicht dynamisches erstellen von
unterschiedlichen Dateien (HTML, PDF, Bildern…)
Stefan Niemczyk 5
Geschichte
PHP 1 (Personal Home Page Tool) Erschien am 08.06.1995 von Rasmus Lendorf Sammlung von Perl-Skripten
PHP 2 bzw. PHP/FI (Personal Home Page / Form Interpretor)
Erschien am 12.11.1997 von Rasmus Lendorf Umsetzung in C, Perl sehr ähnlich Relativ inkonsistent Sourcecode wurde veröffentlicht Datenbankanbindung hinzugefügt
Stefan Niemczyk 6
Geschichte Teil 2
PHP 3 (Hypertext Preprozessor) Erschien am 06.06.1998, von Andi Gutmans und
Zeev Suraski in Kooperation mit Rasmus Lendorf Brachte Verbreitung deutlich voran Erstmals Erweiterungsmöglichkeiten vorhanden
Gutmans und Suraski gründen die Firma Zend Technologies Ltd. Entwicklung der Zend Engine (PHP 4 Engine)
Stefan Niemczyk 7
Geschichte Teil 3
PHP 4 Erschien 22.05.2000 Erheblich leistungsfähiger Viele Erweiterungen wie Objektorientierung, höher
Kompatibilität usw. PHP 5
Erschien am 13.07.2004 Erweiterung der Objektorientierung PHP 5.1.0 erschien 24.11.2005, 5.2.0 erschien
02.11.2006
Stefan Niemczyk 8
Verwendungsmöglichkeiten
Serverseitige Skripte Entweder als CGI oder als Serverseitiges Modul Häufigste Anwendung von PHP
Skripte auf Kommandozeilenebene Lokale Nutzung von PHP Bearbeiten von Texten oder dynamisches
erstellen von Bildern Clientseitiger GUI Applikationen
PHP dafür eher ungeeignet, aber dennoch möglich
Stefan Niemczyk 9
Was bietet PHP als Skriptsprache an Möglichkeiten Alles muss innerhalb von speziellen Tags
stehen damit es später interpretiert wird <?php ANWEISUNGEN ?> <script
language="php">ANWEISUNGEN</script> Alle Anweisungen müssen mit einen “;“
abschließen Alle PHP Skripte müssen mit .php enden
Stefan Niemczyk 10
Was bietet PHP als Skriptsprache an Möglichkeiten Teil 2 Es gibt Variablen, Methoden, Klassen, usw. Behandlung von Exeptions Sehr leichte Anbindung von Datenbanken
oder anderen externen Modulen Versenden von Cookies, Dateien und
Headern
Stefan Niemczyk 11
Codebeispiel
<?phpclass Cart{ var $items; // Artikel in unserem Einkaufswagen // Füge dem Einkaufswagen $num Artikel der Sorte $artnr zu function add_item ($artnr, $num) { $this->items[$artnr] += $num; } ?>
Stefan Niemczyk 12
Integrierter Code
Reiner PHP Code<?php
echo "Hallo Welt!"; ?>
PHP Code integriert in ein HTML Dokument<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>
<head> <title> <?php print "Hallo Welt!"; ?> </title>
</head> <body> </body>
</html>
Stefan Niemczyk 13
DatenbankanbindungVerbindungsaufbau 4 Parameter nötig
Host Username Password Database
$link = mysql_connect(HOST, USER, PASS) mysql_select_db(DATABASE, $link)
Stefan Niemczyk 14
DatenbankanbindungAnfragen, Hinzufügen, Löschen, … Zugriff auf Daten anschließend möglich
durch: $ergebnis = mysql_query(“SQL ANFRAGE“);
Mögliche Operationen: Query (Anfrage) Insert (hinzufügen) Delete (löschen) …
Stefan Niemczyk 15
Erzeugung von dynamischen Webanwendungen Dafür benötigt man:
Webserver mit PHP Unterstützung Lokal: Eigenen Webserver (z.B. Apache), PHP PHP Skripte
Anwendungsbeispiele: User klickt auf das Einkaufswagensymbol um
seine Bestellung abzuschließen User läst sich alle Threads im Forum anzeigen die
er beobachten will
Stefan Niemczyk 16
PHP als CGI vs. PHP als Modul PHP als CGI
Langsamer Mehrere PHP Versionen möglich Ausführung unter unterschiedliche User/Gruppen möglich
PHP als Modul Schneller Bei Multithreaded-Server kein nachladen von PHP-
Modulen möglich Ausführung immer unter der selben User/Gruppen HTTP-AUTH nur bei PHP als Modul möglich
Stefan Niemczyk 17
Ablauf einer Anfrage aus sicht des Clients
Client
Ich hätte gerne die index.php
Webserver
PHP
ModulMySQL
Weitere Module
1. Sendet Anfrage
2. Empfängt Antwort
Header
HTML-Dokument:<HTML> <head> …
Stefan Niemczyk 18
Ablauf einer Anfrage aus sicht des Servers
Client
Ich hätte gerne die index.php
Webserver
PHP Modul
4. Übersetzt index.php und erzeugt den Code
MySQLWeitere Module
1. Empfängt Anfrage
2. Webserver lädt index.php
3. index.php wird PHP-Interpreter übergeben
Evtl. Zugriff auf Datenbank oder anderes Modul
5. Rückgabe Des Erzeugten Codes
6. Webserver Antwortet Client und sendet ihm den erzeugten Code
Header
HTML-Dokument:<HTML> <head> …
Stefan Niemczyk 19
Vor- und Nachteile von PHP
Vorteile Leicht zu erlernen Vielseitig einsetzbar Code kann nicht gestohlen werden Open Source Für alle gängigen System verfügbar Sehr gut Dokumentiert
Stefan Niemczyk 20
Vor- und Nachteile von PHP
Nachteile Sicherheitslücke bei den übergebenen Variablen
http://example.com?variable1=“DROP TABLE“ Keine Unicode Unterstützung Langsamer, da Skriptsprache Jede Interaktion des Users muss erst vom Server
berechnet werden Einige Einstellungsmöglichkeiten die als Hilfe
gedacht waren, behindern eher
Stefan Niemczyk 21
Caches
Einmal übersetzte PHP Skripte werden gespeichert und müssen beim nächsten Aufruf nicht erneut übersetzt werden-> Performance wird verbessert
Opcode-Caches:Turck-mmCache, eAccelerator, Alternative PHP Cache, Zend Optimizer
Stefan Niemczyk 22
PHP Fazit
Einfache Möglichkeit dynamische Webanwendungen zu erstellen
Leicht zu Handhaben Weit verbreitet, gute Unterstützung
Stefan Niemczyk 23
Vielen dank für ihre
Aufmerksamkeit!
Stefan Niemczyk 24
Quellen
[1] PHP-Dokumentationsgruppe, “PHP Handbuch“, http://de3.php.net/manual/de/index.php
[2] Wikipedia, http://de.wikipedia.org/wiki/Php [3] Progman, “quakenet:#php Tutorial“, 12.06.2005, http://tut.php-q.net/ [4] Andrew S.Tanenbaum, Computernetzwerke, (4., überarbeitete Auflage),
Pearson Studium, 2003 [5] Wikibooks, http://de.wikibooks.org/wiki/
Websiteentwicklung:_PHP:_Beschreibung