Schnellubersicht PHP 5 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

씰 씰S c h ne l l ü b ers i cht PHP 5

Unser Online-Tipp für noch mehr Wissen …

... aktuelles Fachwissen rund um die Uhr – zum Probelesen, Downloaden oder auch auf Papier.

www.InformIT.de

씰 씰Sc h ne l l ü b er s ic h t

PHP 5 Die praktische Referenz CORNELIA BOENIGK FRIEDHELM BETZ

씰씰

eBook

Die nicht autorisierte Weitergabe dieses eBooks ist eine Verletzung des Urheberrechts!

Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Die Informationen in diesem Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet werden. Umwelthinweis: Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt.

10 9 8 7 6 5 4 3 2 1 06 05 04 ISBN 3-8272-6751-X

© 2004 by Markt+Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Coverkonzept: independent Medien-Design, Widenmayerstraße 16, 80538 München Lektorat: Boris Karnikowski, [email protected] Herstellung: Claudia Bäurle, [email protected] Layout und Satz: Michael und Silke Maier, Ingolstadt (www.magus-publishing.de) Druck und Verarbeitung: Kösel, Kempten, www.KoeselBuch.de Printed in Germany

Inhaltsverzeichnis Vorwort Schreiben Sie uns!

Teil 1: Sprachsyntax

8 9

10

1

Grundlegendes

11

1.1 1.2 1.3 1.4

Namenskonventionen Anweisungen Kommentare Systeminformationen

11 11 12 12

2

Datentypen

13

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8

Der Typ Boolean Integerzahlen Fließkommazahlen Zeichenketten Arrays Klassen und Objekte Ressourcen NULL

13 14 14 15 17 18 19 20

3

Variablen und Konstanten

21

3.1 3.2 3.3 3.4 3.5

Variablen definieren Der Gültigkeitsbereich von Variablen Variablen übergeben Variablen konvertieren Konstanten

21 22 23 26 32

4

Vordefinierte Variablen und Konstanten

33

4.1 4.2

Vordefinierte Variablen Vordefinierte Konstanten

33 35

5

Operatoren

37

5.1 5.2

Die Rangfolge der Operatoren in absteigender Reihenfolge Logische Operatoren

37 38

씰 씰 S c h ne l l ü be rs i cht PHP 5

5

Inhaltsverzeichnis

씰씰

Inhaltsverzeichnis

5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12

Arithmetische Operatoren Inkrement- und Dekrement-Operatoren Operatoren für Zeichenketten Der Zuweisungsoperator Vergleichsoperatoren Bit-Operatoren Steuerung der Fehlerausgabe mit @ Backticks, der Shell-Operator Arrays verbinden mit + Der ternäre Operator (Trinitätsoperator)

38 39 39 39 40 41 42 42 43 43

6

Kontrollstrukturen

44

6.1 6.2 6.3 6.4

Alternativen Schleifen Steueranweisungen Alternative Syntax für Kontrollstrukturen

44 48 52 57

7

Objektorientierung in PHP 4

58

7.1 7.2 7.3 7.4 7.5 7.6 7.7

Einschränkungen Schlüsselwörter Konstruktoren Statische Methodenaufrufe mit :: Vererbung Überschreiben von Methoden Objekte und Referenzen

58 58 60 61 61 63 64

8

Objektorientierung in PHP 5

66

8.1 8.2 8.3 8.4

Begrifflichkeiten Referenzen und Kopien Einheitliche Konstruktoren und Destruktoren Zugriffsbeschränkungen für Eigenschaften, Methoden und Klassen Konstanten in Klassen Methoden Abstrakte Klassen und Methoden Objektschnittstellen (Interface) Typen-Hinweise (type hints) Ausnahmebehandlung (Exceptions) Dereferenzierung von Objekten

66 67 69

8.5 8.6 8.7 8.8 8.9 8.10 8.11

6

70 71 71 74 74 75 77 78

씰 씰S ch ne l lü b er s ic h t PHP 5

80

9

Funktionen – von Apache bis Zeichenketten

9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.10 9.11 9.12 9.13 9.14 9.15 9.16 9.17 9.18 9.19 9.20 9.21

Apache-Funktionen Array-Funktionen Funktionen zur Ausgabesteuerung Datums- und Zeitfunktionen Externe Programme ausführen Funktionen zum Umgang mit dem Dateisystem Fehler behandeln und protokollieren HTTP-Funktionen IMAP-Funktionen Klassen- und Objektfunktionen Mail-Funktionen Mathematische Funktionen Mathematische Funktionen mit beliebiger Genauigkeit MySQL-Funktionen MySQLi-Funktionen Netzwerkfunktionen Optionen und Informationen Funktionen für reguläre Ausdrücke Session-Funktionen Socket-Funktionen Funktionen zur Verwaltung von gemeinsam genutztem Speicher Stream- und Wrapper-Funktionen SQLite-Funktionen Funktionen zum Umgang mit URLs Variablen-Funktionen Verzeichnisfunktionen XML-Funktionen Funktionen für Zeichenketten Sonstige Funktionen

81 85 113 119 127 132 160 165 168 195 200 201 216 220 238 264 270 285 295 303

Stichwortverzeichnis

420

씰 씰 S c h ne l l ü be rs i cht PHP 5

7

9.22 9.23 9.24 9.25 9.26 9.27 9.28 9.29

81

317 320 335 347 351 363 368 379 412

Inhaltsverzeichnis

Teil 2: Referenz

Vorwort »Aller Anfang ist schwer« sagt der Volksmund. Für PHP trifft diese Behauptung nicht zu. Gemessen an anderen Programmiersprachen lässt sich PHP leicht erlernen, und selbst Programmier-Anfänger können in kurzer Zeit lauffähige Programme entwickeln. Die Gründe hierfür sind der überschaubare Sprachumfang von PHP, die einfache Syntax und die umfangreiche Funktionsreferenz, die für alle erdenklichen Anwendungen vordefinierte Funktionen zur Verfügung stellt. Dieses Buch ist als Kurzreferenz konzipiert und nicht als Lehrbuch. Es soll Ihnen die Sprachelemente sowie die wichtigsten und am häufigsten benutzten PHP-Funktionen übersichtlich gegliedert darbieten und Sie damit bei Ihrer täglichen Arbeit unterstützen. Einige Quelltextbeispiele zeigen Ihnen, wie Sie die Funktionen einsetzen und welche Ausgaben sie generieren. Den Neuerungen im Objektmodell von PHP 5 mit seinen neuen Funktionen und Möglichkeiten ist ein eigenes Kapitel gewidmet. Außerdem werden die PHP-Erweiterungen, die PHP 5 mit sich bringt, SQLite, MySQLi und Streams in der Funktionsreferenz beschrieben. Wir bedanken uns beim Verlag für die gute Zusammenarbeit, bei Herrn Dr. Egon Schmid, der immer ein offenes Ohr für unsere Fragen hatte, und bei Georg Richter, dem Autor der MySQLi-Extension, für die Duchsicht dieses Kapitels. Pliezhausen, Ludwigshafen, April 2004 Cornelia Boenigk Friedhelm Betz

8

씰 씰S ch ne l lü b er s ic h t PHP 5

Schreiben Sie uns! Autor und Verlag sind immer bemüht Ihnen, unseren Kunden und Lesern, die optimale Information zum Thema zu bieten. Scheuen Sie sich daher nicht, uns über Fehler und andere Ärgernisse zu informieren. Nur so können wir laufend an der Verbesserung unserer Bücher arbeiten. Aber auch Lob, Erfolgserlebnisse und Ihre Ergebnisse interessieren uns. Schreiben Sie uns unter [email protected]. Ihre Mails werden sofort an die Autorin weitergeleitet. Ihr Markt+Technik-Buchlektorat Boris Karnikowski, [email protected]

씰 씰 S c h ne l l ü be rs i cht PHP 5

9

Teil 1

Sprachsyntax

씰씰

1 Grundlegendes

Telefon:

Ausgabe: Das ist eine Anweisung, die sich über mehrere Zeilen erstreckt. Jetzt kommt noch ein Nachschlag.

1.3 Kommentare PHP kennt zwei Arten von Kommentaren: Kommentare, die sich über mehrere Zeilen erstrecken, und einzeilige Kommentare. Mehrzeilige Kommentare werden mit einem /* eingeleitet und schließen mit */. Alles zwischen diesen beiden Zeichengruppen wird als Kommentar betrachtet und nicht interpretiert. Einzeilige Kommentare beginnen entweder mit // oder mit #. Alles, was danach kommt, wird bis zum Ende der Zeile oder bis zu einem schließenden PHP-Tag als Kommentar betrachtet. Die folgenden Beispiele sind alle gleichwertig:

1.4 Systeminformationen PHP enthält eine Funktion, mit der es sehr einfach ist, umfassende Informationen über die verwendete Distribution und die Systemumgebung zu erhalten. Erstellen Sie eine Datei mit dem Inhalt

und speichern Sie sie mit der Dateiendung .php im Dokumenten-Verzeichnis Ihres Webservers. Wenn Sie diese Datei aufrufen, erhalten Sie detaillierte Informationen über die installierte PHP-Version, die Umgebungsvariablen, den verwendeten Webserver usw.

12

씰 씰S ch ne l lü b er s ic h t PHP 5

2 Datentypen

2.1 Der Typ Boolean Diesen Datentyp gibt es seit PHP 4, und er ist mit Abstand der einfachste Typ, da er nur die beiden Werte TRUE und FALSE kennt. (Die beiden Wahrheitswerte sind case-insensitive). Immer, wenn Sie einen Vergleichsoprator benutzen, ist das Ergebnis vom Typ boolean, ebenso werden Bedingungen (beispielsweise für Schleifen) zu einem booleschen Ergebnis ausgewertet.

씰 씰 S c h ne l l ü be rs i cht PHP 5

13

2.1 Der Typ Boolean

Einer der Gründe für die Einfachheit von PHP ist die kleine Menge der unterstützten Datentypen. PHP kennt vier skalare Datentypen: 쐍 Wahrheitswerte (boolean) 쐍 Positive und negative Ganzzahlen (integer) 쐍 Fließkommazahlen (float oder double oder real) 쐍 Zeichenketten (string) Des Weiteren gibt es zwei zusammengesetzte Datentypen: 쐍 Array 쐍 Object und seit PHP 4 zwei spezielle Datentypen: 쐍 Resource 쐍 NULL Der Datentyp mixed, der im Manual öfters als Rückgabewert oder Argument von Funktionen angegeben ist, bedeutet, dass diese Funktion Werte unterschiedlicher Datentypen zurückgeben oder mit verschiedenen Datentypen als Argumente aufgerufen werden kann. PHP ist eine schwach typisierte Sprache. Das bedeutet, dass einer Variablen bei der Definition kein Datentyp zugeordnet werden muss. In den meisten Fällen entscheidet PHP anhand der Operationen, die auf die Variable angewendet werden, welchen Typ die Variable hat.

2.2 Integerzahlen

Integerzahlen

2.2

Ganzzahlige positive oder negative Werte können dezimal, hexadezimal oder oktal angegeben werden. Bei der hexadezimalen Darstellung wird 0x (null x) vorangestellt, bei der oktalen Darstellung eine 0 (null).

Ausgabe: $i1, $i2 und $i3 sind gleich.

Der darstellbare Wertebereich ist vom verwendeten Betriebssystem abhängig. Sollten Sie mit Ganzzahlen arbeiten, die über den Wertebereich Ihres Betriebssystems hinausgehen, konvertiert PHP diese Werte in Fließkommazahlen. Diese können Sie nicht in eine Integerzahl zurückkonvertieren, da hierfür kein Ergebnis definiert ist.

2.3 Fließkommazahlen Dieser Datentyp hat mehrere Synonyme: float, double oder real. Alle bezeichnen reelle Zahlen mit einer Genauigkeit von üblicherweise 14 Nachkommastellen. Bei komplexen Berechnungen müssen Sie mit Rundungsfehlern rechnen. Fließkommazahlen können in dezimaler oder exponentieller Schreibweise angegeben werden.

Ausgabe: 123.45 123.45

14

씰 씰S ch ne l lü b er s ic h t PHP 5

2.4 Zeichenketten

Ausgabe: Achtung, hier kommt ein $s. Achtung, hier kommt ein Karton.

Alternativ dazu können Sie die so genannte Heredoc-Syntax verwenden, die seit PHP 4 verfügbar ist. Diese Notation ist mit den doppelten Anführungszeichen vergleichbar; auch hier werden Variablen interpretiert, aber Anführungszeichen innerhalb des Strings müssen nicht mit Escape-Zeichen versehen werden. Ein String beginnt mit den Zeichen

Ausgabe: Tübingen hat die PLZ 72070 Pliezhausen hat die PLZ 72124 Windeck hat die PLZ 51570

Ausgabe: Die PLZ von Tübingen ist 72070.

Obwohl Zeichenketten keine Arrays sind, können Sie mit einer ähnlichen Syntax auf die einzelnen Elemente zugreifen.

16

씰 씰S ch ne l lü b er s ic h t PHP 5

Ausgabe: G G e e

Ein Array ist ein zusammengesetzter Datentyp. Seine Komponenten oder Elemente sind Name-Wert-Paare. Dieser Name wird oft als Index oder Key bezeichnet und ist entweder vom Typ integer oder string. Arrays, die einen Integerwert als Index haben, nennt man numerische Arrays; wenn der Index ein String ist, nennt man sie assoziativ. Für die Werte, die einem Arrayelement zugewiesen werden können, gibt es keine Einschränkungen. Das können auch wiederum Arrays sein, so dass man auf diese Weise mehrdimensionale Arrays definieren kann. Arrays können mit dem PHP-Sprachkonstrukt array() erzeugt werden oder durch explizites Zuweisen von Werten.

Ausgabe: array(3) { [0]=> int(123) [1]=> int(45) [2]=> int(678) }

Wenn Sie keinen Index angeben, vergibt PHP automatisch numerische Indizes, die bei 0 beginnen. Achten Sie bei der Definition asso-

씰 씰 S c h ne l l ü be rs i cht PHP 5

17

Arrays

2.5

2.5 Arrays

ziativer Arrays darauf, die Zeichenketten-Indizes in Anführungszeichen einzuschließen.

Klassen und Objekte

2.6

Ausgabe: array(3) { ["postgres"]=> string(18) "http://postgres.de" ["Norbert"]=> string(14) "http://itbw.de" ["Conni"]=> string(26) "http://cornelia-boenigk.de" }

2.6 Klassen und Objekte Klassen sind Datenstrukturen, in denen Variablen (Eigenschaften, Properties) und Funktionen (Methoden) definiert sind, die mit diesen Variablen arbeiten. Sie sind eine Art »Bauplan«, aus dem Objekte abgeleitet werden. Die Definition einer Klasse beginnt mit dem Schlüsselwort class, gefolgt von einem Namen für die Klasse, der Definition der Klassenvariablen und ihrer Funktionen. Um ein Objekt dieser »Bauart« zu erzeugen, wird (in PHP 4) der Operator new für die Klasse aufgerufen, und der Operator enthält damit alle Variablen und Funktionen der Klasse. Klassen können selbst definiert oder in PHP enthalten (vordefiniert) sein. Die Definition einer Klasse kann nicht in mehrere PHP-Blöcke aufgeteilt sein, sondern muss immer innerhalb eines -Paares stehen.

Ausgabe: Johann 33

Aus dem Bauplan benutzer wurde das Objekt $user1 erzeugt. Auf diese Weise können Sie beliebig viele Objekte mit derselben Struktur erzeugen.

2.7 Ressourcen Eine Ressource ist eine Art generischer Datentyp, der mit der Version PHP 4 eingeführt wurde und eine Referenz auf ein Objekt enthält. Dieses Objekt kann eine Verbindungskennung einer Datenbankverbindung sein, ein Handler für eine Datei, eine Referenz auf ein Abfrageergebnis usw. Ressourcen sind Rückgabewerte von PHP-Funktionen, die von anderen PHP-Funktionen als Parameter erwartet und/ oder in Bedingungen ausgewertet werden können.

씰 씰 S c h ne l l ü be rs i cht PHP 5

19

NULL

2.8

Dieses Beispiel öffnet die Datei /home/conni/datei.txt zum Lesen und gibt die Ressource $handle zurück.

2.8 NULL Dies ist ein spezieller Typ, der als einzig möglichen Wert NULL enthalten kann. Er zeigt an, dass eine Variable keinen Wert besitzt. Dies trifft zu, wenn eine Variable zwar schon definiert wurde, ihr aber noch kein Wert zugewiesen wurde, oder wenn ihr der Wert NULL zugewiesen wurde oder wenn sie mit unset() gelöscht wurde. Mit der Funktion is_null() kann dies abgefragt werden: Sie gibt TRUE zurück, wenn der Variablenwert NULL ist.

20

씰 씰S ch ne l lü b er s ic h t PHP 5

3 Variablen und Konstanten 3.1 Variablen definieren

Wenn Sie einen Wert gleichzeitig mehreren Variablen zuweisen wollen, schreiben Sie:

Variablen können mit einer alternativen Syntax als Ausdruck definiert werden. Der Ausdruck steht dabei in geschweiften Klammern:

씰 씰 S c h ne l l ü be rs i cht PHP 5

21

3.1 Variablen definieren

In PHP beginnen Variablen mit einem Dollarzeichen, und ihre Namen dürfen beliebig lang sein. Bei den Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden. Sie dürfen überall im Programm definiert werden, und bei ihrer Definition darf ihnen direkt ein Wert zugewiesen werden. Wird dies nicht getan, enthält die Variable den Wert NULL. Abhängig von dem Wert, der einer Variablen zugewiesen wird, ordnet PHP der Variablen einen Datentyp zu.

Ausgabe: ja, ja, ja, ja,

Der Gültigkeitsbereich von Variablen

3.2

ich ich ich ich

– – – -

1 2 3 4

Für die Form ${$c} gibt es in PHP eine Kurzform: $$c. Dies nennt man eine variable Variable.

3.2 Der Gültigkeitsbereich von Variablen Variablen sind in dem Programmblock gültig, in dem sie definiert wurden, aber (im Gegensatz zu einigen anderen Programmiersprachen) nicht in benutzerdefinierten Funktionen innerhalb dieses Programmblocks. Man spricht in diesem Zusammenhang auch oft vom »Sichtbarkeitsbereich«. Falls ein Programm andere Dateien mit include() oder require() einbindet, sind die Variablen auch dort gültig bzw. sichtbar. Damit Variablen auch innerhalb von Funktionen benutzt werden können, müssen sie mit dem reservierten Wort global in der importierenden Funktion als "global" deklariert werden oder über das vordefinierte Array $_GLOBALS["variablenname"] angesprochen werden. Dieses Array ist überall verfügbar und heißt deswegen superglobal. (In PHP-Versionen vor 4.1 hieß dieses Array $HTTP_GLOBAL_VARS und war nicht superglobal.)

Ausgabe: aus demo1 Hallo aus demo2 Hallo aus demo2

3.3.1

call by value

Mit der Übergabe einer Variablen an eine Funktion setzen Sie diese Variable in den Gültigkeitsbereich dieser Funktion und brauchen sie nicht als global zu definieren. Intern erzeugt PHP eine Kopie der Ursprungsvariablen und übergibt deren Wert an die Funktion. Werden die Variablen innerhalb der Funktion modifiziert, sind diese Änderungen im umgebenden Programmblock nicht sichtbar. Sollen diese Variablenwerte auch noch nach dem Verlassen einer Funktion zur Verfügung stehen, müssen die Variablen mit dem Schlüsselwort static als statische Variablen definiert werden.

Ausgabe: aus dem Funktionsrumpf: HALLO hallo

Da dies oft nicht das erwünschte Ergebnis ist, können Sie Referenzen auf Variablen definieren.

씰 씰 S c h ne l l ü be rs i cht PHP 5

23

Variablen übergeben

3.3

3.3 Variablen übergeben

3.3.2

call by reference

Um eine Variable als Referenz zu kennzeichnen, wird ihr ein & vorangestellt. Damit verweisen sowohl die Variable als auch ihre Referenz auf dieselbe Speicherstelle. Das hat zur Folge, dass das Original und die Referenz immer denselben Wert besitzen. Nur benannte Variablen können referenziert werden.

Variablen übergeben

3.3

Ausgabe: $a2 $a2 $b2 $c2

und $b2 haben denselben Wert: 33 und $b2 haben denselben Wert: 66 hat den Wert 66 (die Kopie) hat immer noch den Wert 33

Der Vorteil von Referenzen zeigt sich vor allem bei der Parameterübergabe von großen Strukturen, wie Arrays oder Objekten, da diese nicht mehr kopiert werden. Außerdem zeigt er sich bei der Übergabe an Funktionen, wenn Modifikationen der Variablen im umgebenden Programmblock sichtbar sein sollen.

24

씰 씰S ch ne l lü b er s ic h t PHP 5



3.3

aus dem Funktionsrumpf: HALLO HALLO

3.3.3

Referenzen und Arrays

Wenn Sie einem Array in einer Schleife Referenzen zuweisen möchten, benutzen Sie keine each- oder foreach-Schleifen, denn diese erzeugen jedes Mal eine neue Referenz auf die Variable $elem, die immer den Wert des aktuellen Arrayelements enthält, über das gerade iteriert wird.

Ausgabe: 0 = drei | 1 = drei | 2 = drei

Wahrscheinlich haben Sie dieses Ergebnis nicht erwartet. Benutzen Sie stattdessen eine for-Schleife:

Ausgabe: 0 = eins | 1 = zwei | 2 = drei |

Variablen konvertieren

3.4

3.3.4

Referenzen als Rückgabewert

Wenn in der Funktionsdefinition ein & vor dem Funktionsnamen angegeben ist, gibt die Funktion eine Referenz zurück.

Ausgabe: Ach wie gut, dass niemand weiss ...

3.4 Variablen konvertieren PHP stellt eine ganze Menge von Funktionen zum Konvertieren von Werten zur Verfügung. Sie werden zusammengefasst in Kapitel 9.25, Variablen-Funktionen, beschrieben. Es gibt aber noch eine andere Methode, eine Variable umzuwandeln, indem man einfach den Zieldatentyp in Klammern vor die umzuwandelnde Variable schreibt. Damit sind die folgenden Typumwandlungen möglich: 쐍 (int), (integer) – nach integer 쐍 (bool), (boolean) – nach boolean 쐍 (float), (double), (real) – nach float 쐍 (string) – nach string 쐍 (array) – nach array 쐍 (object) – Umwandlung in ein Objekt

26

씰 씰S ch ne l lü b er s ic h t PHP 5

3.4.1

In einen Wahrheitswert konvertieren

Der boolesche Wert FALSE oder false, die Integer-Zahl 0, eine leere Zeichenkette, die Zeichenkette 0, die Fließkommazahl 0.0, ein leeres Array, ein Objekt ohne Elemente, nicht definierte Variablen und die spezielle Variable NULL werden als FALSE interpretiert. Alle anderen Werte werden als TRUE interpretiert.

3.4 | '; else echo 'TRUE | '; | '; else echo 'TRUE | '; | '; else echo 'TRUE | '; | '; else echo 'TRUE | ';

Ausgabe: FALSE | FALSE | FALSE | TRUE | Beachten Sie, dass die Variable $test in der letzten Zeile zu TRUE

ausgewertet wird. Um eine Variable auf den Typ boolean zu testen, benutzen Sie die Funktion is_bool().

3.4.2

In eine Ganzzahl konvertieren

Bei Umwandlungen von Dezimalzahlen in Integerwerte werden die Nachkommastellen abgeschnitten, und es wird nicht gerundet. Zum Runden benutzen Sie die Funktion round(). (int) und (integer) sind gleichbedeutend.

Ausgabe: 99 | 0 | 1 | 0 | 0 씰 씰 S c h ne l l ü be rs i cht PHP 5

27

Variablen konvertieren

Undefinierte Werte werden zu 0 konvertiert, siehe pi im Beispiel. Der boolesche Wert TRUE wird zu 1 konvertiert, FALSE sowie ein leerer String werden zu 0 konvertiert.

3.4.3

Variablen konvertieren

3.4

In eine Fließkommazahl konvertieren

Um Werte in Fließkommazahlen zu konvertieren, können Sie die Typbezeichnungen (float), (real) oder (double) verwenden. Sie können aber auch den Dezimalpunkt verwenden, um einen Wert in eine Fließkommazahl umzuwandeln.

Ausgabe: 456 | 0.12345 | 1 | 0 | 0

3.4.4 In eine Zeichenkette konvertieren Zahlenwerte oder boolesche Werte können problemlos in den Typ string umgewandelt werden. Dabei werden FALSE sowie NULL in einen leeren String konvertiert. Variablen werden auch dann in einen String umgewandelt, wenn sie in doppelte Anführungszeichen eingeschlossen sind.

Ausgabe: 1 | 1.2345 | leerer String | leerer String

Wenn Sie ein Array in einen String umwandeln, erhalten Sie als Ergebnis das Wort »Array«, genauso gibt die Umwandlung eines Ob-

28

씰 씰S ch ne l lü b er s ic h t PHP 5

jekts in einen String das Wort »Object« zurück. Ressourcen werden von PHP automatisch in Strings mit dem Format »Resource id #3« umgewandelt.

3.4.5

In ein Array konvertieren

Alle skalaren Datentypen können in ein Array umgewandelt werden, das den Wert dieser Variablen als einziges Element an der Indexposition 0 enthält.

Variablen konvertieren

Ausgabe: $arr1 ist ein Array, Inhalt: hallo $arr2 ist ein Array, Inhalt: 777

Objekte können in assoziative Arrays umgewandelt werden. Der Name der Variablen, die in der Klasse definiert ist, aus der das Objekt abgeleitet wurde, wird dabei zum Index, und ihr Wert wird zum Inhalt des Arrayelements.

Ausgabe: $u1 ist ein Array name = Egon gebjahr = 1954

Wenn Sie einen Nullwert, beispielsweise eine nicht initialisierte Variable, in ein Array umwandeln, erhalten Sie ein leeres Array.

3.4.6 In ein Objekt konvertieren Alle Variablen eines skalaren Datentyps werden in ein Objekt mit einer Membervariablen namens scalar umgewandelt. Hat die Variable den Wert NULL, wird ein leeres Objekt erzeugt.

30

씰 씰S ch ne l lü b er s ic h t PHP 5



Ausgabe: $zahlobj ist ein Objekt mit 1 Elementen. scalar = 23

Die Umwandlung eines Arrays in ein Objekt erzeugt eine neue Instanz der eingebauten Klasse stdClass mit so vielen Membervariablen, wie das Array Elemente hat.

Ausgabe: $zahlenobj ist ein Objekt mit 3 Elementen. Name der Klasse: stdClass 0 = eins 1 = zwei 2 = drei

씰 씰 S c h ne l l ü be rs i cht PHP 5

31

Variablen konvertieren

3.4

3.5 Konstanten

Konstanten

3.5

Konstanten enthalten Werte, die aber, im Unterschied zu Variablen, nach ihrer Definition nicht mehr verändert werden können. Sie werden mit der Funktion define() definiert. Konstanten beginnen nicht mit dem Dollarzeichen und bei den Namen wird zwischen Groß- und Kleinschreibung unterschieden. Konstanten können nur skalare Werte enthalten. Ihr Gültigkeitsbereich ist nicht beschränkt. Üblicherweise werden Konstantennamen in Großbuchstaben angegeben.

32

씰 씰S ch ne l lü b er s ic h t PHP 5

4 Vordefinierte Variablen und Konstanten 4.1 Vordefinierte Variablen



Mit der Konfigurationsoption register_long_arrays ist es ab PHP 5

möglich, die alten Arrays zu deaktivieren.

4.1.1

$php_errormsg

In dieser Variablen wird die zuletzt von PHP generierte Fehlermeldung gespeichert, sofern in der Konfigurationsdatei, php.ini, die Option track_errors aktiviert ist. (Dies ist die Standardeinstellung.) Zugreifen kann man auf diese Fehlermeldung nur in dem Gültigkeitsbereich, in dem der Fehler auftrat. 씰 씰 S c h ne l l ü be rs i cht PHP 5

33

4.1 Vordefinierte Variablen

In PHP ist eine große Anzahl vordefinierter Variablen enthalten, die mit der Installation automatisch zur Verfügung stehen. Bis auf eine Ausnahme, $php_errormsg, sind dies assoziative Arrays, in denen Umgebungsvariablen, HTTP-Variablen oder Ähnliches gespeichert sind. Mit PHP 4.1.0 wurden eine Reihe neuer Array-Variablen eingeführt, die zum großen Teil neue Versionen bisheriger Array-Variablen sind. Die Namen der neuen Arrays sind mit $_NAME bezeichnet und entsprechen inhaltlich den Arrays $HTTP_NAME_VARS der älteren PHP-Versionen. Es gibt aber einen wesentlichen Unterschied: Die neuen Arrays sind »superglobal«. Das bedeutet, sie sind überall sichtbar und müssen nicht mit global in den Sichtbarkeitsbereich von Funktionen oder Methoden importiert werden, unabhängig von der Konfigurationsoption register_globals. Eine formatierte Anzeige eines Arrays erhalten Sie mit:

4.1.2

$GLOBALS

In diesem Array sind Referenzen zu allen Variablen gespeichert, die gegenwärtig im globalen Gültigkeitsbereich des aktuellen Scripts definiert sind. $GLOBALS ist superglobal.

4.1.3

Vordefinierte Variablen

4.1

$_ENV bzw. $HTTP_ENV_VARS

In diesem Array sind die Umgebungsvariablen des Betriebssystems gespeichert. Da verschiedene Betriebssysteme verschiedene Umgebungsvariablen haben, ist der Inhalt dieses Arrays vom jeweiligen Betriebssystem abhängig.

4.1.4

$_SERVER bzw. $HTTP_SERVER_VARS

Informationen, die der verwendete Webserver generiert, sind in diesem Array abgelegt: beispielsweise Pfade oder der Speicherort des aktuellen Scripts. Einige der wichtigsten Variablen sind: PHP_SELF, die den Namen des aktuellen Scripts enthält, relativ zum Wurzelverzeichnis des Webservers. DOCUMENT_ROOT, die den absoluten Pfad zum Dokumentenverzeichnis des Webservers enthält, und die Variable PATH_TRANSLATED, die den Pfad des aktuellen Scripts basierend auf dem Dateisystem enthält.

4.1.5

$_GET bzw. $HTTP_GET_VARS

Hier sind die Variablen enthalten, die mit der GET-Methode an das aktuelle Script übergeben wurden.

4.1.6

$_POST bzw. $HTTP_POST_VARS

Dieses Array enthält alle Variablen, die mit der POST-Methode an das aktuelle Script übergeben wurden.

4.1.7

$_COOKIE bzw. $HTTP_COOKIE_VARS

Falls Variablen mit HTTP-Cookies an das aktuelle Script übergeben wurden, sind sie in diesem Array gespeichert.

34

씰 씰S ch ne l lü b er s ic h t PHP 5

4.1.8

$_REQUEST

Dieses Array gibt es seit PHP 4.1.0. Es enthält alle Inhalte der Arrays $_GET, $_POST und $_COOKIE.

$_FILES bzw. $HTTP_POST_FILES

Nach einem Datei-Upload mit der HTTP-POST-Methode enthält dieses Array Angaben über die hochgeladene Datei. Dies sind der Dateiname, der MIME-Typ (falls der Browser dies unterstützt), der Name der temporären Datei, die Dateigröße und seit PHP 4.2.0 eine Fehlermeldung, falls der Upload fehlgeschlagen ist.

4.1.10 $_SESSION bzw. $HTTP_SESSION_VARS Ein Array, das die Sessionvariablen enthält, die an das aktuelle Script übergeben wurden. Sessions gibt es in PHP seit der Version 4.0.

4.2 Vordefinierte Konstanten Eine große Anzahl von Konstanten sind in PHP und seinen Erweiterungen vordefiniert. Diese können Sie sich mit der Funktion get_defined_constants() anzeigen lassen.

4.2.1

Die magischen Konstanten

In PHP gibt es fünf »magische« Konstanten, auf die in jedem Script zugegriffen werden kann. Der Unterschied zu den vielen anderen vordefinierten Konstanten ist, dass ihr Inhalt verschieden ist, je nachdem, wo sie aufgerufen werden. Name

Beschreibung

__LINE__

enthält die aktuelle Zeilennummer des Scripts, das gerade ausgeführt wird enthält den vollständigen Pfad und Dateinamen des aktuellen Scripts enthält den Namen der aktuellen Funktion (ab PHP 4.3.0)

__FILE__ __FUNCTION__

Tabelle 4.1: Die magischen Konstanten

씰 씰 S c h ne l l ü be rs i cht PHP 5

35

4.2 Vordefinierte Konstanten

4.1.9

Name

Beschreibung

__CLASS__ __METHOD__

enthält den Namen der aktuellen Klasse (ab PHP 4.3.0) enthält den Namen der aktuellen Klassenmethode (ab PHP 5)

Tabelle 4.1: Die magischen Konstanten (Forts.)

Vordefinierte Konstanten

4.2

Wenn __LINE__ in einer Datei aufgerufen wird, die mit include() oder require() eingebunden wurde, enthalten die Konstanten __LINE__ oder __FILE__ die Zeilennummer oder den Dateinamen des eingebundenen Scripts.

4.2.2

SID

Falls Sie mit Sessions arbeiten, sind in dieser Konstante entweder der Session-Name und die Session-ID als Name-Wert-Paar enthalten, oder sie ist leer, falls die Session-ID in einem Session-Cookie gesetzt wurde.

36

씰 씰S ch ne l lü b er s ic h t PHP 5

5 Operatoren Operatoren sind Verknüpfungssymbole, mit denen Ausdrücke formuliert werden. Sie erfordern entweder einen, zwei oder drei Operanden und haben unterschiedliche Prioritäten (Präzedenzen) bezüglich der Ausführung. Ausdrücke werden in der Regel von links nach rechts abgearbeitet, wobei die Teilausdrücke, die mit einem Operator höherer Präzedenz verknüpft sind, zuerst ausgewertet werden. Nicht alle Operatoren können mit allen Datentypen verwendet werden.

5.1 Die Rangfolge der Operatoren in absteigender Reihenfolge

5.1

! ~ ++ -- (int) (float) (string) (array) (object) @ * / % + - . > < >= == != === & ^ | && || ? : = += -= *= /= .= %= &= |= ^= = and xor or

씰 씰 S c h ne l l ü be rs i cht PHP 5

Die Rangfolge der Operatoren in absteigender Reihenfolge

쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍 쐍

37

5.2 Logische Operatoren Operator

Name

Beispiel

!

nicht

! $x

&&

und

$x

and

und

$x

||

oder

$x

or

oder

$x

xor

exklusives Oder

$x

Logische Operatoren

5.2

Beschreibung

gibt TRUE zurück, wenn $x nicht TRUE ist (wenn $x zu FALSE ausgewertet wird oder NULL ist). && $y gibt TRUE zurück, wenn sowohl $x als auch $y zu TRUE ausgewertet werden. and $y gibt TRUE zurück, wenn sowohl $x als auch $y zu TRUE ausgewertet werden. Dieser Operator hat eine niedrigere Präzedenz als &&. || $y gibt TRUE zurück, wenn $x oder $y oder beide zu TRUE ausgewertet werden. or $y gibt TRUE zurück, wenn $x oder $y oder beide zu TRUE ausgewertet werden. Dieser Operator hat eine niedrigere Präzedenz als ||. xor $y gibt TRUE zurück, wenn entweder $x oder $y zu TRUE ausgewertet werden, aber nicht beide.

Tabelle 5.1: Logische Operatoren

5.3 Arithmetische Operatoren Beachten Sie, dass für den Datentyp integer kein Divisionsoperator definiert ist. Eine Division gibt daher immer ein Ergebnis vom Typ float zurück. Operator

Beispiel

Beschreibung

+ * / %

$x $x $x $x $x

berechnet die Summe von $x und $b. berechnet die Differenz von $x und $y. berechnet das Produkt von $x und $y. berechnet den Quotient von $x und $y. berechnet den Divisionsrest von $x geteilt durch $y.

+ * / %

$y $y $y $y $y

Tabelle 5.2: Arithmetische Operatoren

38

씰 씰S ch ne l lü b er s ic h t PHP 5

5.4 Inkrement- und Dekrement-Operatoren Operator

Name

Beschreibung

++$x

Prä-Inkrement

$x++

Post-Inkrement

--$x

Prä-Dekrement

$--

Post-Dekrement

Der Wert von $x wird zuerst um 1 erhöht, und der inkrementierte Wert wird zurückgegeben. gibt den Wert von $x zurück und inkrementiert $x anschließend. Der Wert von $x wird zuerst um 1 heruntergezählt, und der dekrementierte Wert wird zurückgegeben. gibt den Wert von $x zurück und dekrementiert $x anschließend.

Tabelle 5.3: Inkrement- und Dekrement-Operatoren

5.5 Operatoren für Zeichenketten Für Zeichenketten sind in PHP zwei Operatoren definiert, mit denen man Zeichenketten verbinden kann. Der Punkt . verbindet beliebig viele Teilstrings zu einem Ergebnisstring. Der Operator .= ist eine Kurzschreibweise für $x = $x . $y.

Ausgabe: Einkaufskorb Einkaufskorb

5.6 Der Zuweisungsoperator Um Werte an Variablen zuzuweisen, wird der Operator = benutzt. Vorsicht, dies bedeutet nicht »Gleichheit« auf beiden Seiten des Operators, sondern, dass eine Variable auf den angegebenen Wert gesetzt wurde. Wertzuweisungen werden von rechts nach links geparst.

씰 씰 S c h ne l l ü be rs i cht PHP 5

39

Inkrement- und Dekrement-Operatoren

5.4



In Kombination mit anderen Operatoren sind verkürzende Schreibweisen möglich: $x += $y ist eine verkürzende Schreibweise für $x = $x + $y. Entsprechendes gilt für die Operatoren ., -=, *=, /= und %=. Mit dem Operator => wird einem Arrayelement bei der Definition des Arrays ein Wert zugewiesen.

Vergleichsoperatoren

5.7 5.7 Vergleichsoperatoren Wie der Name sagt, können mit diesen Operatoren die Werte von Variablen oder Ausdrücken verglichen werden. Operator Name

Beispiel

Beschreibung gibt TRUE zurück, wenn beide Variablen denselben Wert besitzen. gibt TRUE zurück, wenn beide Variablen denselben Wert besitzen und vom selben Datentyp sind (nur in PHP 4). gibt TRUE zurück, wenn sich die Werte von $x und $y unterscheiden. gibt TRUE zurück, wenn sich die Werte von $x und $y unterscheiden. gibt TRUE zurück, wenn sich die Werte von $x und $y unterscheiden oder wenn die beiden Variablen nicht vom selben Datentyp sind. TRUE, wenn der Wert von $x kleiner als der Wert von $y ist. gibt TRUE zurück, wenn der Wert von $x kleiner oder gleich dem Wert von $y ist.

==

gleich

$x==$y

===

identisch

$x===$y

!=

ungleich

$x!=$y

ungleich

$x$y

!==

nicht identisch

$x!==$y


=$y oder gleich

Tabelle 5.4: Vergleichsoperatoren (Forts.) Wenn Vergleichsoperatoren auf Zeichenketten angewendet werden, gilt die lexikalische Ordnung. Großbuchstaben sind vor den Kleinbuchstaben einsortiert und damit »kleiner« als Kleinbuchstaben.

Mit diesen Operatoren kann man einzelne Bits in Integerzahlen oder Zeichenketten modifizieren. Falls beide Operanden Zeichenketten sind, werden die Operationen auf die einzelnen Zeichen angewendet. Operator

Name Beispiel Beschreibung

&

and

$x&$y

|

or

$x|$y

^

xor

$x^$y

~ >$z

Alle Bits, die sowohl in $x als auch in $y gesetzt sind, werden gesetzt. Alle Bits, die in $x oder $y oder beiden gesetzt sind, werden gesetzt. Alle Bits, die entweder in $x oder in $y, aber nicht in beiden gesetzt sind, werden gesetzt. Das Bitmuster in $x wird invertiert. Die Bits in $x werden um $z Stellen nach links geschoben, dabei wird rechts mit Nullen aufgefüllt. Eine Verschiebung um eine Stelle nach links bedeutet eine Multiplikation mit 2. Die Bits in $x werden um $z Stellen nach rechts geschoben, dabei wird links mit Nullen aufgefüllt. Eine Verschiebung um eine Stelle nach rechts bedeutet eine Division durch 2.

Tabelle 5.5: Bit-Operatoren

씰 씰 S c h ne l l ü be rs i cht PHP 5

41

5.8 Bit-Operatoren

5.8 Bit-Operatoren

5.9 Steuerung der Fehlerausgabe mit @ Mit dem Operator @ kann die Ausgabe von Fehlermeldungen unterdrückt werden. Diesen Operator können Sie bei allen Ausdrücken verwenden, beispielsweise um die Fehlerausgabe auf Webseiten zu unterbinden. Diese wird von PHP in die Variable $php_errormsg geschrieben und kann dort abgefragt werden, falls in der php.ini die Konfigurationsoption track_errors = on ist.

Steuerung der Fehlerausgabe mit @

5.9

Ausgabe: Konnte keine Verbindung aufbauen

5.10 Backticks, der Shell-Operator Mit Backticks kann man aus einem PHP-Script heraus andere Programme ausführen. Dieser Operator entspricht der Funktion shell_exec(). Beachten Sie, dass Backticks keine Hochkommas sind, sondern dem ASCII-Zeichen 96 (dezimal) entsprechen. Im safe mode steht dieser Operator nicht zur Verfügung.

Ausgabe: total 1 drwxr-xr-x drwxr-xr-x -rw-r--r-drwxr-xr-x

42

3 7 1 2

SYSTEM SYSTEM SYSTEM SYSTEM

Administ Administ Administ Administ

0 0 70 0

Feb Jan Feb Feb

7 5 7 7

00:24 19:12 2004 2004

. .. Noname5.php verzeichnis

씰 씰S ch ne l lü b er s ic h t PHP 5

5.11 Arrays verbinden mit + Mit + kann man Arrays verbinden, so dass das Array rechts vom Operator an das Array links vom Operator angehängt wird. Aber Achtung: Wenn dieselben Indizes in beiden Arrays existieren, werden die Werte des linken Arrays beibehalten, die des rechten Arrays verworfen.

5.12 Der ternäre Operator (Trinitätsoperator)

Ausgabe: 2004

Dies ist eine verkürzende Schreibweise für:

씰 씰 S c h ne l l ü be rs i cht PHP 5

43

5.11 Arrays verbinden mit +

(ausdruck) ? Anweisungsblock1 : Anweisungsblock2; Wenn ausdruck zu TRUE ausgewertet wird, wird der Anweisungsblock1 ausgeführt, anderenfalls der Anweisungsblock2.

6 Kontrollstrukturen Kontrollstrukturen dienen dazu, den Ablauf eines Programms und damit die Reihenfolge der Anweisungen zu steuern. Anweisungen können einzelne Befehle sein, auch leere Befehle, oder Gruppen von Befehlen, die durch geschweifte Klammern zusammengefasst werden. Auch solche geklammerten Programmblöcke werden als Anweisung betrachtet. Die Ausführung der Befehle wird von einer Bedingung abhängig gemacht, die zu einem booleschen Ergebnis ausgewertet wird. Trifft die Bedingung zu, wird die Anweisung ausgeführt, anderenfalls wird zur nächsten Anweisung übergegangen oder auch eine alternative Anweisung ausgeführt. Innerhalb einer Kontrollstruktur können beliebig viele Kontrollstrukturen verschachtelt sein.

Alternativen

6.1 6.1 Alternativen 6.1.1

if

Dieses Konstrukt wird sehr häufig benutzt. Es erlaubt die Ausführung eines Befehls in Abhängigkeit von einer Bedingung. Die allgemeine Syntax ist: if (bedingung) {

anweisung; } Wenn die Bedingung zutrifft, wird alles ausgeführt, was innerhalb den geschweiften Klammern steht. Besteht die Anweisung nur aus einem einzigen Befehl, sind die Klammern nicht zwingend erforderlich. Wenn die Bedingung zu FALSE ausgewertet wird, wird mit dem Befehl fortgefahren, der auf die if-Anweisung folgt.

44

씰 씰S ch ne l lü b er s ic h t PHP 5

Ausgabe: 2004 ist ein Schaltjahr.

6.1.2

else

Die if-Anweisung zusammen mit else erlaubt es, mehrere Ausführungsstränge in einem Programm zu realisieren. Wenn die angegebene Bedingung zutrifft, wird die Anweisung im if-Zweig ausgeführt. Trifft sie nicht zu, wird alternativ die Anweisung im else-Zweig ausgeführt. if (bedingung { anweisung1; } else { anweisung2; }

Trifft weder das eine noch das andere zu, wird mit der Anweisung fortgefahren, die der if-else-Anweisung folgt.

Ausgabe: 2004 ist ein Schaltjahr.

Dieses Codefragment kann kürzer mit dem ternären Operator ? : angegeben werden. Die allgemeine Syntax hierfür lautet: (ausdruck1) ? (ausdruck2) : (ausdruck3); Wenn (ausdruck1) wahr ist, wird (ausdruck2) zurückgegeben, anderenfalls (ausdruck3). Beachten Sie, dass dieser Operator Ausdrücke als Argumente erwartet. Sie können keine echo-Befehle verwenden

wie im Beispiel davor.

씰 씰 S c h ne l l ü be rs i cht PHP 5

6.1 Alternativen

45

6.1.3

elseif

Mit dieser Anweisung erweitern Sie eine if-Anweisung um einen bedingten Zweig, der ausgeführt wird, wenn die Bedingung der vorhergehenden if-Anweisung zu FALSE ausgewertet wurde.

Alternativen

6.1

if (bedingung1) { anweisung1; } elseif (bedingung2) { anweisung2; } else { anweisung3; } elseif ist eine Kurzform einer else-if-Anweisung, die aber nur innerhalb einer if-Anweisung benutzt werden darf, denn nur dort ist else zulässig. Es darf beliebig viele elseif-Anweisungen geben. Die erste elseif-Anweisung, deren Bedingung zu TRUE ausgewertet wird, wird ausgeführt. Danach ist die Bearbeitung des aktuellen if-Blocks beendet, auch wenn noch mehrere elseifs folgen. Trifft keine Bedingung zu, wird die Anweisung im else-Zweig ausgeführt, falls dieser

vorhanden ist.

6.1.4

switch

Diese Anweisung ermöglicht die Verzweigung in verschiedene Ausführungsstränge. Sie leistet dasselbe wie eine Reihe von if-Anweisungen, deren Bedingung Ausdrücke über demselben Parameter sind. Allgemein stellt sich die Syntax für die switch-Anweisung so dar: switch (ausdruck) { case wert1: anweisung1; [break;] case wert2: anweisung2; [break;] .... [default: anweisung;] }

46

씰 씰S ch ne l lü b er s ic h t PHP 5

Die break-Anweisungen sowie die Angabe einer default-Anweisung sind optional. Ein switch wird von oben nach unten abgearbeitet. Wenn der Wert in der case-Abfrage die Bedingung im switch erfüllt, wird die diesem Wert zugeordnete Anweisung ausgeführt. Endet dieser Ausführungsstrang mit einem break, wird der switch sofort verlassen und zur nächsten Anweisung gesprungen, die dem switch folgt. Fehlt eine break-Anweisung, werden alle nachfolgenden Anweisungen ausgeführt, ohne den Wert der folgenden case-Abfragen gegen die Bedingung zu prüfen, und zwar so lange, bis ein break auftritt oder der switch zu Ende ist. Die Bedingung wird nur einmal geprüft, im Unterschied zu mehreren if-Anweisungen, bei denen die Bedingung jedes Mal neu geprüft wird. Erfüllt keiner der mit case angegebenen Werte die Bedingung im switch, wird die Anweisung im default-Zweig ausgeführt, sofern sie vorhanden ist.

Ausgabe: Es ist Februar. Würde die switch-Anweisung ohne break-Statements geschrieben

werden, wäre die Ausgabe: Es ist Februar.März.Ich weiss es nicht.

씰 씰 S c h ne l l ü be rs i cht PHP 5

6.1 Alternativen

47

6.2 Schleifen 6.2.1

while

while-Schleifen sind die einfachsten Schleifen in PHP. Sie prüfen zu

Beginn die gegebene Bedingung und führen die Anweisungen im Schleifenrumpf so oft aus, bis die Bedingung zu FALSE ausgewertet wird. Die allgemeine Form einer while-Schleife ist: while (bedingung) anweisung;

Ist die Bedingung zu Beginn der Schleife nicht erfüllt, wird die Schleife nicht durchlaufen, sondern die Programmausführung beim nächsten Befehl fortgesetzt, der der Schleife folgt.

Schleifen

6.2

Ausgabe: Basis: Basis: Basis: Basis: Basis: Basis:

5 - Quadrat: 25 6 - Quadrat: 36 7 - Quadrat: 49 8 - Quadrat: 64 9 - Quadrat: 81 10 - Quadrat: 100

Wenn Sie dieses Beispiel mit $wert = 11 (oder auch größer) ausführen, wird die Schleife nicht durchlaufen, da die Bedingung ($wert < 11) von vornherein zu FALSE ausgewertet wird. while-Schleifen können mit break abgebrochen werden. So können zusätzliche Abbruchbedingungen im Schleifenrumpf abgeprüft werden, die mit der while-Bedingung nichts zu tun haben müssen.

48

씰 씰S ch ne l lü b er s ic h t PHP 5

6.2.2

do .. while

Bei dieser Schleife wird die Bedingung am Ende eines Schleifendurchlaufs geprüft. Die Anweisungen im Schleifenrumpf werden deshalb mindestens einmal ausgeführt. Allgemein hat die do .. whileSchleife folgende Syntax: do { anweisung; } while (bedingung);

Falls die Bedingung danach zu TRUE ausgewertet wird, springt das Programm wieder zum Anfang des Schleifenrumpfs zurück und führt die Anweisungen wiederholt aus, und zwar so lange, bis die Bedingung zu FALSE ausgewertet wird. Auch do .. while-Schleifen können mit break verlassen werden.

6.2.3

Schleifen

6.2

for

for-Schleifen, auch oft Zählschleifen genannt, sind in ihrem Aufbau

etwas komplexer. Im Kopf der Schleife werden drei Ausdrücke angegeben, mit denen die Schleife gesteuert wird: Initialisierung, Abbruchbedingung und Reinitialisierung. Diese drei Ausdrücke stehen in runden Klammern und werden durch ein Semikolon getrennt. Allgemein: for (Initialisierung; Abbruchbedingung; Reinitialisierung) { Anweisung; } Die for-Schleife wird immer dann eingesetzt, wenn die Anzahl der

Schleifendurchläufe abzählbar ist. Sie beginnt mit der Initialisierung einer Schleifenvariablen. Dann folgt die Prüfung der Abbruchbedin-

씰 씰 S c h ne l l ü be rs i cht PHP 5

49

gung. Wird diese zu FALSE ausgewertet, wird die Schleife verlassen, ansonsten wird die Anweisung ausgeführt, und am Ende der Schleife wird der Wert der Schleifenvariablen verändert (Reinitialisierung). for-Schleifen können mit der break-Anweisung verlassen werden. Beachten Sie: Die Ausdrücke können leer sein. Wenn die Abbruchbedingung leer oder TRUE ist oder immer zu TRUE ausgewertet wird, läuft die Schleife endlos.

Ausgabe:

Schleifen

6.2

Der Der Der Der Der

Zaehlerstand Zaehlerstand Zaehlerstand Zaehlerstand Zaehlerstand

ist ist ist ist ist

1 2 3 4 5

6.2.4 foreach Dieses Konstrukt ist seit PHP 4 in der Distribution enthalten und dient ausschließlich zum Durchlaufen von Arrays. foreach gibt es in zwei Syntaxvarianten: foreach (array as $wert) { Anweisung; }

oder foreach (array as $index => $wert) { Anweisung; }

Mit der ersten Variante wird ein Array durchlaufen. Die Werte der Arrayelemente werden sukzessive der Variablen $wert zugewiesen. Dieser kann in der Anweisung weiterverarbeitet werden. Bei der zweiten Variante wird zusätzlich der Index des Arrayelements ausgelesen und der Variablen $index zugewiesen, was besonders bei assoziativen Arrays oft nützlich ist. foreach beginnt die Schleife mit dem er-

50

씰 씰S ch ne l lü b er s ic h t PHP 5

sten Arrayelement. Um mehrdimensionale Arrays zu durchlaufen, wird für jede Arraydimension ein foreach-Aufruf einem anderen foreach-Aufruf untergeordnet.

Schleifen

6.2

Ausgabe: obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2

[0] [0] [0] [0] [1] [1] [1] [1] [2] [2] [2] [2]

[Sorte] = Birne [Region] = Reichenau [Haendler] = Grossmarkt [Preis] = 1.25 [Sorte] = Ananas [Region] = Costa Rica [Haendler] = Tante Emma [Preis] = 1.40 [Sorte] = Kokosnuss [Region] = Ägypten [Haendler] = Kurts Obstladen [Preis] = 1.60

씰 씰 S c h ne l l ü be rs i cht PHP 5

51

6.3 Steueranweisungen 6.3.1

break

Mit dieser Anweisung können Sie die aktuelle for-, foreach-, whileoder do..while-Schleife verlassen oder die Bearbeitung einer switchAnweisung abbrechen. Optional kann der Anweisung eine Ganzzahl mitgegeben werden, mit der festgelegt wird, auf wie viele Ebenen sich break auswirkt. Wenn keine Zahl angegeben wurde, wird 1 angenommen und nur die aktuelle Schleife abgebrochen.

Steueranweisungen

6.3

Ausgabe: z = z = z = Die z = z = Die z = Die z = z =

52

10 | das Quadrat ist 100 9 | das Quadrat ist 81 8 | das Quadrat ist 64 FOR-Schleife wird abgebrochen 9 | das Quadrat ist 81 8 | das Quadrat ist 64 FOR-Schleife wird abgebrochen 8 | das Quadrat ist 64 FOR-Schleife wird abgebrochen 7 | das Quadrat ist 49 6 | das Quadrat ist 36 씰 씰S ch ne l lü b er s ic h t PHP 5

z = 5 | das Quadrat ist 25 Beide Schleifen werden abgebrochen

6.3.2

continue

continue wird innerhalb von Schleifen verwendet und bricht die Ab-

arbeitung des aktuellen Schleifendurchlaufs ab. Die Schleife wird dadurch nicht verlassen. Im folgenden Beispiel wird die Arraydefinition aus dem Abschnitt foreach verwendet. Die Ausgabe des Preises wird verhindert, weil an diesem Punkt der aktuelle Schleifendurchlauf mittels continue abgebrochen wird.

Steueranweisungen

6.3

Ausgabe: obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2 obst2

6.3.3

[0] [0] [0] [1] [1] [1] [2] [2] [2]

[Sorte] = Birne [Region] = Reichenau [Haendler] = Grossmarkt [Sorte] = Ananas [Region] = Costa Rica [Haendler] = Tante Emma [Sorte] = Kokosnuss [Region] = Ägypten [Haendler] = Kurts Obstladen

return

Mit dem Aufruf von return beenden Sie die Ausführung des aktuellen Programmblocks und geben einen eventuell vorhandenen Wert oder Ausdruck an das aufrufende Script zurück. Ist der Programmblock eine Funktion, so beendet return die Ausführung der Funktion. Erfolgt der Aufruf im Hauptprogramm, wird dieses beendet. Ein return 씰 씰 S c h ne l l ü be rs i cht PHP 5

53

in einer mit include() oder require() eingebundenen Datei gibt die Kontrolle unverzüglich an das einbindende Programm zurück. Dieses Konstrukt wird hauptsächlich dazu verwendet, Werte, die von einer Funktion berechnet wurden, an das aufrufende Programm zurückzugeben. return ist ein Sprachkonstrukt und keine Funktion. Deshalb muss das Argument nicht in Klammern eingeschlossen werden, es sei denn, das Argument ist ein Ausdruck.

6.3.4 exit() Mit einem Aufruf von exit() beenden Sie das aktuelle Script sofort. Dies ist beispielsweise nach einem Redirect sinnvoll, da die verweisende Seite nicht mehr abgearbeitet werden muss, wenn auf eine andere Seite verzweigt wird.

Steueranweisungen

6.3

6.3.5

die()

Mit diesem Befehl können Sie eine Meldung ausgeben und danach das aktuelle Script beenden. Dieses Sprachkonstrukt wird vielfach dazu benutzt, um die Abarbeitung eines Scripts nach fehlgeschlagenen Verbindungen, beispielsweise zu Datenbankservern, mit einer entsprechenden Fehlermeldung zu beenden.

6.3.6 include(), require() Diese beiden Funktionen leisten dasselbe: Sie binden eine Datei, deren Pfad als Argument übergeben wird, in den aktuellen Programmblock ein. Der Inhalt der eingebundenen Datei wird im aktuellen Script expandiert, damit es für den Parser so aussieht, als ob der eingebundene Code in dem Script selbst enthalten ist. Deshalb sind alle Variablen, die zum Zeitpunkt eines include() bzw. require() im Gültigkeitsbereich des aufrufenden Programmblocks lagen, in den eingebundenen Dateien sichtbar und umgekehrt. Beim Wechsel vom aufrufenden Programmblock zu einer eingebundenen Datei schaltet der Parser automatisch in den HTML-Modus. Enthält die einzubindende Datei PHP-Code, so muss sie mit enden.

54

씰 씰S ch ne l lü b er s ic h t PHP 5

Wenn in der Konfiguration die Option URL_fopen_wrappers aktiviert ist (dies ist die Standardeinstellung), dann können Sie als Argument einen URL angeben und so entfernte Dateien einbinden. Erlaubte Protokolle sind http:// und ftp:// und seit PHP 4.3.0 auch https:// und ftps://, ebenso PHP-Input/Output-Streams. Nähere Beschreibungen hierzu finden Sie im PHP-Manual, Anhang I. Im folgenden Beispiel wird in der Datei dbconnect.php eine Verbindung zu einer PostgreSQL-Datenbank hergestellt. Nachdem dbconnect.php in das Script dbausgabe.php eingebunden wurde, steht diese Verbindung dort zur Verfügung. Datei dbconnect.php

Datei dbausgabe.php

DB-Ausgabe





Steueranweisungen

6.3

Ausgabe: NAME: bild0.gif OID: 34065 NAME: bild1.gif OID: 34067 NAME: butterfly4.gif OID: 34073

speichern speichern

speichern Dies ist die letzte Anweisung im Script

Wenn eine Datei fehlerhaft eingebunden wird, zeigt sich der Unterschied: include() meldet eine Warnung und fährt mit der Abarbeitung des Scripts fort, während require() einen »Fatal Error« erzeugt, der das Script sofort abbricht. In diesem Beispiel wird bei einem Fehler der Satz Dies ist die letzte Anweisung im Script nur ausgegeben, falls die Datei mit include() eingebunden wurde.

6.3.7

include_once(), require_once()

Mit diesen beiden Funktionen stellen Sie sicher, dass eine Datei nur einmal eingebunden wird. Wenn PHP auf Windows-Systemen läuft oder Sie mit einer PHP-Version vor 4.3 arbeiten, können Sie mit diesen Funktionen keine entfernten Dateien einbinden, unabhängig von der Einstellung der Konfigurationsoption allow_url_fopen. Eine Datei, die mit include_once() eingebunden wurde, wird mit require_once() nicht noch einmal eingebunden und umgekehrt.

56

씰 씰S ch ne l lü b er s ic h t PHP 5

6.4 Alternative Syntax für Kontrollstrukturen Für die Kontrollstrukturen if, else, elseif, while, for, foreach und switch können Sie eine alternative Syntax verwenden. Dabei wird die öffnende Klammer durch einen Doppelpunkt ersetzt und die schließende Klammer durch eines der Wörter endif;, endwhile;, endfor;, endforeach; oder endswitch;. Das Beispiel im Abschnitt über if kann damit so geschrieben werden:

Dies ist das Beispiel, das im Abschnitt switch angegeben wurde, hier

Alternative Syntax für Kontrollstrukturen

mit der alternativen Syntax:

씰 씰 S c h ne l l ü be rs i cht PHP 5

6.4

57

Einschränkungen

7 Objektorientierung in PHP 4

7.1

Objektorientiertes Programmieren wird von PHP 4 in einem gewissen Umfang unterstützt. Die Objektorientierung bei PHP ist eindeutig klassenbasiert und unterscheidet sehr genau zwischen den Konzepten von Klasse und Objekt. Klassen in PHP sind Baupläne, mit denen beliebig viele Objekte, also Instanzen, gebaut werden können. Bei Klassen lassen sich Eigenschaften und Methoden (an die Klasse gebundene Funktionen) unterscheiden. Der Aufruf einer Klassenmethode im Code kann als Botschaft an das zugehörige Objekt verstanden werden. Die konkreten Ausprägungen einer Klasse unterliegen deshalb in Bezug auf Eigenschaften und Methoden den Restriktionen der sie prägenden Klasse.

7.1 Einschränkungen In PHP 4 stehen Ihnen (optional) Konstruktoren, aber keine Destruktoren zur Verfügung. Diese Einschränkung können Sie unter gewissen Voraussetzungen mit der Funktion register_shutdown_function() umgehen. Schwache Kapselung: Es gibt keine Möglichkeit, Variablen und Klassenmethoden vor Zugriff zu schützen. Das bedeutet, dass alle Variablen und Methoden frei zugänglich sind. new gibt eine Kopie des Objekts zurück und keine Referenz. Objekte werden bei Übergabe an Funktionen oder bei Zuweisungen immer als Kopie übergeben und nicht als Referenz.

7.2 Schlüsselwörter Ein Schnellüberblick über die wichtigsten Begrifflichkeiten: 쐍 class kennzeichnet eine Klassendefinition. 쐍 var kennzeichnet Eigenschaften, die Objekte einer Klasse haben. 쐍 this spricht intern den Wert einer Eigenschaft nach der Instanziierung an.

58

씰 씰S ch ne l lü b er s ic h t PHP 5



7.2

Ausgabe: Betz Friedhelm

씰 씰 S c h ne l l ü be rs i cht PHP 5

Schlüsselwörter

쐍 new wird verwendet, um ein Objekt (eine konkrete Ausprägung) einer Klasse anzulegen. 쐍 extends wird verwendet, um von einer bestehenden Klasse abzuleiten (Vererbung). 쐍 :: kann benutzt werden, um Methoden einer Klasse anzusprechen, die keine Instanz haben (statische Methodenaufrufe), oder um in einer abgeleiteten Klasse Methoden der Basisklasse aufzurufen. 쐍 parent kann in abgeleiteten Klassen verwendet werden, um Bezug auf Methoden der Basisklasse zu nehmen.

59

Konstruktoren

Anhand dieses sehr einfachen Beispiels können Sie die Schreib- und Funktionsweise der Objektorientierung in PHP 4 erkennen. In dieser Modellierung hat eine Person zwei Eigenschaften, Name und Vorname, die über var definiert werden. Methoden einer Klasse werden als Funktionen implementiert. Die Klasse person stellt ihren Objekten zwei Methoden zur Verfügung: mittels SetName() ist es möglich, die Eigenschaften Nachname und Vorname zu bestimmen, GetName() liefert den Nachnamen und Vornamen einer Person. Mit dem Operator new erzeugen Sie ein konkretes Objekt ($my_person) von der Klasse person (Instanziierung). Auf das Objekt $my_person können Sie nun mittels SetName() den Nachnamen und Vornamen setzen und mit GetName() diese ausgeben lassen. Bei der Modellierung der Eigenschaften über var können Sie diese Variablen auch initialisieren; dabei dürfen Sie nur konstante Werte verwenden. Wollen Sie nicht konstante Werte verwenden, müssen Sie einen Konstruktor verwenden.

7.3 Konstruktoren

7.3

Ein Konstruktor ist eine Funktionen innerhalb einer Klasse, die automatisch aufgerufen wird, wenn Sie mit new eine neue Instanz erstellen. Eine Funktion wird in PHP 4 zu einem Konstruktor, wenn die Funktion den gleichen Namen wie die Klasse trägt und in dieser Klasse definiert wird. Beachten Sie, dass ein Konstruktor keine return-Anweisung enthalten darf.

Ausgabe: Musterfrau Eva

In diesem Fall verfügt die Klasse person über einen Konstruktor, der automatisch aufgerufen wird und die Eigenschaft Name und Vorname des Objekts $my_person setzt. Die Methode SetName() behält ihre Berechtigung, weil es möglich wäre, dass Sie die Eigenschaften von $my_person ändern wollen.

7.4

7.4 Statische Methodenaufrufe mit :: Methoden einer Klasse können Sie statisch verwenden, ohne vorher ein konkretes Objekt der Klasse mit new zu erzeugen. Mit

rufen Sie die Funktion (Methode) SetName statisch auf und weisen das Ergebnis der Variablen $name zu.

7.5 Vererbung Mit extends können Sie einfache Vererbung modellieren. Die abgeleitete Klasse verfügt über alle Eigenschaften und Methoden der Basisklasse, von der sie abgeleitet wurde. Im folgenden Beispiel leiten

씰 씰 S c h ne l l ü be rs i cht PHP 5

Statische Methodenaufrufe mit ::

function { // siehe } function { // siehe }

61

Vererbung

wir die Klasse ext_person von der Klasse person ab und definieren zusätzliche Eigenschaften und eine zusätzliche Methode.

7.5

Ausgabe: Musterfrau Eva ist 30 Jahre alt.

Falls die abgeleitete Klasse keinen eigenen Konstruktor hat, wird automatisch der Konstruktor der Basisklasse aufgerufen. Guter Stil ist es, den Konstruktor der Basisklasse explizit über parent:: aufzurufen.

62

씰 씰S ch ne l lü b er s ic h t PHP 5

In abgeleiteten Klassen können Sie Methoden der Basisklasse überschreiben. Mit parent::Methode_der_Basisklasse können Sie bei Bedarf auf die ursprüngliche Methode der Basisklasse zugreifen.

Ausgabe: 3 Basisklasse .... 18 b Object ( [x] => 6 [y] => 3 )

7.7 Objekte und Referenzen In PHP 4 werden Objekte immer als Kopie übergeben, sowohl bei Zuweisungen als auch bei Funktionsaufrufen.

Ausgabe: Mokka

64

씰 씰S ch ne l lü b er s ic h t PHP 5

Die beabsichtigte Ausgabe sollte Espresso sein. Um dies zu erreichen, müssen Sie die Übergabe des Objekts an die Funktion per Referenz vornehmen.

Objekte und Referenzen

Ausgabe: Espresso

7.7

씰 씰 S c h ne l l ü be rs i cht PHP 5

65

8 Objektorientierung in PHP 5

Begrifflichkeiten

Eine wichtige Änderung von PHP 5 und der Zend-Engine 2 ist die komplett überarbeitete Unterstützung für objektorientiertes Programmieren in PHP. PHP 5 bietet gegenüber PHP 4 sehr viel weiter reichende Möglichkeiten im Umgang mit Klassen und Objekten, unter anderem Destruktoren, Exceptions (Fehlerbehandlungsroutinen), bessere Kapselung (ppp) und Interfaces. Im Gegensatz zu PHP 4 werden bei Zuweisungen und Übergaben Objekte immer als Referenz behandelt.

8.1

8.1 Begrifflichkeiten Ein Schnellüberblick über die wichtigsten neuen Begrifflichkeiten: 쐍 __METHOD__: Unechte Konstante. Wird diese innerhalb einer Klasse benutzt, enthält diese den Namen der Klasse und der Methode; innerhalb einer Funktion (außerhalb einer Klasse) enthält sie den Funktionsnamen. 쐍 private: Private Eigenschaften und Methoden 쐍 protected: Geschützte Eigenschaften und Methoden 쐍 public: Öffentliche Eigenschaften und Methoden 쐍 final: Deklariert Klassen oder Methoden als endgültig. 쐍 abstract: Deklariert Klassen oder Methoden als abstrakt. 쐍 interface: Deklariert eine Objektschnittstelle. 쐍 implements: Angabe, wenn eine Klasse ein Interface implementiert 쐍 instanceof: Entspricht is_a() und sollte stattdessen in PHP 5 verwendet werden. 쐍 self: Kann in Klassen verwendet werden, um Bezug auf Methoden innerhalb derselben Klasse zu nehmen. 쐍 clone: Wird benutzt, um eine Kopie eines Objekts zu erzeugen. 쐍 const: Definiert klassenspezifische Konstanten. 쐍 static: Methoden oder Eigenschaften können ohne Instanz eines Objekts benutzt werden. 쐍 __construct: Konstruktor für eine Klasse 쐍 __destruct: Destruktor für eine Klasse

66

씰 씰S ch ne l lü b er s ic h t PHP 5

8.2 Referenzen und Kopien In PHP 5 werden Objekte immer als Referenzen behandelt, sowohl bei der Übergabe und der Rückgabe als auch bei Zuweisungen. Damit erhöht sich einerseits die Performance, und andererseits wird der Code dadurch weniger fehleranfällig, weil keine explizite Referenzangabe mittels & mehr notwendig ist.

8.2

Ausgabe: Espresso

씰 씰 S c h ne l l ü be rs i cht PHP 5

Referenzen und Kopien

쐍 __autoload: Global verfügbare Funktion, mit deren Hilfe Klassenabhängigkeiten zur Laufzeit erfüllt werden können. 쐍 __set, __get: Überladen von Methoden zur Laufzeit, die ausgeführt werden, wenn auf nicht explizit definierte Eigenschaften zugegriffen wird. 쐍 __call: Überladen von Methoden zur Laufzeit, falls auf eine Methode zugegriffen wird , die nicht explizit implementiert ist. 쐍 try, throw, catch: Ausnahmebehandlung ähnlich dem Konzept in Java.

67

Referenzen und Kopien

Wird eine Kopie eines Objekts benötigt, kann dies mit Hilfe von clone erreicht werden.

8.2

Ausgabe: Mokka Cappuchino

Bei der Ausführung von clone werden zuerst die Eigenschaften eines Objekts kopiert, bevor die PHP interne Methode __clone(), über die alle Klassen in PHP 5 implizit verfügen, für dieses Objekt ausgeführt wird. Es besteht die Möglichkeit, eine eigene __clone()-Methode innerhalb einer Klasse zu implementieren, die bei der Verwendung von clone ausgeführt wird. Bei einer abgeleiteten Klasse kann die cloneMethode der Elternklasse mit parent::__clone() benutzt werden.

8.3

Zugriffsbeschränkungen für Eigenschaften, Methoden und Klassen

8.4

$objekt = new A(); print_r($objekt); ?>

Ausgabe: Konstruktor A Object ( ) Destruktor

Bei abgeleiteten Klassen werden Konstruktoren und Destruktoren der Elternklasse nicht automatisch ausgeführt und müssen explizit mit parent::__construct beziehungsweise mit parent::_destruct aufgerufen werden.

8.4 Zugriffsbeschränkungen für Eigenschaften, Methoden und Klassen 8.4.1

private, public und protected

Eigenschaften und Methoden von Klassen lassen sich mit private und protected vor unerlaubtem Zugriff schützen. Damit ist es möglich, die Sichtbarkeit von Eigenschaften und Methoden einzuschränken. Zugriff auf als private deklarierten Eigenschaften und Methoden besteht nur innerhalb der Klasse selbst, Eigenschaften oder Methoden, die als protected deklariert wurden, stehen dagegen zusätzlich auch in abgeleiteten Klassen zur Verfügung. public schränkt den Zugriff in keiner Weise ein und entspricht dem Klassenmodell in PHP 4. Mit private, public und protected kann in PHP 5 der Zugriff auf Eigenschaften, Methoden und Klassen sehr genau bestimmt und eine gute Kapselung erreicht werden. Die Deklaration von Eigenschaften mit var wird weiterhin unterstützt, sollte aber in PHP 5 nicht verwendet werden, es sei denn, die Scripts sollen zu PHP 4 kompatibel sein.

8.4.2 final Mit final können Klassen als endgültig bestimmt werden, aber Ableitungen von einer als final deklarierten Klasse sind nicht möglich.

70

씰 씰S ch ne l lü b er s ic h t PHP 5

Damit sind implizit alle Methoden als final deklariert zu verstehen. final kann auch selektiv für einzelne Klassenmethoden angewandt werden, um zu verhindern, dass eine abgeleitete Klasse diese Methoden überschreibt. Für Methoden kann final mit private und protected kombiniert werden; Eigenschaften können nicht final sein.

Eigenschaften und Methoden, die als static deklariert sind, können ohne Instanziierung einer Klasse benutzt werden. Methoden, die als static definiert sind, können die Pseudovariable $this nicht benutzen.

8.5 Konstanten in Klassen Ähnlich der Funktion define können mit const klassenspezifische Konstanten deklariert werden, die nur im Klassenkontext verfügbar sind. Mit :: kann ohne Instanz auf diese Klassenkonstanten zugegriffen werden.

8.5

Ausgabe: Wert: 53

8.6 Methoden 8.6.1

__autoload()

Die global verfügbare Funktion __autoload() kann benutzt werden, um eigentlich nicht definierte Klassen nachzuladen. Wird auf eine nicht definierte Klasse zugegriffen, wird, falls vorhanden, __autoload() aufgerufen und ausgeführt. Ist __autoload() entspre-

씰 씰 S c h ne l l ü be rs i cht PHP 5

Konstanten in Klassen

8.4.3 Statische Eigenschaften und Methoden

71

chend implementiert, können Klassen bequem nachgeladen werden. Damit ist es möglich, Klassen zur Laufzeit erst einzubinden, wenn diese tatsächlich benötigt werden.

In diesem Beispiel steht die Klasse ConnectDb eigentlich nicht zur

Methoden

Verfügung, weil sie weder definiert noch eingebunden ist. Beim Versuch, ConnectDb zu instanziieren, wird __autoload aufgerufen und die Klasse mit include_once nachgeladen.

8.6

8.6.2 Zugriff auf nicht explizit definierte Eigenschaften: __get() und __set() Wird auf Eigenschaften eines Objekts zugegriffen, die nicht explizit definiert sind, wird zuerst __set() aufgerufen, um einen Wert zu definieren. Soll dieser Wert abgefragt werden, wird __get() aufgerufen. Sind __set() und __get() nicht implementiert, kommt es bei einem Zugriff auf nicht definierte Eigenschaften zu Fehlern. In Kombination mit private kann dies als Ersatz für dynamische Eigenschaften gesehen werden.

Ausgabe: Wert von Test: 11

8.6.3

Zugriff auf nicht explizit definierte Methoden: __call()

Nicht explizit definierte Methoden einer Klasse können mit Hilfe einer implementierten __call()-Methode aufgerufen werden. __call() kennt zwei Parameter: Im ersten steht der Name der aufrufenden Methode zur Verfügung. Im zweiten Parameter stehen die übergebenen Werte als numerisches Array zur Verfügung.

Methoden

8.6

Ausgabe: Aufruf von meine_funktion mit 1 Parameter Array ( [0] => Mustermann )

씰 씰 S c h ne l l ü be rs i cht PHP 5

73

Abstrakte Klassen und Methoden

8.7

Aufruf von Array ( [0] => [1] => [2] => )

andere_funktion mit 3 Parameter

20 25 40

8.7 Abstrakte Klassen und Methoden Von abstrakten Klassen kann kein Objekt instanziiert werden, von einer abstrakten Klasse kann nur abgeleitet werden. Methoden abstrakter Klassen, die selbst als abstract definiert sind, müssen bei einer Ableitung implementiert werden. Eine abstrakte Klasse kann Methoden enthalten, die nicht als abstract definiert sind. Sobald aber eine Methode als abstract definiert ist, muss auch die Klasse insgesamt abstract sein.

8.8 Objektschnittstellen (Interface) Objektschnittstellen (Interfaces) können als Spezialfall für abstrakte Klassen gelten. Schnittstellen werden mit interface, gefolgt von einem Namen, deklariert und enthalten per Definition nur abstrakte Methoden. Auf die explizite Angabe von abstract bei den Methoden kann verzichtet werden. Im Unterschied zu abstrakten Klassen werden Schnittstellen mit implements von einer Klasse implementiert; von einem interface kann nicht abgeleitet werden. Eine Klasse kann mehrere Schnittstellen implementieren.

Ausgabe: Aktueller Kontostand: 745

8.9 Typen-Hinweise (type hints) PHP ist eine schwach typisierte Sprache, unterstützt aber klassenbasierte Typen-Hinweise (type hints), die zur Laufzeit ausgewertet werden. Damit kann festgelegt werden, dass an Methoden nur Objekte einer bestimmten Klasse übergeben werden können.

Ausgabe: Lupo wird betankt. Superbenzin. Normalbenzin. Mercedes wird betankt. Superbenzin. PHP Fatal error: Argument 1 must be an instance of super in ....

76

씰 씰S ch ne l lü b er s ic h t PHP 5



8.10 Ausnahmebehandlung (Exceptions) PHP 5 bietet die Möglichkeit, mit Exceptions ähnlich wie in Java zu arbeiten. Exceptions basieren auf der internen Standardklasse exception. Eigene exception-Klassen sind möglich, sollten aber von der Standardklasse exception abgeleitet werden. Eingeschlossen in einen try catch-Block, werden Anweisungen ausgeführt; mit throw wird eine exception ausgelöst, die mit catch abgefangen wird. Es besteht die Möglichkeit, mehrere catch-Blöcke zu definieren, um unterschiedliche Ausnahmen abzufangen. Existieren mehrere catch-Blöcke, werden diese von oben nach unten abgearbeitet, und die erste Exception, die mit instanceof der ausgelösten Exception entspricht, wird mit catch eingefangen.

Ausgabe: User ist nicht TEST.

Die folgenden Methoden stellt die interne exception-Klasse bereit: __clone, __construct, getMessage, getCode, getFile, getLine, getTrace, getTraceAsString und _toString.

8.11 Dereferenzierung von Objekten PHP 5 bietet die Möglichkeit, Objekte, die von Funktionen zurückgegeben werden, zu dereferenzieren und Methoden für diese Objekte aufzurufen.

8.11

Ausgabe: Cappuchino trinken Fanta trinken

씰 씰 S c h ne l l ü be rs i cht PHP 5

79

Teil 2

Referenz

씰씰

9.1

Apache-Funktionen

Diese Funktionen bieten eine Schnittstelle zu einigen internen Apache-Funktionen und stehen deshalb nur dann zur Verfügung, wenn Sie PHP als Apache-Modul betreiben. apache_child_terminate (PHP 4 ≥ 4.0.5) bool apache_child_terminate(void)

Beendet einen Apache-Prozess, nachdem eine Seite ausgeliefert wurde. Keine Parameter Rückgabewert TRUE, falls der Prozess beendet wurde. Falls die Funktion nicht unterstützt wird oder die Option child_terminate in php.ini deaktiviert ist, wird FALSE zurückgegeben. Auf Windows-Systemen ist die Funktion nicht verfügbar. apache_get_version (PHP 4 ≥ 4.3.2) string apache_get_version(void)

Gibt die Version des Apache-Webservers zurück. Keine Parameter Rückgabewert Ein String, der die Versionsnummer des Apache-Webservers enthält, oder FALSE, wenn ein Fehler auftrat. apache_lookup_uri (PHP 3 ≥ 3.0.4, PHP 4) object apache_lookup_uri(string dateiname)

Führt eine Anfrage für einen URL aus und gibt Informationen darüber zurück. Parameter dateiname: Der Name der Datei, über die Informationen eingeholt werden. 씰 씰 S c h ne l l ü be rs i cht PHP 5

81

Funktionen – von Apache bis Zeichenketten

9 Funktionen – von Apache bis Zeichenketten

9

Rückgabewert Ein Objekt, das Informationen über die angeforderte Datei enthält.

Apache-Funktionen

Ausgabe:

9.1

stdClass Object ( [status] => 403 [the_request] => GET /apache_fkt.php HTTP/1.1 [method] => GET [uri] => /http://pgsql.info/index.php [filename] => c:/apache/htdocs/http: [path_info] => //pgsql.info/index.php [no_cache] => 0 [no_local_copy] => 1 [allowed] => 0 [sent_bodyct] => 0 [bytes_sent] => 0 [byterange] => 0 [clength] => 0 [unparsed_uri] => /http://pgsql.info/index.php [request_time] => 1078517750 )

apache_note (PHP 3 ≥ 3.0.2, PHP 4) string apache_notiz(string notiz_name [, string notiz_wert])

Liest oder setzt Apache-Notizen. Parameter notiz_name: Der Name der Notiz, die gelesen oder gesetzt wird. notiz_wert: Der Wert, auf den notiz_name gesetzt wird. Rückgabewert Der Wert der Apache-Notiz, die dem notiz_namen zugeordnet ist, oder FALSE, wenn es zu dem angegebenen notiz_name keinen notiz_wert gibt.

82

씰 씰S ch ne l lü b er s ic h t PHP 5

apache_request_headers (PHP 4 ≥ 4.3.0) array apache_request_headers(void)

getallheaders (PHP 3, PHP 4) array getallheaders(void)

Ausgabe: Array ( [Accept] => */* [Accept-Encoding] => gzip, deflate [Accept-Language] => de,en;q=0.5 [Connection] => Keep-Alive [Host] => localhost [User-Agent] => Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) )

apache_response_headers (PHP 4 ≥ 4.3.0) array apache_response_headers(void)

Gibt alle HTTP-Header der aktuellen Serverantwort zurück. Keine Parameter Rückgabewert Ein assoziatives Array, in dem alle HTTP-Header der aktuellen Serverantwort gespeichert sind.

씰 씰 S c h ne l l ü be rs i cht PHP 5

83

Apache-Funktionen

Gibt alle HTTP-Header der aktuellen Anfrage zurück. Keine Parameter Rückgabewert Ein Array, in dem alle HTTP-Header der aktuellen Anfrage gespeichert sind.

9.1

apache_getenv (PHP 4 ≥ 4.3.0) string apache_getenv(string variable [, bool walk_to_top])

Gibt eine Umgebungsvariable eines Apache-Unterprozesses zurück. Diese Funktion ist undokumentiert. apache_setenv (PHP 4 ≥ 4.2.0) bool apache_setenv(string variable, string wert [, bool walk_to_top])

Apache-Funktionen

Setzt eine Umgebungsvariable für einen Apache-Unterprozess. Diese Funktion ist undokumentiert.

9.1

ascii2ebcdic (PHP 3 ≥ 3.0.17) int ascii2ebcdic(string string)

Transformiert einen String von ASCII in den EBCDIC-Code. ebcdic2ascii (PHP 3 ≥ 3.0.17) int ebcdic2ascii(string string)

Transformiert einen String von EBCDIC in den ASCII-Code. Parameter string: Der String, der transformiert wird. Rückgabewert Der Eingabestring in der jeweils anderen Kodierung. Diese Funktion ist nur auf Systemen verfügbar, die die EBCDIC-Kodierung unterstützen (BS2000, OS/390). apache_get_modules array apache_get_modules(void)

Gibt die geladenen Apache-Module zurück. Keine Parameter Rückgabewert Ein Array, in dem die Namen der geladenen Apache-Module gespeichert sind.

84

씰 씰S ch ne l lü b er s ic h t PHP 5

Ausgbe: Array ( [0] [1] [2] [3] [4] [5] )

=> => => => => =>

core http_core mod_so sapi_apache2 mod_mime mod_rewrite

virtual (PHP 3, PHP 4) Führt eine Apache-Unteranforderung zum Einbinden einer Datei aus. Parameter dateiname: Die Datei, die eingebunden wird. Rückgabewert TRUE, falls die Operation erfolgreich war, und FALSE, wenn ein Fehler auftrat.

9.2

Array-Funktionen

9.2.1

Arrays erzeugen

9.2

array (PHP 3, PHP 4 ) array array([mixed variable][, ...])

Erzeugt ein Array. Parameter variable: Werte, Schlüssel-Wert-Paare oder Arrays, die in dem Array gespeichert werden. Rückgabewert Wenn nur Werte übergeben werden, wird ein numerisches Array zurückgegeben; wenn Schlüssel-Wert-Paare übergeben werden, wird ein assoziatives Array zurückgegeben. Werden Arrays übergeben, wird ein mehrdimensionales Array zurückgegeben.

씰 씰 S c h ne l l ü be rs i cht PHP 5

Array-Funktionen

int virtual(string dateiname)

85

array_combine (PHP 5) array array_combine(array schlüssel, array werte)

Erzeugt ein Array mit Schlüsseln und Werten aus zwei als Parameter übergebenen Arrays. Parameter schlüssel: Ein Array, das die Schlüssel für das neue Array enthält. werte: Ein Array, das die Werte für das neue Array enthält. Rückgabewert Falls die Anzahl der Elemente in den beiden Arrays nicht gleich sind, wird FALSE zurückgegeben. Anderenfalls wird ein neues Array mit den übergebenen Schlüsseln und Werten erzeugt.

Arrays erzeugen

array_fill (PHP 4 ≥ 4.2.0)

9.2

array array_fill(int start_index, int anzahl, mixed wert)

Erzeugt ein Array und füllt es mit einem übergebenen Wert. Parameter start_index: Gibt den Startindex an, ab dem das Array gefüllt wird. anzahl: Die Anzahl der Arrayelemente, die erzeugt und gefüllt werden. wert: Der Wert, der in die neuen Arrayelemente geschrieben wird. Ist der Wert ein Array, wird ein mehrdimensionales Array erzeugt und gefüllt. Rückgabewert Ein Array mit anzahl Elementen, dessen Index mit start_index beginnt und dessen Elemente alle denselben Wert enthalten. compact (PHP 4) array compact(mixed varname [, mixed ...])

Erzeugt ein Array mit beliebig vielen Variablen aus dem lokalen Gültigkeitsbereich. Parameter varname: Der Name einer Variablen Rückgabewert Ein assoziatives Array, das die übergebenen Variablen und ihre Werte enthält. varname wird dabei zum Schlüssel eines Elements, das den Wert von varname speichert.

86

씰 씰S ch ne l lü b er s ic h t PHP 5

range (PHP 3 ≥ 3.0.8, PHP 4) Erzeugt ein Array mit Werten aus einem angegebenen Wertebereich. Parameter unten: Die untere Grenze des Wertebereichs. oben: Die obere Grenze des Wertebereichs. schrittweite: Die Schrittweite zwischen den einzelnen Werten im übergebenen Wertebereich (seit PHP 5). Rückgabewert Ein Array mit den Werten des Wertebereichs. Ist keine schrittweite angegeben, so wird 1 angenommen. Seit PHP 4.1.0 kann der Wertebereich auch als Zeichenfolge angegeben sein. Außerdem kann eine absteigende Reihenfolge erzeugt werden, indem unten größer als oben ist.

9.2.2

Differenz mehrerer Arrays berechnen

array_diff (PHP 4 ≥ 4.0.1) array array_diff(array array1, array array2 [, array ...]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Werte nicht in den anderen Arrays enthalten sind. array_diff_assoc (PHP 4 ≥ 4.3.0) array array_diff_assoc(array array1, array array2 [, array ...]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Schlüssel-Wert-Paare nicht in den anderen Arrays enthalten sind. array_diff_uassoc (PHP 5) array array_diff_uassoc(array array1, array array2 [, array ..., callback vergleiche_schluessel]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Schlüssel-Wert-Paare nicht in den anderen Arrays enthalten sind, wobei der Vergleich der Schlüssel von der Funktion vergleiche_schluessel durchgeführt wird. 씰 씰 S c h ne l l ü be rs i cht PHP 5

87

Differenz mehrerer Arrays berechnen

array range(int unten, int oben [, int schrittweite])

9.2

Differenz mehrerer Arrays berechnen

array_udiff (PHP 5)

9.2

array array_udiff(array array1, array array2 [, array ..., callback vergleiche_werte]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Werte nicht in den anderen Arrays enthalten sind, wobei der Vergleich der Werte von der Funktion vergleiche_werte durchgeführt wird. array_udiff_assoc (PHP 5) array array_udiff_assoc(array array1, array array2 [, array ..., callback vergleiche_werte]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Schlüssel-Wert-Paare nicht in den anderen Arrays enthalten sind, wobei der Vergleich der Werte von der Funktion vergleiche_werte durchgeführt wird. array_udiff_uassoc (PHP 5) array array_udiff_uassoc(array array1, array array2 [, array ..., callback vergleiche_werte, callback vergleiche_schluessel]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Schlüssel-Wert-Paare nicht in den anderen Arrays enthalten sind. Der Vergleich der Schlüssel wird von der Funktion vergleiche_schluessel durchgeführt; der Vergleich der Werte wird von der Funktion vergleiche_werte durchgeführt. Parameter array1 .. arrayn: Die Arrays, die miteinander verglichen werden. vergleiche_werte: Eine Funktion, mit der die Werte zweier Arrayelemente verglichen werden. Diese Funktion muss bei Gleichheit der Operanden 0 zurückgeben. vergleiche_schluessel: Eine Funktion, mit der die Schlüssel zweier Arrayelemente verglichen werden. Diese Funktion muss bei Gleichheit der Operanden 0 zurückgeben.

88

씰 씰S ch ne l lü b er s ic h t PHP 5

array_intersect (PHP 4 ≥ 4.0.1) array array_intersect(array array1, array array2 [, array ...]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Werte auch in den anderen Arrays enthalten sind. array_intersect_assoc (PHP 4 ≥ 4.3.0) array array_intersect_assoc(array array1, array array2 [, array ...]) Vergleicht mehrere Arrays und gibt die Elemente von array1 zurück,

deren Schlüssel-Wert-Paare nicht in den anderen Arrays enthalten sind. Parameter array1 .. arrayn: Die Arrays, die miteinander verglichen werden. Rückgabewert Ein Array, das alle Elemente von array1 enthält, die auch in den anderen Arrays enthalten sind. Je nachdem, welche der beiden Funktionen Sie verwenden, wird der Vergleich nur auf den Werten oder den Schlüssel-Wert-Paaren durchgeführt.

Ausgabe: array_diff() : Array ( [i] => Rom ) array_diff_assoc() : Array ( [d] => Berlin [i] => Rom ) array_intersect() : Array ( [0] => 55 [d] => Berlin ) array_intersect_assoc() : Array ( [0] => 55 )

9.2.3

Arrays sortieren

Nahezu allen Funktionen zum Sortieren von Arrays kann optional der Parameter sort_flags übergeben werden. Mit diesem Flag kann bestimmt werden, wie die Werte miteinander verglichen werden: 쐍 SORT_REGULAR: Führt einen nomalen Vergleich der Werte durch. Dies ist die Standardeinstellung. 쐍 SORT_NUMERIC: Vergleicht die Werte numerisch. 쐍 SORT_STRING: Vergleicht die Werte als Strings. arsort (PHP 3, PHP 4) void arsort(array input [, int sort_flags])

Sortiert die Werte eines Arrays absteigend. Die Schlüssel-Wert-Paare bleiben erhalten.

90

씰 씰S ch ne l lü b er s ic h t PHP 5

asort (PHP 3, PHP 4) void asort(array array [, int sort_flags])

Sortiert die Werte eines Arrays aufsteigend. Die Schlüssel-Wert-Paare bleiben erhalten. rsort (PHP 3, PHP 4) void rsort(array input [, int sort_flags])

Sortiert ein Array nach seinen Werten in absteigender (reverse) Reihenfolge. sort (PHP 3, PHP 4) Sortiert ein Array nach seinen Werten in aufsteigender Reihenfolge. Die Schlüssel-Wert-Paare bleiben nicht erhalten. uasort (PHP 3 ≥ 3.0.4, PHP 4) void uasort(array input, callback vergleichsfunktion)

Sortiert die Elemente eines Arrays nach seinen Werten mit Hilfe einer Vergleichsfunktion. Die Schlüssel-Wert-Paare bleiben erhalten. uksort (PHP 3 ≥ 3.0.4, PHP 4)

Arrays sortieren

void sort(array input [, int sort_flags])

void uksort(array input, callback vergleichsfunktion)

Sortiert ein Array nach seinen Schlüsseln mit Hilfe einer Vergleichsfunktion. usort (PHP 3 ≥ 3.0.3, PHP 4) void usort(array input, callback vergleichsfunktion)

Sortiert ein Array nach seinen Werten mit Hilfe einer Vergleichsfunktion. Parameter input: Das Array, das sortiert wird. sort_flags: Bestimmt, wie die Werte von input verglichen werden sollen. Kein Rückgabewert

씰 씰 S c h ne l l ü be rs i cht PHP 5

91

9.2

krsort (PHP 3 ≥ 3.0.13, PHP 4) int krsort(array input [, int sort_flags])

Sortiert die Elemente eines Arrays absteigend nach den Schlüsseln. Die Schlüssel-Wert-Paare bleiben erhalten. ksort (PHP 3, PHP 4)

Arrays sortieren

int ksort(array input [, int sort_flags])

9.2

Sortiert die Elemente eines Arrays aufsteigend nach den Schlüsseln. Die Schlüssel-Wert-Paare bleiben erhalten. Parameter input: Das Array, das sortiert wird. sort_flags: Bestimmt, wie die Werte von input verglichen werden sollen (seit PHP 4). Rückgabewert TRUE, falls die Operation erfolgreich war, ansonsten NULL. natcasesort (PHP 4) void natcasesort(array input)

Sortiert ein Array ohne Berücksichtigung der Groß- und Kleinschreibung. Die Schlüssel-Wert-Paare bleiben erhalten. natsort (PHP 4) void natsort(array input)

Sortiert ein Array nach seinen Werten in »natürlicher«, aufsteigender Reihenfolge. Groß- und Kleinschreibung werden berücksichtigt. Die Schlüssel-Wert-Paare bleiben erhalten. Parameter input: Das Array, das sortiert wird. kein Rückgabewert

Arrays sortieren

Ausgabe: arsort() Array ( [0] => 45 [1] => 2 [4] => rot [2] => blau [3] => 12 ) asort() Array ( [3] => 12 [2] => blau [4] => rot [1] => 2 [0] => 45 ) ksort() Array ( [0] => 45 [1] => 2 [2] => blau [3] => 12 [4] => rot ) 씰 씰 S c h ne l l ü be rs i cht PHP 5

9.2

93

Arrays sortieren

9.2

natsort() Array ( [1] => 2 [3] => 12 [0] => 45 [2] => blau [4] => rot ) sort() Array ( [0] => 12 [1] => 2 [2] => 45 [3] => blau [4] => rot )

array_multisort (PHP 4) bool array_multisort(array array1 [, SORT_ASC|SORT_DESC [, sort_flags]] [, array array2 [, SORT_ASC|SORT_DESC [, sort_flags]], ... ])

Sortiert die Werte mehrerer Arrays oder mehrdimensionaler Arrays so, als wären sie in Tabellenspalten angeordnet. Parameter array1 .. arrayn: Die Arrays, die sortiert werden. SORT_ASC|SORT_DESC: Diese Konstante bestimmt, ob aufsteigend oder absteigend sortiert wird. Fehlt diese Konstante, wird aufsteigend sortiert. sort_flags: Bestimmt, wie die Werte von input verglichen werden sollen. Rückgabewert TRUE, falls die Operation erfolgreich war, ansonsten FALSE. Diese Funktion sortiert Arrays ähnlich, wie eine relationale Datenbank eine Tabelle spaltenweise sortiert. Sortiert wird nach dem ersten Array. Tritt dort ein Wert mehrfach auf, wird nach der zweiten Tabelle weitersortiert usw.

94

씰 씰S ch ne l lü b er s ic h t PHP 5

9.2.4 Elemente extrahieren array_pop (PHP 4) mixed array_pop(array input)

array_push (PHP 4) int array_push(array input, mixed var [, mixed ...])

Fügt eines oder mehrere Elemente an das Ende eines Arrays an. Parameter input: Das Array, an dessen Ende Elemente angefügt werden. var: Die Werte der Elemente, die am Ende von input angefügt werden. Rückgabewert Die neue Anzahl der Elemente des Arrays.

9.2

Ausgabe: Anzahl: 5 Elemente. Nach push(): 7 Elemente. Das letzte Element war 34 Aktuell 6 Elemente.

씰 씰 S c h ne l l ü be rs i cht PHP 5

Elemente extrahieren

Gibt das letzte Element eines Arrays zurück und löscht es gleichzeitig. Parameter input: Das Array, dessen letztes Element abgefragt und gelöscht wird. Rückgabewert Das letzte Element von input oder NULL, wenn die Operation fehlschlägt oder input leer ist.

95

array_shift (PHP 4) mixed array_shift(array input)

Elemente extrahieren

Gibt das erste Element eines Arrays zurück und löscht es gleichzeitig. Parameter input: Das Array, dessen erstes Element abgefragt und gelöscht wird. Rückgabewert Das erste Element von input oder NULL, wenn die Operation fehlschlägt oder input leer ist. Alle numerischen Schlüssel werden aktualisiert, so dass die Schlüssel wieder bei 0 beginnen.

9.2

array_unshift (PHP 4) int array_unshift(array input, mixed var [, mixed ...])

Fügt eines oder mehrere Elemente am Beginn eines Arrays ein. Parameter input: Das Array, an dessen Beginn Elemente angefügt werden. var: Die Werte der Elemente, die am Beginn von input angefügt werden. Rückgabewert Die Anzahl der hinzugefügten Elemente. Alle numerischen Schlüssel werden aktualisiert, so dass die Schlüssel wieder bei 0 beginnen. array_rand (PHP 4) mixed array_rand(array input [, int anzahl])

Gibt ein oder mehrere zufällig ausgewählte Elemente eines Arrays zurück. Parameter input: Das Array, aus dem Elemente zufällig ausgewählt werden. anzahl: Die Anzahl der Elemente, die ausgewählt werden. Rückgabewert Wenn der Parameter anzahl nicht angegeben wurde, wird der Schlüssel eines ausgewählten Elements zurückgegeben. Anderenfalls wird ein Array zurückgegeben, das die Schlüssel der ausgewählten Elemente enthält.

96

씰 씰S ch ne l lü b er s ic h t PHP 5

current (PHP 3, PHP 4) mixed current(array input)

each (PHP 3, PHP 4) array each(array input)

Gibt das aktuelle Schlüssel-Wert-Paar eines Arrays zurück und bewegt den internen Zeiger um eine Position vorwärts. Parameter input: Das Array, dessen aktuelles Element abgefragt wird. Rückgabewert Das aktuelle Arrayelement als Schlüssel-Wert-Paar, das durch ein 4elementiges Array repräsentiert wird. Die Elemente mit den Schlüsseln [1] und [value] enthalten den Wert des gelesenen Arrayelements, die Schlüssel [0] und [key] enthalten den Namen seines Schlüssels. end (PHP 3, PHP 4) mixed end(array input)

Setzt den internen Zeiger des Arrays auf das letzte Element und gibt dessen Wert zurück. Parameter input: Das Array, dessen Zeiger auf das letzte Element gesetzt wird. Rückgabewert Der Wert des letzten Elements von input.

씰 씰 S c h ne l l ü be rs i cht PHP 5

97

Elemente extrahieren

Gibt den Wert des aktuellen Elements eines Arrays zurück. Parameter input: Das Array, dessen aktuelles Element abgefragt wird. Rückgabewert Der Wert des Arrayelements, auf das der interne Zeiger verweist. Beachten Sie, dass die Funktion FALSE zurückgibt, wenn der Wert dieses Elements zu FALSE ausgewertet wird oder wenn der Zeiger hinter das letzte Arrayelement zeigt.

9.2

next (PHP 3, PHP 4)

Sonstige Funktionen (alphabetisch)

mixed next(array, input)

9.2

Bewegt den internen Zeiger eines Arrays zuerst um eine Position weiter und gibt dann das aktuelle Element zurück. Parameter input: Das Array, dessen Zeiger vorgerückt wird. Rückgabewert Das Element des Arrays, auf das der interne Zeiger verweist, nachdem er vorgerückt wurde. Gibt es keine Elemente mehr, wird FALSE zurückgegeben. pos (PHP 3, PHP 4) mixed pos(array input)

Dies ist ein Alias für die Funktion current(). prev (PHP 3, PHP 4) mixed prev(array input)

Setzt den internen Zeiger eines Arrays um eine Position zurück und gibt dann das aktuelle Element zurück. Parameter input: Das Array, dessen Zeiger um eine Position zurückgesetzt wird. Rückgabewert Das Element des Arrays, auf das der interne Zeiger verweist, nachdem er zurückversetzt wurde. Gibt es keine Elemente mehr, wird FALSE zurückgegeben.

9.2.5

Sonstige Funktionen (alphabetisch)

array_change_key_case (PHP 4 ≥ 4.2.0) array array_change_key_case(array input [, int case])

Wandelt die Schlüssel eines assoziativen Arrays in Groß- oder Kleinbuchstaben um. Parameter input: Das Array, auf das die Funktion angewendet wird.

98

씰 씰S ch ne l lü b er s ic h t PHP 5

array_chunk (PHP 4 ≥ 4.2.0) array array_chunk(array input, int size [, bool preserve_keys])

Zerlegt ein Array in Teilarrays. Parameter input: Das Array, auf das die Funktion angewendet wird. size: Die Anzahl der Elemente, die die Teilarrays haben sollen. preserve_keys: Ein boolescher Parameter, mit dem bestimmt werden kann, ob die Teilarrays ihren originalen Schlüssel beibehalten sollen oder nicht. Wenn er TRUE ist, werden die Schlüssel beibehalten; wenn er FALSE ist, bekommen die Teilarrays als Schlüssel Standardwerte. Dies ist die Standardeinstellung. Rückgabewert Ein mehrdimensionales Array, das die erzeugten Teilarrays als Elemente enthält.

Ausgabe: Array ( [0] => Array ( [0] => [1] => [2] => [3] => )

hallo hallo hallo hallo

씰 씰 S c h ne l l ü be rs i cht PHP 5

99

Sonstige Funktionen (alphabetisch)

case: Dies ist der Wert einer der beiden Konstanten: 쐍 CASE_UPPER: Die Schlüssel werden in Großbuchstaben umgewandelt. 쐍 CASE_LOWER: Die Schlüssel werden in Kleinbuchstaben umgewandelt. Dies ist der Standardwert. Rückgabewert Das modifizierte Array. Wenn kein optionaler Parameter angegeben ist, werden die Schlüssel in Kleinbuchstaben umgewandelt.

9.2

Sonstige Funktionen (alphabetisch)

9.2

[1] => Array ( [0] => [1] => [2] => [3] => )

hallo hallo hallo hallo

[2] => Array ( [0] => hallo [1] => hallo ) )

array_count_values (PHP 4) array array_count_values(array input)

Zählt, wie oft ein Wert in einem Array vorkommt. Parameter input: Das Array, das durchgezählt werden soll. Rückgabewert Ein Array mit den Werten als Schlüssel, das die Anzahl der gefundenen Werte enthält.

Ausgabe: Array ( [hallo] => 10 )

100

씰 씰S ch ne l lü b er s ic h t PHP 5

array_filter (PHP 4 ≥ 4.0.6)

werden. Parameter input: Das Array, auf das die Funktion angewendet wird. filter: Der Name der Filterfunktion. Rückgabewert Ein Array, das alle Elemente aus input enthält, für die die Filterfunktion TRUE zurückgibt. Ist filter nicht angegeben, so entfernt die Funktion alle Elemente aus input, deren Wert zu FALSE ausgewertet wird. array_flip (PHP 4 ) array array_flip(array trans)

Tauscht Schlüssel und Werte eines Arrays. Parameter trans: Das Array, das transformiert wird. Rückgabewert Das transformierte Array. Alle Schlüssel wurden zu Werten, und alle Werte wurden zu Schlüsseln. Beachten Sie, dass die Werte von trans gültige Schlüssel sein müssen (Strings oder Integers). Kommt ein Wert mehrfach in trans vor, wird der größte Schlüssel als Wert übernommen, die anderen Elemente gehen verloren.

씰 씰 S c h ne l l ü be rs i cht PHP 5

101

Sonstige Funktionen (alphabetisch)

array array_filter(array input [, callback filter]) Filtert ein Array mit einer callback-Funktion, indem das Array input durchlaufen wird und die Werte an die Funktion filter übergeben

9.2

Sonstige Funktionen (alphabetisch)

Ausgabe: Ursprüngliches Array ( [0] => 55 [1] => Berlin [2] => Prag ) Geflipptes Array ( [55] => 0 [Berlin] => 1 [Prag] => 2 )

array_key_exists (PHP 4 ≥ 4.1.0) bool array_key_exists(mixed schlüssel, array input)

Prüft, ob ein Schlüssel in einem Array existiert. Parameter schlüssel: Der gesuchte Schlüssel. input: Das Array, das nach dem Schlüssel durchsucht wird. Rückgabewert TRUE, falls es den Schlüssel in dem Array input gibt, ansonsten FALSE. array_keys (PHP 4)

9.2

array array_keys(array input [, mixed suchbegriff])

Gibt die Schlüssel eines Arrays zurück. Parameter input: Das Array, dessen Schlüssel zurückgegeben werden. suchbegriff: Der Begriff, nach dem die Werte von input durchsucht werden. Rückgabewert Ein Array, in dem die Schlüssel des Arrays input gespeichert sind. Wurde ein suchbegriff angegeben, enthält das Ergebnisarray nur die Schlüssel, deren Wert dem suchbegriff entspricht.

102

씰 씰S ch ne l lü b er s ic h t PHP 5

array_map (PHP 4 ≥ 4.0.6) Wendet die angegebene Funktion auf die Elemente der übergebenen Arrays an. Parameter callback: die Funktion, die auf die Elemente der angegebenen Arrays angewendet wird. Wenn mehrere Arrays angegeben sind, muss die callback-Funktion so viele Parameter haben, wie Arrays übergeben wurden. array1 .. arrayn: Die Arrays, die bearbeitet werden. Rückgabewert Die modifizierten Arrays. array_merge (PHP 4) array array_merge(array array1, array array2 [, array ...])

array_merge_recursive (PHP 4 ≥ 4.0.1) array array_merge_recursive(array array1, array array2 [, array ...])

Verkettet mehrere Arrays, indem sie der Reihe nach an das Ende des vorhergehenden Arrays anfügt werden. Parameter array1 .. arrayn: Die Arrays, die verkettet werden. Rückgabewert Ein Array, das alle übergebenen Arrays verkettet, oder FALSE, wenn ein Fehler auftrat. Gibt es in den Arrays mehrere Elemente mit demselben assoziativen Schlüssel, so behält array_merge() das Element, das zuletzt auftritt, und überschreibt vorhergehende Elemente. array_merge_recursive() speichert diese Duplikate in einem Array. Treten Elemente mit einem numerischen Schlüssel mehrfach auf, werden sie am Ende des Ergebnisarrays angefügt. Ab PHP 5 wird eine E_WARNING ausgegeben, falls eines der Argumente kein Array ist.

씰 씰 S c h ne l l ü be rs i cht PHP 5

103

Sonstige Funktionen (alphabetisch)

array array_map(mixed callback, array array1 [, array ...])

9.2

Sonstige Funktionen (alphabetisch)

9.2

Ausgabe: array_merge() Array ( [a] => 55 [b] => rot [0] => gelb ) array_merge_recursive() Array ( [a] => Array ( [0] => 55 [1] => 55 ) [b] => Array ( [0] => rot [1] => rot ) [0] => gelb )

104

씰 씰S ch ne l lü b er s ic h t PHP 5

array_pad (PHP 4)

Parameter input: Das Array, das erweitert wird. laenge: Die laenge des Ergebnisarrays. pad-wert: Der Wert, mit dem die neuen Elemente gefüllt werden.

Rückgabewert Ein Array mit laenge-Elementen, das eine Kopie von input enthält. Wenn der Parameter laenge ein positiver Wert ist, wird das Array am rechten Ende erweitert. Ist der Wert negativ, wird am linken Ende erweitert. Ist laenge kleiner oder gleich der laenge von input, wird das ursprüngliche Array zurückgegeben. array_reduce (PHP 4 ≥ 4.0.5) mixed array_reduce(array input, callback funktion [, int start])

Ein Array wird durch die Anwendung einer Funktion, die über alle Elemente iteriert, auf einen einzigen Wert reduziert. Parameter input: Das Array, auf dessen Elemente die funktion angewendet wird. funktion: Die Funktion, die auf die Elemente von input angewendet wird. start: Der Wert, der zu Beginn des Prozesses verwendet wird oder als Ergebnis, falls input leer ist. Rückgabewert Der errechnete Wert. array_reverse (PHP 4) array array_reverse(array input [, bool preserve_keys])

Gibt ein Array zurück, bei dem die Reihenfolge der Elemente vertauscht ist.

씰 씰 S c h ne l l ü be rs i cht PHP 5

105

Sonstige Funktionen (alphabetisch)

array array_pad(array input, int laenge, mixed pad_wert) Erweitert ein Array bis zur angegebenen laenge und füllt die neuen Elemente mit dem pad_wert.

9.2

Sonstige Funktionen (alphabetisch)

9.2

Parameter input: Das Array, dessen Elemente umorganisiert werden. preserve_keys: Ein boolescher Wert, der festlegt, ob die Schlüssel der Elemente beibehalten werden sollen. Rückgabewert Ein neues Array, dessen Elemente in umgekehrter Reihenfolge angeordnet sind. Wenn der Parameter preserve_keys fehlt, bekommen die Elemente neue Schlüssel im Ergebnisarray. array_search (PHP 4 ≥ 4.0.5) mixed array_search(mixed needle, array haystack [, bool strict])

Durchsucht ein Array nach einem übergebenen Wert und gibt bei Erfolg den Schlüssel des gefundenen Elements zurück. Parameter needle: Der Wert, der im Array haystack gesucht wird. haystack: Das Array, das durchsucht wird. strict: Mit diesem Parameter wird bestimmt, ob der Datentyp bei der Suche ebenfalls übereinstimmen muss. Rückgabewert Der Schlüssel des ersten gefundenen Elements oder FALSE, wenn nichts gefunden wurde. Wenn needle eine Zeichenkette ist, wird beim Vergleich zwischen Groß- und Kleinschreibung unterschieden. array_slice (PHP 4) array array_slice(array input, int start [, int anzahl])

Extrahiert ein Teilarray aus einem Array. Parameter input: Das Array, aus dem ein Ausschnitt extrahiert wird. start: Die Position in input, an der der Ausschnitt beginnt. anzahl: Die Anzahl der Elemente, die ausgeschnitten werden. Rückgabewert Ein Array, das die ausgeschnittenen Elemente von input enthält.

106

씰 씰S ch ne l lü b er s ic h t PHP 5

array_splice (PHP 4) array array_splice(array input, int start [, int anzahl [, array ersatz]])

Löscht einen Ausschnitt aus einem Array und ersetzt ihn durch einen anderen. Parameter input: Das Array, aus dem ein Ausschnitt gelöscht und ersetzt wird. start: Die Position in input, ab der gelöscht wird. anzahl: Die Anzahl der Elemente, die gelöscht werden. ersatz: Ein Array, das den gelöschten Ausschnitt in input ersetzt. Rückgabewert Ein Array mit den extrahierten Werten. Ist start positiv, beginnt der Ausschnitt bei der Position dieses Elements, ist er negativ, beginnt der Ausschnitt start Positionen vor dem Ende von input. Wenn anzahl übergeben wurde und positiv ist, werden genau anzahl Elemente gelöscht. Ist anzahl negativ, wird alles bis zu anzahl Positionen vor dem Ende von input gelöscht. Fehlt anzahl, wird alles von start bis zum Ende von input gelöscht. Wenn das Array ersatz übergeben wurde, werden die gelöschten Elemente durch die Elemente dieses Arrays ersetzt.

씰 씰 S c h ne l l ü be rs i cht PHP 5

107

Sonstige Funktionen (alphabetisch)

Ist start positiv, beginnt der Ausschnitt bei der Position dieses Elements, ist er negativ, beginnt der Ausschnitt start Positionen vor dem Ende von input. Wenn anzahl übergeben wurde und positiv ist, enthält der Ausschnitt genau anzahl Elemente. Ist anzahl negativ, endet der Ausschnitt anzahl Positionen vor dem Ende von input. Fehlt anzahl, beginnt der Ausschnitt bei start und endet am Ende von input.

9.2

array_sum (PHP 4 ≥ 4.0.4)

Sonstige Funktionen (alphabetisch)

mixed array_sum(array input)

9.2

Berechnet die Summe der Werte eines Arrays. Parameter input: Das Array, dessen Werte summiert werden. Rückgabewert Die Summe der Werte in input als Integer- oder Fließkommazahl. array_unique (PHP 4 ≥ 4.0.1) array array_unique(array input)

Entfernt doppelte Werte in einem Array. Parameter input: Das Array, aus dem alle doppelten Werte entfernt werden. Rückgabewert Ein Array ohne doppelte Werte. Der Schlüssel des ersten Duplikats wird beibehalten, die danach folgenden Duplikate werden gelöscht.

108

씰 씰S ch ne l lü b er s ic h t PHP 5

Ausgabe:

씰 씰 S c h ne l l ü be rs i cht PHP 5

Sonstige Funktionen (alphabetisch)

erzeugt mit array_fill(): Array ( [0] => hallo [1] => hallo [2] => hallo [3] => hallo ) erweitert mit array_pad(): Array ( [0] => hallo [1] => hallo [2] => hallo [3] => hallo [4] => 500 [5] => 500 [6] => 500 [7] => 500 ) ausgeschnitten mit array_slice() Array ( [0] => hallo [1] => 500 [2] => 500 [3] => 500 [4] => 500 ) Ersetzt durch array_splice(): Array ( [0] => 22 [1] => 33 [2] => 44 [3] => 500 [4] => 500 )

9.2

109

Sonstige Funktionen (alphabetisch)

9.2

Duplikate entfernt mit array_unique() Array ( [0] => 22 [1] => 33 [2] => 44 [3] => 500 ) Summe mit array_sum(): 599

array_values (PHP 4) array array_values(array input)

Gibt alle Werte eines Arrays in einem numerischen Array zurück. Parameter input: Das Array, dessen Werte extrahiert werden. Rückgabewert Ein numerisches Array mit den Werten aus input. array_walk (PHP 3 ≥ 3.0.3, PHP 4) bool array_walk(array input, callback function [, mixed daten])

Durchläuft ein Array und modifiziert jedes Element mittels einer Funktion. Parameter input: Das Array, dessen Elemente modifiziert werden. function: Die function, die auf die Elemente von input angewendet wird. daten: Ein Parameter, der an die function übergeben werden kann. Rückgabewert TRUE, falls die Operation erfolgreich war, ansonsten FALSE. count (PHP 3, PHP 4) int count(mixed var)

Zählt die Elemente einer Variablen. Parameter var: Die Variable, deren Elemente gezählt werden.

110

씰 씰S ch ne l lü b er s ic h t PHP 5

Rückgabewert Wenn var ein Array ist, wird die Anzahl der Elemente zurückgegeben, ansonsten wird 1 zurückgegeben.

int extract(array input [, int typ [, string prefix]])

Schreibt Elemente aus einem assoziativen Array in die aktuelle Symboltabelle. Die Schlüssel werden dabei zum Variablennamen und die Werte zu Variablenwerten. Parameter input: Das Array, dessen Inhalt in die Symboltabelle importiert wird. typ: Dieser Parameter kontrolliert, wie numerische, ungültige oder in der Symboltabelle bereits vorhandene Schlüssel verarbeitet werden. Mögliche Werte für typ sind: 쐍 EXTR_OVERWRITE: Bereits vorhandene Variablen werden überschrieben (dies ist die Standardeinstellung). 쐍 EXTR_SKIP: Bereits vorhandene Variablen werden nicht überschrieben. 쐍 EXTR_PREFIX_SAME: Bereits vorhandene Variablen bekommen ein prefix. 쐍 EXTR_PREFIX_ALL: Alle Variablen bekommen ein prefix (seit PHP 4.0.5 auch numerische Variablen). 쐍 EXTR_PREFIX_INVALID: Nur ungültige oder numerische Variablen bekommen ein prefix (seit PHP 4.0.5). 쐍 EXTR_IF_EXISTS: Nur Variablen, die bereits existieren, werden überschrieben (seit PHP 4.2.0). 쐍 EXTR_PREFIX_IF_EXISTS: Nur Variablen, die bereits existieren, bekommen ein prefix (seit PHP 4.2.0). 쐍 EXTR_REFS: Alle Variablen werden als Referenzen auf das Array input in die Symboltabelle eingetragen (seit PHP 4.3.0). Rückgabewert Die Anzahl der Variablen, die erfolgreich in die Symboltabelle eingetragen wurden.

씰 씰 S c h ne l l ü be rs i cht PHP 5

111

Sonstige Funktionen (alphabetisch)

extract (PHP 3 ≥ 3.0.7, PHP 4)

9.2

in_array (PHP 4)

Sonstige Funktionen (alphabetisch)

bool in_array(mixed needle, array haystack [, bool strict])

9.2

Prüft, ob ein Wert in einem Array enthalten ist. Parameter needle: Der gesuchte Wert haystack: Das Array, das durchsucht wird. strict: Bestimmt, ob bei der Prüfung auch der Datentyp berücksichtigt werden soll. Rückgabewert TRUE, falls needle in haystack gefunden wird, ansonsten FALSE. Wenn needle eine Zeichenkette ist, berücksicht die Suche die Großund Kleinschreibung. Ab PHP 4.2 darf needle auch ein Array sein. key (PHP 3, PHP4) mixed key(array input)

Gibt einen Schlüssel eines assoziativen Arrays zurück. Parameter input: Das Array, aus dem der Schlüssel gelesen wird. Rückgabewert Der Schlüssel des Arrayelements an der aktuellen Position des internen Zeigers. list (PHP 3, PHP 4) void list(mixed varname, mixed ...)

Füllt eine Variablenliste mit Werten aus einem Array. Parameter varname: Die Namen der Variablen, denen ein Wert zugewiesen wird. Kein Rückgabewert

Ausgabe: Laterne, Laterne, Sonne, Mond und Sterne

112

씰 씰S ch ne l lü b er s ic h t PHP 5

reset (PHP 3, PHP 4) Setzt den internen Zeiger des Arrays auf den Anfang. Parameter input: Das Array, dessen Zeiger auf den Anfang gesetzt wird. Rückgabewert Der Wert des ersten Arrayelements oder FALSE, wenn das Array leer ist. shuffle (PHP 3 ≥ 3.0.8, PHP 4) void shuffle(array input)

Mischt die Elemente eines Arrays. Parameter input: Das Array, das gemischt wird. Kein Rückgabewert

9.3

Funktionen zur Ausgabesteuerung

Mit den Funktionen dieser Erweiterung haben Sie die Kontrolle über die Ausgaben eines Programms. Dies ist besonders nützlich, wenn Sie Header oder Cookies senden möchten, nachdem Ihr Programm schon Ausgaben generiert hat.

9.3

flush (PHP 3, PHP 4) void flush(void)

Leert den Ausgabepuffer und schickt den Inhalt an den Browser. Keine Parameter Kein Rückgabewert ob_clean (PHP 4 ≥ 4.2.0) void ob_clean(void)

Löscht den Ausgabepuffer, ohne die Daten an den Browser zu senden. Keine Parameter Kein Rückgabewert

씰 씰 S c h ne l l ü be rs i cht PHP 5

Funktionen zur Ausgabesteuerung

mixed reset(array input)

113

ob_end_clean (PHP 4)

Funktionen zur Ausgabesteuerung

bool ob_end_clean(void)

9.3

Löscht den Ausgabepuffer, ohne die Daten an den Browser zu senden, und beendet die Pufferung von Ausgabedaten (schließt den Puffer). Keine Parameter Rückgabewert TRUE, wenn der Puffer erfolgreich geschlossen wurde, anderenfalls FALSE. ob_end_flush (PHP 4) bool ob_end_flush(void)

Schickt den Inhalt des Ausgabepuffers an den Browser und beendet die Pufferung von Ausgabedaten (schließt den Puffer). Keine Parameter Rückgabewert TRUE, wenn der Puffer erfolgreich geschlossen wurde, anderenfalls FALSE. ob_flush (PHP 4 ≥ 4.2.0) void ob_flush(void)

Sendet den Inhalt des Ausgabepuffers an den Browser und leert den Puffer. Keine Parameter Kein Rückgabewert ob_get_clean (PHP 4 ≥ 4.3.0) string ob_get_clean(void)

Holt den Inhalt des Ausgabepuffers und beendet die Pufferung von Ausgabedaten (schließt den Puffer). Keine Parameter Rückgabewert Ein String, der den Inhalt des Ausgabepuffers enthält, oder FALSE, wenn die Ausgabepufferung nicht aktiviert ist. Diese Funktion hat dieselbe Wirkung wie aufeinander folgende Aufrufe von ob_get_contents() und ob_end_clean().

114

씰 씰S ch ne l lü b er s ic h t PHP 5

ob_get_contents (PHP 4) Gibt den Inhalt des Ausgabepuffers zurück. Keine Parameter Rückgabewert Ein String, der den Inhalt des Ausgabepuffers enthält, oder FALSE, wenn die Ausgabepufferung nicht aktiviert ist. ob_get_flush (PHP 4 ≥ 4.3.0) string ob_get_flush(void)

Sendet den Inhalt des Ausgabepuffers an den Browser, schreibt die Daten gleichzeitig in einen String und beendet die Pufferung von Ausgabedaten (schließt den Puffer). Keine Parameter Rückgabewert Ein String, der den Inhalt des Ausgabepuffers enthält, oder FALSE, wenn die Ausgabepufferung nicht aktiviert ist. ob_get_length (PHP 4 ≥ 4.0.2) int ob_get_length(void)

Ermittelt die Länge der Daten im Ausgabepuffer. Keine Parameter Rückgabewert Die Anzahl Bytes der gepufferten Daten oder FALSE, wenn die Ausgabepufferung nicht aktiviert ist. ob_get_level (PHP 4 ≥ 4.2.0) int ob_get_level(void)

Gibt die Verschachtelungsebene der Ausgabepufferung zurück. Keine Parameter Rückgabewert Die aktuelle Ebene der Ausgabepufferung, falls mehrere Ausgabepuffer geöffnet sind.

씰 씰 S c h ne l l ü be rs i cht PHP 5

115

Funktionen zur Ausgabesteuerung

string ob_get_contents(void)

9.3

ob_get_status (PHP 4 ≥ 4.2.0)

Funktionen zur Ausgabesteuerung

array ob_get_status([bool full_status])

9.3

Gibt den Status des aktiven Ausgabepuffers zurück oder die Status aller geöffneten Ausgabepuffer. Parameter full_status: Ist dieser optionale Parameter TRUE, werden die Status aller geöffneten Ausgabepuffer zurückgegeben. Fehlt der Parameter, wird der Status des aktuellen Ausgabepuffers zurückgegeben. Rückgabewert Ein Array mit Statusinformationen oder FALSE, wenn ein Fehler auftrat.

Ausgabe: Dieser Text wird gepuffert. DIESER TEXT WIRD GEPUFFERT. Länge des Puffers: 62 Zeichen. Verschachtelungstiefe: 2 Ebenen. Array ( [level] => 2 [type] => 1 [status] => 0 [name] => default output handler [del] => 1 )

116

씰 씰S ch ne l lü b er s ic h t PHP 5

ob_gzhandler (PHP 4 ≥ 4.0.4)

puffers zu komprimieren. Diese Funktion wird als Parameter an die Funktion ob_start() übergeben. Die Parameter buffer und mode werden intern von PHP gesetzt. ob_gzhandler() prüft, welche Kodierung der Browser akzeptiert (gzip, deflate oder gar keine), und komprimiert die Daten entsprechend, bevor sie an den Browser gesendet werden.

Ausgabe: Ich bin ein komprimierter Text.

ob_implicit_flush (PHP 4) void ob_implicit_flush ([int flag])

Bestimmt, ob Ausgaben gepuffert werden sollen oder nicht. Parameter flag: Wenn dieser optionale Parameter den Wert on hat (dies ist der Standardwert), wird der Inhalt des Puffers an den Browser gesendet und die Ausgabepufferung abgeschaltet. (Die Wirkung ist dieselbe, als wäre ob_end_flush() aufgerufen worden.) Ist der Wert off, werden alle Ausgaben sofort an den Browser geschickt, so dass sich explizite Aufrufe von flush() erübrigen. Kein Rückgabewert ob_list_handlers (PHP 4 ≥ 4.3.0) array ob_list_handlers(void)

Gibt eine Liste aller aktiven Ausgabehandler zurück. Keine Parameter Rückgabewert Ein Array, das alle aktiven Ausgabehandler enthält. 씰 씰 S c h ne l l ü be rs i cht PHP 5

117

Funktionen zur Ausgabesteuerung

string ob_gzhandler(string buffer [, int mode]) Registriert die Funktion ob_gzhandler(), um den Inhalt des Ausgabe-

9.3

ob_start (PHP 4)

Funktionen zur Ausgabesteuerung

bool ob_start([callback output_callback])

9.3

Schaltet die Ausgabepufferung an. Parameter callback: Eine Funktion, die auf den Inhalt des Ausgabepuffers angewendet wird, wenn der Puffer geleert wird. Der Inhalt des Puffers wird an die callback-Funktion übergeben und diese gibt einen neuen Ausgabepuffer zurück, dessen Inhalte an den Browser gesendet werden (siehe ob_gzhandler()). Rückgabewert TRUE bei Erfolg oder FALSE, wenn die callback-Funktion nicht ausführbar ist. output_add_rewrite_var (PHP 4 ≥ 4.3.0) bool output_add_rewrite_var(string name, string wert)

Fügt das übergebene Name-Wert-Paar als Übergabeparameter in URLs oder Formulare ein. Parameter name: Der name des Übergabeparameters. wert: Der wert des Übergabeparameters. Rückgabewert TRUE bei Erfolg, anderenfalls FALSE.

Im Quelltext, den der Browser darstellt, wurde der Link um die Übergabevariable zahl mit dem Wert 123 erweitert. In das Formular wurde ein hidden-Feld mit dem Namen zahl und dem Wert 123 eingefügt: Nächste Seite

118

씰 씰S ch ne l lü b er s ic h t PHP 5

Array ( [0] => URL-Rewriter)

output_reset_rewrite_vars (PHP 4 ≥ 4.3.0) Setzt die Modifikationen wieder zurück, die die Funktion output_add_rewrite_var() veranlasst hatte. Keine Parameter Rückgabewert TRUE bei Erfolg, anderenfalls FALSE.

9.4 Datums- und Zeitfunktionen checkdate (PHP 3, PHP 4) bool checkdate(int monat, int tag, int jahr)

Prüft, ob ein Datum gültig ist. Parameter monat: Der übergebene monat. Alle Werte von 1 bis 12 sind gültig. tag: Der übergebene tag. Gültige Werte sind 1 bis 31, je nachdem, wie viele Tage der monat hat. jahr: Das übergebene jahr. Gültige Werte sind 1 bis 32767. Rückgabewert TRUE, falls das angegebene Datum ein korrektes Format hat, ansonsten FALSE. date (PHP 3, PHP 4) string date(string format [, int timestamp])

Gibt ein formatiertes Datum für einen Zeitstempel zurück. Parameter format: Der string, der die Formatierung für das Datum festlegt. timestamp: Der Zeitstempel, der in einen Datumsstring umgewandelt wird. Rückgabewert Ein formatierter Datumsstring.

씰 씰 S c h ne l l ü be rs i cht PHP 5

119

Datums- und Zeitfunktionen

bool output_reset_rewrite_vars(void)

9.4

Datums- und Zeitfunktionen

Format- Beschreibung zeichen

9.4

a A B d D F g G h H i I j l L m M n O r s S t T U w W Y y z Z

Ante meridiem und Post meridiem, kleingeschrieben: am oder pm Ante meridiem und Post meridiem, großgeschrieben: AM oder PM Swatch-Internet-Zeit: 000 bis 999 Tag im Monat, mit führender Null, von 01 bis 31 Wochentag (englisch): Mon bis Sun Monatsnamen (englisch): January bis December Stunden im 12-Stunden-Format, ohne führende Nullen, von 1 bis 12 Stunden im 24-Stunden-Format, ohne führende Nullen, 0 bis 23 Stunden im 12-Stunden-Format, mit führenden Nullen, 01 bis 12 Stunden im 24-Stunden-Format, mit führenden Nullen, 00 bis 23 Minuten, mit führenden Nullen, 00 bis 59 (großes i) 1 für Sommerzeit, ansonsten 0 Tag im Monat ohne führende Null, von 1 bis 31 (kleines 'L') Wochentag (englisch) Sunday bis Saturday 1 für ein Schaltjahr, ansonsten 0. Monat als Zahl, mit führender Null, 01 bis 12 Monat (englisch) mit drei Buchstaben, Jan bis Dec Monat ohne führende Null, 1 bis 12 Zeitunterschied zur Greenwich-Zeit (GMT) in Stunden RFC-822-formatiertes Datum Sekunden, mit führender Null, 00 bis 59 englische Aufzählungszeichen für einen Tag: st, nd, rd oder th Anzahl der Tage im angegebenen Monat: 28 bis 31 Die Zeitzone des Rechners Sekunden seit Beginn der Unix-Epoche (1. Januar 1970 = 00:00:00 GMT) Numerischer Wochentag: 0 (für Sonntag) bis 6 (für Samstag) ISO-8601-Wochennummer des Jahres, die Woche beginnt am Montag (seit PHP 4.1.0) Vierstellige Jahreszahl Zweistellige Jahreszahl Der Tag im Jahr, von 0 bis 365 Offset der Zeitzone in Sekunden. Der Offset für die Zeitzone West nach UTC ist immer negativ und für die Zeitzone Ost nach UTC immer positiv.

Tabelle 9.1: Formate für Datum und Zeit

120

씰 씰S ch ne l lü b er s ic h t PHP 5

getdate (PHP 3, PHP 4) Gibt Informationen zu Datum und Zeit zurück. Parameter timestamp: Wenn timestamp angegeben ist, werden Informationen über diesen Zeitstempel zurückgegeben, ansonsten beziehen sich die Informationen auf die aktuelle Zeit. Rückgabewert Ein assoziatives Array mit Informationen zum angegebenen Zeitstempel. Schlüssel

Beschreibung

"seconds" "minutes" "hours" "mday" "wday" "mon" "year" "yday" "weekday" "month" 0

Die Sekunden, zwischen 0 und 59 Die Minuten, zwischen 0 und 59 Die Stunden, zwischen 0 und 23 Numerischer Tag im Monat, 1 bis 31 Numerischer Wochentag, 0 (Sonntag) bis 6 (Samstag) Monatszahl, zwischen 1 und 12 Vierstellige Jahreszahl Numerischer Tag des Jahres, 0 bis 366 Der Wochentag, Sunday bis Saturday Der Monatsname, January bis December Die Sekunden seit der Unix-Epoche

9.4

Tabelle 9.2: Die Komponenten des Arrays gettimeofday (PHP 3 ≥ 3.0.7, PHP 4) array gettimeofday(void)

Gibt die aktuelle Zeit zurück. Keine Parameter Rückgabewert Ein assoziatives Array, das die aktuelle Zeit enthält.

씰 씰 S c h ne l l ü be rs i cht PHP 5

Datums- und Zeitfunktionen

array getdate([int timestamp])

121

gmdate (PHP 3, PHP 4)

Datums- und Zeitfunktionen

string gmdate(string format [, int timestamp])

9.4

Gibt ein formatiertes GMT-Datum zurück. Parameter format: Der String, der die Formatierung für das Datum festlegt. timestamp: Der Zeitstempel, der in einen Datumsstring umgewandelt wird. Rückgabewert Ein formatierter Datumsstring, der die Greenwich-Zeit von timestamp enthält. Es gelten dieselben Optionen für format wie bei der Funktion date(). Unter Windows werden keine negativen Werte für den Parameter timestamp unterstützt. mktime (PHP 3, PHP 4) int mktime([int stunde [, int minute [, int sekunde [, int monat [, int tag [, int jahr [, int is_dst]]]]]]])

Gibt einen Unix-Zeitstempel für ein Datum zurück. gmmktime (PHP 3, PHP 4) int gmmktime([int stunde [, int minute [, int sekunde [, int monat [, int tag [, int jahr [, int is_dst]]]]]]])

Gibt einen Unix-Zeitstempel für ein GMT/UTC-Datum zurück. Parameter stunde, minute, sekunde, monat, tag, jahr: Die Datumsangaben, die in einen Zeitstempel umgewandelt werden. Die Parameter können von rechts nach links weggelassen werden. Fehlende Angaben werden durch die aktuelle Zeit ersetzt. is_dst: Dieser optionale Parameter bestimmt, ob die Sommerzeit berücksichtigt wird. Ist is_dst auf 1 gesetzt, wird die Sommerzeit berücksichtigt, bei 0 wird die Normalzeit benutzt, und bei -1 (Standardwert) versucht PHP dies selbst herauszufinden.

122

씰 씰S ch ne l lü b er s ic h t PHP 5

Rückgabewert Gibt einen Unix-Zeitstempel zurück. localtime (PHP 4) Ermittelt die lokale Zeit. Parameter timestamp: Der Zeitstempel, für den die lokale Zeit berechnet wird. is_associative: Wenn dieser optionale Parameter TRUE ist, wird ein assoziatives Array zurückgegeben, anderenfalls ein numerisches Array. Rückgabewert Ein Array mit dem lokalen Datum für den angegebenen Zeitstempel. Beachten Sie, dass die Monate im Ergebnisarray bei 0 beginnen. microtime (PHP 3, PHP 4) mixed microtime([bool get_as_float])

Gibt den aktuellen Unix-Zeitstempel einschließlich der Mikrosekunden zurück. Parameter get_as_float: Wenn dieser optionale Parameter zu TRUE ausgewertet wird, wird das Ergebnis als Fließkommazahl zurückgegeben (seit PHP 5). Rückgabewert Die aktuelle Zeit als String im Format Mikrosekunden, Sekunden oder als Fließkommazahl, wobei Sekunden die Anzahl der Sekunden seit der Unix-Epoche sind.

Datums- und Zeitfunktionen

Ausgabe:

9.4

Aktuelles Datum: Array ( [seconds] => 11 [minutes] => 11 [hours] => 21 [mday] => 13 [wday] => 6 [mon] => 3 [year] => 2004 [yday] => 72 [weekday] => Saturday [month] => March [0] => 1079208671 ) Aktuelle Zeit: Array ( [sec] => 1079208671 [usec] => 699532 [minuteswest] => -60 [dsttime] => 1 ) Lokale Zeit: Array ( [tm_sec] => 11 [tm_min] => 11 [tm_hour] => 21 [tm_mday] => 13 [tm_mon] => 2 [tm_year] => 104 [tm_wday] => 6 [tm_yday] => 72 [tm_isdst] => 0 ) Microtime: 0.69961900 1079208671

124

씰 씰S ch ne l lü b er s ic h t PHP 5

strftime (PHP 3, PHP 4) string strftime(string format [, int timestamp])

Gibt ein nach den lokalen Einstellungen formatiertes Datum für einen Zeitstempel zurück. gmstrftime (PHP 3 ≥ 3.0.12, PHP 4) Gibt ein nach den lokalen Einstellungen formatiertes GMT/UTC-Datum für einen Zeitstempel zurück. Parameter format: Ein String mit Formatierungsanweisungen. timestamp: Der Zeitstempel, der formatiert zurückgegeben wird. Ist dieser optionale Parameter nicht angegeben, wird die aktuelle Zeit zurückgegeben. Rückgabewert Ein String, der das formatierte Datum enthält. Format- Bedeutung zeichen %a %A %b %B %c %C %d %D %e %g %G %h %H

Wochentagsname, abgekürzt Wochentagsname, ausgeschrieben Monatsname, abgekürzt Monatsname, ausgeschrieben gebräuchliche Darstellung von Datum und Zeit in der aktuellen lokalen Einstellung Jahrhundert, als zweistellige Zahl, von 00 bis 99 Tag im Monat, von 01 bis 31 äquivalent zu %m, /%d, /%y Tag im Monat als Dezimalzahl, von 1 bis 31, einstellige Werte haben ein Leerzeichen als Präfix wie %G, aber ohne das Jahrhundert Jahr als vierstellige Zahl entsprechend der ISO-Wochennummer entspricht %b Stunde im 24-Stunden-Format von 00 bis 23

Tabelle 9.3: Formatierungsanweisungen 씰 씰 S c h ne l l ü be rs i cht PHP 5

125

Datums- und Zeitfunktionen

string gmstrftime(string format [, int timestamp])

9.4

Datums- und Zeitfunktionen

Format- Bedeutung zeichen

9.4

%I %j %m %M %n %p %r %R %S %t %T %u %U %V

%W %w %x %X %y %Y %Z %%

Stunde im 12-Stunden-Format von 01 bis 12 Tag im Jahr von 001 bis 366 Monat als Zahl von 01 bis 12 Minute als Zahl von 00 bis 59 Zeilenumbruch »am« oder »pm« Zeit in a.m.- oder p.m.-Notation Zeit im 24-Stunden-Format ohne Sekunden, entspricht %H:%M Sekunden als zweistellige Zahl von 00 bis 59 Tabulator aktuelle Zeit, entspricht %H:%M:%S Wochentag als Zahl von 1 bis 7 (Montag = 1) Kalenderwoche des aktuellen Jahres (Der erste Sonntag ist der erste Tag der ersten Woche.) Kalenderwoche von 00 bis 53, wobei die Woche 01 die erste Woche des Jahres mit mindestens vier Tagen ist, und Montag ist der erste Tag der Woche. Kalenderwoche, wobei die erste Woche am ersten Montag im Jahr beginnt. Wochentag von 0 bis 7 (Sonntag = 0) gebräuchliche Darstellung des Datums (ohne Zeit) in der aktuellen lokalen Einstellung gebräuchliche Darstellung der Zeit (ohne Datum) in der aktuellen lokalen Einstellung Jahr als zweistellige Zahl von 00 bis 99 (ohne Jahrhundert) Jahr (mit Jahrhundert) als Zahl Zeitzone, Name oder eine Abkürzung Prozentzeichen

Tabelle 9.3: Formatierungsanweisungen (Forts.)

126

씰 씰S ch ne l lü b er s ic h t PHP 5

strtotime (PHP 3 ≥ 3.0.12, PHP 4) Gibt ein Datum im englischen Format als Zeitstempel zurück. Parameter datum: Das Datum, das in einen Zeitstempel umgewandelt wird. now: Ein Zeitstempel, zu dem ein relatives Datum errechnet wird. Ist now nicht angegeben, wird das aktuelle Datum angenommen. Rückgabewert Ein String, der den Zeitstempel für das angegebene Datum enthält, oder –1, falls die Umwandlung nicht möglich ist. Beachten Sie, dass die Funktion ein nach der GNU-Syntax formatiertes Datum als Eingabe erwartet. Unkorrekte Eingaben führen nicht notwendigerweise zu einem Fehler. time (PHP 3, PHP 4) int time(void)

Gibt den aktuellen Unix-Zeitstempel zurück. Keine Parameter Rückgabewert Die aktuelle Zeit in Sekunden seit der Unix-Epoche (1. Januar 1970).

9.5

Externe Programme ausführen

int strtotime(string datum [, int now])

Externe Programme ausführen

Die hier beschriebenen Funktionen stellen eine Schnittstelle zum Befehlsinterpreter des Betriebssystems dar. escapeshellarg (PHP 4 ≥ 4.0.3) string escapeshellarg(string string)

Maskiert einen String, so dass er als Argument an einen Shell-Befehl übergeben werden kann. Parameter string: Der String, der maskiert wird.

씰 씰 S c h ne l l ü be rs i cht PHP 5

127

9.5

Externe Programme ausführen

Rückgabewert Der String, in einfache Anführungszeichen eingeschlossen, in dem alle weiteren einfachen Anführungszeichen mit einem Backslash maskiert und ebenfalls in einfache Anführungszeichen eingeschlossen sind.

9.5

Ausgabe: Array ( [0] => PID PPID PGID WINPID TTY UID STIME COMMAND [1] => 928 1 928 928 con 18 21:01:05 /usr/bin/ps ) Status: 0

passthru (PHP 3, PHP 4) void passthru(string befehl [, int rueckgabestatus])

Führt einen externen Befehl aus und gibt die Ergebnisse unformatiert aus. Parameter befehl: Der externe Befehl, der ausgeführt wird. rueckgabestatus: Falls dieser optionale Parameter angegeben ist, enthält er den Rückgabestatus von befehl. Kein Rückgabewert proc_close (PHP 4 ≥ 4.3.0) int proc_close(resource prozess) Schließt einen Prozess, der mit proc_open() geöffnet wurde.

Parameter prozess: Die Ressource, die den geöffneten Prozess identifiziert. Rückgabewert Der Exit-Code des Prozesses.

씰 씰 S c h ne l l ü be rs i cht PHP 5

129

Externe Programme ausführen

Rückgabewert Ein String, in dem die letzte Zeile der Ausgabe von befehl gespeichert ist.

9.5

proc_get_status (PHP 5)

Externe Programme ausführen

array proc_get_status(resource prozess)

9.5

Gibt Informationen über einen Prozess zurück, der mit proc_open() geöffnet wurde. Parameter prozess: Der Prozess, über den Informationen abgefragt werden. Rückgabewert Ein assoziatives Array, das den Status des Prozesses beschreibt. Dieses Array enthält die folgenden Elemente: 쐍 command (string): Der Befehl, der an proc_open übergeben wurde. 쐍 pid (int): Die Prozess-ID 쐍 running (bool): TRUE, falls der Prozess noch läuft, ansonsten FALSE. 쐍 signaled (bool): TRUE, falls der Kindprozess durch ein nicht abgefangenes Signal beendet wurde. Auf Windows-Systemen ist dieser Wert immer FALSE. 쐍 stopped (bool): TRUE, falls der Kindprozess angehalten wurde. Auf Windows-Systemen ist dieser Wert immer FALSE. 쐍 exitcode (int): Der Exit-Code, der von dem Prozess zurückgegeben wurde. 쐍 termsig (int): Die Nummer des Signals, das den Kindprozess zum Beenden veranlasste. 쐍 stopsig (int): Die Nummer des Signals, das den Kindprozess zum Anhalten veranlasste. proc_open (PHP 4 ≥ 4.3.0) resource proc_open(string befehl, array descriptorspec, array pipes)

Führt einen externen Befehl aus und öffnet Dateihandler zur Ein- und Ausgabe. Parameter befehl: Der externe Befehl, der ausgeführt wird. descriptorspec: Ein Array mit dem Dateideskriptor als Schlüssel und der Anweisung für PHP, wie der Deskriptor an einen Kindprozess übergeben wird, als Wert.

130

씰 씰S ch ne l lü b er s ic h t PHP 5

pipes: Dieses Array wird von proc_open() mit Dateizeigern gefüllt,

die auf das jeweilige Ende der erzeugten Pipes verweisen. Rückgabewert Eine resource, die den Prozess repräsentiert.

int proc_terminate(resource prozess [, int signal]) Beendet einen Prozess, der mit proc_open() geöffnet wurde.

Parameter prozess: Die resource, die den geöffneten Prozess identifiziert. signal: Das Signal, das an den Prozess gesendet wird. Der Standard ist SIGTERM. Rückgabewert TRUE bei Erfolg oder FALSE, wenn ein Fehler auftrat. proc_nice (PHP 5) bool proc_nice(int prioritaet)

Ändert die Priorität des aktuellen Prozesses. Parameter prioritaet: Die neue Priorität des Prozesses. Rückgabewert TRUE bei Erfolg oder FALSE, wenn ein Fehler auftrat. Auf Windows-Systemen steht diese Funktion nicht zur Verfügung. Sie steht mit den anderen proc_-Funktionen in keinerlei Beziehung. shell_exec (PHP 4) string shell_exec(string befehl)

Führt einen externen Befehl aus und gibt die Ausgabe als String zurück. Parameter befehl: Der externe Befehl, der ausgeführt wird. Rückgabewert Ein String, der die komplette Ausgabe eines externen Befehls enthält.

씰 씰 S c h ne l l ü be rs i cht PHP 5

131

Externe Programme ausführen

proc_terminate (PHP 5)

9.5

system (PHP 3, PHP 4)

Funktionen zum Umgang mit dem Dateisystem

string system(string befehl [, int exit_code])

9.6

Führt einen externen Befehl aus und gibt die Ausgabe am Bildschirm aus. Parameter befehl: Der externe Befehl, der ausgeführt wird. return_var: Falls dieser Parameter angegeben ist, wird hier Exit-Code des externen Programms gespeichert. Rückgabewert Ein String, in dem die letzte Zeile der Ausgabe von befehl gespeichert ist.

Ausgabe: PID PPID PGID WINPID TTY UID STIME COMMAND 1904 1 1904 1904 con 18 23:08:02 /usr/bin/ps PID PPID PGID WINPID TTY UID STIME COMMAND 980 1 980 980 con 18 23:08:02 /usr/bin/ps 980 1 980 980 con 18 23:08:02 /usr/bin/ps

9.6 Funktionen zum Umgang mit dem Dateisystem 9.6.1

Prüffunktionen

is_dir (PHP 3, PHP 4) bool is_dir(string dateiname)

Prüft auf ein Verzeichnis. Parameter dateiname: Relativer oder absoluter Dateiname, der geprüft werden soll. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

132

씰 씰S ch ne l lü b er s ic h t PHP 5

Rückgabewert TRUE, falls dateiname existiert und ein Verzeichnis ist, ansonsten FALSE. is_file (PHP 3, PHP 4) bool is_file(string dateiname)

is_link (PHP 3, PHP 4) bool is_link(string dateiname)

Prüft auf einen symbolischen Link. Parameter dateiname: Ein Datei- oder Verzeichnisname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname existiert und ein symbolischer Link ist, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URLWrappern benutzt werden. is_executable (PHP 3, PHP 4) bool is_executable(string dateiname)

Prüft, ob eine Datei ausführbar ist. Parameter dateiname: Ein Datei- oder Verzeichnisname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname existiert und ausführbar ist, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

씰 씰 S c h ne l l ü be rs i cht PHP 5

133

Prüffunktionen

Prüft auf eine reguläre Datei. Parameter dateiname: Ein Dateiname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname existiert und eine reguläre Datei ist, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

9.6

is_readable (PHP 3, PHP 4) bool is_readable(string dateiname)

Prüft, ob eine Datei oder ein Verzeichnis lesbar ist. Parameter dateiname: Ein Datei- oder Verzeichnisname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname existiert und lesbar ist, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. is_writable, is_writeable (PHP 4)

Prüffunktionen

bool is_writable(string dateiname) bool is_writeable(string dateiname)

9.6

Prüft, ob eine Datei oder ein Verzeichnis beschreibbar ist. Parameter dateiname: Ein Datei- oder Verzeichnisname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname existiert und beschreibbar ist, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. is_uploaded_file (PHP 3 ≥ 3.0.17, PHP 4 ≥ 4.0.3) bool is_uploaded_file(string dateiname) Prüft, ob eine Datei über HTTP POST hochgeladen wurde.

Parameter dateiname: Ein Dateiname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname über HTTP POST hochgeladen wurde, ansonsten FALSE. file_exists (PHP 3, PHP 4) bool file_exists(string dateiname)

Prüft, ob eine Datei oder ein Verzeichnis existiert.

134

씰 씰S ch ne l lü b er s ic h t PHP 5

Parameter dateiname: Ein Datei- oder Verzeichnisname, der geprüft werden soll. Rückgabewert TRUE, falls dateiname existiert, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

fileatime (PHP 3, PHP 4) int fileatime (string dateiname)

Datum und Uhrzeit des letzten Zugriffs auf eine Datei oder ein Verzeichnis. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das der letzte Zugriffszeitpunkt bestimmt werden soll. Rückgabewert Ein Unix-Zeitstempel des letzten Zugriffs auf dateiname oder FALSE bei einem Fehler. Das verwendete Dateisystem muss atime unterstützen, ansonsten ist die Verwendung dieser Funktion sinnlos. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. filectime (PHP 3, PHP 4)

Informationen zu Dateien und Verzeichnissen

9.6.2 Informationen zu Dateien und Verzeichnissen

int filectime(string dateiname)

Datum und Uhrzeit der letzten Änderungen von Metadaten einer Datei oder eines Verzeichnisses. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das die letzte Änderung der Metadaten bestimmt werden soll. Rückgabewert Ein Unix-Zeitstempel der letzten Änderungen von Metadaten eines Dateisystemeintrags von dateiname oder FALSE bei einem Fehler. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

씰 씰 S c h ne l l ü be rs i cht PHP 5

135

9.6

filemtime (PHP 3, PHP 4)

Informationen zu Dateien und Verzeichnissen

int filemtime(string dateiname)

9.6

Datum und Uhrzeit der letzten inhaltlichen Änderung einer Datei. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das die letzte Änderung bestimmt werden soll. Rückgabewert Ein Unix-Zeitstempel der letzen inhaltlichen Änderung an dateiname oder FALSE bei einem Fehler. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. fileinode (PHP 3, PHP 4) int fileinode(string dateiname)

Liefert die Inode-Nummer. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das die Inode-Nummer bestimmt werden soll. Rückgabewert Die Inode-Nummer von dateiname. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. fileperms (PHP 3, PHP 4) int fileperms(string dateiname)

Zugriffsrechte einer Datei oder eines Verzeichnisses. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das die Zugriffsrechte bestimmt werden sollen. Rückgabewert Die Zugriffsrechte von dateiname als Zahl, die Sie mit decoct() in eine interpretierbare Form umwandeln können, oder FALSE bei einem Fehler. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

136

씰 씰S ch ne l lü b er s ic h t PHP 5

fileowner (PHP 3, PHP 4) Liefert den Dateieigentümer. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das der Eigentümer bestimmt werden soll. Rückgabewert Die numerische User-ID von dateiname, die Sie mit posix_getpwuid() zu einem Benutzernamen auflösen können, oder FALSE bei einem Fehler. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URLWrappern benutzt werden. filegroup (PHP 3, PHP 4) int filegroup(string dateiname)

Liefert den Gruppennamen. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das die Gruppe bestimmt werden soll. Rückgabewert Die numerische Gruppen-ID von dateiname, die Sie mit posix_getgrgid() zu einem Gruppennamen auflösen können, oder FALSE bei einem Fehler. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. filesize (PHP 3, PHP 4) int filesize(string dateiname)

Liefert die Größe einer Datei. Parameter dateiname: Eine Datei, deren Größe bestimmt werden soll. Rückgabewert Die Größe von dateiname in Byte oder FALSE bei einem Fehler. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

씰 씰 S c h ne l l ü be rs i cht PHP 5

137

Informationen zu Dateien und Verzeichnissen

int fileowner(string dateiname)

9.6

filetype (PHP 3, PHP 4)

Informationen zu Dateien und Verzeichnissen

string filetype(string dateiname)

9.6

Bestimmt den Typ einer Datei. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das der Typ bestimmt werden soll. Rückgabewert Der Typ, auf den dateiname verweist: fifo, char, dir, block, link, file und unknown oder FALSE im Fehlerfall. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. stat (PHP 3, PHP 4) array stat(string dateiname

Liefert Statistiken zu einer Datei. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das Informationen angefordert werden sollen. Rückgabewert Ein numerisches Array mit Startwert 0 und ein assoziatives Array mit Informationen über dateiname oder FALSE im Fehlerfall. Numerische und assoziative Schlüssel und deren Werte: Numerisch Assoziativ Beschreibung 0 1 2 3 4 5 6

dev ino mode nlink uid gid rdev

7 8

size atime

Laufwerksnummer Inode-Nummer Zugriffsrechte als oktale Zahl Anzahl der Hardlinks User-ID des Eigentümers Gruppen-ID des Eigentümers Laufwerkstyp als Dezimalzahl, falls es sich um ein Inode-Laufwerk handelt. Größe in Bytes Zeitpunkt des letzen Zugriffs (Unix-Zeitstempel)

Tabelle 9.4: Statistische Werte einer Datei

138

씰 씰S ch ne l lü b er s ic h t PHP 5

Numerisch Assoziativ Beschreibung mtime

10

ctime

11 12

blksize blocks

Zeitpunkt der letzen Änderung der Metadaten (Unix-Zeitstempel) Zeitpunkt der letzen inhaltlichen Änderung (Unix- Zeitstempel) Blockgröße in Byte für I/O des Dateisystems * Anzahl der belegten Blocks

Tabelle 9.4: Statistische Werte einer Datei (Forts.) * Unter einem Betriebssystem, das einzelne Informationen nicht unterstützt, sind die entsprechenden Arraywerte NULL. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URLWrappern benutzt werden.

fstat (PHP 4) array fstat(resource handle)

Statistiken zu einer geöffneten Datei. Parameter handle: Ein Verweis auf ein Datei. Rückgabewert Exakt wie bei stat(), die Statistiken beziehen sich allerdings auf offene Datei, auf die handle verweist. lstat (PHP 3 ≥ 3.0.4, PHP 4) array lstat(string dateiname)

Liefert Statistiken über eine Datei oder einen symbolischen Link. Parameter dateiname: Datei oder Verzeichnis, für die bzw. das Informationen angefordert werden sollen. Rückgabewert Falls dateiname ein symbolischer Link ist, beziehen sich die Statistiken auf den Link. Der Rückgabewert entspricht dem der Funktion stat(). Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

씰 씰 S c h ne l l ü be rs i cht PHP 5

139

Informationen zu Dateien und Verzeichnissen

9

9.6

linkinfo (PHP 3, PHP 4)

Informationen zu Dateien und Verzeichnissen

int linkinfo(string pfad)

9.6

Liefert Informationen zu einem Link. Parameter pfad: Ein Datei- oder Verzeichnisname. Rückgabewert Entspricht dem Wert des ersten Schlüssels des von stat() zurückgegebenen Arrays. readlink (PHP 3, PHP 4) string readlink(string pfad)

Liefert das Ziel eines symbolischen Links. Parameter pfad: Datei- oder Verzeichnisname, dessen Linkziel gelesen werden soll. Rückgabewert Liefert das Ziel eines symbolichen Links, falls pfad ein symbolicher Link ist und das Ziel existiert, ansonsten FALSE. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung. disk_free_space (PHP 4 ≥ 4.1.0), diskfreespace (PHP 3 ≥ 3.0.7, PHP 4) float disk_free_space(string verzeichnis) float diskfreespace(string verzeichnis)

Berechnet den freien verfügbaren Speicherplatz in einem Verzeichnis. Parameter verzeichnis: Ein Verzeichnis, für das der freie Speicherplatz berechnet werden soll. Rückgabewert Liefert für verzeichnis den freien Speicherplatz im korrespondierenden Dateisystem oder in der Partition, gemessen in Byte.

140

씰 씰S ch ne l lü b er s ic h t PHP 5

disk_total_space Berechnet den insgesamt verfügbaren Speicherplatz in einem Verzeichnis. Parameter verzeichnis: Ein Verzeichnis, für das der Speicherplatz berechnet werden soll. Rückgabewert Liefert für verzeichnis den insgesamt verfügbaren Speicherplatz im korrespondierenden Dateisystem oder in der Partition, gemessen in Byte.

9.6.3 Informationen aus Pfadangaben basename (PHP 3, PHP 4) string basename(string pfad [, string suffix])

Extrahiert den Dateinamen aus einer Pfadangabe. Parameter pfad: Vollständige Pfadangabe zu einer Datei. suffix: Eine Dateiendung mit vorangestelltem Punkt, zum Beispiel .php, .html (ab PHP 4.1.0). Rückgabewert Der Name der Datei, der in pfad angegeben wurde. Ist suffix gesetzt, wird dieses abgeschnitten. Es findet keine Überprüfung statt, ob pfad tatsächlich im Dateisystem vorhanden ist. dirname (PHP 3, PHP 4) string dirname(string pfad)

Extrahiert die Verzeichniskomponente aus einer Pfadangabe. Parameter pfad: Ein Pfad zu einer Datei. Rückgabewert Zeigt pfad auf einen Dateinamen, wird der Verzeichnispfad zurückgegeben. Es findet keine Überprüfung statt, ob pfad tatsächlich im Dateisystem vorhanden ist. 씰 씰 S c h ne l l ü be rs i cht PHP 5

141

Informationen aus Pfadangaben

float disk_total_space(string verzeichnis)

9.6

realpath (PHP 4)

Lesen und Schreiben von Dateien

string realpath(string pfad)

9.6

Liefert einen absoluten kanonischen Pfad. Parameter pfad: Eine Pfadangabe. Rückgabewert Falls pfad existiert, wird der tatsächliche Pfad, wie er im Dateisystem repräsentiert wird, zurückgegeben. Dabei werden symbolische Links aufgelöst und durch die tatsächlichen Pfadangaben ersetzt. Im Fehlerfall liefert diese Funktion FALSE. pathinfo (PHP 4 ≥ 4.0.3) array pathinfo(string pfad)

Liefert Informationen über einen Dateipfad. Parameter pfad: Ein Pfad zu einer Datei. Rückgabewert Wird bei pfad ein Pfad zu einer existierenden Datei angegeben, erhalten Sie ein assoziatives Array mit den Schlüsseln dirname, basename und extension. dirname entspricht der Rückgabe von dirname(), basename der Rückgabe von basename() und extension dem Suffix des Dateinamens. Im Fehlerfall liefert diese Funktion FALSE.

9.6.4 Lesen und Schreiben von Dateien fopen (PHP 3, PHP 4) resource fopen(string dateiname, string modus [, int use_include_path [, resource context]])

Öffnet eine Datei oder eine URL. Parameter dateiname: Datei, die geöffnet werden soll; kann auch mit Streams und Wrappern benutzt werden (http://, ftp://, compression.zlib etc.). modus: Bestimmt die Art und Weise, wie dateiname geöffnet wird. Mögliche Werte sind:

142

씰 씰S ch ne l lü b er s ic h t PHP 5

씰 씰 S c h ne l l ü be rs i cht PHP 5

143

Lesen und Schreiben von Dateien

쐍 r: Öffnet dateiname nur zum Lesen. Der Dateizeiger wird auf den Anfang der Datei gesetzt. 쐍 r+: Öffnet dateiname zum Lesen und Schreiben. Der Dateizeiger wird auf den Anfang der Datei gesetzt. 쐍 w: Öffnet dateiname nur zum Schreiben. Der Dateizeiger wird auf den Anfang der Datei gesetzt und dateiname auf eine Länge von 0 Byte gesetzt. Existiert dateiname nicht, wird versucht, die Datei anzulegen. 쐍 w+: Öffnet dateiname zum Lesen und Schreiben. Der Dateizeiger wird auf den Anfang der Datei gesetzt und dateiname auf eine Länge von 0 Byte gesetzt. Existiert dateiname nicht, wird versucht, die Datei anzulegen. 쐍 a: Öffnet dateiname nur zum Schreiben. Der Dateizeiger wird auf das Ende der Datei gesetzt. Existiert dateiname nicht, wird versucht, die Datei anzulegen. 쐍 a+: Öffnet dateiname zum Lesen und Schreiben. Der Dateizeiger wird auf das Ende der Datei gesetzt. Existiert dateiname nicht, wird versucht, die Datei anzulegen. 쐍 x: Nur für lokale Dateien geeignet. Legt dateiname an und öffnet dateiname nur zum Schreiben. Der Dateizeiger wird auf den Anfang der Datei gesetzt (ab PHP 4.3.2). 쐍 x+: Nur für lokale Dateien geeignet. Legt dateiname an und öffnet dateiname nur zum Schreiben. Der Dateizeiger wird auf den Anfang der Datei gesetzt (ab PHP 4.3.2). 쐍 b: Öffnet dateiname im binären Modus. Standard für alle Modi bei Betriebssystemen, die zwischen binären Daten und Textdaten unterscheiden (z.B. Windows-Systeme; ab PHP 4.3.2). 쐍 use_include_path: 1 oder TRUE, falls nach Dateien im include_path gesucht werden soll. 쐍 context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert Liefert ein Dateihandle, falls dateiname erfolgreich geöffnet werden konnte, ansonsten FALSE. Dieses Dateihandle wird von anderen Funktionen zum Lesen und Schreiben benötigt.

9.6

fread (PHP 3, PHP 4)

Lesen und Schreiben von Dateien

string fread(resource handle, int laenge)

9.6

Liest Inhalte binärsicher aus einer Datei. Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. laenge: Anzahl der Bytes, die maximal aus handle gelesen werden. Rückgabewert Der Inhalt aus der Datei, auf die handle zeigt. Es wird so lange gelesen, bis maximal laenge an Bytes ausgelesen wurden oder das Ende der Datei erreicht ist (EOF). fwrite, fputs (PHP 3, PHP 4 ) int fwrite(resource handle, string inhalt [, int laenge]) int fputs(resource handle, string inhalt [, int laenge])

Schreibt Inhalte binärsicher in eine Datei. Parameter handle: Verweis auf eine Datei, in die geschrieben werden soll. inhalt: Der Inhalt, der in handle geschrieben werden soll. laenge: Anzahl der Bytes, die maximal geschrieben werden sollen. Rückgabewert Die Anzahl an Bytes, die in die Datei geschrieben wurden, auf die mit handle verwiesen wurde, bei einem Fehler FALSE. Falls laenge angegeben wurde, wird spätestens, nachdem die Anzahl von laenge geschrieben wurde, das Schreiben beendet, ansonsten wenn inhalt komplett geschrieben wurde. fclose (PHP 3, PHP 4) bool fclose(resource handle)

Schließt ein Dateihandle. Parameter handle: Verweis auf eine Datei, die geschlossen werden soll. Rückgabewert TRUE, falls das Schließen von handle erfolgreich war, ansonsten FALSE.

144

씰 씰S ch ne l lü b er s ic h t PHP 5

fgetc (PHP 3, PHP 4) Liest ein einzelnes Zeichen binärsicher vom Dateizeiger. Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. Rückgabewert Ein einzelnes Zeichen aus der Datei, auf die handle verweist. FALSE, wenn das Dateiende (EOF) erreicht ist. Für Tests, ob das Dateiende erreicht wurde, sollten die Vergleichsoperatoren === oder !== benutzt werden. fgets (PHP 3, PHP 4) string fgets(resource handle[, int laenge])

Liest eine Zeile vom Dateizeiger. Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. laenge: Anzahl der Bytes, die maximal von einer Zeile aus handle gelesen werden sollen. Fehlt die Angabe, wird der Standardwert von 1024 Bytes verwendet. Rückgabewert Eine Zeile aus handle. Das Lesen einer Zeile wird beendet, wenn entweder laenge -1 Bytes gelesen wurden bzw. ein Zeilenumbruch oder das Ende der Datei (EOF) erreicht ist. fgetss (PHP 3, PHP 4) string fgetss(resource handle, int laenge[, string erlaubte_tags])

Liest eine Zeile vom Dateizeiger und entfernt HTML-Tags. Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. laenge: Anzahl der Bytes, die maximal von einer Zeile aus handle gelesen werden sollen. erlaubte_tags: HTML-Tags, die nicht entfernt werden sollen.

씰 씰 S c h ne l l ü be rs i cht PHP 5

145

Lesen und Schreiben von Dateien

string fgetc(resource handle)

9.6

Rückgabewert Entspricht fgets() mit dem Unterschied, dass HTML-Tags mit Ausnahme von erlaubte_tags entfernt wurden.

Lesen und Schreiben von Dateien

fgetcsv (PHP 3 ≥ 3.0.8, PHP 4)

9.6

array fgetcsv(resource handle, int laenge [, string trenner [, string einschluss]])

Liest eine Zeile vom Dateizeiger und prüft auf komma-getrennte Felder (CSV). Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. laenge: Anzahl der Bytes, die maximal von einer Zeile aus handle gelesen werden sollen. Dieser Wert sollte größer sein als die längste Zeile der CSV-Datei. trenner: Ein einzelnes Zeichen, das als Trennzeichen benutzt werden soll. Standard ist ein Komma. einschluss: Ein einzelnes Zeichen, das zusammengehörige Felder umschließt. Standard sind doppelte Anführungszeichen (ab PHP 4.3.0). Rückgabewert Ein numerisch indiziertes Array (Startwert 0) als Schlüssel und mit den einzelnen Feldern der CVS-Datei als Werte. Tritt ein Lesefehler auf oder ist das Dateiende erreicht, wird FALSE zurückgegeben. fscanf (PHP 4 ≥ 4.0.1) mixed fscanf(resource handle, string format [, string var])

Formatiert den Inhalt einer Datei. Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. format: Eine Zeichenkette mit Formatierungsanweisungen. Mögliche Werte sind bei sprintf() beschrieben. var: Eine oder mehrere Variablen, denen die Werte entsprechend von format zugewiesen werden.

146

씰 씰S ch ne l lü b er s ic h t PHP 5

fpassthru (PHP 3, PHP 4 ) int fpassthru(resource handle)

Gibt den gesamten Inhalt einer Datei aus. Parameter handle: Verweis auf eine Datei, aus der gelesen werden soll. Rückgabewert Ab der aktuellen Position des Dateizeigers wird der gesamte Inhalt einer Datei an die aktuelle Ausgabe weitergeleitet und die Anzahl der ausgegebenen Zeichen zurückgeliefert. fflush (PHP 4 ≥ 4.0.1) bool fflush(resource handle)

Den gesamten Ausgabepuffer in eine Datei schreiben. Parameter handle: Verweis auf eine Datei, in die der Ausgabepuffer geschrieben werden soll. Rückgabewert TRUE, falls der Ausgabepuffer erfolgreich geschrieben werden konnte, ansonsten FALSE.

씰 씰 S c h ne l l ü be rs i cht PHP 5

147

Lesen und Schreiben von Dateien

Rückgabewert Wenn nur zwei Parameter übergeben werden, erhalten Sie ein multidimensionales, numerisches Array (Startwert 0) mit den Werten, die format entsprechen. Wird var mit angegeben, erhalten Sie die Anzahl der mit format behandelten Werte, diese stehen in den Variablen var zur Verfügung. Ist das Ende der Datei erreicht, wird FALSE zurückgegeben.

9.6

ftruncate (PHP 4)

Lesen und Schreiben von Dateien

bool ftruncate (resource handle, int groesse)

9.6

Kürzt eine Datei auf die angegebene Größe. Parameter handle: Verweis auf eine Datei, die verkleinert werden soll. groesse: Anzahl in Bytes, auf die handle verkürzt werden soll. Rückgabewert TRUE, falls die Datei erfolgreich verkleinert werden konnte, ansonsten FALSE. flock (PHP 3 ≥ 3.0.7, PHP 4) bool flock(resource handle, int operation [, int &$wouldblock])

Portable Sperrung einer Datei. Parameter handle: Verweis auf eine zum Lesen oder Schreiben geöffnete Datei. operation: Die Art und Weise, wie handle gesperrt wird. Mögliche Werte: 쐍 LOCK_SH: Geteilte Sperrung für Lesevorgänge (1 für PHP ≤ 4.0.1). 쐍 LOCK_EX: Exklusive Sperrung für Schreibvorgänge (2 für PHP ≤ 4.0.1). 쐍 LOCK_UN: Hebt LOCK_SH oder LOCK_EX auf (3 für PHP ≤ 4.0.1). 쐍 LOCK_NB: Erlaubt Zugriffe während der Sperrung (4 für PHP ≤ 4.0.1). wouldblock: TRUE blockiert Zugriffe während einer Sperrung, FALSE erlaubt Zugriffe. Rückgabewert TRUE, falls die Sperrung von handle mittels operation erfolgreich war, ansonsten FALSE. Bei Verwendung älterer Dateisysteme, wie zum Beispiel FAT, liefert flock() immer FALSE. Auf den meisten verteilten Dateisystemen (wie z.B. NFS) funktioniert diese Funktion nicht. Bei Verwendung von Multithreaded-Server-APIs wie ISAPI bietet flock() keinen verlässlichen Sperrschutz.

148

씰 씰S ch ne l lü b er s ic h t PHP 5

file (PHP 3, PHP 4) array file(string dateiname [, int use_include_path [, resource context]])

Liest eine komplette Datei in ein Array. Parameter dateiname: Verweis auf eine Datei, die eingelesen werden soll. use_include_path: 1 oder TRUE, falls nach handle im include_path gesucht werden soll. context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert Ein numerisch indiziertes Array (Startwert 0), wobei jeder Wert einer Zeile von handle entspricht. Diese Funktion kann auch mit URL-Wrappern benutzt werden. readfile (PHP 3, PHP 4) int readfile(string dateiname [, bool int use_include_path [, resource context]])

Liest eine Datei ein und schreibt diese komplett in den Ausgabepuffer. Parameter dateiname: Die Datei, die gelesen und ausgegeben werden soll. use_include_path: 1 oder TRUE, falls nach dateiname im include_path gesucht werden soll. context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert Die Anzahl der Bytes, die ausgegeben wurden, oder FALSE bei einem Fehler. Diese Funktion kann auch mit URL-Wrappern benutzt werden. file_get_contents (PHP 4 ≥ 4.3.0) string file_get_contents(string dateiname [, bool use_include_path [, resource context]])

Liest eine komplette Datei in eine Zeichenkette.

씰 씰 S c h ne l l ü be rs i cht PHP 5

149

Funktionen, die kein Dateihandle benötigen

9.6.5 Funktionen, die kein Dateihandle benötigen

9.6

Bewegen innerhalb geöffneter Dateien

9.6

Parameter dateiname: Datei, deren Inhalt gelesen werden soll. use_include_path: 1 oder TRUE, falls nach dateiname im include_path gesucht werden soll. context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert Der gesamte Inhalt von dateiname in einer Zeichenkette oder FALSE, falls ein Fehler aufgetreten ist. Diese Funktion kann auch mit URLWrappern benutzt werden. file_put_contents (PHP 5) int file_put_contents(string string dateiname, string daten [, int flags [, resource context]])

Schreibt Daten in eine Datei. Parameter dateiname: Datei, in die daten geschrieben werden sollen. daten: Die Inhalte, die in dateiname geschrieben werden sollen. flags: FILE_USE_INCLUDE_PATH, falls dateiname im include_path gesucht werden soll, und/oder FILE_APPEND, falls daten an dateiname angehängt werden sollen. context: Rückgabewert von stream_context_create(). Rückgabewert Die Anzahl der Bytes, die erfolgreich in dateiname geschrieben wurden. Diese Funktion kann auch mit URL-Wrappern benutzt werden.

9.6.6 Bewegen innerhalb geöffneter Dateien ftell (PHP 3, PHP 4) int ftell(resource handle)

Liefert die aktuelle Position des Dateizeigers. Parameter handle: Verweis auf eine Datei, bei der die Position des Dateizeigers bestimmt werden soll. Rückgabewert Die aktuelle Position des Dateizeigers in Bytes, gerechnet vom Dateianfang her.

150

씰 씰S ch ne l lü b er s ic h t PHP 5

fseek (PHP 3, PHP 4) Bewegt einen Dateizeiger zu einer neuen Position. Parameter handle: Verweis auf eine Datei, deren Dateizeiger bewegt werden soll. offset: Anzahl in Bytes, gemessen vom Beginn der Datei. von_woher: Art und Weise, wie die gewünschte Position bestimmt werden soll, Standard ist SET_SEEK (ab PHP 4.0.0). Mögliche Werte: 쐍 SET_SEEK: Die neue Position entspricht offset. 쐍 SET_CUR: Die neue Position entspricht der aktuellen plus offset Bytes. 쐍 SET_END: Die neue Position entspricht dem Ende der Datei plus offset Bytes. Rückgabewert 0, falls der Dateizeiger erfolgreich neu positioniert werden konnte, -1, falls nicht. rewind (PHP 3, PHP 4) bool rewind(resource handle)

Bewegt den Dateizeiger zum Dateianfang. Parameter handle: Verweis auf eine Datei, dessen Dateizeiger zum Dateianfang bewegt werden soll. Rückgabewert TRUE, falls der Dateizeiger erfolgreich bewegt werden konnte, ansonsten FALSE.

씰 씰 S c h ne l l ü be rs i cht PHP 5

151

Bewegen innerhalb geöffneter Dateien

int fseek(resource handle, int offset [, int von_woher])

9.6

Anlegen, Löschen, Kopieren und Verschieben von Dateien und Verzeichnissen

9.6

9.6.7 Anlegen, Löschen, Kopieren und Verschieben von Dateien und Verzeichnissen mkdir (PHP 3, PHP 4) bool mkdir(string pfadname[, int modus[, bool recursiv [, resource context]]])

Legt ein Verzeichnis an. Parameter pfadname: Der Pfad, wo ein neues Verzeichnis angelegt werden soll; kann ab PHP 5.0.0 auch eine URL sein. modus: Zugriffsrechte als oktale Zahl; wird von umask beeinflusst und unter Windows ignoriert (Standard 0777). recursiv: Bei TRUE werden Verzeichnise rekursiv angelegt; Standard ist FALSE (ab PHP 5). context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert TRUE, falls pfadname angelegt werden konnte, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. rmdir (PHP 3, PHP 4) bool rmdir(string verzeichnis_name[, resource context])

Löscht ein leeres Verzeichnis. Parameter verzeichnis_name: Das Verzeichnis, das gelöscht werden soll. context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert Falls verzeichnis_name erfolgreich gelöscht wurde TRUE, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden. copy (PHP 3, PHP 4) bool copy(string quelle, string ziel)

Kopiert eine Datei.

152

씰 씰S ch ne l lü b er s ic h t PHP 5

rename (PHP 3, PHP 4) bool rename(string alter_name, string neuer_name [, resource context])

Umbenennen einer Datei oder eines Verzeichnisses. Parameter alter_name: Datei oder Verzeichnis, die bzw. das umbenannt werden soll. neuer_name: Der neue Name für die Datei oder das Verzeichnis. context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert TRUE, falls die Datei oder das Verzeichnis erfolgreich umbenannt werden konnte, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden, die für alter_name und neuer_name identisch sein müssen. unlink (PHP 3, PHP 4)

9.6

bool unlink(string dateiname[, resource context])

Löscht eine Datei. Parameter dateiname: Name der Datei, die gelöscht werden soll. context: Rückgabewert von stream_context_create() (ab PHP 5). Rückgabewert TRUE, falls die Datei gelöscht werden konnte, ansonsten FALSE. Ab PHP 5.0.0 kann diese Funktion auch mit einigen URL-Wrappern benutzt werden.

씰 씰 S c h ne l l ü be rs i cht PHP 5

Anlegen, Löschen, Kopieren und Verschieben von Dateien und Verzeichnissen

Parameter quelle: Die Datei, die kopiert werden soll. ziel: Das Ziel, wohin die Datei kopiert werden soll. Rückgabewert TRUE, falls das Kopieren erfolgreich war, ansonsten FALSE. Falls ziel existiert, wird dieses überschrieben. Ab PHP 4.3.0 können für quelle und ziel (identische) URL-Wrapper benutzt werden.

153

Anlegen, Löschen, Kopieren und Verschieben von Dateien und Verzeichnissen

9.6

move_uploaded_file (PHP 4 ≥ 4.0.3) bool move_uploaded_file(string dateiname, string ziel)

Verschiebt eine hochgeladene Datei an einen neuen Ort. Parameter dateiname: Der Name einer hochgeladenen Datei, die verschoben werden soll. ziel: Der Speicherort und Name, an den die Datei verschoben werden soll. Rückgabewert TRUE, falls es sich bei dateiname um eine mit POST hochgeladene Datei handelt und das Verschieben nach ziel erfolgreich war. Handelt es sich bei dateiname nicht um eine mit POST hochgeladene Datei oder war das Verschieben nach ziel nicht erfolgreich, ist der Rückgabewert FALSE. tempnam (PHP 3, PHP 4) string tempnam(string verzeichnis, string präfix)

Erzeugt eine Datei mit einem eindeutigen Namen. Parameter verzeichnis: Verzeichnis, in dem die Datei erzeugt werden soll. präfix: Zeichenkette, die dem Dateinamen vorangestellt wird. Rückgabewert Ein neu erzeugter Dateiname mit vollständiger Pfadangabe, der bei Scriptende aber nicht automatisch gelöscht wird. tmpfile (PHP 3 ≥ 3.0.13, PHP 4) resource tmpfile(void)

Erzeugt eine temporäre Datei. Keine Parameter Rückgabewert Ein Verweis auf eine eindeutige Datei, die im beschreibbaren Modus geöffnet ist. Bei Scriptende wird diese Datei automatisch gelöscht.

154

씰 씰S ch ne l lü b er s ic h t PHP 5

bool touch(string name[, int zeit[, int atime]])

Setzt die Zugriffs- und Veränderungszeit einer Datei. Parameter name: Datei oder Verzeichnis, deren bzw. dessen Zeitstempel verändert werden soll. zeit: Veränderungszeit als Unix-Timestamp, die gesetzt werden soll. atime: Die Zugriffszeit als Unix-Timestamp, die gesetzt werden soll. Rückgabewert Im Erfolgsfall wird TRUE zurückgegeben, ansonsten FALSE. Falls name nicht existiert und es sich um eine Datei handelt, wird diese angelegt. link (PHP 3, PHP 4) bool link(string ziel, string link)

Erzeugt einen Hardlink. Parameter ziel: Existierende Datei oder Verzeichnis, auf die bzw. das gelinkt werden soll. link: Der Name des Hardlinks. Rückgabewert Falls ziel existiert und link erfolgreich angelegt werden konnte, ist das Ergebnis TRUE, ansonsten FALSE. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung. symlink (PHP 3, PHP 4) bool symlink(string ziel, string symlink)

Erzeugt einen Softlink. Parameter ziel: Existierende Datei oder Verzeichnis, auf die bzw. das gelinkt werden soll. symlink: Der Name des Softlinks. Rückgabewert Falls ziel existiert und symlink erfolgreich angelegt werden konnte, ist das Ergebnis TRUE, ansonsten FALSE. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung. 씰 씰 S c h ne l l ü be rs i cht PHP 5

155

Anlegen, Löschen, Kopieren und Verschieben von Dateien und Verzeichnissen

touch (PHP 3, PHP 4)

9.6

9.6.8 Funktionen zum Ändern von Rechten

Funktionen zum Ändern von Rechten

chmod (PHP 3, PHP 4)

9.6

bool chmod(string dateiname, int modus)

Versucht Zugriffsrechte zu ändern. Parameter dateiname: Datei oder Verzeichnis, deren bzw. dessen Zugriffsrechte verändert werden sollen. modus: Ein gültiger oktaler Zugriffswert mit führender Null. Rückgabewert TRUE, falls die Änderung der Rechte an dateiname nach modus erfolgreich war, ansonsten FALSE. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung. chown (PHP 3, PHP 4) bool chown(string dateiname, mixed benutzer)

Versucht, den Eigentümer zu ändern. Parameter dateiname: Datei oder Verzeichnis, deren bzw. dessen Benutzer geändert werden soll. benutzer: Ein Benutzername oder eine numerische User-ID. Rückgabewert TRUE, falls der Eigentümer von dateiname erfolgreich in benutzer geändert werden konnte, ansonsten FALSE. Nur einem Superuser (root) ist es erlaubt, den benutzer von dateiname zu ändern. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung. chgrp (PHP 3, PHP 4) bool chgrp(string dateiname, mixed gruppe)

Versucht, die Gruppe zu ändern. Parameter dateiname: Datei oder Verzeichnis, deren bzw. dessen Gruppe geändert werden soll. gruppe: Ein Gruppenname oder eine numerische Gruppen-ID.

156

씰 씰S ch ne l lü b er s ic h t PHP 5

Rückgabewert TRUE, falls die Gruppe von dateiname erfolgreich in gruppe geändert werden konnte, ansonsten FALSE. Nur einem Superuser ( root) ist es erlaubt, den benutzer von dateiname uneingeschränkt zu ändern. Normalen Benutzern ist es nur erlaubt, in eine gruppe zu ändern, der sie selbst angehören. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung. umask (PHP 3, PHP 4) Liefert und/oder setzt die aktuelle umask. Parameter mask: Neuer Wert für umask mit führender Null. Rückgabewert Falls mask nicht angegeben wurde, erhalten Sie den aktuellen Wert von umask. Ist mask angegeben, wird diese zusätzlich als neuer wert mask & 0777 gesetzt. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung.

9.6.9 Sonstiges clearstatcache

Sonstiges

int umask([int mask])

void clearstatcache(void)

9.6

Löscht den Statuscache von Dateien/Verzeichnissen. Keine Parameter Kein Rückgabewert glob (PHP 4 ≥ 4.3.0) array glob(string muster [, int flags])

Liefert Datei- und Pfadnamen, die einem Muster entsprechen. Parameter muster: Shell-Muster (shell pattern), das zum Testen benutzt wird. flags: 쐍 GLOB_MARK: Jedem gefundenen Element wird ein Slash angefügt. 쐍 GLOB_NOSORT: Die Dateien werden unsortiert zurückgegeben, so wie sie im Dateisystem liegen. 씰 씰 S c h ne l l ü be rs i cht PHP 5

157

쐍 GLOB_NOCHECK: Falls keine übereinstimmenden Elemente gefunden werden, ist der Rückgabewert muster. 쐍 GLOB_NOESCAPE: Backslashes maskieren keine Metazeichen. 쐍 GLOB_BRACE: Erweitert geschwungene Klammern, so dass zum Beipiel {a,b,c} auf a, b oder c zutrifft. 쐍 GLOB_ONLYDIR: Nur Verzeichniseinträge, auf die muster zutrifft, werden zurückgegeben. Rückgabewert Ein numerisch indiziertes Array (Startwert 0) mit den Werten, die muster entsprechen. Tildeexpansion oder Parametersubstitution werden nicht unterstützt. fnmatch (PHP 4 ≥ 4.3.0)

Sonstiges

array fnmatch(string muster, string zeichenkette [, int flags])

9.6

Testet, ob ein Dateinamen mit einem Muster übereinstimmt. Parameter muster: Shell-Muster (shell pattern), gegen das zeichenkette getestet wird. zeichenkette: Datei-/Pfadname oder eine Zeichenkette, der bzw. die auf Übereinstimmung mit muster getestet werden soll. flags: Siehe die Angaben zu flags bei glob(). Rückgabewert TRUE, falls muster in der zeichenkette gefunden wurde, ansonsten FALSE. Diese Funktion steht auf Windows-Systemen nicht zur Verfügung und funktioniert nur im lokalen Dateisystem. parse_ini_file (PHP 4) array parse_ini_file(string dateiname [, bool verarbeite_abschnitte])

Wertet eine Konfigurationsdatei im Stil einer Windows-ini-Datei aus. Parameter dateiname: Konfigurationsdatei, die ausgewertet werden soll. verarbeite_abschnitte: Bei TRUE sind die einzelnen Abschnitte aus dateiname im Ergebnis enthalten. Ohne Angabe wird der Standard FALSE verwendet.

158

씰 씰S ch ne l lü b er s ic h t PHP 5

Rückgabewert Ein assoziatives Array mit den Einstellungen aus dateiname oder, falls für verarbeite_abschnitt TRUE angegeben wurde, ein mehrdimensionales Array, das zusätzlich die Namen der Abschnitte enthält. Reservierte Schlüsselwörter wie NULL, yes, no, TRUE und FALSE können nicht als Namen für Einstellungen benutzt werden. Werte, die nichtalphanumerische Zeichen enthalten, sollten in doppelte Anführungszeichen eingeschlossen werden. popen (PHP 3, PHP 4) Öffnet einen Prozesszeiger. Parameter kommando: Befehl, der ausgeführt werden soll. modus: Siehe die Angaben bei fopen(), unterstützt werden aber nur unidirektionale Modi (lesend oder schreibend öffnen). Rückgabewert Eine Verbindung zu einem mittels kommando ausgeführten Prozess, die mit den Funktionen fgets(), fgetss() und fwrite() verwendet werden kann. pclose (PHP 3, PHP 4) int pclose(resource handle)

Schließt einen Prozess-Dateizeiger. Parameter handle: Verweis auf eine Verbindung zu einem Prozess. Rückgabewert Schließt handle und liefert den Exitstatus des ausgeführten Kommandos.

씰 씰 S c h ne l l ü be rs i cht PHP 5

159

Sonstiges

resource popen(string kommando, string modus)

9.6

Fehler behandeln und protokollieren

9.7

9.7

Fehler behandeln und protokollieren

Mit den Funktionen dieses Abschnitts können Sie festlegen, wie PHP mit Fehlern umgehen soll und in welcher Weise Fehler protokolliert werden. Mit der Möglichkeit, eigene Fehlerbehandlungsroutinen zu schreiben, gibt es ein mächtiges Instrument, robuste Anwendungsprogramme zu entwickeln. debug_backtrace (PHP 4 ≥ 4.3.0) array debug_backtrace(void)

Speichert den Aufrufstack aller aktuellen Funktionen oder Methoden zur Ablaufverfolgung. Keine Parameter Rückgabewert Ein assoziatives Array, das Informationen über den Aufrufstack enthält. Die Elemente dieses Arrays sind: 쐍 Schlüssel: Bedeutung. 쐍 function: Der Name der aktuellen Funktion. 쐍 line: Die aktuelle Zeilennummer. 쐍 file: Die aktuelle Datei. 쐍 class: Der Name der aktuellen Klasse. 쐍 type: Falls der Aufruf in einer Methode stattfand, wird -> zurückgegeben; erfolgte der Aufruf in einer statischen Funktion, wird :: zurückgegeben; erfolgte der Aufruf aus einer Funktion, wird nichts zurückgegeben. 쐍 args: Falls der Aufruf in einer Funktion erfolgte, werden die Funktionsargumente zurückgegeben; falls der Aufruf aus einer eingebundenen Datei erfolgte, werden die Namen der Include-Dateien aufgelistet. Im folgenden Beispiel wurde die Datei bt2.php5 aufgerufen. Das zurückgegebene Array enhält zwei Elemente.

Ausgabe: Hallo, ich heisse bt2 Array ( [0] => Array ( [file] => c:\Apache\htdocs\MuT\bt.php5 [line] => 10 [function] => bigtext ) [1] => Array ( [file] => c:\Apache\htdocs\MuT\bt2.php5 [line] => 4 [args] => Array ( [0] => c:\Apache\htdocs\MuT\bt.php5 )

9.7

[function] => include_once ) ) HOKUSPOKUS

씰 씰 S c h ne l l ü be rs i cht PHP 5

161

debug_print_backtrace (PHP 5)

Fehler behandeln und protokollieren

void debug_print_backtrace(void)

9.7

Gibt die Informationen einer Ablaufverfolgung aus. Keine Parameter Kein Rückgabewert Im folgenden Beispiel wurde die Datei bt2.php5 aufgerufen. Es wird eine Liste mit zwei Einträgen zurückgegeben.

Ausgabe: Hallo, ich heisse bt2 #0 bigtext() called at [c:\Apache\htdocs\MuT\bt.php5:10] #1 include_once(c:\Apache\htdocs\MuT\bt.php5) called at [c:\Apache\htdocs\MuT\bt2.php5:4] Array ( ) HOKUSPOKUS

162

씰 씰S ch ne l lü b er s ic h t PHP 5

error_log (PHP 3, PHP 4)

Sendet eine Fehlermeldung an das angegebene Ziel. Parameter fehlermeldung: Die Fehlermeldung, die protokolliert wird. meldungs_typ: Ein Flag, das die Versandart und den Bestimmungsort für die Nachricht angibt: 쐍 0: Die fehlermeldung wird entweder in ein System-Log oder in eine Datei geschrieben, je nachdem, wie error_log in der php.ini konfiguriert ist. 쐍 1: Die fehlermeldung wird per E-Mail an ziel gesendet. Der optionale Parameter extra_headers kann mit diesem Typ benutzt werden. 쐍 2: Die fehlermeldung wird über den PHP-Debugger gesendet, falls der Debugger gestartet ist. ziel enthält dann den Hostnamen oder die IP-Adresse und optional den Port, unter dem der Debugger läuft. 쐍 3: Die fehlermeldung wird an die im Parameter ziel angegebene Datei angefügt. ziel: Der Bestimmungsort der Fehlermeldung. extra_headers: Zusätzliche Header, falls die fehlermeldung per E-Mail versendet wird. Rückgabewert TRUE bei Erfolg, anderenfalls FALSE. error_reporting (PHP 3, PHP 4) int error_reporting([int level])

Setzt den Detaillierungsgrad für PHP-Fehlermeldungen. Parameter level: Der neue error_reporting-Level, der gesetzt wird. Rückgabewert Der bisherige error_reporting-Level als Integer. Mit dieser Funktion wird die error_reporting-Direktive der php.ini zur Laufzeit gesetzt. Diese Einstellung gilt nur für die Dauer der Programmausführung. 씰 씰 S c h ne l l ü be rs i cht PHP 5

163

Fehler behandeln und protokollieren

int error_log(string fehlermeldung, int meldungs_typ [, string ziel [, string extra_headers]])

9.7

Fehler behandeln und protokollieren

Bitwert Konstante

9.7

1 2 4 8 16 32 64 128 256 512 1024 2047 2048

E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_ALL E_STRICT

Tabelle 9.5: error_reporting()-Konstanten und ihre Bitwerte set_error_handler (PHP 4 ≥ 4.0.1) string set_error_handler(callback error_handler)

Registriert eine benutzerdefinierte Funktion zur Fehlerbehandlung. Parameter error_handler: Der Name der benutzerdefinierten Funktion, die im Falle eines Fehlers ausgeführt wird. Rückgabewert Der Name der zuvor registrierten Fehlerbehandlungsroutine, falls es eine gab, oder FALSE, wenn ein Fehler auftrat. Der benutzerdefinierten Funktion muss mindestens der Fehlercode und ein Meldungsstring übergeben werden. Seit PHP 4.0.2 können optional der Dateiname, die Zeilennummer und der Kontext, in dem der Fehler auftrat, übergeben werden. Dies ist ein Array, das auf die Stelle in der aktiven Systemtabelle zeigt, wo der Fehler auftrat. E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING E_COMPILE_ERROR und E_COMPILE_WARNING können nicht von benutzerdefinierten Funktionen behandelt werden.

164

씰 씰S ch ne l lü b er s ic h t PHP 5

restore_error_handler (PHP 4 ≥ 4.0.1) void restore_error_handler(void)

Setzt die Fehlerbehandlung auf den zuvor benutzten Error-Handler zurück. Keine Parameter Kein Rückgabewert Diese Funktion wird nach einem Aufruf von set_error_handler() benutzt, um von benutzerdefinierten Routinen zurückzukehren. trigger_error, user_error (PHP 4 ≥ 4.0.1)

Erzeugt eine benutzerdefinierte Fehlermeldung. Parameter fehlermeldung: Die fehlermeldung, die bei einem Fehler ausgegeben wird; maximal 1024 Zeichen. fehler_typ: Die Art der Meldung. trigger_error() kann für alle E_USERKonstanten eingesetzt werden, der Standardwert von fehler_typ ist E_USER_NOTICE. Kein Rückgabewert

HTTP-Funktionen

void trigger_error(string fehlermeldung [, int fehler_typ]) void user_error(string fehlermeldung [, int fehler_typ])

9.8 HTTP-Funktionen

9.8

header (PHP 3, PHP 4) void header(string header [, bool ueberschreiben [, int http_antwort_code]])

Sendet einen HTTP-Header an den Client. Parameter header: Der header, der vom Webserver an den Browser des Benutzers gesendet wird. ueberschreiben: Wenn dieser Parameter auf TRUE gesetzt wird, werden zuvor gesendete ähnliche header überschrieben. Dies ist die Standardeinstellung. Ist ueberschreiben auf FALSE gesetzt, können mehrere gleiche header gesendet werden. 씰 씰 S c h ne l l ü be rs i cht PHP 5

165

http_antwort_code: Erzwingt den angegebenen Wert für die HTTP-

Antwort (seit PHP 4.3.0). Kein Rückgabewert Beachten Sie, dass header gesendet werden müssen, bevor irgendwelche Ausgaben gemacht werden. headers_list (PHP 5) array headers_list(void)

HTTP-Funktionen

Gibt eine Liste von Headern zurück, die entweder gesendet wurden oder zum Versenden bereit sind. Keine Parameter Rückgabewert Ein Array, das die header enthält.

9.8

headers_sent (PHP 3 ≥ 3.0.8, PHP 4) bool headers_sent([string &datei [, int &zeile]])

Prüft, ob HTTP-Header gesendet wurden. Parameter &datei: Referenz auf die Datei, in der die Header gesendet werden. &zeile: Referenz auf die Zeile, in der die Ausgabe beginnt. Rückgabewert TRUE, falls HTTP-Header gesendet wurden, andernfalls FALSE. Die optionalen Parameter &datei und &zeile stehen seit PHP 4.3.0 zur Verfügung. Wenn sie angegeben sind, ersetzt PHP die Parameter durch den Dateinamen und die Zeilennummer, in der die Ausgabe beginnt.