17
1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren Kontrollstrukturen Funktionen Includes GET-Methode Abschlussübung

PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

1

PHPÜbungen

Andreas Dormann

Das sind unsere Themen

Installation von XAMPP, Editor und Dokumentation

Arbeiten mit Zeichenketten

Ausdrücke, Operatoren & Vergleichsoperatoren

Kontrollstrukturen

Funktionen

Includes

GET-Methode

Abschlussübung

Page 2: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

3

1. Installation

(Mini)XAMPPwww.apachefriends.org

PHP Coderwww.phpide.com

Dokumentationwww.php.net/docs.php

Aufgaben

1. Installieren Sie die o.g. Programmpakete.Für (Mini)XAMPP befolgen Sie bitte die Anweisungen in README_DE.TXT.

2. Binden Sie die Dokumentation in den PHP Coder ein.

3. Richten Sie auf dem Desktop Verknüpfungen für folgende Programme ein:- PHPCoderPro.exe- APACHE_START.BAT- MYSQL_START.BAT- MYSQL_STOP.BAT

Page 3: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

4

2. Das erste Skript<html><head>

<title>Mein erstes PHP-Skript</title></head><body>

<?php $name = "Andreas Dormann"; echo "Hallo, mein Name ist $name.";

?></body>

</html>

Variante 1: Verwenden Sie statt 'echo' den Befehl 'print'.Variante 2: Setzen Sie hinter "Hallo," einen Zeilenumbruch.Variante 3: Ändern Sie das Skript so, dass der Zeilenumbruch auch im Browser angezeigt wird.

Aufgaben

1. Geben Sie im PHP-Editor das obige Skript ein.Speichern Sie es unter c:\minixampp\htdocs\kurse\uebung2.php.

2. Sehen Sie sich die Textausgabe im Explorer und im Quelltext an.Was fällt Ihnen auf?

3. Variante 1: Gibt es einen sichtbaren Unterschied zur Ausgabe mit "echo"?Lesen Sie in der PHP-Dokumentation nach, worin der Unterschied zwischen "echo" und "print" liegt.

4. Variante 2: Wie wirkt sich der Zeilenumbruch aus?

5. Lösung: [...] Hallo,<br>mein Name [...]bzw. [...] Hallo,<br>\nmein Name [...]

Page 4: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

5

3. Strings verbinden (1)

<?php$zeit = 10;$einheit = "Minute";echo "Der Upload dauerte $zeit $einheitn.";

?>

Das obige Beispiel wird nicht funktionieren, denn woher soll PHP wissen, dass Sie die Variable $einheit meinen, wenn Sie $einheitn schreiben?

Lösung A (Punktnotation):echo "Der Upload dauerte $zeit $einheit"."n.";

Lösung B (komplexe Syntax):echo "Der Upload dauerte $zeit {$einheit}n.";

Aufgaben

1. Geben Sie das obige Skript ein.Speichern Sie es als uebung3.php.

2. Was stimmt hier nicht?

3. Probieren Sie die Lösungen A und B aus.

Page 5: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

6

4. Strings verbinden (2)<?php

$zeit = 10;$einheit = "Minuten";$text = "Der Upload dauerte";$meldung = $text;$meldung .= " ";$meldung .= $zeit;$meldung .= " ";$meldung .= $einheit;$meldung .= ".<br>\n";echo $meldung;

?>

Durch Verwendung von .= wird der rechts stehende Ausdruck an den aktuellen Inhalt der Variablen angehängt.

Aufgaben

Geben Sie das obige Skript ein.

Speichern Sie es als uebung4.php.

Page 6: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

7

5. Suchen & Ersetzen$text = "Das ist ein einfaches Beispiel.";//A$pos = strpos($text, "eis");echo $pos."<br>\n";echo strpos($text, "ei")."<br>\n";echo strpos($text,"ei", 12)."<br>\n";

//B$pos = strpos($text, "Das");if ($pos == 0) {

echo "Der gesuchte Text steht ganz am Anfang!<br>\n";}

//C$neuertext = str_replace("ein ", "ein dummes ", $text);echo $neuertext;

Aufgaben

1. Geben Sie das obige Skript ein (uebung5.php).

2. Abschnitt A: strpos liefert die Position des Suchstrings (beginnend bei 0).Als drittes Argument kann ein Offset angegeben werden. Die Suche beginnt dann erst ab diesem Zeichen.

3. Abschnitt B: Ersetzen Sie "Das" durch "Dies". Was wird ausgegeben?Achtung: Bei Nichtfinden wird FALSE (Wert 0) zurückgegeben.

Will man diesen Fall jedoch von dem Auffinden an Position 0 unterscheiden, muss man bei der Auswertung des Ergebnisses nicht allein auf gleichen Wert (==), sondern zusätzlich auf Typgleichheit (===) prüfen.

Denn: FALSE hat zwar den Wert 0, ist aber kein Zahlenwert (Integer), sondern vom Typ Boolean.

4. Abschnitt C: Ein (dummes) Beispiel zum Ersetzen von Zeichenketten.

Page 7: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

8

6. Regular Expressions

<?php$suchmuster = "[A-Z]";$text = "Das ist ein einfaches Beispiel.";$ergebnis = ereg($suchmuster, $text);if ($ergebnis) {

echo "Gefunden!";} else {

echo "Nix gefunden!";}

?>

Aufgaben

1. Geben Sie das obige Skript ein (uebung6.php).

2. Verwenden Sie das Suchmuster "^D", um nach einem großen Dam Zeilenanfang bzw. am Anfang des Textes zu suchen.

3. Verwenden Sie das Suchmuster "Spiel$", um nach der Zeichenkette Spielam Zeilenende zu suchen. Erwartungsgemäß wird das Ergebnis FALSE sein. Probieren Sie es deshalb einmal mit der Funktion eregi().

4. Eine nützliche Anwendung von ereg() ist die Umwandlung der amerikanischen in die deutsche Datumsdarstellung:

$datum = "2004-3-11";if (ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",

$datum, $regs)) {echo $regs[3].".".$regs[2].".".$regs[1];

} else {echo "Kein gültiges Datumsformat: $datum";

}

Erläuterungen hierzu s. PHP-Dokumentation (CHM-Datei).

Page 8: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

9

7. Arrays<?php$navlinks = array("Wir über uns","Aufgaben","Gerichtsbezirk","Bekanntmachungen","Rechtsprechung NRW","Recht von A-Z","Service","Links");

$anzahl = count($navlinks);

echo "Anzahl der Navigationslinks: ".$anzahl."<p>\n";

//Alle Elemente der Reihe nach ausgebenforeach ($navlinks as $link) {

echo $link."<br>\n";}

?>

Aufgaben

1. Geben Sie das obige Skript ein (uebung7.php).

2. Ergänzen Sie nach der echo-Zeile folgendes:

sort($navlinks);

Was passiert?

3. Ersetzen Sie die sort()-Funktion durch rsort().

4. Ergänzen Sie am Ende des Skripts folgende Zeilen:

$pos = array_search("Service", $navlinks);echo "Service ist an Position ".$pos;

Page 9: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

10

8. Ausdrücke & Operatoren

Einfache Wertzuweisung und Addition

Kombinierte Wertzuweisung/Operation

Prä-Inkrement

Post-Inkrement

Modulus (Divisionsrest)

$a = 100;$b = 12.5;$c = $a + $b;echo $c."<br>\n";

$a *= $b;echo $a."<br>\n";

$d= ++$a;echo $d."<br>\n";

$e = $a++;echo $e."<br>\n";echo $a."<br>\n";

$f = 20 % 6;echo $f."<br>\n";

Aufgaben

1. Geben Sie das obige Skript ein (uebung8.php).

2. Vollziehen Sie die einzelnen Beispiele nach.

Die Ergebnisse lauten:

112,5

1250

1251

12511252

2

Page 10: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

11

9. Vergleichsoperatoren

$body = "Willkommen auf unserer Homepage.<br>\n";$body .= "Lesen Sie das <a href=\"Grußwort.htm\">Grußwort</a>.";

Schreiben Sie ein Skript, das nach einem Link in $body sucht.

Wird ein Link gefunden, soll die Meldung "Link gefunden" ausgegeben werden, wird keiner gefunden, die Meldung "Kein Link gefunden".

Aufgaben

Erstellen Sie ein Skript nach den obigen Vorgaben (uebung9.php).

Hier eine Liste aller Vergleichsoperatoren:

V e r g l e i c h s -o p e r a t o r

A u s d r u c k

E r k l ä r u n g

G l e i c h $ a = = $ b T e s t a u f g l e i c h e W e r t e . I s t d e r W e r t v o n $ a g l e i c h d e m v o n $ b , s o i s t d e r A u s d r u c k w a h r ( T R U E ) .

U n g l e i c h $ a ! = $ b T e s t a u f u n g l e i c h e W e r t e . I s t d e r W e r t v o n $ a u n g l e i c h d e m v o n $ b , s o i s t d e r A u s d r u c k w a h r ( T R U E ) .

I d e n t i s c h $ a = = = $ b D i e W e r t e v o n $ a u n d $ b u n d d e r e n D a t e n t y p e n m ü s s e n g l e i c h s e i n , d a m i t d e r A u s d r u c k T R U E e r g i b t .

N i c h t i d e n t i s c h $ a ! = = $ b D e r A u s d r u c k i s t T R U E , w e n n d i e W e r t e v o n $ a u n d $ b u n d / o d e r d e r e n D a t e n t y p e n u n t e r s c h i e d l i c h s i n d .

K l e i n e r a l s $ a < $ b T R U E , w e n n d e r W e r t v o n $ a k l e i n e r i s t a l s d e r v o n $ b . G r ö ß e r a l s $ a > $ b T R U E , w e n n d e r W e r t v o n $ a g r ö ß e r i s t a l s d e r v o n $ b . K l e i n e r o d e r g l e i c h

$ a < = $ b T R U E , w e n n d e r W e r t v o n $ a k l e i n e r o d e r g l e i c h d e m W e r t v o n $ b i s t .

G r ö ß e r o d e r g l e i c h

$ a > = $ b T R U E , w e n n d e r W e r t v o n $ a g r ö ß e r o d e r g l e i c h d e m W e r t v o n $ b i s t .

Page 11: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

12

10. Kontrollstrukturen (1)$a = 2;switch ($a) {

case 1:echo "eins";

case 2:echo "zwei";

case 3:echo "drei";

case 4:echo "vier";

}

break;

break;

break;

break;

Aufgaben

1. Betrachten Sie das Skript. Welche Ausgabe erwarten Sie?

2. Geben Sie das obige Skript ein (uebung10.php).

3. Was wird tatsächlich ausgegeben?

4. Ergänzen Sie nach jeder echo-Zeile Folgendes:

break;

Page 12: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

13

11. Kontrollstrukturen (2)

//For-Schleifefor ($i = 1; $i < 10; $i++) {

echo $i." ";}

//While-Schleife$i = 1;while ($i <= 10) {

echo $i." ";$i++;

}

//Do-While-Schleife$i = 1;do {

echo $i++." ";} while ($i <= 10);

Aufgaben

1. Geben Sie das obige Skript ein (uebung10.php).

2. Was müssen Sie ändern, damit auch die Zahl 10 ausgegeben wird?

3. Erstellen Sie eine While-Schleife, die die Zahlen 1-10 ausgibt.

4. Erstellen Sie eine Do-While-Schleife, die die Zahlen 1-10 ausgibt.

Page 13: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

14

12. Funktionen

$x = -12.34;

echo abs($x)."<br>\n";echo ceil($x)."<br>\n";echo floor($x)."<br>\n";echo round($x,1)."<br>\n";

$y = array(10,20,25,50,100);echo min($y)."<br>\n";echo max($y)."<br>\n";echo pow(5,2)."<br>\n";echo sqrt(36)."<br>\n";echo pi();

Absoluter BetragAufrunden zur n.h. GanzzahlAbrunden zur n.n. GanzzahlRundung auf 1 Nachkommastelle

Niedrigster Wert aus einer ListeHöchster Wert aus einer Liste5 hoch 2Wurzel aus 36Wert von Pi

Aufgaben

1. Geben Sie das obige Skript ein (uebung12.php).

2. Vollziehen Sie die einzelnen Beispiele nach.

Die Ergebnisse lauten:

12,34-12-13-12,3

101002563.1415926535898

Page 14: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

15

13. Eigene Funktionenfunction Uhrzeit () {

$ergebnis = date("H:i")." Uhr";return $ergebnis;

} echo Uhrzeit();

echo Uhrzeit();

function Uhrzeit ($fett = false) {

$ergebnis = date("H:i")." Uhr";

if ($fett == true) {

$ergebnis = "<b>".$ergebnis."</b>";

}

return $ergebnis;

}

A

B

Aufgaben

1. Geben Sie das obige Skript A ein (uebung13.php).

Details zur Date()-Funktion s. PHP-Dokumentation.

2. Funktioniert das Skript auch, wenn man die echo-Anweisungan den Anfang setzt?

3. Bauen Sie Skript A zu Skript B um.

Ihre Funktion besitzt nun einen optionalen Parameter.Wird dieser auf true gesetzt, erscheint die Ausgabe der Uhrzeit fettgedruckt.

Page 15: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

16

14. Includes<html><head><title>Include-Demo</title>

<head><body>

<?phpinclude ("./beispiel.inc");echo "Es ist ".Uhrzeit(true)."!";?>

</body></html>

Aufgaben

1. Speichern Sie Skript B - ohne die echo-Zeile - aus der vorherigen Übung 13 unter dem Namen beispiel.inc.

2. Erstellen Sie nun das obige Skript und speichern Sie es als uebung14.php.

3. Probieren Sie das Skript aus.

4. Was passiert, wenn man ./ vor beispiel.inc weglässt?

5. Was passiert, wenn man die Skript-Tags in der Include-Datei weglässt?

Page 16: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

17

15. Die GET-Methode<?php$navlinks = array("Wir über uns","Aufgaben","Gerichtsbezirk","Bekanntmachungen","Rechtsprechung NRW","Recht von A-Z","Service","Links");if (isset($nr)) {echo "Die Seite <i>".$navlinks[$nr]."</i>

wurde aufgerufen!";} else {echo "Ein Parameter wurde nicht übergeben!";

}?>

Aufgaben

1. Geben Sie das obige Skript ein (uebung15.php).

2. Rufen Sie das Skript folgendermaßen auf:

http://localhost/kurs/uebung15.php?nr=1

3. Was wird ausgegeben?

Page 17: PHP Übungen1 PHP Übungen Andreas Dormann Das sind unsere Themen Installation von XAMPP, Editor und Dokumentation Arbeiten mit Zeichenketten Ausdrücke, Operatoren & Vergleichsoperatoren

18

16. Abschlussübung

1. Erstellen Sie eine Funktion namens HtmlTabelle, die

anhand der Parameter Zeilenzahl und Spaltenzahleine mit fortlaufenden Zahlen gefüllte HTML-Tabelle (border = 1) ausgibt.

2. Speichern Sie die Funktion in einer Datei namens tabelle.inc ab.

3. Erstellen Sie – unter Einbeziehung von html.inc –ein PHP-Skript tabelle.php, das beim Aufruftabelle.php?zeilen=5&spalten=10die enstprechende Tabelle ausgibt.

4. Zusatzaufgabe: Färben Sie alle ungeraden Zeilen gelb.

Lösung

tabelle.php<?phpinclude "./tabelle.inc";echo HtmlTabelle($zeilen,$spalten);

?>

tabelle.incfunction HtmlTabelle ($Zeilenzahl, $Spaltenzahl) {$tabelle = "<table border=\"1\">\n";for ($z = 1; $z <= $Zeilenzahl; $z++) {if ($z % 2) {$tabelle .= "<tr bgcolor=\"yellow\">";

} else {$tabelle .= "<tr>";

}for ($s = 1; $s <= $Spaltenzahl; $s++) {$inhalt++;$tabelle .= "<td>$inhalt</td>";

}$tabelle .= "</tr>\n";

}$tabelle .= "</table>\n";return $tabelle;

}