php
Document Sample


Seminarvotrag: PHP
Von Stefan Niemczyk
Übersicht
Was ist PHP?
Geschichte
Verwendungsmöglichkeiten
Was bietet PHP
Syntax
Erzeugung dynamischer Webanwendungen
Ablauf
Vor- und Nachteile
Caches
Stefan Niemczyk 2
Was ist PHP?
Stefan Niemczyk 3
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 4
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 5
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 6
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 7
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 8
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 9
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 10
Codebeispiel
<?php
class 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 11
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 12
Datenbankanbindung
Verbindungsaufbau
4 Parameter nötig
Host
Username
Password
Database
$link = mysql_connect(HOST, USER, PASS)
mysql_select_db(DATABASE, $link)
Stefan Niemczyk 13
Datenbankanbindung
Anfragen, 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 14
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 15
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 16
Ablauf einer Anfrage aus sicht des Clients
Webserver 1. Sendet Anfrage
PHP Client
MySQL
Modul Ich hätte gerne die
index.php
Weitere Module
2. Empfängt Antwort
Header
HTML-Dokument:
<HTML>
<head>
…
Stefan Niemczyk 17
Ablauf einer Anfrage aus sicht des Servers
1. Empfängt
Webserver
Anfrage Client
2. Webserver lädt index.php
Ich hätte gerne die
3. index.php wird PHP- index.php
Interpreter übergeben
PHP Modul
5. Rückgabe
4. Übersetzt Header
Des Erzeugten
index.php und Codes HTML-Dokument:
erzeugt den Code <HTML>
<head>
Evtl. Zugriff auf Datenbank …
oder anderes Modul 6. Webserver Antwortet
Client und sendet ihm
MySQL den erzeugten Code
Weitere Module
Stefan Niemczyk 18
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 19
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 20
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 21
PHP Fazit
Einfache Möglichkeit dynamische
Webanwendungen zu erstellen
Leicht zu Handhaben
Weit verbreitet, gute Unterstützung
Stefan Niemczyk 22
Vielen dank für ihre
Aufmerksamkeit!
Stefan Niemczyk 23
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
Stefan Niemczyk 24
Get documents about "