seminar scriptsprachen php-seminar von saleh hajahja 1/23/2014php seminar1
TRANSCRIPT
Seminar Scriptsprachen
PHP-SeminarVon Saleh Hajahja
04/11/23 PHP Seminar 1
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
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
dynamische Webseiten
04/11/23 PHP Seminar 4
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
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
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
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
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
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
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
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.
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.
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).
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
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
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
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
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
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
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
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
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
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
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
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
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
PHP und MySQL: Beispiel: Gästebuch1. Form für die Daten erstellen:
04/11/23 PHP Seminar 28
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
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
PHP und MySQL: Beispiel: Gästebuch Daten auf die Seite anzeigen.
04/11/23 PHP Seminar 31
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
Danke!
Fragen?
04/11/23 PHP Seminar 33