seminar scriptsprachen php-seminar von saleh hajahja 1/23/2014php seminar1

33
Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 05/14/22 PHP Seminar 1

Upload: frideric-westenberg

Post on 05-Apr-2015

109 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Seminar Scriptsprachen

PHP-SeminarVon Saleh Hajahja

04/11/23 PHP Seminar 1

Page 2: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

PHP-Seminar: InhaltEinführung:

Was ist PHP.Dynamische Webseiten.Historisches.Was macht PHP populär?

Syntax:Datentypen, Variablen.Operatoren.Kontroll-Konstrukte: (if-elseif-else, while, for, foreach).Funktionen.Arrays.String.Reguläre Ausdrücke.

Web Programmierung:Web Form Handling.PHP und MySQL.

04/11/23 PHP Seminar 2

Page 3: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

PHP und dynamische Webseiten

PHP ist eine serverseitige Scriptsprache für die Erstellung von dynamischen Webseiten.

Es gibt viele Technologien zur Erstellung von dynamischen Webseiten, die häufigsten sind ASP.NET (Active Server Pages, von Microsoft), JP (Java Server Pages), ColdFusion, Ruby on Rails, und PHP.

04/11/23 PHP Seminar 3

Page 4: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

dynamische Webseiten

04/11/23 PHP Seminar 4

Page 5: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Historisches• PHP wurde 1995 von Rasmus Lerdorf für personliche Zwecke

entwickelt.• Ursprünglich stand PHP/FI für „Personal Home Page/Form

Interpreter“ .• Im Jahr 1998 wurde Version 3.0 von Zeev Suraski und Andi

Gutmans ausgegeben.• Seitdem die Bedeutung von PHP steht für Hypertext

Preprocessor.• Im Jahr 2000 gründeten sie die Firma Zend Technologies Ltd.,

Der Kern des Interpreters wurde wieder komplett umprogrammiert und unter dem Namen Zend Engine I „PHP 4.0“ ausgegeben.

• Im Jahr 2004 wurde Zend Engine II „PHP 5.0“ausgegeben.

04/11/23 PHP Seminar 5

Page 6: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Was macht PHP populär? PHP ist schnell. PHP ist kostenlos. PHP ist einfach zu benutzen. PHP ist portabel. Technische Unterstützung steht allgemein zur Verfügung:

Sehr gut mit verschiedenen Sprachen dokumentiert. Viele kostenlose Bibliotheken und bereitgestellten Quellcode

auf dem Netz Kostenlose Design Templates (Smarty, PHP Savant, PHPlib, Yats,

…). PHP ist sicher.

04/11/23 PHP Seminar 6

Page 7: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Quelldateien und PHP-Tags• Es gibt vier Arten von Tags:

04/11/23 PHP Seminar 7

Standard Tags <?php ... PHP-Code ?>

PHP-Processinginstruction, Ist empfohlen, am meistens benutzt.

Short Tags <? ... PHP-Code ?> <?= $variable ?>

SGML-Tags, Nicht empfohlen

Script Tags <script language=“php”> ... PHP-Code </script>

Nicht empfohlen

ASP Tags <% ... PHP-Code %>

Nicht empfohlen

Page 8: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Kommentare• Es gibt vier Arten von Kommentaren:

// Single line comment

# Single line comment

/* Multi-line Comment

*/

/** * API Documentation Example

* * @param string $bar */ function foo($bar) { }

04/11/23 PHP Seminar 8

Page 9: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Datentypen Scalar:

boolean: Ein Wert, der entweder true oder false sein kann. int: Zeichenbehafteter numerischer Integer-Wert.float: Zeichenbehafteter Fließkomma-Wert.string: Sammlung „Collection“ von Binärdaten.

Composite: Arrays sind Container von geordneten Daten-Elemente.Objekte.

Besondere Datentypen:NULL.ressource.

Umwandlung zwischen Datentypen „casting“:PHP kümmert sich um Umwandlung zwischen Datentypen.

Beispiel:$x = 10.88;echo (int) $x; / / Ausgabe 10

04/11/23 PHP Seminar 9

Page 10: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Variablen Eine Variable kann jede Typ von Daten annehmen.

PHP-Variablen sind durch ein Dollarzeichen $ identifiziert, gefolgt von einer Namen.

Variablennamen dürfen nur Buchstaben (a-z, A-Z), Ziffern (0-9) und den Unterstrich enthalten, und müssen entweder mit einem Buchstaben oder einem Unterstrich anfangen.

PHP ist case-sensitive.

isset ($varName).

04/11/23 PHP Seminar 10

Page 11: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operatoren Zuweisungs-Operatoren: „=“:

$a = ($b = 4) + 5;

Arithmetische Operatoren für die Durchführung mathematischer Funktionen: (-, +, -, *, /, %, +=, -=, *=, /=, %=).

String-Operatoren für die Verkettung von zwei oder mehr Strings: („.“, „.=“), Beispiele aus www.php.net:

$a = "Hallo ";$b = $a . "Welt!"; $a = "Hallo ";$a .= "Welt!";

04/11/23 PHP Seminar 11

Page 12: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operatoren Vergleich-Operatoren für den Vergleich von zwei Daten:

Quelle: www.php.net

04/11/23 PHP Seminar 12

Beispiel Name Ergebnis $a == $b Gleich TRUE falls $a ist gleich $b. $a === $b Identisch TRUE falls $a ist gleich $b, und ($a und $b)

den gleichen Datentyp haben. (ab PHP 4) $a != $b Nicht Gleich TRUE falls $a ist nicht gleich $b. $a <> $b Nicht Gleich TRUE falls $a ist nicht gleich $b. $a !== $b Nicht

Identisch TRUE falls $a ist nicht gleich $b, oder sie sind nicht vom gleichen Datentyp. (ab PHP 4)

$a < $b Kleiner TRUE falls $a ist kleiner $b. $a > $b Größer TRUE falls $a ist größer $b. $a <= $b Kleiner Gleich TRUE falls $a ist kleiner gleich $b. $a >= $b Größer Gleich TRUE falls $a größer gleich $b.

Page 13: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operatoren Logische Operatoren für die Durchführung von logischen

Operationen in Boolesche Werte:

Quelle: www.php.net

04/11/23 PHP Seminar 13

Beispiel Name Ergebnis $a and $b Und TRUE falls sowohl $a als auch $b TRUE ist. $a or $b Oder TRUE falls $a oder $b TRUE ist. $a xor $b Entweder Oder TRUE falls entweder $a oder $b TRUE ist,

aber nicht beide. ! $a Nicht TRUE falls $a nicht TRUE ist. $a && $b Und TRUE falls sowohl $a als auch $b TRUE ist. $a || $b Oder TRUE falls $a oder $b TRUE ist.

Page 14: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operatoren Bit-Operatoren für die bitweise Manipulation von

Daten:

Quelle: www.php.net

04/11/23 PHP Seminar 14

Beispiel Name Ergebnis $a & $b Und Bits, die in $a und $b gesetzt sind werden gesetzt. $a | $b Oder Bits, die in $a oder $b gesetzt sind werden gesetzt. $a ^ $b Entweder

oder (Xor) Bits, die entweder in $a oder $b gesetzt sind, werden gesetzt aber nicht in beiden.

~ $a Nicht Die Bits, die in $a nicht gesetzt sind, werden gesetzt und umgekehrt.

$a << $b Nach links verschieben

Verschiebung der Bits von $a um $b Stellen nach links (jede Stelle entspricht einer Mulitplikation mit zwei).

$a >> $b Nach rechts verschieben

Verschiebt die Bits von $a um $b Stellen nach rechts (jede Stelle entspricht einer Division durch zwei).

Page 15: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Kontrollkonstukte if else Konstrukt:

if (expression1) { //Anweisungen

} elseif (expression2) {// statt elseif kann auch “else if” getrennt

geschrieben warden.} else {}

PHP bietet auch der ternäre Operator (? :):

echo 10 == $x ? ’Yes’ : ’No’;$tablewidth = (isset($width)) ? $width : 100;

04/11/23 PHP Seminar 15

Page 16: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Kontrollkonstukte switch-Konstrukt:

switch ($a) { // $a wird als Ausdrück bewertetcase true:

// Anweisungenbreak;

case 0: // Anweisungenbreak;

default:// Anweisungenbreak;

} Die iterativen Konstrukte (while, do-while, for): identisch wie bei C. break, continue Konstrukte: identisch wie bei C-Sprache. Es gibt weitere Kontrollkonstukte : siehe PHP-Dokumentation. PHP bietet alternative Syntax für manche Kontrollkonstukte.

04/11/23 PHP Seminar 16

Page 17: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Funktionen Die Deklaration einer neuen Funktion fängt mit dem Schlüsselwort

function an, gefolgt von einem Bezeichner „Funktionsname“, und dann ein Paar Klammern () dann zwei geschweiften Klammern {}:

function name() { }

Die Regeln für Variablennamen gelten auch für die Funktionen. Die Funktionsnamen sind nicht case-sensitive. Beispiel für Funktionsdeklaration und Funktionsaufruf:

function hello(){

echo "Hello World!";}hello(); // Displays "Hello World!„

Mit return kann eine Funktion einen Wert zurückliefern.

04/11/23 PHP Seminar 17

Page 18: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Funktionen Parameterübergabe:

Eine Funktion kann mit mehr aktuellen Parameter als ihre formale Parameter aufgerufen werden.

Optionale Parameter sind erlaubt, sie werden so deklariert, indem ihnen default-Werte zugewiesen werden.

Optionale Parameter.

function hello($greeting, $who = "World"){

echo "$greeting $who";}hello(“Hello“); // Displays “Hello World”

04/11/23 PHP Seminar 18

Page 19: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Arrays PHP-Arrays sind geordnete Sammlungen „Collections“ von

Elementen, jedes Element hat einen Wert und wird durch einen Schlüssel identifiziert.

numerische Schlüssel „automatisch erhöht“, alphanumerische Schlüssel oder Mischung von beiden.

Speicherung jedes Werts beliebiges Typs, einschließlich anderen Arrays.

mehr als siebzig vorhandene Funktionen zum Manipulieren von Arrays.

Es gibt zwei Methoden zur Erzeugung eines Arrays:

o durch die explizite Aufruf der array () Konstruktor$a = array (10, 20, 30);$a = array (’a’ => 10, ’b’ => 20, ’cee’ => 30);$a = array (5 => 1, 3 => 2, 1 => 3,);$a = array();

04/11/23 PHP Seminar 19

Page 20: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Arrayso Die zweite Methode ist durch den Arrays Operator []:

$x[] = 10;$x[] = 11;$x[’aa’] = 12;echo $x[0]; // Outputs 10echo $x[1]; // Outputs 11echo $x[“aa“]; // Outputs 12

Enumerative Arrays vs. assoziative Arrays: In der Literatur werden die Arrays grob in zwei Kategorien unterteilt, enumerative und assoziative: Enumerative Arrays. Assoziative Arrays (manchmal auch als Dictionaries genannt)

erlauben die Assoziation (beliebiger Schlüssel => beliebiges Element).

04/11/23 PHP Seminar 20

Page 21: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operationen auf Arrays Arrays Iterieren:

$array = array(’foo’, ’bar’, ’baz’);foreach ($array as $key => $value) {

echo "$key: $value". "<br>";}

Ausgabe:0: foo1: bar2: baz

04/11/23 PHP Seminar 21

Page 22: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operationen auf Arrays Arrays sortieren:

sort():$array = array(’a’ => ’foo’, ’b’ => ’bar’, ’c’ => ’baz’);sort($array);var_dump($array);

Die Ausgabe: array(3) { [0]=> string(3) "bar" [1]=> string(3) "baz" [2]=>

string(3) "foo" }

asort(): ähnlich wie sort(), sie erhält aber die Assoziation (Schlüssel=>Wert):

rsort(): ähnlich wie sort() aber absteigend. arsort(): ähnlich wie asort() aber absteigend. ksort(): sortiert das Array aufsteigend nach Schlüssel. krsort(): sortiert das Array absteigend nach Schlüssel.

04/11/23 PHP Seminar 22

Page 23: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Strings Mit einfachem Anführungszeichen: sogegannte einfache Strings,

dabei werden Escape–Sequenzen nicht ausgewertet (geparst), mit der Ausnahme das einfache Anführungszeichen selber (\‘), dieses wird ausgewertet (geparst).

echo '$a + $b = '.($a+$b).”<br>”;echo 'erste Zeile\nimmernoch die erste Zeile';

Ausgabe:$a + $b = 30erste Zeile\nimmernoch die erste Zeile

Mit doppeltem Anführungszeichen: sogenannte komplexe Strings, dabei werden alle Escape-Sequenzen ausgewertet (geparst).

echo "$a + $b = ".($a+$b).”<br>”;echo "erste Zeile\nzweite Zeile";

Ausgabe:10 + 20 = 30erste Zeilezweite Zeile

04/11/23 PHP Seminar 23

Page 24: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Operationen auf Strings strlen(): Länge des Strings in Bytes bestimmt, alle Zeichen

unabhängig von ihren Werten gezählt.

strtr(): String-Transforming:echo strstr (’abc’, ’a’, ’1’); // Ausgabe: 1bc

strcmp(): und strcasecmp(): Stringvergleich, identisch außer, die erste ist case-sensitive, die zweite nicht-case-sensitive.

strpos(): gesucht die Position des ersten Vorkommen eines Strings.

04/11/23 PHP Seminar 24

Page 25: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Reguläre Ausdrücke Die Funktion preg_match():

Syntax: int preg_match (string pattern, string subject [, array matches]);

pattern: enthält das Pattern. Subject: enthält die Zeichenkette, auf die das Pattern angewandt

werden soll. Der Rückgabewert dieser Funktion ist 1, wenn das Pattern gefunden

wurde, ansonsten 0. Ist der Parameter "matches" angegeben, so wird dieser mit

Backreferences gefüllt.

Lösung der Beispielcode:

function validate_email($address) {return preg_match("/(^[\.a-z0-9_-]{1,64}@(((([a-z0-9])|([a-z0-9][a-z0-9-]{0,61}[a-z0-9]))\.)+)(de)$)/i",$address,$matches) && (strlen($matches[2])<=256);

}04/11/23 PHP Seminar 25

Page 26: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Web Programmierung Beispiel:

Get-Methode:In der Datei form.php

<form action="submitData.php" method="get" name="f1"><p>Name: <input name="name" type="text" /></p><p>Vorname: <input name="vorname" type="text" /></p> <p><input type="submit" /></p>

</form>

In der Datei submitData.php<?php

// If we had a GET element called 'city', then echo it:if (isset($_GET['name'])) { echo "<p>Dein Name ist: {$_GET['name']}</p>\n"; echo "<p>Dein Vorname ist: {$_GET['vorname']}</p>\n";}

?>04/11/23 PHP Seminar 26

Page 27: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Web Programmierung Beispiel:

Mit Post-Methode: Analog. Über URL:

In der Datei Link.php: <body> <?php

$name = "Bob"; ?> Übertage meinen Namen:

<a href="LinkData.php?meinName=<?php echo $name;?>"> Link </a> </body>

In der Datei LinkData.php: <?php echo "Dein Name ist: ".

$_REQUEST['meinName']."<br>"; ?>

04/11/23 PHP Seminar 27

Page 28: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

PHP und MySQL: Beispiel: Gästebuch1. Form für die Daten erstellen:

04/11/23 PHP Seminar 28

Page 29: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

PHP und MySQL: Beispiel: Gästebuch Daten in MySQL-Datenbank speichern:

if(mysql_connect("localhost", "root", "111")){

if(mysql_select_db("gaestebuch")){

$query = "INSERT INTO eintraege ". "(Datum, Autor, Email, Titel, Text) ". "VALUES (". "\"".date("d/m/y")."\"".", \"". $_REQUEST["fAutor"]."\",

\"". $_REQUEST["fEmail"]."\", \"". $_REQUEST["fTitel"]."\", \"". $_REQUEST["fText"] ."\");";

if(mysql_query($query)){ //data have been successfully saved! return true; }else{ show_alert("data Could not be saved!"); return false; } }else{ show_alert("Could not select database!"); return false; } }else{ show_alert("Could not connect to database Sever!"); return false; }

04/11/23 PHP Seminar 29

Page 30: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

PHP und MySQL: Beispiel: Gästebuch Daten aus MySQL-Datenbank abfragen.

Mit der Datenbank verbinden: wie oben.

Abfrage erstellen: $query = "SELECT * FROM eintraege";

Abfrage ausfrühren:$result = (mysql_query($query));

Eine Zeile einlesen: $row = mysql_fetch_array($result);

Auf einzelne Attribute zugreifen:$row["Datum"], $row["Autor"], …

04/11/23 PHP Seminar 30

Page 31: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

PHP und MySQL: Beispiel: Gästebuch Daten auf die Seite anzeigen.

04/11/23 PHP Seminar 31

Page 32: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Quellen php|architect’s Zend PHP 5 Certification Study Guide by Davey Shafik with

Ben Ramsey, First Edition: October 2006. php|architect’s Guide to Programming with Zend Framework by Cal

Evans, First Edition: January 2008. Learning PHP 5, By David Sklar, June 2004. PHP 5 in Practice, By Elliot White III, Jonathan Eisenhamer, July 11, 2006. PHP 5 FOR DUMMIES, by Janet Valade, 2004. Verschiedene Webseiten auf dem Internet.

04/11/23 PHP Seminar 32

Page 33: Seminar Scriptsprachen PHP-Seminar Von Saleh Hajahja 1/23/2014PHP Seminar1

Danke!

Fragen?

04/11/23 PHP Seminar 33