+ All Categories
Home > Documents > PHP Überblick PHP  · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl...

PHP Überblick PHP  · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl...

Date post: 05-Jun-2018
Category:
Upload: lyphuc
View: 221 times
Download: 0 times
Share this document with a friend
29
14. Januar 2002 Seite 1 PHP A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW Überblick PHP PHP ist eine Skriptsprache, die direkt in HTML-Seiten eingebettet wird Wird die PHP-Datei von einem Betrachter angefordert, so werden die PHP-Befehle von einem PHP Interpeter, der in den Webserver integriert werden kann, Schritt für Schritt ausgeführt und die Ergebnisse an den Betrachter weitergeleitet Je nach Installation interpretiert diese PHP-Zusatzsoftware nur Dateien mit der Endung ".php", oder aber auch Dateien mit den Endungen ".html", ".htm". PHP wird seit etwa 1994 entwickelt und nimmt an Popularität zu Ein besonderer Schwerpunkt liegt auf der Einbindung verschiedener Datenbanken PHP ist an C, Java und Perl angelehnt. Eine ausführliche Beschreibung liegt bei www.php.net . Dazu gibt es 4 Möglichkeiten: <? ... ?> <?php ... ?> <script language="php"> ... </script> <% ... %> Anmerkung: "..." steht für beliebige PHP-Befehle. PHP Befehle in HTML einbauen
Transcript
Page 1: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 1

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickPHP� PHP ist eine Skriptsprache, die direkt in HTML-Seiten eingebettet wird� Wird die PHP-Datei von einem Betrachter angefordert, so werden die PHP-Befehle von einem PHP

Interpeter, der in den Webserver integriert werden kann, Schritt für Schritt ausgeführt und die Ergebnisse an den Betrachter weitergeleitet

� Je nach Installation interpretiert diese PHP-Zusatzsoftware nur Dateien mit der Endung ".php", oder aber auch Dateien mit den Endungen ".html", ".htm".

� PHP wird seit etwa 1994 entwickelt und nimmt an Popularität zu� Ein besonderer Schwerpunkt liegt auf der Einbindung verschiedener Datenbanken� PHP ist an C, Java und Perl angelehnt. Eine ausführliche Beschreibung liegt bei www.php.net.

� Dazu gibt es 4 Möglichkeiten: � <? ... ?>

� <?php ... ?>

� <script language="php"> ... </script>

� <% ... %>

Anmerkung: "..." steht für beliebige PHP-Befehle.

PHP Befehle in HTML einbauen

Page 2: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 2

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickDer erst PHP-Befehl� Der echo-Befehl gibt Texte (sogenannte Strings) aus:

� <? echo "Hallo"; ?>

��������� Alle PHP-Befehle werden mit ";" abgeschlossen. Es gibt eine Reihe von Sonderzeichen. Wichtigstes Sonderzeichen: "\n": Neue Zeile.

� echo "Hallo\n"; echo "Hallo\n";

Man beachte dabei den Unterschied zu

� echo "Hallo<BR>"; echo "Hallo<BR>";

Im ersten Fall wird lediglich im vom Webserver ausgelieferten HTML-Text ein Zeilenumbruch durchgeführt. Im zweiten Fall enthält der HTML-Text den HTML-Befehl zum Zeilenumbruch.

Page 3: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 3

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickVariablen� Um sinnvolle Anwendungen erstellen zu können, benötigen wir Variablen. Variablen-Namen

werden in PHP nach den gleichen Regeln wie die anderen Bezeichner erstellt.� Ein gültiger Variablen-Name beginnt mit einem Buchstaben oder einem Unterstrich ("_"), gefolgt

von einer beliebigen Anzahl von Buchstaben, Zahlen oder Unterstrichen.� Anmerkung: Alle Variablennamen beginnen mit $. Bei Variablen-Namen wird zwischen Groß- und

Kleinschreibung unterschieden (case-sensitive).

� Beispiel-Code$var = "Du";

$vaR = "und";

$Var = "ich";

$vAr = "wir lernen PHP" echo "$var $vaR $Var, $vAr"; // gibt "Du und ich,// wir lernen PHP" aus

$4site = "nicht jetzt"; // ungültig, da Anfang eine Zahl

$_4site = "nicht jetzt"; // gültig, da Unterstrich am Anfang

$täbyte = " irgendwas"; // gültig, da 'ä' dem ASCII-Wert 228 entspricht

� Der Typ der Variablen (ganze Zahl, Gleitpunktzahl, String) wird je nach Verwendung von PHP automatisch bestimmt. Der Benutzer braucht sich darum nur in Spezialfällen zu kümmern.

Page 4: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 4

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickVariablen� PHP4 bietet eine andere Möglichkeit der Wertzuweisung bei Variablen: Zuweisung durch

Referenzierung.� Das bedeutet, dass der Wert der neuen Variablen eine Referenz zur Ursprungs-Variablen darstellt

(mit anderen Worten: Der Wert ist ein Alias bzw. Zeiger auf den Inhalt der Ursprungsvariablen). Beide Variablen zeigen also auf die selbe(n) Speicherstelle(n).

� Für die Zuweisung per Referenz müssen Sie lediglich ein "&" der (Ausgangs-, Quell-) Variablen voranstellen, die Sie einer anderen Variablen zuweisen wollen. Der folgende Skript- Ausschnitt wird zweimal 'Mein Name ist Bob' ausgeben:

� ��� ���

<?php $foo = "Bob"; // "Bob" der Variablen $foo zuweisen.$bar = &$foo; // Zeiger auf $foo in $bar erzeugen.$bar = "My name is $bar"; // $bar verändern...echo $foo; // $foo wurde dadurch ebenfalls verändert.echo $bar; ?>

Page 5: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 5

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickVordefinierte Variablen� PHP bietet jedem ausgeführten Skript eine Vielzahl von vordefinierten Variablen an.� Die jeweilig zur Verfügung stehenden Variablen sind abhängig von der Web-Server, der Version, der

Konfiguration und weiteren Faktoren� Wir unterscheiden

� Web-Server-Variablen wie z.B. SERVER_NAME, SCRIPT_FILENAME, SERVER_ADMIN � Umgebungs- und Environment-Variablen wie z.B. MAIL, USER, UID und� PHP-Variablen wie z.B. HTTP_ENV_VARS.

� Eine Liste aller vordefinierten Variablen erhält man durch Gebrauch der phpinfo()-Funktion.

Page 6: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 6

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickGeltungsbereich von Variablen (1)� Der Geltungsbereich einer Variablen ergibt sich aus dem Zusammenhang, in dem sie definiert

wurde. Meistens besteht dieser aus einem einzigen Bereich. � Dieser beinhaltet auch den Bereich für Dateien, die per „include"- oder „require"-Anweisung

eingebunden wurden, z.B.: $a = 1;

include("b.inc");

� ����������������������������������������������������������������������������������������������������������

$a = 1; /* globaler Bereich */

function test() {

echo $a;

/* Referenz auf einen lokalen Variablen-Bereich */ }

test(); // keine Bildschirmausgabe !

� ��� ! ��"�����������������������������������������#������������� ���������������������$�������%������ ����

$a = 1; $b = 2;

function sum() {global $a, $b;

$b = $a + $b;}

sum();

echo $b;

Page 7: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 7

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickGeltungsbereich von Variablen (2)� Ein weiterer wichtiger Anwendungszweck von Variablen-Bereichen ist die statische Variable.� Eine statische Variable existiert nur in einem lokalen Funktions-Bereich, der Wert geht beim

Verlassen dieses Bereichs aber nicht verloren.

function test () {

static $a = 0;

echo $a;

$a++;

} // Bei jedem Aufruf der test()-Funktion der aktuelle Wert von $a ausgegeben unddann um 1 erhöht.

Variable Variablen� Eine variable Variable nimmt den Wert einer Variablen und behandelt ihn als Bezeichner der

Variablen.

$a = "hallo";

$$a = "Welt"; /* es existieren zwei definierte und gespeicherte Variablen: $amit dem Inhalt "Hallo" und $hallo mit dem Inhalt „Welt“ */

echo "$a ${$a}"; // Aussage: „hallo Welt“

echo "$a $hallo"; // Aussage: „hallo Welt“

Page 8: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 8

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

� Sobald ein Formular an ein PHP-Skript übergeben wird, wird jede Variable dieses Formulars dem Skript automatisch verfügbar gemacht.

� Beispiel<form action="foo.php3" method="post">

Name: <input type="text" name="name"><br>

<input type="submit">

</form>

� Im Zusammenhang mit Formular-Variablen versteht PHP auch Arrays

<form action="array.php" method="post">

Name: <input type="text" name="personal[name]"><br> <!– fuer Indizes koennen

in PHP beliebige Datentypen verwendet werden -->

Email: <input type="text" name="personal[email]"><br>

Bier: <br>

<select multiple name="bier[]">

<option value="binding">Binding

<option value="warsteiner">Warsteiner

<option value="stauder">Stauder

<option value="stuttgarter">Stuttgarter Schwabenbräu

</select>

<input type="submit"> </form>

ÜberblickVariablen außerhalb von PHP

Page 9: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 9

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickKonstanten� PHP definiert eine Reihe von Konstanten und stellt einen Mechanismus zur Verfügung, mit dem

man zusätzliche Konstanten zur Laufzeit definieren kann� Konstanten werden mit der define()-Funktion definiert� Beispiel

<?php

define("CONSTANT", "Hallo Welt.");

echo CONSTANT; // gibt "Hallo Welt." aus. ?>

Operationen (1)� Arithmetische Operationen

&'&�����������$i+$j,

&(&�)������������$i-$j

&*&�+���� ����������$i*$j

&,&�-�#�������$i/$j

&.&�/����(��������$i%$j�����01.23������� 4���� 01�������� ����� 23������� 2�/����4������

� Zuweisungsoperationen� -�� ���������� 5�$�������� ������ ��� &6&

� 5��������� ���� �� &����������� 7 ��������&��"� ���� ����������������������� ����)�����(7 ���������������� ��������������8��������� ��������� �������� �������� �� �������������������� ��������9��� ����%������� ������������� ��� ����� 8��������$�����

Page 10: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 10

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (2)

� Beispiel$a = 3; $a += 5; // setzt $a auf den Wert 8, als ob wir geschrieben haetten:

$a = $a + 5; $b = "Hallo ";

$b .= "Du!"; // setzt $b auf den Wert "Hallo Du!„

� Bit-Operatoren

� Bit-Operatoren erlauben es, in einem Integer bestimmte Bits "ein- oder auszuschalten"

Beispiel Name Ergebnis

$a & $b Und Die Bits sind in $a und in $b gesetzt.

$a | $b Oder Die Bits sind entweder in $a oder in $b gesetzt.

$a ^ $b XOR Die Bits sind in $a oder in $b gesetzt, aber nicht inbeiden.

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

$a << $b Nach links Verschiebung der Bits von $a um $b Stellen nach linksverschieben

$a >> $b Nach rechts Verschiebung der Bits von $a um $b Stellen nach rechtsverschieben

Page 11: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 11

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (3)� Vergleichsoperatoren

Beispiel Name Ergebnis$a == $b Gleich Gibt "wahr" zurück, wenn $a gleich $b ist.

$a === $b Identisch Gibt "wahr" zurück, wenn $a gleich $b ist und beide vomgleichen Typ sind.

$a != $b Ungleich Gibt "wahr" zurück, wenn $a nicht gleich $b ist.

$a < $b Kleiner Als Gibt "wahr" zurück, wenn $a kleiner als $b ist.

$a > $b Größer Als Gibt "wahr" zurück, wenn $a größer als $b ist.

$a <= $b Kleiner Gleich Gibt "wahr" zurück", wenn $a kleiner oder gleich $b ist.

$a >= $b Größer Gleich Gibt "wahr" zurück, wenn $a größer oder gleich $b ist.

� Operatoren zur Programmausführung

� PHP unterstützt einen Operator zur Ausführung externer Programme: Die sog. Backticks (``).

� PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe des aufgegebenen Programms

$output = `ls -al`;

echo "<pre>$output</pre>";

Page 12: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 12

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (4)� Inkrementierungs- bzw. Dekrementierungsoperatoren

� PHP unterstützt Prä- und Post-Inkrementierungs- und Dekrementierungsoperatoren

Beispiel Name Auswirkung

++$a Prä-Inkrement Erhöht den Wert von $a um eins (inkrementiert $a), und gibt anschließend den neuen Wert von $a zurück.

$a++ Post-Inkrement Gibt zuerst den aktuellen Wert von $a zurück und erhöhtdann den Wert von $a um eins.

--$a Prä-Dekrement Vermindert den Wert von $a um eins (dekrementiert $a),und gibt anschließend den neuen Wert von $a zurück.

$a-- Post-Dekrement Gibt zuerst den aktuellen Wert von $a zurück und erhöhtdann den Wert von $a um eins.

� Logische Operatoren

Beispiel Name Ergebnis

$a and $b Und Wahr sowohl $a als auch $b wahr ist.

$a or $b Oder Wahr wenn $a oder $b wahr ist.

$a xor $b Entweder Oder Wahr wenn entweder $a oder $b wahr ist, aber nicht beide.

Page 13: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 13

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (5)

!$a Nicht Wahr, wenn $a nicht wahr ist.

$a && $b Und Wahr, wenn sowohl $a als auch $b wahr ist.

$a || $b Oder Wahr, wenn $a oder $b wahr ist.

� Zeichenketten-Operatoren

� Es gibt in PHP zwei Operatoren für Zeichenketten

� Der erste ist Vereinigungs-Operator. ('.'), dessen Rückgabewert eine Zeichenkette, zusammengesetzt aus dem rechten und dem linken Argument, ist.

� Der zweite ist der Vereinigungs-Zuweisungsoperator ('.='). Siehe Zuweisungs-Operatoren für weitere Informationen.

� Beispiel$a = "Hallo";

$b = $a . "Welt!"; // $b enthaelt jetzt den Text "Hallo Welt!"

$a = "Hallo";

$a .= "Welt!"; // $a enthält jetzt den Text "Hallo Welt!"

Page 14: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 14

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (6)� Kontroll-Strukturen

� if

� ‘if’ erlaubt die bedingte Ausführung von Programmteilen. PHP beinhaltet eine if-Struktur, die ähnlich der C-Programmiersprache ist:

if (expr) {statement; }

� ����������������

� :����;���$������ ���� ��(��$������ �����������"����� #�����$���������������� ����������� ��� ��(��$������ ��� ��<)%���������� $�����-�� �������� =����$��� ����:�������>9�� ��� �;�����������$��� ?����>9�� ��� ��� ?��������������� ����� @�=!A���>9�� ��� ��

if ($a > $b) {

print "a ist grösser als b"; }

else {

print "a ist NICHT grösser als b"; }

� ������������������������

� :������;������$�� ��� @��������� ���������� ���������� #���������������

Page 15: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 15

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (7)� Kontroll-Strukturen

� while

� While-Schleifen sind die einfachste Form von Schleifen in PHP. Sie funktionieren genauwie in C. Die Grundform einer while-Anweisung lautet:

while (expr) {

statement; }

� ��������������������������������

� -��B�$����()�������� ���� ����$����()�������� ���� �����������9�� ���� ����%��"����� ������������� ���%��� C���� -��������� �� �"�� $��� D����� ���������E��

� %������ ��� ���� )F���G��"� ��B$����()���������

do { statement; }while (expr);

� ������������

� ���()��������������������� ��G������)������������ ! ��

� -���)F���G����������()������� �������������

for (expr1; expr2; expr3) { statement; }

Page 16: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 16

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

ÜberblickOperationen (8)

� -��������� ���������D�G �2E�$���������)����������������� �"�����$��������"����D�����C��������������������E

� 5��������C�����-����������$�����G �0��� �"���

� 8�����������A/H%����������������)��������$�����������������������"��������������������������������

� 8��������%����������<)%���������$��������)����������������

� ���%����C�����-����������$�������������������G �1��� �"���,�������"����

� ��� ����2

for ($i = 1; $i <= 10; $i++){ print $i; }

� ��� ����0

for ($i = 1; ; $i++) {if ($i > 10) {

break;}

print $i; }

Page 17: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 17

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Operationen (9)� foreach

� PHP enthält eine foreach-Funktion, genau wie Perl und andere Sprachen

� Es gibt zwei Syntax-Formen:

foreach(array_expression as $value) { statement; }foreach(array_expression as $key => $value) { statement; }

� -���������������������������������FI�G �������(����F�����C�����-���������$��������8������������������%��������?#���� ����$��������������������������F(5���������2����>����-�������$������������������-���������������������������������%������������$�������

� -����$������������������������������9������������C�����-���������������������������)���"�������������������?��F ����$������$�����

� ��� ����2

foreach ($arr as $value) {echo "Wert: $value<br>\n"; }

� ��� ����0�

foreach ($arr as $key => $value) {echo "Schlüssel: $key; Wert: $value<br>\n"; }

Überblick

Page 18: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 18

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Operationen (10)� break

� ‚break‘ bricht die Ausführung der aktuellen for-, while- oder switch-Anweisungs-Sequenzab.

� Einem ‚break‘ kann optional ein numerisches Argument angehängt werden, das die Anzahl der abzubrechenden Befehls-Sequenzen enthält.

� Beispiel:$i = 0;while (++$i) {

switch ($i) {case 5: echo "Bei 5<br>\n"; break 1;/* Beendet nur switch. */case 10: echo "Bei 10; quitting<br>\n"; break 2;/* Beendet switch und while. */default: break;

}}

Überblick

Page 19: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 19

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Operationen (11)� continue

� ‚continue‘ wird innerhalb von Schleifen gebraucht. Die Schleife wird an der aktuellen Stelle abgebrochen und es wird der nächste Durchlauf begonnen.

� ‚continue‘ kann optional ein numerisches Argument erhalten, das die Anzahl der zu überspringenden Schleifendurchläufe beinhaltet.

$i = 0;while ($i++ < 5) {

echo "Aussen<br>\n";while (1) {

echo " Mitte<br>\n";while (1) { echo " Innen<br>\n"; continue 3; }echo "Das wird nie ausgegeben.<br>\n";}

echo "Dies auch nicht.<br>\n"; }

� switch

� Die switch-Anweisung ist gleichbedeutend mit einer Reihe von if-Anweisungen mit dem gleichen Parameter. Häufig wollen Sie ein und die selbe Variable (bzw. den selben Ausdruck) mit verschiedensten Werten vergleichen und in Abhängigkeit vom Auswertungsergebnis verschiedene Programmteile ausführen. Genau das ermöglicht die switch-Anweisung.

Überblick

Page 20: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 20

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Operationen (12)

� Beispielswitch ($i) {

case 0: print "i ist gleich 0"; break;case 1: print "i ist gleich 1"; break;case 2: print "i ist gleich 2"; break;default: print "i ist weder 0, 1 noch 2";

}

� include()-Befehl

� Syntax für den Aufruf des include()-Befehls

include("dateiname");

� Funktion: fügt an dieser Stelle den Inhalt der Datei `dateiname` ein

� Ermöglicht die zentrale Pflege von Quellcode

� Besonderheiten:

� Die Datei, die eingefügt wird, wird als HTML-Code interpretiert und muss daher, um als PHP-Code interpretiert zu werden, in <?php ... ?> eingebettet werden

� Wenn include() in Verbindung mit Bedingungen oder Schleifen eingesetzt wird, muss es immer in geschweiften Klammern geschrieben werden

Überblick

Page 21: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 21

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Operationen (13)� Beispiel

/* So ist es falsch */if ($Bedingung) include("Datei.inc");

/* So ist es richtig */if ($Bedingung) { include("Datei.inc"); }

� require()-Befehl

� Syntax für den Aufruf des require()-Befehls

require("dateiname");

� Funktionsweise: require() funktioniert analog zu include()

� Unterschiede zu include():

� require() wird immer ausgeführt, also auch dann, wenn es eigentlich abhängig von einer if-Bedingung nicht ausgeführt werden dürfte

� innerhalb einer Schleife (FOR, WHILE) wird require() nur einmal interpretiert

� bei Anwendung der require()-Anweisung auf eine nicht vorhandene Datei reagiertPHP mit einem ,,Fatal error:``; bei include() gibt PHP ein ,,Warning`` aus

Überblick

Page 22: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 22

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Funktionen (1)

Überblick

� Funktionen dienen in PHP zum Zusammenfassen mehrerer Befehle zu einem Aufruf

� Die Syntax lautet wie folgt:function foo($arg_1, $arg_2, ..., $arg_n) {

echo "Example function.\n"; return $retval; }

� Erläuterung:

� Die Funktion foo() bekommt die Argumente “Arg_1” bis “Arg_n” übergeben und gibt den Wert der Variablen `retval` zurück

� Wird kein `return` in der Funktion benutzt, hat man dasselbe Verhalten wie bei einer Prozedur, d.h., PHP unterscheidet nicht zwischen Funktionen und Prozeduren

� Beispielfunction my_sqr($num) {// liefert das Quadrat von $num zurückreturn $num * $num; }

echo my_sqr(4); // gibt 16 ausmy_sqr(4); // ruft die Funktion auf, es passiert aber nichts

Page 23: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 23

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Funktionen (2)

Überblick

� Funktionsparameter (call by reference / call by value)

� Normalerweise werden in PHP Werteparameter übergeben (call by value)

� Will man jedoch die Änderungen der Parameter in der Funktion auch in der aufrufendenFunktion haben, muss man mit Variablenparametern bzw. Referenzparametern arbeiten (call by reference)

� Variablenparameter werden mit einem `&` im Funktionskopf gekennzeichnet

� Beispielfunction foo1 ($st) {$st .= 'und etwas mehr.';}

function foo2 (&$st) {$st .= 'und etwas mehr.'; }

$str = 'Dies ist ein String, ';echo $str; // Ausgabe: 'Dies ist ein String, ';

foo1 ($str);echo $str; // Ausgabe: 'Dies ist ein String, ';foo2 ($str);echo $str; // Ausgabe: 'Dies ist ein String, und etwas mehr.';

Page 24: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 24

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Oracle Funktionen (1)

PHP & Oracle

� PHP unterstützt Oracle Datenbanken mittels der folgenden Funktionen (Ausschnitt):

Name Funktion

OCILogon(string user, string pass[, string db]) Öffnet eine Verbindung zur Oracle Datenbank;Voraussetzung: Umgebungsvariablen wieORALCE_SID, ORACLE_HOME und TNS_ADMINmüssen gesetzt sein und eine gültige User- und Passwort-Kombination wird benötigt

OCIParse(int conn, string query) Parst ein SQL-Statement OCIExecute(int stmt) Führt ein SQL-Statement ausOCINumCols(int stmt) Gibt die Anzahl der Spalten des Anfragergebisses zurückOCIFetch(int stmt) Holt sich das nächste Ergebnistupel und speichert es im

Ergebnispuffer OCIResult(int stmt, mixed column) Liefert den Wert der angegebenen Spalte des aktuellen

ErgebnistupelsOCIFreeStatement(int stmt) Gibt alle von einem SQL-Statement allokierten Ressourcen freiOCILogoff(int conn) Schließt eine Datenbankverbindung

� Das komplette von PHP unterstützte Funktionsspektrum für Oracle Datenbanken befindet sich im PHP Manual unter www.php.net/manual

Page 25: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 25

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Oracle Funktionen (2)

PHP & Oracle

� Beispiel: Relation Kaffeevorrat

� Datenbankzugriff

� Schritt 1: Setzen der DB Variablen

PutEnv("ORACLE_HOME=/net/lin_local/orahome/9.0.1");PutEnv("TNS_ADMIN=/net/lin_local/oracle/orahome/network/admin");

� Schritt 2: Erzeugung einer Verbindungsvariable

$connection = OCILogon("scott", "tiger", "db11i");

Kaffeename Roestungstyp Menge

French Roast

Kenya

Ethiopian Harrar

Sumatra

Columbian

dark

medium

medium

dark

light

10

6

35

8

12

Page 26: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 26

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Oracle Funktionen (3)

PHP & Oracle

� Schritt 3: Überprüfen der Verbindung

if (!$connection) {echo "Couldn't make a connection!"; exit;

}

� Schritt 4: Erzeugen eines SQL-Statements

$sql = "SELECT Kaffeename, Roestungstyp, MengeFROM Kaffeevorrat ORDER BY Menge DESC";

� Schritt 5: Parsen des SQL-Statements im Kontext der DB-Verbindung

$sql_statement = OCIParse($connection,$sql);

� Schritt 6: Ausführen des geparsten SQL-Statements auf der DB

OCIExecute($sql_statement);

� Schritt 7: Ergebnisverarbeitung

Page 27: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 27

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Oracle Funktionen (4)

PHP & Oracle

// Ermittlung der Spaltenanzahl der Ergebnisrelation$num_columns = OCINumCols($sql_statement);

// Beginn der Formatierung der Ergebnisausgabeecho "<TABLE BORDER=1>";echo "<TR><TH>Kaffeename</TH><TH>Roestungstyp</TH><TH>Menge</TH>";

// Ausgabe der Resultate per Tupel

while (OCIFetch($sql_statement)) {echo "<TR>";for ($i = 1; $i < $num_columns; $i++) {

$column_value = OCIResult($sql_statement,$i);echo "<TD>$column_value</TD>";

}echo "</TR>";

}echo "</TABLE>";

� Schritt 8: Freigabe von Ressourcen und Abbau der DB-Verbindung

OCIFreeStatement($sql_statement);OCILogoff($connection);

Page 28: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 28

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Oracle Funktionen (5)

PHP & Oracle

� Das komplette PHP-Skript<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"><html><head><title>Aussage der Relation Kaffeevorrat</title></head><body><?php

// set db environment variablesPutEnv("ORACLE_HOME=/net/lin_local/orahome/9.0.1");PutEnv("TNS_ADMIN=/net/lin_local/oracle/orahome/network/admin");// create connection$connection = OCILogon(“scott",“tiger”, “db11i”);// test connectionif (!$connection) {

echo "Couldn't make a connection!";exit;}// create SQL statement$sql = "SELECT Kaffeename, Roestungstyp, MengeFROM Kaffeevorrat ORDER BY Menge DESC";// parse SQL statement$sql_statement = OCIParse($connection,$sql);// execute SQL queryOCIExecute($sql_statement);// get number of columns for use later$num_columns = OCINumCols($sql_statement);

Page 29: PHP Überblick PHP    · PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Zurückgegeben wird die Ausgabe

14. Januar 2002Seite 29

PHP

A. Seifert, 2001/02 – Informationssysteme: 8. Informationssystem für das WWW

Oracle Funktionen (6)

PHP & Oracle

echo "<TABLE BORDER=1>";echo "<TR><TH>Kaffeename</TH><TH>R&ouml;stungstyp</TH><TH>Menge</TH>";

// Ausgabe der Resultate per Tupel

while (OCIFetch($sql_statement)) {echo "<TR>";for ($i = 1; $i < $num_columns; $i++) {

$column_value = OCIResult($sql_statement,$i);echo "<TD>$column_value</TD>";

}echo "</TR>";

}echo "</TABLE>";OCIFreeStatement($sql_statement);OCILogoff($connection);

?></body></html>


Recommended